Settlement math
立て替え精算で誰が誰にいくら払う?計算の考え方を例で解説
全員が何度か支払ったあとでも、最終精算は「各人が払った総額」と「各人が負担すべき総額」の差だけ見れば整理できます。
Three numbers
使うのは「立替額」「負担額」「残高」
立替額
その人が店・ホテル・交通機関などへ実際に支払った合計。
負担額
割り勘ルール上、その人が最終的に負担すべき合計。
残高
立替額 − 負担額。プラスなら受け取る側、マイナスなら払う側。
基本式
残高 = 立替額 − 負担額
全員の残高を足した結果は、計算が整合していれば0になります。
残高 = 立替額 − 負担額
全員の残高を足した結果は、計算が整合していれば0になります。
Worked example
3人で計算する
A・B・Cの旅行で、支出総額が27,000円だったとします。
| 人 | 立替額 | 負担額 | 残高 |
|---|---|---|---|
| A | 18,000円 | 9,500円 | +8,500円 |
| B | 6,000円 | 8,500円 | −2,500円 |
| C | 3,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になります。
B → A: 2,500円
C → A: 6,000円
Aの受取 8,500円と一致し、3人の残高が0になります。
Matching
人数が増えても「受取側」と「支払側」を対応させる
- 全員の残高を出す。
立替額と負担額を集計します。 - プラスとマイナスに分ける。
プラスは受取側、マイナスは支払側です。 - 金額を対応させる。
支払側の不足額を、受取側の受取額へ順に充てます。 - 全員0になったか確認する。
送金候補を反映した後に残高が残っていないか見ます。
同じ残高をゼロにする送金の組み合わせは、状況によって複数ありえます。「誰から誰へ」が常に数学的に一意になるわけではありません。
Common mistakes
間違いやすい点
- 立替額だけで精算する:「Aが一番払ったから全員Aに払う」と決める前に、A自身の負担額を引く必要があります。
- 支出の負担者を曖昧にする:タクシーに乗っていない人まで負担に入れると、最終残高もずれます。
- 途中の丸めを混ぜる:各支出で端数処理した値と、旅行全体の正確な合計を混在させると差額が出ます。端数処理の段階を揃えてください。
TossReci fit
TossReciはこの残高から精算候補を計算する
現在のTossReci実装では、旅行に紐づく支出について立替者と品目ごとの負担を集計し、受取側・支払側の残高を作って送金候補を計算します。
これは送金額の候補を計算する機能であり、TossReciから銀行・決済サービスへ送金を実行する機能ではありません。また、このページでは「常に数学的に唯一の最適解になる」とは説明しません。