爱意满满的作品展示区。
zhzy0077

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

  •  
  •   zhzy0077 · Jul 31, 2021 · 8927 views
    This topic created in 1921 days ago, the information mentioned may be changed or developed.

    我经常能在 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 里.

    41 replies  •  2022-04-18 14:52:31 +08:00
    mitong3269
    mitong3269
    Jul 31, 2021 via iPhone
    1
    感兴趣
    howencilx
    howencilx
    Jul 31, 2021
    2
    感兴趣,能导入各类账单确实很好,期待
    Rendex
    Rendex
    Jul 31, 2021
    3
    感兴趣
    peacelove
    peacelove
    Jul 31, 2021 via iPhone❤️1
    4
    ?这一到三楼是水军么?
    FurN1
    FurN1
    Jul 31, 2021 via iPhone
    5
    感兴趣

    如果能把这个流程和 Org-mode 结合会不会更强大
    isCyan
    isCyan
    Jul 31, 2021
    6
    @peacelove 应该不是……要知道人的本质是复读机
    yunyuyuan
    yunyuyuan
    Jul 31, 2021
    7
    我一直用一个本子,正面写日记,反面记账。因为怕自己不会写字了
    woctordho
    woctordho
    Jul 31, 2021 via Android
    8
    感兴趣
    callmemax
    callmemax
    Jul 31, 2021
    9
    很实用的工具,star 了
    zhzy0077
    zhzy0077
    OP
    Jul 31, 2021
    10
    @mitong3269
    @howencilx
    @Rendex
    @IgniteWhite
    @woctordho
    @callmemax
    在正文提到的 repo 里写了个姑且算是教程, 有空可以看下, 哪里写的不好请提 issue
    luchong
    luchong
    Jul 31, 2021
    11
    我也有这方面的需求,起初我是想通过爬虫爬取各平台的数据来实现,但现在这些银行,金融平台做的安全系数都很高,爬虫不好搞,即使实现了,给其他人使用,也是存在安全隐患的。后来又想通过下载账单 excel 进行解析实现,但需要人工去下载这些 excel 也是麻烦,然后想使用微软的 PAD 去自动化处理,像支付宝,浦发银行这样的大概可以实现,但像微信这种只能在手机下载的就不好搞了,头疼极了,现在部分记账软件都是通过截取账单图片进行 OCR 识别,始终不满足需求,我想要真正解放双手,真正实现自动化,每天晚上或者每周自动处理更新
    zhzy0077
    zhzy0077
    OP
    Jul 31, 2021
    12
    @luchong 爬银行我是从来没想过, 感觉甚至有违法的风险, 现在我是手动下载账单 csv, 剩下的都是自动化了.
    FurN1
    FurN1
    Jul 31, 2021 via iPhone
    13
    @luchong
    @zhzy0077
    MoneyWiz 能通过银行的 API 合法获取账单数据,他们这个服务有专门的名字记不起来了,可以了解一下
    zhzy0077
    zhzy0077
    OP
    Jul 31, 2021
    14
    @IgniteWhite GnuCash 也 有类似的, 但全都是国外的银行, 国外甚至有一些标准的交易数据协议. 但是对于国内的用户而言其实价值不大
    FurN1
    FurN1
    Aug 1, 2021
    15
    @zhzy0077 原来如此,学习了
    zyxyz123
    zyxyz123
    Aug 1, 2021
    16
    分类是怎么解决的 靠各个平台自己分析的类别么
    AX5N
    AX5N
    Aug 1, 2021❤️1
    17
    其实还是只有爬虫才是真·解决方案,只是没办法分发,如果银行以及支付平台愿意开放 api 就好了。
    huangmingyou
    huangmingyou
    Aug 1, 2021
    18
    beancount 坚持了半年,但是每天有基金定投,然后每天基金有盈亏。每周做一次平衡。实在太繁琐,然后放弃。
    zhzy0077
    zhzy0077
    OP
    Aug 1, 2021 via Android
    19
    @zyxyz123 看这个文件 https://github.com/zhzy0077/hledger-accounting/blob/main/rules/payee.rules 绝大多数是正则匹配分类的
    woctordho
    woctordho
    Aug 1, 2021
    20
    感谢楼主,大家想看更多也可以去这个网站 https://plaintextaccounting.org/
    ryh
    ryh
    Aug 1, 2021
    21
    @AX5N 国内银行只能对他们呵呵了,就 app 的 Face ID 登录都要用第三方服务商的,真的是 low 到爆,他们的开发能力真的有限
    SimonOne
    SimonOne
    Aug 2, 2021❤️1
    22
    @huangmingyou #18 基金记份额,不要记钱,写个脚本每天自动获取每份的 price 。
    zhzy0077
    zhzy0077
    OP
    Aug 2, 2021
    23
    @SimonOne 我之前也这么做 后来发现不好算盈利 因为买入卖出的份额是一样多的 最后还要在卖的时候去找买入价 做减法
    我现在就只记买了多少钱 在卖光之后多的都是收益
    SimonOne
    SimonOne
    Aug 2, 2021
    24
    @zhzy0077 #23 设置基金账户为先进先出,然后买的时候记份额和成本,卖的时候自动根据先进先出卖的。
    zhzy0077
    zhzy0077
    OP
    Aug 2, 2021
    25
    @SimonOne 这个确实也是我一直没搞懂的一个点 顺便请教下

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

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

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

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

    卖出:
    + 存款 120
    - 基金 120

    会计里头不可能存在不平的账。
    zhzy0077
    zhzy0077
    OP
    Aug 4, 2021
    34
    @AccK8623 对这是我现在的做法 我想问他如果按照份额去算的话应该怎么做
    daliu
    daliu
    Apr 6, 2022
    35
    把基金的价格做为单独的货币.基金里面只保留份数.

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

    但是对多文件的支持好像不太行.想按月来分隔文件.官方文档说有两个特性会失败.这块多文件好像是比 beancount 差点.但是 emacs 的支持要相对好些.
    zhzy0077
    zhzy0077
    OP
    Apr 8, 2022
    40
    @daliu 不知道指的是哪两个特性 我现在是按年分的 然后比如 2022.journal 开头就是 include 2021.journal 用起来没遇到什么问题
    SaltyMouse
    SaltyMouse
    Apr 18, 2022
    41
    感兴趣,自己摸索下,出了教程麻烦踢踢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5340 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 03:26 · PVG 11:26 · LAX 19:26 · JFK 22:26
    ♥ Do have faith in what you're doing.