Beancount & Fava 家庭资产管理搭建
Python3 安装
官网下载 Python3 64位
Beancount & Fava 安装
1 | pip install beancount |
相关安装问题
用pip去安装一些第三方包的时候会出现如下错误,缺少C++编译器,因为有些程序需要使用,没有C++接口会报错,下载
VisualCppBuildTools_Full.exe
百度网盘:https://pan.baidu.com/s/12CtRtvbFBL29H_OlD_--lA 提取码:py5a
115网盘:https://115.com/s/sw63yvc3373?password=g355&# 访问码:g355
参考地址:https://blog.csdn.net/love906897406/article/details/125355524
Beancount & 复式记账 介绍
Beancount基于会计恒等式底层原理进行记账
复式记账底层结构一般分为五大类
- 资产 Assets
- 负债 Liabilities
- 收入 Income
- 支出 Expenses
- 权益 Equity
关系 | 行为 | 记账 |
---|---|---|
收入 -> 资产 | 工资收入:10000元 | 资产+10000 |
负债 -> 资产 | 信用卡刷:10000元 | 负债-10000、资产+10000 |
资产 -> 支出 | 购买Iphone14花费:20000元 | 资产-20000、支出+20000 |
费用 -> 资产 | 二手Iphone14卖了:10000元 | 资产+10000、支出-10000 |
收入 -10000
负债 -10000
资产 10000
费用 10000
每笔交易在不同账户的数字加起来和为0是复式簿记的重要特性和原则,也是用来检验账目正确性的重要依据。
Income收入通常是负数、Expenses支出通常是正数、Equity一般用于初始化当前资金
你赚的钱(Income),加上你借来的钱(Liabilities),最终要么变成你自己的钱(Assets),要么就是花掉了(Expenses),最终得到的是个零。
(Income + Liabilities) + (Assets + Expenses) + Equity = 0
Assets 资产
- 储蓄卡 DebitCard
- 余额宝 Alipay
- 微信零钱 Weixin
- 基金 Fund
Liabilities 负债
- 信用卡 CreditCard
- 贷款 Loan
Income 收入
- Job 工资
- Interest 利息(银行卡、余额宝)
- Trade 交易(二手)
Expenses 支出
- Clothing 衣
- Food 食
- Housing 住
- Transportation 行
Equity 权益
- Opening-Balances 开始记账记录初始金额用
基本语法
1 | YYYY-MM-DD <操作> <参数...> |
创建商品单位
1 | 1998-07-22 commodity AAPL |
对商品定价
1 | 2015-04-30 price AAPL 125.15 CNY |
创建和关闭账户
账户需要显式的创建,这里的关键字是open
,当现实中账户关闭的时候,也可以关闭close
。账户命名是通过冒号连接起来。
比如
1 | 2002-01-17 open Assets:Cash CNY |
交易
1 | 2014-05-05 * "COCO咖啡店" "一杯奶茶" |
通常 *
表示交易数据无误,而!
表示交易数据可能有错。
*
后的两个string,第一个是payee,就是收款方, 可选的,也可以省略 第二个是narration 就是描述,
断言 Balance Assertion
编程的同学应该很容易理解. 这个概念和测试中的断言是一个意思。
当你对某一个账户在某个时间点上做断言的时候,
1 | 2015-06-01 balance Liabilities:CreditCard -634.30 CNY |
Beancount会根据这个来验证其账目的正确性,如果不匹配,则会报错。这个时候就需要对账找出并且修复错误。显然,时不时的对账户做断言是保持账户正确性的必要条件。而且如果出错,你只需要对比上一次正确断言和当前出错断言之间的记录即可。
填充 Padding
填充是和断言一起使用的,当断言出现在填充之后(二者时间之内不能有其他交易),beancount会自动根据pad的参数,将余额调整至断言中的数据。
1 | 2019-12-31 pad Liabilities:CreditCard:US:Chase:SapphirePreferred Equity:Opening-Balances |
这个在初始化账本的时候,需要设定账户初始值的时候会频繁使用。
记账结构
个人家庭记账目录结构数以及文件描述,完善ing~
MyBeanCount
├── main.bean 主账本
├── 2022
├── 2023
├── 2024
│ ├──2024.bean 2024账本
│ ├──1-Income
│ │ └── income.bean 2024收入
│ ├──2-Expenses
│ │ ├── expenses.bean 2024支出
│ │ ├── 202401.bean 1月支出
│ │ ├── 202402.bean 2月支出
│ │ ├── 202403.bean 3月支出
│ │ ├── 202404.bean 4月支出
│ │ ├── 202405.bean 5月支出
│ │ ├── 202406.bean 6月支出
│ │ ├── 202407.bean 7月支出
│ │ ├── 202408.bean 8月支出
│ │ ├── 202409.bean 9月支出
│ │ ├── 202410.bean 10月支出
│ │ ├── 202411.bean 11月支出
│ │ └── 202412.bean 12月支出
│ ├──3-Trip
│ │ ├── trip.bean 2024旅行
│ │ ├── 20240402-beijing.bean 20240402北京旅行
│ │ └── 20240602-beijing.bean 20240602北京旅行
│ ├──4-Entertainment
│ │ ├── movie.bean 电影
│ │ └── show.bean 演出
│ └──5-Cycle
│ ├── vip.bean vip年度续费
│ └── creditcard.bean 年度信用卡
└── accounts
├── assets.bean 开户(储蓄卡、余额宝)
├── liabilities.bean 开户(信用卡、花呗、贷款)
├── expenses.bean 开户
├── income.bean 开户(工资卡)
└── equity.bean 开户
参考博客 & 文档
排名不分先后,自学过程中参考过的文章