Travel settlement

旅行の立て替えを最後にまとめて精算する方法|複数の支払いを整理

旅行では「Aがホテル代を払い、Bが夕食を払い、Cがタクシーを払う」のように立て替えが続きます。毎回その場で送金するより、各支出の支払った人負担する人を記録し、最後に差額だけ精算する方が整理しやすい場合があります。

Two layers

「いくら払ったか」と「いくら負担すべきか」は別

立て替え精算が分かりにくくなる一番の原因は、会計時に支払った金額と、本来その人が負担する金額を同じものとして扱うことです。

Paid

立替額

その場で実際に誰が店・ホテル・交通機関などへ支払ったか。カードや現金を出した人の金額です。

Borne

負担額

その支出のうち、本来その人が負担する部分。全員均等の場合もあれば、品目や利用人数によって違う場合もあります。

Balance

差額

立替額 − 負担額。プラスなら受け取る側、マイナスなら払う側になります。

「誰が誰にいくら払うか」の式と具体例は別ページで詳しく説明します。

What to record

旅行中は、各支出で3つを残す

  • 金額・内容:ホテル、食事、タクシーなど何にいくら使ったか。
  • 立て替えた人:店やサービスへ実際に支払った人。
  • 負担する人:全員なのか、一部メンバーなのか。レシート内で注文内容が違うなら品目単位で分ける。

たとえば3人旅行でAが9,000円の夕食代をまとめて払っても、A・B・Cが必ず3,000円ずつ負担するとは限りません。注文内容が大きく違うなら、先に品目別の負担額を決めてから、Aの立替額9,000円と比較します。

記録の項目を先に決めたい場合:金額・立替者・用途・負担者などを旅行中の立て替えを記録する方法で整理しています。
Workflow

最後にまとめて精算する6ステップ

  1. 旅行のメンバーを確定する。
    誰をこの旅行の精算対象にするかを最初に揃えます。
  2. 支出が発生するたびに内容と立替者を記録する。
    「後で思い出す」方式は抜けやすいため、最低限、金額と誰が払ったかを残します。
  3. その支出を負担する人を決める。
    全員均等、利用者だけ、またはレシートの品目別など、その支出に合うルールを使います。
  4. 旅行中は同じルールで記録を続ける。
    複数のレシート・支出を旅行単位でまとめます。毎回送金してゼロに戻す必要はありません。
  5. 最終的な各人の立替額と負担額を集計する。
    差額がプラスの人は受取側、マイナスなら支払側です。
  6. 差額を打ち消す送金候補を作る。
    受取側と支払側を対応させ、旅行全体の残高をゼロにします。送金後は精算済みとして記録します。
Small example

3人旅行の考え方

支出金額立替者負担
ホテル18,000円AA・B・C 各6,000円
昼食6,000円BA 2,000円 / B 2,500円 / C 1,500円
タクシー3,000円CA・C 各1,500円

ここではAの立替額は18,000円、Bは6,000円、Cは3,000円です。一方、負担額はA 9,500円、B 8,500円、C 9,000円。旅行全体では支出27,000円で一致します。

残高 = 立替額 − 負担額
A: +8,500円
B: −2,500円
C: −6,000円

したがって、BとCが合計8,500円をAへ支払えば残高はゼロになります。
By situation

旅行の条件が違う場合は、先に負担ルールを整理する

Currency

海外旅行では「通貨を選ぶ」と「為替換算」を混同しない

TossReciの現在の実装には12種類の通貨コードを選択・保存する処理があります。これは旅行の金額表示をその通貨として扱うためのものです。

リアルタイム為替換算は確認していません。 円で払った支出とドルで払った支出を自動的に最新レートで換算して1つにまとめる、といった機能は今回確認したコードにはありません。複数通貨の換算が必要な旅行では、換算ルール・基準日・レートを別途決める必要があります。
TossReci fit

TossReciでは旅行単位で複数支出をまとめられる

現在の実装では、旅行名・日付・メンバーを持つ旅行を作成し、複数のレシート/割り勘セッションを紐づけ、各セッションの立替者を記録できます。最終的に立替額と負担額から送金候補を計算し、精算済みとして管理できます。

ただし、TossReci自体が銀行や決済アプリへ送金するわけではありません。計算結果を確認して実際の送金を行う部分は別です。