icon
password
 
💡
学习 beancount 的过程
  1. 了解基本概念,解决 what 的问题
  1. 明确目标,解决 why 的问题
  1. 查找资料,开始学习
  1. 摸索实践,解决问题
  1. 查找最佳实践,解决实践中的问题,优化个人实践方案
 

Why?

  1. 全面的了解家庭财务状况;现在家庭的现金流有一些,储蓄有一些,债权,期权,股票也有一些。收入和支出的种类、来源也愈发丰富,Nora 到来以后,会增加各种开销。通过记账行为,全面、细致的了解家庭的收入、支出情况。知道“钱都去哪了”
  1. 提高风险抵抗能力;最近了解到 “高收入陷阱”这个概念,现在的家庭收入构成 100% 依赖工资性收入,虽然当前收入还不错,相对比较稳定,容易产生“感觉还行”的错觉,开销不自觉地增加很多,最近三个月的信用卡账单,每月都在一万元以上。但这样的收入构成,风险抵抗能力很差,一旦失业或者工资发放出了问题,整个现金流就断掉了。
  1. 改变消费观念;最近有点儿深陷消费主义深渊中无法自拔,无论时自己还是小朋友的的花销,喜欢就买,想要就买,有点儿愈演愈烈的趋势。通过日常的记账行为,变相的提醒自己,“别再买了,有啥用呢”
  1. 增加被动收入,开源节流。
 

现在是怎么记账的

现在是通过notion 自建数据库表,每年末,做当年的财务总结和下年的规划。每个月会更新当月的大致花销,收入及结余情况,使用几年下来,能满足基本的流水账诉求。

年末总结

  1. 今年攒了多少钱
    1. 预计攒多少
    2. 实际攒多少
  1. 今年赚了多少
    1. 工资、奖金
    2. 其他
  1. 今年花了多少
    1. 固定支出
      1. 日常开销
      2. 房贷
      3. 生活开销(生活费,固定金额,适当宽裕)
      4. 保险
    2. 大项支出
      1. 医疗、旅游等
      2. 大件支出,Mac,家用电器等
    3. 额外支出
  1. 关键交易明细
    1. 借出
    2. 还款
    3. 回款
 

新年财务规划

  1. 明年能赚多少
  1. 明年要花多少
  1. 明年想赞多少
notion 记账模版待补充

Notion记账的问题

  1. 抓大放小,不关注细节,只关注整体的结余
  1. 数据分析不方便
    1. 消费合理性
    2. 理财的角度,钱生钱的方式不多
  1. 数据安全性问题
    1. 云端数据,没有额外的加密和脱敏
 

安装 beancount

 

复式记账的概念

账户

  • Assets
  • Income
  • Liabilities
  • Expenses
  • Equity
 

借贷恒等式

 

费用明细归类

 
  • 生活费用(Life(日常开销))
    • Food
    • 住(单独账本)
    • 行(包括养车、通勤)
    • 家用电器
    • Coffee
    • Toy
    • Fruit
    • Others
    • RelationShip
      • 人情往来
  • 电子产品
    • 电脑
    • 手机
    • pad
    • 配件
      • 耳机
      • 键盘
      •  
  • 订阅软件费用
    • 各种会员
      • 山姆
      • 88vip
      • 京东
      • 爱奇艺
      • apple care+
    • 科学上网
    • 订阅制软件
    • 买断制软件
    •  
  • Fixed overhead
    • 保险
      • 寿险
      • 重疾险
      • 医疗险
      • 意外险
      • 车险
    • 水、电、煤、网、话费
    • 房贷
  • 教育
    • Dora
    • Nora
    • 网课、专栏

交易

每一笔交易,需要在两类账户流转。每一条记录都至少有一条借记(Debit)和一条贷记(Credit)。可以看下面这个例子:
 

典型场景的交易case

💡
账户后的金额是带有符号的,符号含义解释如下:
支出账户:一般为正数。表示花费多少钱。 收入账户:一般为负数。表示收入多少钱。投资收入账户可能出现正数,则表示投资亏损。 资产账户:可正可负。正数表示有钱存入,余额增加;负数表示有钱转出,余额减少。 负债账户:可正可负。正数表示还款,负债减少;负数表示借款,负债增加。
  • 普通的支出交易
    • 发工资
       
      • 信用卡还款
      • 账户之间的交易
        • 有时不同账户之间相互转账,如把钱从支付宝转移到储蓄卡,或者不同储蓄卡之间转移
      • 水电煤 定期循环记录
      • 房贷,组合记录
      • 固定资产折旧
      • 股票、期权

      编辑工具

      • VSCode + VSCode-Beancount 插件
      • vscode-beancount-formatter 格式化文本插件
      • 快捷键:通过 vscode 自定义日期、账户信息的 snippets,提高输入效率
        • 示例snippets
       

      账本的组织结构

      | 采用日期+类型方式划分,结合标签辅助分析
      • 时间
        • main.bean
          • submain-2021.bean
          • submain-2022.bean
          • submain-2023.bean
          • xxxx.bean
      • 类型
        • refer 费用明细
      • 标签
        • Nora
        • Dora
        • Life
        • Feature

      目录结构

       
       
      目录结构的可能的演进
      • 新增导入账单的元数据,比如招行的信用卡账单
      • 新增自动化的导入脚本文件
      • 新增一些辅助记账的脚本,纯文本的输入稍显繁琐,有插件或工具辅助,提高输入效率;
       

      元数据管理

      元数据管理的三个原则:
      1. 完全的拥有权限
      1. 数据安全,加密存储
      1. 支持修订纪录,方便追溯
      具体方案是:
      1. 创建 github 私有仓库,通过 git 提交记录,记录账本的变更,同时私有仓库确保一定的数据安全性
      1. 通过 encrypt 软件加密文件,保证文件非明文存储,私钥单独存储
      1. iCloud Drive 备份加密后文件
       
      notion image

      完整的一个流程

      实时记录

      1. 发生一笔交易
      1. iPhone 发送消息给 “滴答小助手”,标签 #beancount 记录金额、行为
      1. 晚上登记当日交易到 beancount

      月底自动导入

      暂未使用,待能够熟练使用 beancount 后再考虑自动化;上来就考虑提效,容易盲人摸象
      开源的自动化导入脚本参考
       

      进阶用法

      多人协同记录,新开子账户
      资产折旧
      期权、虚拟币
      中期对账,尤其是赛赛部分的总账,比如月初的3000,月末是2000,但不知道中间者1000 花费在哪里了
       

      TODO

      对已有账户余额的处理,使用checking?
      如何设置账户更合理一些呢?单人记账 & 多人记账
      单人按照时间、类别维度分割账本,多人记账暂不考虑
      工资单中的社保、养老、公积金怎么处理?
      期权,股票怎么处理?
      现有的固定资产怎么处理?房子,车子
      初始化账户时,设置价值;房子使用 commodity 设置自定义通货
      是否有必要提供 api/app/sass 在手机中可以记录
      至少未来一年,没有必要,通过微信公众号中转
      导入外部账单,需要自动化到什么程度?成本如何?
      暂不考虑,2024年规划
      固定周期的交易如何处理,水电煤、保险等
      vscode 增加输入快捷键 snippets
      • 参考官方稳定,完成基本设置

      📎 参考文章