Ledger — クルマの走行距離トラッキング

複式簿記 の会計ツールであるledger-cliは、経理・会計だけでなくて 時間管理 やクルマの 走行距離管理 にも使えます。

ここでは走行距離をトラッキングする方法を紹介します。

Ledger-cliで クルマの走行距離をトラッキングして
オイル交換の時期をミスらないようにする

トランザクション例

金額や走行距離は当てずっぽうです。

2020/08/10 * コバック
    ;; 走行距離管理 開始日
    ; オイル交換:
    (走行距離)                          54,293 km
    Expenses:Cars:整備修繕               5,800 JPY
    Liabilities:Visa

2021/01/15 * オートバックス
    ; オイル交換:
    (走行距離)                         = 58020 km
    Expenses:Cars:整備修繕               6,100 JPY
    Liabilities:Visa

2021/07/24 * イエローハット
    ; オイル交換:
    (走行距離)                        = 62,728 km
    Expenses:Cars:整備修繕               6,000 JPY
    Liabilities:Visa

2021/10/25 * ガソリンスタンド
    ; オイル交換:
    (走行距離)                        = 67312 km
    Expenses:Cars:整備修繕                 5,000 JPY
    Liabilities:Visa

補足説明

  • (走行距離) という 仮想アカウント 1 を用意して、オドメータの数字をそのまま書いていきます2

  • Ledgerで走行距離の管理を開始した 最初の日 のトランザクションでは次の点に注意してください

    • 走行距離の前に = (イコール)を 書かない
    • 距離に3桁ごとの , (カンマ)は忘れずに書いてください。Ledgerは 初出 のcommodity(通貨単位)がどのように書かれているかを見て、それ以降の書式を決めています
  • 2回目以降のトランザクションでは、上の例のようにカンマはあってもなくてもOKです。ただし、距離の数値の前にある = (イコール)と、 距離の単位 km必須 です

  • 各トランザクションの2行目にある ; オイル交換:タグ です。無くても良いですが後でクエリの時に使えるように書いてあります3

使い方

上のトランザクションが myledger.dat に保存されているときの balance 出力例:

$ ledger bal 走行 -f myledger.dat
           67,312 km  走行距離

km という距離単位が JPY, $, € などの通貨単位と同じように扱われています。

なおクエリのキーワドが「走行」になっていますが、「走」で始まるアカウントが「走行距離」だけなら「走」だけでもOKです。

次は register の出力例です。

$ ledger reg 走行 -f blog.ledger
2020/08/10 コバック            (走行距離)            54,293 km   54,293 km
2021/01/15 オートバックス       (走行距離)            3,727 km   58,020 km
2021/07/24 イエローハット       (走行距離)            4,708 km    62,728 km
2021/10/25 ガソリンスタンド      (走行距離)            4,584 km    67,312 km
  • 一番右の列はその日までの 総走行距離 total mileageです。
  • 右から2番めの列は前回の (走行距離) からの差で、オイル交換までの走行距離 mileage data になります。

オイル交換日以外にも (走行距離) レコードがある場合

たとえば 車検 の日にも (走行距離) を記録したいですよね。

2021/06/15 * スバルディーラ
    ; 車検:
    (走行距離)                         =60,210 km
    Expenses:Cars:整備修繕             105,000 JPY
    Liabilities:Visa

このトランザクションが含まれているLedgerファイルを上のようにクエリすると、 reg 出力内には 車検も混じってきます。

純粋にオイル交換だけを抽出したいときには
ledger reg 走行 and %オイル交換 -f myledger.dat とします。

この %オイル交換 は各トランザクションにつけた「オイル交換」というタグをキーワードにしてクエリするという指示になります。

まとめ

これまでオイル交換時期の管理は次のような メモ に頼っていました。

  • クルマのドアなどに貼り付けた交換時期のステッカー
  • PC、タブレットのスケジュール帳に記したメモ
  • Ledgerに記録したコメント( 資料を参照してください)

それなりに管理はできてはいましたが、このようにしてLedgerで走行距離をトラッキングするようになってからはストレス ゼロ。オイル交換のタイミングはワンライナーのコマンドで いつでもすぐに確認できます。

その他の応用

Ledgerによる走行距離トラッキングは、オイル交換の他にも応用ができそうです。たとえば、毎月末に次のような感じのトランザクションを書いておけば、月々の走行距離をデータにして色々な分析をおこなうことができます 4

2021/10/30 * フォレスター
    (走行距離)     = 68,000 km

次のクエリで、月ごとの走行距離データを表示できます。

$ ledger reg 走行 -f myblog.dat --monthly --collapse --amount-data
:
2021-06-01 2190
2021-07-01 2518
2021-08-01 0
2021-09-01 0
2021-10-01 5272
:

これを使えば、走行距離と他の会計・経理データとの関連を分析することが簡単にできます。

スモールビジネスで車両の運行データと経費をまとめて管理するには有効だと思いますが、個人の家計では使いみちは あまり無いかも知れませんね 😓

資料

次のように、Ledger内にコメントまたは単なるメモとして走行距離を書いておく方法があります。

2021/10/29 コバック
   ; オイル交換:
   ; 56,000 km
   Expenses:Cars:整備修繕             5,610 JPY
   Liabilities:Visa

コメントの中から「オイル交換」を検索して、ヒットしたトランザクションを表示すれば交換時の走行距離を見ることができます。

$ ledger p note オイル交換

これが最も簡単な走行距離管理です。

Footnotes:


  1. 仮想アカウント(virtual account)の説明は別にsomewhere else。 ↩︎

  2. わたし自身のLedgerファイルでは (Odometer) というアカウント名にしています。コマンドラインでクエリをキー入力する際に、日本語で「走行」と打つキーストローク数は10ストロークほどになります。Odometerなら led r odo で済みます。 ↩︎

  3. オイル交換を頻繁に行う人では、これをタグにするのではなくて、 Expenses:整備修繕:オイル交換 というふうにアカウント(account; 勘定科目)にした方が良いでしょう。 ↩︎

  4. このようなトランザクションの書き方は、Ledgerでは正統的ではないかも知れませんが、とりあえず動きます。 ↩︎