跳到主要内容

30 篇博文 含有标签「会计」

查看所有标签

解构 Beancount 账本:企业会计案例研究

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

在今天的博客文章中,我们将深入剖析一个专为企业设计的 Beancount 账本,帮助您理解这种纯文本复式记账系统的复杂细节。

解构 Beancount 账本:企业会计案例研究

我们先从代码开始:

2023-05-22-business-template

1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto

1970-01-01 open Equity:Bank:Chase

1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH

1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices

1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT

2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD

2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD

2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD

2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD

理解代码

  1. 开立账户:代码首先在 1970-01-01 开立了一系列账户。其中包括资产账户(Assets:Bank:MercuryAssets:Crypto)、权益账户(Equity:Bank:Chase)、收入账户(Income:StripeIncome:Crypto:ETH)以及费用账户(Expenses:COGSExpenses:COGS:AmazonWebServicesExpenses:BusinessExpensesExpenses:BusinessExpenses:ChatGPT)。

  2. 交易记录:接着,代码记录了 2023-03-01 至 2023-05-18 期间的一系列交易。

    • 2023-05-14 的交易表示从 Mercury Checking ••1234CONTABO.COM 支付了 17.49 美元。这笔交易被记录为一项费用(Expenses:COGS:Contabo),并相应地从 Assets:Bank:Mercury 账户中扣除。

    • 同样,2023-05-11 的交易表示从同一银行账户向 Amazon Web Services 支付了 14490.33 美元。这笔交易记录在 Expenses:COGS:AmazonWebServices 下。

    • 2023-03-01 的交易显示来自 STRIPE 的收入存入 Mercury Checking ••1234,总计 21230.75 美元。这笔交易被记录为收入(Income:Stripe),并增加到银行账户(Assets:Bank:Mercury)中。

    • 2023-05-18 的最后一笔交易代表一笔涉及客户 19 ETH 的加密货币交易。这笔交易记录在 Assets:CryptoIncome:Crypto:ETH 下。{1,856.20 USD} 显示了交易时 ETH 的价格,而 @@ 35267.8 USD 则指明了这笔 19 ETH 交易的总价值。

在所有交易中,都遵循了复式记账原则,确保 资产 = 负债 + 权益 的等式始终成立。

总结

这个 Beancount 账本提供了一个直接而强大的财务交易追踪系统。正如最后一笔交易所示,Beancount 足够灵活,可以核算加密货币等非传统资产,这证明了它在我们日益数字化的金融环境中的实用性。

我们希望这次剖析能帮助您更好地理解 Beancount 的结构和功能,无论您是经验丰富的会计师还是尝试管理个人财务的初学者。敬请关注我们的下一篇博客文章,届时我们将深入探讨 Beancount 的高级操作。

Beancount 速查表

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

账户名称示例

Assets:US:BofA:Checking

cheatsheet-en

账户类型

Assets          +
Liabilities -
Income -
Expenses +
Equity -

商品/货币

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

指令

通用语法

YYYY-MM-DD <Directive> <Parameters...>

开立与关闭账户

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; 货币限制

2015-04-23 close Assets:Checking

声明商品/货币 (可选)

1998-07-22 commodity AAPL
name: "苹果电脑公司"

价格

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

备注

2013-03-20 note Assets:Checking "致电询问回扣事宜"

文档

2013-03-20 document Assets:Checking "path/to/statement.pdf"

交易

2015-05-30 * "关于此交易的描述"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "有线电视公司" "电话账单" #tag ˆlink
id: "TW378743437" ; 元数据
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; 您可以省略其中一个金额

分录

  ...    123.45 USD                             简单
