Settlement math

立て替え精算で誰が誰にいくら払う?計算の考え方を例で解説

全員が何度か支払ったあとでも、最終精算は「各人が払った総額」と「各人が負担すべき総額」の差だけ見れば整理できます。

Three numbers

使うのは「立替額」「負担額」「残高」

立替額

その人が店・ホテル・交通機関などへ実際に支払った合計。

負担額

割り勘ルール上、その人が最終的に負担すべき合計。

残高

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

基本式
残高 = 立替額 − 負担額

全員の残高を足した結果は、計算が整合していれば0になります。
Worked example

3人で計算する

A・B・Cの旅行で、支出総額が27,000円だったとします。

立替額負担額残高
A18,000円9,500円+8,500円
B6,000円8,500円−2,500円
C3,000円9,000円−6,000円

Aは8,500円多く支払っているため受取側です。Bは2,500円、Cは6,000円不足しているため支払側です。

ひとつの精算例
B → A: 2,500円
C → A: 6,000円

Aの受取 8,500円と一致し、3人の残高が0になります。
Matching

人数が増えても「受取側」と「支払側」を対応させる

  1. 全員の残高を出す。
    立替額と負担額を集計します。
  2. プラスとマイナスに分ける。
    プラスは受取側、マイナスは支払側です。
  3. 金額を対応させる。
    支払側の不足額を、受取側の受取額へ順に充てます。
  4. 全員0になったか確認する。
    送金候補を反映した後に残高が残っていないか見ます。
同じ残高をゼロにする送金の組み合わせは、状況によって複数ありえます。「誰から誰へ」が常に数学的に一意になるわけではありません。
Common mistakes

間違いやすい点

  • 立替額だけで精算する:「Aが一番払ったから全員Aに払う」と決める前に、A自身の負担額を引く必要があります。
  • 支出の負担者を曖昧にする:タクシーに乗っていない人まで負担に入れると、最終残高もずれます。
  • 途中の丸めを混ぜる:各支出で端数処理した値と、旅行全体の正確な合計を混在させると差額が出ます。端数処理の段階を揃えてください。
TossReci fit

TossReciはこの残高から精算候補を計算する

現在のTossReci実装では、旅行に紐づく支出について立替者と品目ごとの負担を集計し、受取側・支払側の残高を作って送金候補を計算します。

これは送金額の候補を計算する機能であり、TossReciから銀行・決済サービスへ送金を実行する機能ではありません。また、このページでは「常に数学的に唯一の最適解になる」とは説明しません。