跳到主要内容

预算追踪:设定目标,掌控支出

· 阅读需 5 分钟
Mike Thrift
Mike Thrift
Marketing Manager

大多数记账工具会告诉你花了多少钱。但很少有工具能帮你决定应该花多少钱。几乎没有任何工具能让你在透明、版本控制的纯文本格式中,将该目标与实际账目一起跟踪。

Beancount.io 中的预算跟踪弥补了这一空白。

Beancount.io 预算跟踪

功能介绍

预算跟踪允许你为账簿中的任何支出账户设置支出限制——每月的杂货支出、每季度的软件订阅、每年的旅行——并能直观地查看预算与实际支出随时间变化的对比。所有预算数据都以标准 Beancount custom 指令的形式存储在你的账簿文件中,因此它是受版本控制且完全可移植的。

运作原理

1. 添加预算

点击添加预算并填写三项内容:你想要跟踪的账户(例如 Expenses:Food:Groceries)、周期(每天、每周、每月、每季度或每年)以及带币种的目标金额。

预算作为标准的 Beancount 指令写入你的账簿:

2026-03-01 custom "budget" "Expenses:Food:Groceries" "monthly" 500.00 USD

它与你的交易一起存在于账簿文件中——没有单独的数据库,没有专有格式。

2. 预算与支出概况一目了然

每个预算账户都会有一个图表卡片,通过柱状图显示实际支出,并配有一条虚线表示预算线。将鼠标悬停在任何柱条上即可查看该时期的确切金额。当支出接近或超过预算线时,一目了然。

图表会自动使用正确的周期分组——每月预算显示每月柱条;每周预算显示每周柱条。

3. 修订预算且不丢失历史记录

情况会发生变化。当你的杂货预算需要增加时,你可以添加一个带有新日期的新条目——旧条目保持不变。图表将每次预算修订反映为阶梯线,因此你可以查看任何时间点的目标。

每个图表下方的历史表格显示了每个预算条目及其日期和金额,为你提供目标演变过程的完整审计轨迹。

4. 删除不再需要的条目

每个历史行都有一个删除按钮。删除预算条目会直接修订账簿文件并立即更新图表。

为什么我们采用这种设计

预算属于你的账簿。 将预算存储为 custom 指令可将所有内容集中在一处。你的预算历史记录在 Gitea 中与你的交易一起进行版本控制,这意味着你可以像对待任何其他账簿条目一样,对预算更改进行差异对比(diff)、还原或审计。

周期符合你的实际预算方式。 外出就餐的每月上限与会议费用的年度上限是不同的。你可以同时设置两者,并且每个预算都以正确的粒度绘制图表。

保留历史预算。 每次修改预算时,不是覆盖它,而是添加一个新的带日期条目。图表将这些呈现为阶梯线,因此你可以看到你在 2 月份增加了杂货预算,并判断这是否是正确的决策。

无需同步。 由于预算存储在你的账簿文件中,它们会通过 Gitea(版本控制你所有会计数据的 Git 服务器)自动同步。无需额外配置。

适用人群

  • 任何拥有经常性支出类别的人,希望在月底之前(而不是之后)了解支出是否在轨道上。
  • 自由职业者和合同工,管理不稳定的收入,并希望对可变支出设置硬性上限。
  • 家庭,跟踪具有不同周期长度的多个类别的共同支出。
  • 从 YNAB 或 Mint 等工具迁移的人,希望在不离开纯文本会计的情况下获得预算式的“护栏”。

开始使用

预算跟踪现已面向所有 Beancount.io 用户开放。

  1. 登录你的账簿
  2. 导航到侧边栏的预算 (Budget)
  3. 点击添加预算,选择账户、周期和金额。

设置你的第一个预算


常见问题

预算是如何存储的? 作为标准 Beancount custom "budget" 指令存储在你的账簿文件中。它们是纯文本、版本受控且完全可移植的——你可以在任何文本编辑器中打开它们。

支持哪些周期? 每天、每周、每月、每季度和每年。

我可以跟踪美元以外货币的预算吗? 可以。添加预算时,你可以从账簿现有货币中选择金额和货币。

更新预算时会发生什么? 你的账簿中会添加一个新的带日期条目。旧条目会被保留。图表会将两者显示为阶梯式预算线,以便你拥有目标的完整历史记录。

我可以跟踪收入目标,还是只能跟踪支出? 账户选择器默认为 Expenses(支出)账户,这是最常见的情况。你可以使用账簿中的任何账户,但对于你试图控制在限制之内的支出账户,预算对比最有意义。

这在移动设备上可用吗? 预算页面是 Beancount.io Web 控制面板的一部分。底层账簿数据(custom "budget" 指令)可以在任何可以读取你账簿文件的地方访问。