背景
- VIM で家計簿つけたり, 帳簿や会計したい
- コマンドラインで帳簿や会計したい
- Python などでスクリプト処理したい
- テキストで複式簿記を極め, キャッシュフロー計算を自動化し, 毎月の銀行引き落としや支出で残高不足 or 赤字に怯えることなく, ささやかにかつやすらかに日々を生き延びることができるようになりたい
Plain text accounting
テキストで会計のまとめサイト
いろいろまとまっています. ありがとうございます.
Ledger
この手のツールの始まり? C++ 実装でよい
vim plugin あります.
入門, cheat sheet
入力例
UTF-8 文字使えます. 数字のあとにスペースあけて記述する場合, 通貨は適当なシンボルを使えます.
2015/10/12 Exxon
Expenses:Auto:Gas 10.00 JPY
Liabilities:MasterCard -10.00 JPY
借方(debt), 貸方(credit) は一致するはずなので, 貸方の値は省略できます.
2015/10/12 Exxon
Expenses:Auto:Gas 10.00 JPY
Liabilities:MasterCard
Expenses
, Liabilires
などは, あとで grep したり ledgerable などで可視化したりなどで使うので, 統一したものを使うのがよいでしょう.
大項目(?)
会計や複式簿記の入門書あたりを参考ください.
B/S(Balance sheet), P/L(Profit and loss)など財務諸表を作るのに, 仕分けは以下の 5 個に分類されます.
- Expenses(支出)
- Liabilities(負債)
- Assets(資産)
- Equity(資本)
- Income(収入)
お賃金を銀行振込でいただいた
お賃金を銀行口座に預け入れたということで, 銀行口座が増え, Income は減ったで記載します.
9/29 My Employer
Assets:Saving $500.00
Income:Salary $-500.00
日本だと普通預金(Saving)がよく使われるでしょう. 米国だと Checking(当座預金)のようですね.
クレカ引き落とし
銀行口座からクレジットカードの引き落としが合った場合.
借方にクレカの Liabilities, 貸方に銀行口座を指定します.
2019/12/11 Paying off card
Liabilites:CreditCard:Apple $4900
Assets:Saving
その他いろいろ記述の機能があるので, 詳細は document 参照ください.
single page で grep しやすいですね.
サンプル
毎月の支払い(periodic transaction, budget)を指定する
チルダを指定します.
~monthly
Expenses:毎月 10000 JPY
Assets
期間を指定もできます.
~monthly from 2019/10/01 to 2022/03/30
Expenses:Lens:Otus100 10000 JPY
銀行口座
毎月の支払いだと, そのままでは report に出てこないようです.
期間指定だと,
$ ledger -f input.ledger --monthly --budget register ^expenses
でいくらか表示されます(が, 完全ではない模様).
役立つ機能
資金が尽きるのはいつかを調べる
Periodic Transaction(毎月の出費など)と組み合わせることできます
変数を使う
あとで数字を変えたりとかしたいときあります.
define
でいけます.
define var_name=$100
2011/12/01 Test
Expenses (var_name*4)
Assets
為替レートなどは, 別途 ledger 用に特化した記述方式があります(要調査)
hledger
Haskell 実装
https://hledger.org/
beancount
python 実装
http://furius.ca/beancount/
データのプロット
gnuplot と組みあわせる例
Report Scripts for Ledger CLI with Gnuplot
https://www.sundialdreams.com/report-scripts-for-ledger-cli-with-gnuplot/
最近の gnuplot はオシャンティにプロットできていいですね
ledget2html
HTML table で出力してくれます.
VIM plugin
私の場合は Vundle 使っていましたので, ~/.vimrc
に以下のように記述しました.
" ledger
Plugin 'ledger/vim-ledger'
オシャンティそうな UI
- Prudent https://prudent.me/
- fava(beancount) https://github.com/beancount/fava
- ledgerble https://github.com/sbridges/ledgerble
- mac prebuilt があってよい
- ledger-analytics(2018 から更新なし) https://github.com/kendricktan/ledger-analytics
現状 ledgerble(Electron app) or fava が良さげです.
ledgerble のサンプルはこんなかんじ.
fava はこちらにオンラインサンプルがあります.
mobile(Android) app
参考文献
Linux/MacでCUIで複式簿記を扱える『Ledger』コマンド
https://orebibou.com/2016/07/linuxmac%E3%81%A7cui%E3%81%A7%E8%A4%87%E5%BC%8F%E7%B0%BF%E8%A8%98%E3%82%92%E6%89%B1%E3%81%88%E3%82%8B%E3%80%8Eledger%E3%80%8F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/
TODO
- Jupyter lab + beancount + matplotlib あたりで会計データのデータ解析とプロットを極める
- テキスト複式簿記を極め, テキスト複式簿記 vtuber に転生する