Beancount — 純文字記帳工具 (1)
記帳這件事情一直是個人斷斷續續在做的事情,每次興起記帳的的念頭實際行動後都比起前次有些改善,但一直都沒做得很好,工具上也沒有找到真的很順手的工具。
最近一兩年開始使用的記帳工具 beancount 算是比較長時間使用的工具,而因為自己也把自動記帳用的程式寫得差不多了,想說是時候來介紹這套工具。
Beancount 介紹
Beancount 是一套純文字的記帳工具,也就是你的帳目會記錄在純文字檔當中,透過適當的工具可以讓視覺化的了解自己收入支出的狀況,比如說我自己都是用下圖所示的 fava 作為呈現工具。
beancount 跟市面上絕大多數的記帳軟體不一樣的地方是它是採用純文字的格式紀錄。比如說你要新增一筆房租消費可以這麼寫:
它提供指令介面與查詢語言可以查詢帳本裡面的各種資料。也就是說它可以很容易地透過自動化程式來記帳,凡舉銀行帳號的交易紀錄,通常提供 csv 或 Excel 檔案可供下載、信用卡帳單(PDF 會比較複雜些,但是部分銀行也是有提供 CSV 下載)甚至加密貨幣都可以透過分析交易紀錄來自動記帳。
功能方面 beancount 支援同時使用多種貨幣,也可以處理各種不同資產如股票的紀錄,所以絕大多數的資產都可以在 beancount 裡面記錄並且計算盈虧。
同時純文字的記帳方式代表我可以在版本控制裡面來追蹤我每次記帳的變更,便於管理紀錄,如果自動化的記帳程式更新了也可以前後對照那些交易有變。
總結來說 beancount 可以:
- 自動化記帳
- 可以處理各種不同資產包括不同貨幣以及股票
- 純文字紀錄,可以版本控制以及將資料加密後保存
這些種種特性讓 beancount 成為我目前記帳用的主要工具,目前的作法是每個月信用卡帳單下來後記帳,透過我自己寫的程式處理:
- 信用卡帳單 CSV
- 電子發票
- 銀行帳號的每月交易紀錄 CSV
- 加密貨幣的交易紀錄
自動化大概可以處理掉八成的帳務,剩下的會標示不明的收入或支出,所以我只要在文字檔裡面搜尋這些不明的支出寫上正確的帳目即可。
如果你也會寫程式或是習慣純文字以及終端機操作,你可以嘗試看看 beancount。
接下來幾篇文章我會介紹 beancount 如何使用,接著在講解我的記賬模式以及目前已經寫好的自動化程序。