Ledger - CLIで複式簿記 - codelab basic

では早速codelab的なのをしてみましょう。僕のユースケースを想定してみます。

  • 支払いはほぼデビットカードかクレカ。たまに現金も。
  • 支払い通貨は3種類ほどある
  • 給与生活者
  • 費用(いわゆる支出)はざっくり分かれればいい(食費とか光熱費とか)
    • でも、できたらどのスーパーで買ったとかもわかると嬉しい
    • でも、カテゴリーだけでなく「イベント」(旅行とか)でも見れると嬉しい。
  • 手動で銀行からデータを入れたくないので、できたら銀行のダウンロードしたファイルを読み込みたい。

結構、要求が大きくなりましたね。一気に全部というのは難しいので、まずは簡単な例を考えてみたいと思います。

  1. 6/25 10万円給与をもらってみずほ銀行
  2. 6/28 クレカで2万円の掃除機をヨドバシで買う
  3. 6/28 先月のクレカの支払い3万円
  4. 6/30 スーパー(マルエツ)で5千円デビットカードで買う

どうやらLedgerはテキストファイルを付ける機能はないっぽいので自分で書いていきます。

 % cat codelab.ledger
2021/06/25 お給料
    Assets:Mizuho                            100,000 JPY
    Income:base salary

2021/06/28 ヨドバシ
    Expenses:家具                             20,000 JPY
    Liabilities:クレカ

2021/06/28 カード支払い
    Liabilities:クレカ                        30,000 JPY
    Assets:Mizuho

2021/06/30 マルエツ
    Expenses:食費                              5,000 JPY
    Assets:Mizuho

いわゆる借方が上、貸方が下に来ます。ではレポートを早速見ていきましょう。

 % ledger -f codelab.ledger balance
          65,000 JPY  Assets:Mizuho
          25,000 JPY  Expenses
          20,000 JPY    家具
           5,000 JPY    食費
        -100,000 JPY  Income:base salary
          10,000 JPY  Liabilities:クレカ
--------------------
                   0

最初の残高を入れてないのでハチャメチャではありますが、合ってはいそうです。資産の残高だけを見てみましょう。

 % ledger -f codelab.ledger balance Assets
          65,000 JPY  Assets:Mizuho

やはり合ってそうです。次は現金出納帳です。現金以外にも使えます。

 % ledger -f codelab.ledger register
21-Jun-25 お給料                                           Assets:Mizuho                                                             100,000 JPY                   100,000 JPY
                                                           Income:base salary                                                       -100,000 JPY                             0
21-Jun-28 ヨドバシ                                         Expenses:家具                                                              20,000 JPY                    20,000 JPY
                                                           Liabilities:クレカ                                                        -20,000 JPY                             0
21-Jun-28 カード支払い                                     Liabilities:クレカ                                                         30,000 JPY                    30,000 JPY
                                                           Assets:Mizuho                                                             -30,000 JPY                             0
21-Jun-30 マルエツ                                         Expenses:食費                                                               5,000 JPY                     5,000 JPY
                                                           Assets:Mizuho                                                              -5,000 JPY                             0

 % ledger -f codelab.ledger register Assets
21-Jun-25 お給料                                           Assets:Mizuho                                                             100,000 JPY                   100,000 JPY
21-Jun-28 カード支払い                                     Assets:Mizuho                                                             -30,000 JPY                    70,000 JPY
21-Jun-30 マルエツ                                         Assets:Mizuho                                                              -5,000 JPY                    65,000 JPY

こんな感じで基本的な帳簿はつけられそうです。