dimesum

首页 / 博客 / 金钱

金钱

结清账目:用更少的转账清理团体开销

· 阅读约 6 分钟 ·

三个朋友、十几张收据、两笔转账:结清账目是把余额轧平,而不是逐笔偿还收据,一笔记录下来的付款是需要对方确认的主张。

三个朋友,一个周末,十几张收据。两笔转账就能了结。十二和二之间的差距,正是"结清账目"的含义,Dimesum 把它当作账本上一项独立的操作。下面是其中的算法,以及事后让双方对结果保持一致的机制。

结清账目的含义:轧平余额,而不是逐笔清收据

每一笔共享开销都会牵动你的两个数字:你付了多少,以及你该分摊多少。你的余额就是两者的累计差额。结清账目会把团体里每个人的余额都归零,收据从此无需再动,只有差额在流动。

逐张收据地相互偿还会让人觉得没完没了,因为事实确实如此。同一笔钱在两个方向来回转,有时还是转给同一个人,就在同一天。

一个人民币示例:六笔转账变成两笔

三个朋友在巴塞罗那度过一个周末。Anna 付了 180 元的公寓费,Ben 付了 90 元的晚餐费,Clara 付了 30 元的打车费:总共 300 元,每人应分摊 100 元。

轧平巴塞罗那周末:付款、消费,以及剩下的余额
姓名付款应分摊余额
Anna180 元100 元+80 元(应收)
Ben90 元100 元−10 元(应付)
Clara30 元100 元−70 元(应付)

Clara 转给 Anna 70 元。Ben 转给 Anna 10 元。结束。若逐张偿还这三张收据,每张都牵涉三个人,可能要六笔转账才能落到完全相同的结果。

轧平把逐张收据的偿还压缩成两笔转账 逐张收据 结清账目 70 元 10 元 ABC ACB
左侧:每张收据各自偿还。右侧:轧平之后的同一个周末。债务完全相同,转账却不同。

更少的转账是一种保证,而不是一种期望

n 个人的团体,每种货币最多用 n−1 笔转账就能结清。原因在于:每一笔转账都至少能让一个人的余额归零,一旦除一人外所有人都归零,最后一人也随之归零。

三个朋友需要两笔转账。五个人需要四笔。收据的数量从不进入这个公式。

"按货币分别处理"这一条至关重要。一趟横跨东京和巴黎的行程会留下两个账本,一笔 ¥12,000 的债务永远不会和一笔 €70 的债务相互轧平:Dimesum 按每种货币分别记录余额,拒绝把汇率当作事实,六个金钱漏洞让我们明白了原因。首尔一顿以韩元记录的晚餐同样如此,₩52,500 以韩元结清,无论这个团体在别处还欠着什么。

记录一笔付款不等于转移资金

Dimesum 不持有任何资金。当 Clara 偿还 Anna 时,钱通过她的银行流转,账本只是记录这件事发生了。所以"标记为已付"是一种主张,而设计也把它当作一种主张来处理。

Anna 会确认它,或者提出异议。一次异议会在仅可追加的账本上冲销这条记录。而 48 小时的沉默会自动确认它,因为大多数人对已经收到的钱懒得去按什么按钮。

一笔已记录的结清,由对方确认、由异议、或由 48 小时的沉默确认 已记录 已入账 已确认 已冲销 确认,或 48 小时沉默 异议
确认或异议。双方最终归于同一段历史,而不是相互交换截图。

部分结清,以及方向正确的上限

偿还一笔债务的一部分很常见,所以它是头等操作。用 50 元偿还一笔 80 元的余额,账本上会精确地剩下 30 元未结,不会有任何容易丢失的旁注。上限也朝着另一个方向起作用:一笔结清永远不能超过尚未结清的金额,所以重复点击或过期的界面都无法把债务冲过头,进而颠倒谁欠谁。

我们曾经把这个上限做错过一次。早期的一道防护只在未结金额为正时才生效,这就把"上限为零"变成了"根本没有上限",而那正是这条规则存在的唯一场景。它已经修复,已经过测试,这也是为什么在这里结清账目是一项经过审计的操作,而不是一种约定俗成。

要点

别再逐张偿还收据。把每个人付的钱加总,减去每个人应分摊的份额(逐项账单会按人算清这些),只转移差额,每种货币的转账笔数永远不超过餐桌的座位数减一。在双方都确认的地方记录这笔付款。行程的钱在行程结束时随之了结。

常见问题

结清账目是什么意思?

结清账目,就是把团体里每个人的余额都归为零:把每个人付的钱和消费的金额相互轧平,只转移差额。它不是逐张收据地偿还,三个朋友哪怕有十几张共享收据,通常也只需要一两笔转账就能两清。

团体旅行后怎么结清账目?

把每个人付的钱加总,减去每个人对整趟行程应分摊的份额,结果的正负号就说明了谁应收、谁应付。然后偿还差额:欠款方转给债权方,直到每个人的余额都归零,所需的转账笔数永远不会超过团体人数减一。

结清一个团体最少需要几笔转账?

n 个人的团体,每种货币总能在最多 n 减 1 笔转账内结清。三个朋友无论堆了多少张收据,最多也只需要两笔转账,因为结清清理的是余额,而不是逐笔偿还单项开销。

如果有人把债务标记为已付,但钱其实没到账,会怎样?

在 Dimesum 里,把一笔结清标记为已付是一种断言,而不是事实。对方会确认它或提出异议,异议会在账本上冲销这条记录,48 小时的沉默则会自动确认它。双方最终会认同同一段历史,而不是围绕截图争论。

可以只偿还欠款的一部分吗?

可以。部分结清会减少未结的余额,账本会保留剩余部分,所以用 50 元偿还一笔 80 元的债务,会精确地剩下 30 元未还。上限也朝另一个方向起作用:一笔付款永远不能超过尚未结清的金额,所以重复点击无法颠倒谁欠谁。