一个免费端到端无日常心智负担的记账解决方案

2021-07-31 16:32:09 +08:00
 zhzy0077

我经常能在 V2EX 上看到咨询日常记账软件或者推广资产管理软件的帖子, 但是在我看来通过常见的记账软件手工记账的方式, 对日常心智负担比较大, 一方面是容易漏记, 另一方面是无法同时实现对资产的管理.

我在年前开始有记账的想法, 先后用过诸多国产的记账软件, 以及 GnuCash, Beancount, 最后我遇到了我现在在用的 hledger, 已经记录了半年了, 平均一个月有 300+的交易记录:

Transactions span        : 2020-11-30 to 2021-08-01 (244 days)
Last transaction         : 2021-07-31 (0 days ago)
Transactions             : 1353 (5.5 per day)
Transactions last 30 days: 332 (11.1 per day)
Transactions last 7 days : 84 (12.0 per day)
Payees/descriptions      : 452
Accounts                 : 92 (depth 5)
Commodities              : 2 (CNY, USD)
Market prices            : 2 (USD)

我的使用体验是这样的:

  1. 全程离线, 不存在隐私安全的问题(当然我还是使用 GitHub 用来同步和备份数据)
  2. 无日常心智负担, 无漏记, 每半个月或一个月花 10-15 分钟从银行下载账单通过脚本导入即可
  3. hledger 作为一个复式记账软件, 可以同时实现资产的管理和日常消费的记录
  4. 账单可导出到其他系统分析可视化等, 图为我自建的 Superset screenshot.png (2565×862)

目前我写的账单导入配置支持零钱通, 余额宝, 招商银行(信用卡 /储蓄卡), 广发银行信用卡, 光大银行信用卡, 民生银行信用卡. 新配置写起来也很容易.

我的整个端到端流程为: 访问银行网站下载账单 - 通过脚本导入 hledger -上传到 GitHub - 通过 GitHub Actions 生成 SQLite 文件 - 传到我 VM 里的 Superset 上进行分析.

整个流程全部为开源软件, 并且除了 hledger 以外都可以替换, 比如 SQLite 换成 MySQL 备份, 或者 Superset 换 QuickBI 等.

感觉目前 V2EX 甚至整个简中互联网上这块的内容还是相对较少, 所以发个贴问问要是感兴趣的人多可以做一个系列的教程放在 zhzy0077/hledger-accounting 里.

6501 次点击
所在节点    分享创造
41 条回复
ryh
2021-08-01 18:56:17 +08:00
@AX5N 国内银行只能对他们呵呵了,就 app 的 Face ID 登录都要用第三方服务商的,真的是 low 到爆,他们的开发能力真的有限
SimonOne
2021-08-02 10:40:02 +08:00
@huangmingyou #18 基金记份额,不要记钱,写个脚本每天自动获取每份的 price 。
zhzy0077
2021-08-02 10:45:29 +08:00
@SimonOne 我之前也这么做 后来发现不好算盈利 因为买入卖出的份额是一样多的 最后还要在卖的时候去找买入价 做减法
我现在就只记买了多少钱 在卖光之后多的都是收益
SimonOne
2021-08-02 11:03:38 +08:00
@zhzy0077 #23 设置基金账户为先进先出,然后买的时候记份额和成本,卖的时候自动根据先进先出卖的。
zhzy0077
2021-08-02 13:38:34 +08:00
@SimonOne 这个确实也是我一直没搞懂的一个点 顺便请教下

我在基金净值为 100 的时候买进 1 份:
银行卡 -100
基金 +1 份 @ 100

在 120 的时候卖出这一份:
银行卡 +120
基金 -1 份 @ 120
理财收益 -20

这个不是不平了吗
BlackCat02
2021-08-02 19:58:13 +08:00
我自己用记账软件最大的痛点是:
1. 识别重复记账:我的微信和支付宝都绑定常用的招行信用卡,日常消费从微信端,支付宝端(余额宝,花呗,信用卡),直接信用卡消费三种方式都有,在微信和支付宝支付时,如果走的是信用卡,那么该条消费记录会在支付宝和银行卡账单里出现两次。目前自动导入的账单应用,都没法轻易把这两条记录合并成一条。
2. 分期账单
zhzy0077
2021-08-02 20:18:17 +08:00
@BlackCat02 重复账单我体验下来做的最好的是 GnuCash 会根据金额日期备注算一个相似度 然后提醒重复记录。
但是在我的实践里其实这个比较少见,因为导入账单应该是从事实上付款的账户里进行,在你这个场景下应该是:零钱通,余额宝,花呗,信用卡。而不是微信或者支付宝的交易记录。
2 分期其实是个 应付账款 的交易,按照复式记账的逻辑来看其实没有和别的交易不同的地方。
BlackCat02
2021-08-02 20:30:16 +08:00
@zhzy0077 我再尝试一下哈哈
BlackCat02
2021-08-02 20:31:39 +08:00
@zhzy0077 之前不知道余额宝,花呗的账单还可以分别导出的
ghostsf
2021-08-03 10:00:15 +08:00
从银行网站下载账单这一步能自动化吗
Spoter
2021-08-03 10:03:24 +08:00
记账,我的感受是控制末端不如控制终端,所有的消费、支出都走某张卡是最方便的了。
比如我现在所有的消费都是走招商银行,它的记账功能也还行,能用
shyrock
2021-08-03 10:57:09 +08:00
@IgniteWhite #13 看到这里赶紧下载了一个,但是发现要连接银行接口需要先订阅,尼玛我都不知道我用的国内银行能不能连接,订阅个蛋啊。
AccK8623
2021-08-03 19:28:11 +08:00
@zhzy0077
100 买入时:
+ 基金 100
- 存款 100

净值增加至 120:
+ 基金 20
+ 收益 20

卖出:
+ 存款 120
- 基金 120

会计里头不可能存在不平的账。
zhzy0077
2021-08-04 09:31:37 +08:00
@AccK8623 对这是我现在的做法 我想问他如果按照份额去算的话应该怎么做
daliu
2022-04-06 15:13:04 +08:00
把基金的价格做为单独的货币.基金里面只保留份数.

更新基金价格就行了
zhzy0077
2022-04-06 15:43:45 +08:00
@daliu 感谢 这里其实我感觉是 hledger 支持的不好 因为买 1 份 10 块钱, 卖一份 20 块, 如果是基金价格变化的话就没法算理财收益了
daliu
2022-04-06 21:07:22 +08:00
@zhzy0077 #36 beancount 是有一个获取历史价格的方法.或者自己写个脚本把每天的价格扒下来.这样就能算出收益率了.
zhzy0077
2022-04-07 15:43:45 +08:00
@daliu 我最早也是用 beancount 的 但是不支持中文把我劝退了
daliu
2022-04-08 13:03:06 +08:00
@zhzy0077 #38 我现在用 beancount.看了下转 hledger 好像还行.

但是对多文件的支持好像不太行.想按月来分隔文件.官方文档说有两个特性会失败.这块多文件好像是比 beancount 差点.但是 emacs 的支持要相对好些.
zhzy0077
2022-04-08 15:18:10 +08:00
@daliu 不知道指的是哪两个特性 我现在是按年分的 然后比如 2022.journal 开头就是 include 2021.journal 用起来没遇到什么问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX