Splitwise 是怎么运作的:分账 App 背后的共享账本
分账 App 真正记录的是什么,余额如何从没人直接付给你的支出里算出来,以及四个朋友之间的六笔欠款为什么只要三次转账就能结清。
出租车是一个人付的,晚饭是另一个人付的,一周以后谁也说不清到底谁垫得多。这就是每一款分账 App 要解决的问题,而且它们的解法都一样——一个账本。Splitwise 是其中最知名的,所以人们问「这种东西到底怎么运作」时,通常指的就是它。
只要看清这个机制,剩下的事情就不再神秘:为什么 App 让你付钱给一个从没替你买过东西的人,为什么「结算」产生的付款次数比支出笔数还少,以及为什么 App 里的任何一步都碰不到你的钱。分账 App 是一份共享记录,不是支付服务。
App 真正记录的是什么
每一笔支出都是三条信息:金额、谁付的、为谁付的。除此之外不需要别的。
记下「晚餐,768 元,Ben 付,四个人分」,App 就存下了一行。它并没有存下「Ana 欠 Ben 192 元」——那是算出来的。这个区别很重要,因为正是它让同一组支出可以被重新排成任意多种付款方案,而底层事实一个都不用改。
群组的作用是给这份记录划定范围。一个群组就是围绕一组支出和一组人的边界:合租的房子、这趟旅行、周末踢球的队伍。余额是在群组内部计算的,所以同一个朋友可以在一个群组里欠你钱,在另一个群组里是你的债主。
余额是怎么算出来的
App 为每个人维护两个合计:他付出的金额,以及他应承担的金额——也就是他在群组每一笔支出里所占份额的总和。余额就是两者之差。
四个朋友一起过周末。Dan 就住在本地,所以没有分摊房子;演出只有 Carla 和 Dan 去了。
| 支出 | 金额 | 付款人 | 分摊 |
|---|---|---|---|
| 房子 | 2,400 元 | Ana | 在 Ana、Ben、Carla 之间均分 |
| 采买 | 960 元 | Ben | 均分,4 人 |
| 演出票 | 1,280 元 | Carla | 在 Carla、Dan 之间均分 |
这个群组一共花了 4,640 元,每个人应承担多少取决于他参与了哪几笔:房子 800 元、采买 240 元、演出票 640 元。用每个人付出的金额减去他应承担的部分:
| 人 | 已付 | 应承担 | 余额 |
|---|---|---|---|
| Ana | 2,400 元 | 1,040 元 | +1,360 元 |
| Ben | 960 元 | 1,040 元 | −80 元 |
| Carla | 1,280 元 | 1,680 元 | −400 元 |
| Dan | 0 元 | 880 元 | −880 元 |
正数表示群组欠你,负数表示你欠群组。四个余额加起来永远是零,这是唯一真正重要的验算——如果加不出零,就是某一笔支出记错了。
为什么你要付钱给从没替你付过钱的人
如果两两来看,这三笔支出会产生六笔独立的欠款:每一笔支出都让付款人成为这笔支出里其他所有人的债主。没有人愿意转六次账。
所以 App 改从余额出发。Dan 转给 Ana 880 元,Carla 转 400 元,Ben 转 80 元。三次转账,所有人归零——Ana 恰好收回她该收的 1,360 元。看看 Dan:Ana 从没替他付过任何东西,因为他没有分摊房子,而房子是 Ana 唯一付过的一笔。他的 880 元来自 Ben 的采买和 Carla 的演出票。他照样转给 Ana,因为群组总共欠多少没有变——只是被排成了最少的动作。
「简化债务」或者智能结算的含义仅此而已。当有 n 个人尚未结清时,这种排法永远不需要超过 n − 1 次转账,通常还更少。想看完整机制的话,债务简化有单独的一篇。
账本和付款是两回事
这是最让人意外的部分。把一笔欠款标记为已付,记录的是「有一笔付款发生过」,而不是让付款发生。钱仍然走你们本来就在用的渠道——银行转账、现金、某个支付 App——记录只是随之更新。 如果某个 App 提供了集成支付服务,那是叠在账本之上的第二项可选服务,而不是账本本身在做的事。
由此带来的是一个很实际的结论:分账 App 不需要你的银行信息也能完成它的工作,因为它的工作是算术和记账。那些加入了付款步骤的 App 是在做第二件、也是另一件事,身份核验和手续费正是从那里冒出来的。关于这个区别我们另写了一篇。
免费版在哪里到头
Splitwise 把核心送出去,把边缘卖掉。免费版每天能添加约三笔支出,界面之间会插广告,收据扫描和货币换算则放在每月 4.99 美元的 Pro 方案里。
在一间安静的合租房里,这些限制根本感觉不到。到了旅行的第二天,六个人同时在记午饭、打车和门票时,就非常明显了:额度是按人按天算的,一个群组一个下午就能用完。绝大多数人正是在这一刻开始另找工具。免费版扣下了什么讲得更细,撞上上限时该怎么办讲的就是那个下午。
Donget 在这里的位置
Donget 用的是同一套模型,因为这个模型本身是对的:支出、份额、每人一个余额,最后结算一次。你建一个群组,点添加支出,选择分摊方式——均分、金额、百分比、乘数,或者在项目里逐行分——余额页就为所有人维护实时合计。
区别在于墙立在哪里。支出没有每日上限,没有广告,用 AI 扫描收据是内置的而不是留给付费方案:拍下收据,支出就据此生成。结算给出的正是上面那种转账次数最少的排法,而且群组里每个人看到的是同一份余额,谁都不必只凭一句话相信别人。
常见问题
Splitwise 是什么?
Splitwise 是一款记录共同支出的 App。每个人记下自己付了多少、这笔钱是为谁付的,App 就为群组里的每个人维护一个实时余额。
Splitwise 会在人和人之间转账吗?
它本身不会。App 的核心是一份记录:把一笔欠款标记为已结清只是更新账本,并不转移资金,付款仍然发生在你平时转账的地方。在 Splitwise 提供集成支付服务的地区,你可以选择从那里付款——那是另一项独立服务,有自己的身份核验和它收取的费用。
我欠的是替我付钱的那个人吗?
不一定。大多数 App 显示的是你在整个群组里的净余额,所以你可能会被要求付给一个从没替你买过东西的人。总额是一样的,只是重新排成了更少的转账。
Splitwise 免费吗?
核心功能免费,但免费版每天只能添加约三笔支出、会显示广告,并把收据扫描和货币换算放在每月 4.99 美元的 Pro 方案里。
群组里的每个人都必须注册吗?
想自己看到余额就必须在群组里。一个人可以独自维护账本再分享一份汇总,但那样也只有这个人能核对。
如果有人还没结清就退出群组怎么办?
余额会一直留在记录里,直到被结清。在有人离开之前先结算,或者约定未结的余额转到你们接下来使用的工具里。
小结
分账 App 就是一个共享账本,加上最后的一次减法。所有看起来像魔法的地方——付给从没替你付过钱的人、六笔欠款变成三次转账——都是从这一个想法里长出来的。区分这些 App 的不是模型,而是它们把什么放在了付费墙后面。
免费下载 Donget,把账本记下来,不限笔数、没有广告、也不需要 Pro 方案。