LoginSignup
6
2

More than 3 years have passed since last update.

テキストで複式簿記するツール ledger のメモ

Last updated at Posted at 2019-10-31

背景

  • VIM で家計簿つけたり, 帳簿や会計したい
  • コマンドラインで帳簿や会計したい
  • Python などでスクリプト処理したい
  • テキストで複式簿記を極め, キャッシュフロー計算を自動化し, 毎月の銀行引き落としや支出で残高不足 or 赤字に怯えることなく, ささやかにかつやすらかに日々を生き延びることができるようになりたい :dollar:

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

現状 ledgerble(Electron app) or fava が良さげです.

ledgerble のサンプルはこんなかんじ.

Screen Shot 2020-05-23 at 3.01.08.png

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 に転生する
6
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2