... 10 GOOG {502.12 USD} 带单位成本
... 10 GOOG {{5021.20 USD}} 带总成本
... 10 GOOG {502.12 # 9.95 USD} 带两种成本
... 1000.00 USD @ 1.10 CAD 带单位价格
... 10 GOOG {502.12 USD} @ 1.10 CAD 带成本与价格
... 10 GOOG {502.12 USD, 2014-05-12} 带日期
! ... 123.45 USD ... 带标记

余额断言与填充

; 仅断言指定货币的金额:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; 自动插入交易以满足以下断言:
2015-06-01pad Assets:Checking Equity:Opening-Balances

事件

2015-06-01 event "location" "美国纽约"
2015-06-30 event "address" "梅街123号"

选项

option "title" "我的个人账本"

其他

pushtag #trip-to-peru
...
poptag #trip-to-peru
; 注释以分号开头

通过自定义链接和查询提升您的 Beancount 体验

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

Beancount,这个深受开发者和财务爱好者喜爱的复式记账系统,以其简洁性而强大。但是,对于那些希望在 Beancount 的网页界面 Fava 中获得更多控制和更快导航的用户来说,自定义侧边栏链接和 SQL 查询可以将您的工作流提升到新的水平。

在本指南中,我们将向您展示如何:

  • 在 Fava 的侧边栏添加快速访问链接
  • 使用 SQL 查询进行高级筛选和分析
  • 为月度审查或异常检测自定义您的工作流

为什么要自定义 Fava?

Fava 已经是查看您的 Beancount 账本的精美界面,但随着您的日记账不断增长,对更好快捷方式和更智能查询的需求也随之增加。

这解决了以下痛点:

  • 重复导航时间范围
  • 跨嵌套账户筛选交易
  • 更快地发现负余额或异常

✨ 自定义侧边栏链接

让我们从使用简单的侧边栏快捷方式改进您的日常工作流开始。这些链接会出现在 Fava 的左侧边栏,可以直接带您进入筛选视图,例如本月交易或上月收入。

将以下行添加到您的 Beancount 文件中:

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

它们的作用:

  • 本月: 打开筛选到当前月份的交易视图。
  • 上月: 立即跳转到上个月——非常适合月末审查。
  • 清除所有: 重置筛选器,再次显示所有条目。

这些快捷方式消除了手动输入时间,让您的 Fava 体验更加流畅和个性化。

🔍 自定义 SQL 查询

为了获得更深入的洞察,Fava 的 SQL 界面功能强大得令人难以置信。这是一个查询,用于查找符合特定模式的账户中的所有负余额——非常适合标记异常或有问题的交易。

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account ~ '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

解析:

  • account ~ '.*:BCM:.*':筛选名称中包含 :BCM: 的账户。
  • number(units(position)) < 0:标记负余额(例如,预算超支)。
  • 日期筛选器将结果范围缩小到特定的 1 个月窗口。

用例:

  • 发现重复支出或错误过账等错误
  • 审计特定供应商或类别
  • 快速提取可操作的预算洞察

🛠 专业提示:结合链接 + 查询

虽然 Fava 不允许直接链接到自定义查询,但您可以通过以下方式养成每月审查的习惯:

  • 使用“本月”链接开始您的审查
  • 在另一个窗格中打开您保存的查询选项卡
  • 同时审查两者——先筛选,然后深入挖掘

这种组合有助于您在异常恶化之前发现它们确保您的账本保持整洁

总结

Beancount 的设计理念是极简,但像这些小小的增强功能却能带来巨大的效率提升。无论您是在审查预算、调试异常余额,还是仅仅为了节省点击次数,自定义链接和 SQL 查询都能为您提供更大的能力和更少的阻碍。

额外提示: 如果您正在使用 Fava 的自定义报告,您甚至可以构建完全符合您个人财务习惯的仪表板。

准备好掌控一切了吗?

从小处着手:添加“本月”链接。然后构建您自己的查询。未来的您会感谢您的。

想要更多此类技巧?订阅我们的新闻通讯或在 Beancount.io 探索更多 Beancount 秘籍。

Beancount 中未来交易的预测

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

Beancount 有一个插件可以预测未来的周期性交易。如何在 beancount.io 中应用它?将以下内容放入您的账本文件中。

; import the plugin
plugin "fava.plugins.forecast"

; add a monthly HOA fee
2022-05-30 # "HOA fee [MONTHLY]"
Expenses:Hoa 1024.00 USD
Assets:Checking -1024.00 USD

预测插件截图

2022-05-30-预测插件

然后,您将在净利润图表中看到预测结果。

预测插件

上面的标签 [MONTHLY] 意味着它将永久循环。如果您有更多条件需要应用,请尝试 [MONTHLY UNTIL 2022-06-01][MONTHLY REPEAT 5 TIMES][YEARLY REPEAT 5 TIMES][WEEKLY SKIP 1 TIME REPEAT 5 TIMES]

Beancount.io 革新个人财务管理

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

传统的 Beancount 用户通常使用命令行工具或在私有网络中自建服务器,他们必须通过电脑或移动设备上的通用文本编辑器进行操作。Beancount.io 通过提供开源的 Android 和 iOS 移动应用以及安全的云服务来减少这些麻烦,让您的账本现在只需轻点几下即可通过指纹访问。

Beancount 是一种计算机语言,可以在文本文件中实现复式记账。一旦您在文件中定义了财务交易,它就会生成各种报告。这种语言的设计者 Martin Blais 认为,命令行记账具有许多优点——它快速、便携、开放且可定制。

我们强烈认同这一观点,并分享 Beancount 语言所带来的赋能感。我们希望做得更多——将这项技术介绍给更多人。这意味着我们必须提高可用性,使其更容易被更广泛的用户群体所使用。

2022-01-08-instant-access-to-your-beancount-cloud-ledger-anytime-anywhere

并非每个人都是命令行爱好者,这就是我们构建 Beancount.io 的原因——一个面向所有人的个人财务管理器。它的工作方式如下:

对于繁重的工作,Beancount 用户仍然可以使用他们的电脑,通过浏览器访问 https://beancount.io 或与 Dropbox 同步来编辑或查看账本。这既保留了命令行工具的灵活性,又没有失去云端解决方案的跨设备访问能力。

对于日常轻量级操作,例如即时添加条目,Beancount 用户可以使用移动应用连接到安全云。

负责此产品的后端工程师 Mike Thrift 说:

我过去每天都会设置提醒,让自己打开笔记本电脑并将记录输入到我的 Beancount 文件中。现在,有了 Beancount.io,我可以在需要时更轻松地修改我的账本,即使我在户外商店购物时也能做到。

Facebook 软件工程师 Zhi Li 告诉我们:

我已经将我所有的 Beancount 文件迁移到 Beancount.io,现在它非常适合我的日常使用。我购买了自动数据备份等专业版功能,但我认为你们还可以做更多事情来改进服务。

您现在可以在 https://beancount.io/sign-up/ 注册,或下载 iOSAndroid 应用。我们简化了注册流程,尽可能少地收集您的信息来启动服务。然后您将获得一个预设的空账本,您可以立即添加条目。

常见问题

Beancount.io 会将我的账本数据出售给任何第三方吗?

  • 不会。我们致力于确保您的数据安全和隐私,我们绝不会出售您的账本数据。

我的数据安全吗?

  • 是的。我们使用 AES256 保护您的电子邮件和账本,使用 BCrypt 保护您的密码,并使用 SSL 保护您的网络请求。

我的账本数据是端到端加密的吗?

  • 不是。由于技术限制,在生产服务器中索引账本文件时,我们仍然必须将您的数据解密到内存中。因此,我们限制我们任何团队成员的直接访问。不幸的是,由于成本高昂,我们无法在 Intel 的 SGX 或任何安全保险库中实现这一点。

这是一项未来几年我可以信赖的可靠服务吗?

  • 是的。我们最初于 2019 年 7 月 4 日推出了 Beancount.io,并且我们已经安全可靠地运营该服务两年多了。因此,我们没有理由不继续在未来提供服务。

我可以请求新功能并赞助项目吗?

Beancount 引入多文件支持

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

自二月份以来,我们的许多客户一直在询问如何向一个账本添加多个文件。他们需要文件结构来归档或分类交易。因此,经过几个月的工作,我们很高兴地宣布此功能已免费发布。

以下是使用方法:

文件 > 创建新文件

2021-09-24-multi-file-one-ledger

前往左侧导航栏中的文件编辑器选项卡。然后,点击“文件”下拉菜单并选择“创建新文件”。

文件 > 创建新文件

命名新文件

为您的文件指定一个有效的文件名并保存。所有文件名必须以“.bean”结尾。

命名新文件

包含文件

这是一个关键步骤,您必须在 main.bean 中包含新创建的文件。

例如,如果您添加了 stock.bean,则在 main.bean 中指定 include "stock.bean"

包含文件

刷新并导航到文件

刷新页面,您将看到文件出现在“文件”下拉菜单中。

刷新并导航到文件

重命名或删除文件

导航到文件后,您可以在“编辑”下拉菜单中重命名或删除它。

重命名或删除文件

遇到问题?

请在 https://t.me/beancount 提问。

Fava 升级至 1.19 版本:主要变更与改进

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

我们已将 MIT 许可的开源软件 Fava 升级至 1.19 版本。以下是自上次更新以来的变更内容:

  • v1.19 (2021-05-18)
    • conversioninterval 选项迁移至 default-page 选项
    • 添加选项 invert-income-liabilities-equity
    • 升级至 CodeMirror 6
    • 新增保加利亚语翻译
    • 其他小改进和错误修复
  • v1.18 (2021-01-16)
    • 一些小改进和各种错误修复。

感到兴奋吗?立即体验:https://beancount.io/ledger/

2021-07-16-upgrade-fava-to-1-19

有疑问?我们会在 https://t.me/beancount 等你 :)

理解 Beancount 中的摊销

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

摊销是将支付款项分摊到多个时间段的会计处理方式。在 Beancount.io 中,您可以使用 fava.plugins.amortize_over 插件来实现这一点。

2021-01-09-amortize

如果没有摊销,如果您想为您的汽车投保 6 个月,费用为 600 美元。您必须将其记录为特定日期的一次性费用。

2017-06-01 open Assets:Bank:Checking
2017-06-01 open Assets:Prepaid-Expenses
2017-06-01 open Expenses:Insurance:Auto


2017-06-01 * "Pay car insurance"
Assets:Bank:Checking -600.00 USD
Assets:Prepaid-Expenses

然而,通过摊销,您可以将费用分摊到六个月,只需在文件顶部添加 plugin "fava.plugins.amortize_over",并在交易中使用 amortize_months: 6

plugin "fava.plugins.amortize_over"

2020-06-01 open Assets:Bank:Checking
2020-06-01 open Assets:Prepaid-Expenses
2020-06-01 open Expenses:Insurance:Auto

2020-06-01 * "Amortize car insurance over six months"
amortize_months: 6
Assets:Prepaid-Expenses -600.00 USD
Expenses:Insurance:Auto

然后,在日记账中,您将看到该交易被拆分为 6 笔分录。

2020-11-01 * Amortize car insurance over six months (6/6) am
2020-10-01 * Amortize car insurance over six months (5/6) am
2020-09-01 * Amortize car insurance over six months (4/6) am
2020-08-01 * Amortize car insurance over six months (3/6) am
2020-07-01 * Amortize car insurance over six months (2/6) am
2020-06-01 * Amortize car insurance over six months (1/6) am

摊销交易截图

Beancount 移动应用(iOS 和 Android 版)隆重推出

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

我们很高兴地宣布 Beancount 发展史上的一个重要里程碑:我们专为 iOS 和 Android 平台打造的移动应用已正式上线!此次发布直接回应了社区最频繁的需求之一——在移动设备上高效管理您的账本。

Beancount iOS 应用

主要功能

  • 快速交易录入:随时随地无缝添加新交易
  • 移动财务报告:随时随地查看您的财务洞察
  • 直接账本编辑:通过优化后的网页视图完全访问您的账本文件
  • 跨平台同步:在所有设备上保持您的财务数据一致

2020-08-19-beancount-mobile-app

社区驱动开发

此次发布仅仅是我们移动之旅的开端。我们致力于根据您的需求和反馈来不断完善这些应用。欢迎加入我们在 Telegram 上的活跃社区:https://t.me/beancount,与我们讨论 Beancount,分享您的经验,并帮助塑造未来的功能。

我们的愿景

在 Beancount,我们的使命是赋能每个人实现更好的财务控制和理解。这些移动应用是实现这一目标的重要一步,未来我们还有更多激动人心的功能和工具在规划中。

从 App Store 下载从 Play Store 下载

Beancount.io 简介

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

现代簿记为何重要

您还在用电子表格管理投资吗?虽然电子表格功能多样,但随着投资组合的增长,它们可能会变得笨重且容易出错。Beancount.io 应运而生——一个专为管理股票和加密货币投资组合而设计,既复杂又用户友好的投资追踪平台。Beancount.io 专为工程师和财务极简主义者打造,将强大的功能与直观的界面相结合,以简化您的投资追踪体验。

2019-09-07-introduction-to-beancount

Expenses

Income Statement

Balance Sheet

复式记账:准确性的基石

Beancount.io 建立在复式记账的原则之上——这是一种全球金融机构都在使用的久经考验的方法。该系统通过一个简单而强大的概念确保数学准确性:每笔财务交易都必须完美平衡。

在复式记账中,每笔交易至少需要两个分录——一个借方 (+) 和一个贷方 (-)——涉及不同的账户。这种内置的验证系统使得记录不平衡的交易几乎不可能,从而确保您的财务记录保持准确和可靠。

1970-01-01 open Income:BeancountCorp
1970-01-01 open Assets:Cash
1970-01-01 open Expenses:Food
1970-01-01 open Assets:Receivables:Alice
1970-01-01 open Assets:Receivables:Bob
1970-01-01 open Assets:Receivables:Charlie
1970-01-01 open Liabilities:CreditCard

2019-05-31 * "BeancountCorp" "Salary of May 15th to May 31st"
Income:BeancountCorp -888 USD
Assets:Cash 888 USD

2019-07-12 * "Popeyes chicken sandwiches" "dinner with Alice, Bob, and Charlie"
Expenses:Food 20 USD
Assets:Receivables:Alice 20 USD
Assets:Receivables:Bob 20 USD
Assets:Receivables:Charlie 20 USD
Liabilities:CreditCard -80 USD

如您在上面两个示例中所见,每笔交易都必须满足会计等式。

资产 = 负债 + 权益(即净资产)

我们使用 Martin Blais 的 Beancount 语法和 Jakob Schnitzer 的 Fava 网络项目来构建本网站。如果任何交易的分录总和不为零,它将向您发出警报。

Error Alert

现在您了解了我们如何强制执行账本的正确性。但您可能会问,这些“账户”是什么?

理解账户:水桶类比

将您的财务账户想象成一个相互连接的水桶系统,金钱像水一样在其中流动。这个类比使得复式记账变得直观:当您将资金从一个账户转移到另一个账户时,就像将水从一个水桶倒入另一个水桶一样——系统中水的总量(金钱)保持不变。

Beancount.io 引入了五种账户。

  1. 收入 — 其金额始终为负或在借方。这是因为您正在赚钱,然后资金从“收入”账户借记并贷记到您的“资产”账户。
  2. 支出 — 其金额始终为正或在贷方。这是因为您正在花钱,资金从“资产”或“负债”流向“支出”账户。
  3. 负债 — 其金额为正或为零。您的信用卡负债就是一个很好的例子,它会周期性地增减。
  4. 资产 — 其金额为正或为零。您的现金或房屋总是具有一定的价值。
  5. 权益 — 您的净资产。系统将自动为您计算。权益 = 资产 - 负债,它反映了您的财富状况。

现在您可以使用上述关键词打开您的自定义账户:

1970-01-01 open Assets:Cash
1970-01-01 open Assets:Stock:Robinhood
1970-01-01 open Assets:Crypto:Coinbase
1970-01-01 open Expenses:Transportation:Taxi
1970-01-01 open Equity:OpeningBalance

使用商品进行高级投资追踪

Beancount.io 擅长追踪多样化的投资,从股票到加密货币。让我们探讨它如何处理复杂的投资场景。例如,以下是您在 2014 年以每枚 100 美元的价格购买 10 枚比特币的记录方式:

2014-08-08 * "Buy 10 Bitcoin"
Assets:Trade:Cash -1000.00 USD
Assets:Trade:Positions 10 BTC {100.00 USD}

三年后,您以每枚 10,000 美元的价格出售它们(原始成本为每枚 100 美元,用 {100.00 USD} 标注),价格用 @ 10,000.00 USD 标注。

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @ 10,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

或者相同的交易使用 @@ 20,000.00 USD,表示总价为 20,000 美元

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @@ 20,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

交易所有分录的总和,包括 -2 BTC {100.00 USD},仍然和往常一样为零。

成本标签 {100.00 USD} 很重要,因为您可能以不同的成本购买了相同的商品。

100 BTC {10.00 USD, 2012-08-08}
10 BTC {100.00 USD, 2014-08-08}

如果您想简化流程,可以在开始时将账户设置为 FIFO 或 LIFO。FIFO 代表先进先出,而 LIFO 代表后进先出。在美国,美国国税局 (IRS) 使用 FIFO 来计算您的损益和相应税款。

1970-01-01 open Assets:Trade:Positions "FIFO"

然后当您以 -2 BTC {} 这样的简写形式出售时,Beancount 将自动应用 FIFO 策略并出售最旧的商品。

开始使用 Beancount.io

Beancount.io 是一个现代化的云端财务管理平台,它将您的文本交易记录转换为全面的财务报表,包括利润表、资产负债表和试算平衡表。通过将纯文本文件的可靠性与强大的可视化工具相结合,Beancount.io 帮助您精确控制财务生活,同时获得有关投资绩效的宝贵见解。

立即开始您的 Beancount.io 财务之旅——促销期间免费!