Ledger CLIで家計簿をつけたい！実践2 経費精算、還付金、建て替え

前編↓

https://qiita.com/kikeg/items/0cfc9411452a415fe2f4

前回交通費精算は収入として扱わないほうがいいかもしれないという話をしました。今回はそのへんを掘り下げます。

# なぜ人の財布で払う項目を費用にしたくないか

タイトルの通り交通費精算や還付金がある場合、費用として付けたくないということが起こります。なぜか。仮に定期券を買って次の給料日のときにその交通費が全額戻ってくるとします。

```ledger
2022/12/01 定期券
    Assets:Banks:Okane
    Expenses:Travel              10,000 JPY

; ...

2022/12/25 給与(交通費)
    ; 他の項目は割愛
    Assets:Banks:Okane           10,000 JPY
    ???
```

さて、このとき???には何が入るでしょうか?`Expenses:Travel`として2万円の費用が出たけど無かった事にするわけです。でもこれで合ってるんでしょうか?もっとエクストリームな例を考えましょう。6ヶ月定期を買って、その後6ヶ月かけて交通費として帰ってきたとしましょう。

```ledger
2022/12/01 定期券
    Assets:Banks:Okane
    Expenses:Travel              60,000 JPY

; ...

2022/12/25 給与(交通費)
    ; 他の項目は割愛
    Assets:Banks:Okane           10,000 JPY
    Expenses:Travel

2023/01/25 給与(交通費)
    ; 他の項目は割愛
    Assets:Banks:Okane           10,000 JPY
    Expenses:Travel

; ... 5月まで同様
```

こうなってくると月ごとの費用を計算した時、12月だけ5万円交通費がかかって、1月から5月まではマイナスの交通費がかかったことになります。そうなってくるとあまり月ごとの比較が意味をなさなくなってしまいます[^periodical]。それにマイナスの交通費というのがそもそもあまり良くありません。支出というのはお金の流れ出す場所ではないはずです。

![貸借対照表.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2278753/5a9338c0-9cf7-af04-6357-3ea37add40b3.png)

ここで以前見た図を思い出してみましょう。収入はお金が出てくる場所、支出はお金が入ってくる場所なので、この経費精算にはどちらにせよそぐわない項目です。となると使うべき項目は資産か負債ということになります[^netasset]。そしてこの2つの使い分けは、**残高がプラスのものを資産、マイナスのものを負債**と呼ぶわけです。この場合これを資産として書き直してみましょう。

```ledger
2022/12/01 定期券
    Assets:Banks:Okane
    Assets:Receivable:Work       60,000 JPY

; ...

2022/12/25 給与(交通費)
    ; 他の項目は割愛
    Assets:Banks:Okane           10,000 JPY
    Assets:Receivable:Work

2023/01/25 給与(交通費)
    ; 他の項目は割愛
    Assets:Banks:Okane           10,000 JPY
    Assets:Receivable:Work

; ... 5月まで同様
```

こうすると定期券を買うというイベントが**現金と6万円貰う権利`Assets:Receivable:Work`を引き換える**ことに相当し、後の交通費の振り込みは**6万円貰う権利を実際の銀行預金と1万円ずつ引き換えていく**ことに相当します。こういうタイプの資産は売掛金ないし未収金と呼ばれ、英語ではreceivableと呼ばれています。受け取れるよ、って感じですね。

# 逆もしかり、人のお金は収入ではない

見出しで完全に結論言ってますが、逆も似たようなことが言えます。飲み会の立て替え払いする時とか使い込んで困ったことある人いませんか?これはもらったお金と負債を対応させておくと良いです。現金で預かって数日後現金で払う場合を考えましょう。

```ledger:cash/2022.ledger
2022/12/01 飲み会事前徴収
    Assets:Cash                       15,000 JPY
    ; 一人5千円で4人, 自分除く
    Liabilities:Payable:Advance      -15,000 JPY

2022/12/05 飲み会
    Expenses:Drink                     5,000 JPY
    Liabilities:Payable:Advance       15,000 JPY
    Assets:Cash                      -20,000 JPY
```

payableというのは「払っていいよ」みたいに聞こえますが「払わないとだめ」なお金、買掛金や未払金と呼ばれている科目になります。これで12/3の0時での残高を見ると

```shell-session
$ ledger -f cash/2022.ledger bal --end="2022/12/3" ^Assets ^Liabilities ^Equity
          15,000 JPY  Assets:Cash
         -15,000 JPY  Liabilities:Payable:Advance
--------------------
                   0
```

といい感じに何も余裕がないことが分かります。ところで今の想定に変なところがあると思いませんか？そうです、本当に困るのは**クレカ払い**したときです。でもこれもLedger CLIだと自然に表現できます。

```ledger
2022/12/01 飲み会
    ; 一人5千円で4人
    Expenses:Drink                     5,000 JPY
    Assets:Cash                       15,000 JPY
    Liabilities:Card:Yellow          -20,000 JPY
```

5000円が自分の費用、15000円預かってるけど負債は2万円できっちり表現できてます。もちろん、実際に使わないようにするには缶にでも入れて支払日までおいておくのが一番ですが…

明日は外貨取引についてです。

[^periodical]: 毎年1回だったり四半期ごとだったりする出費もありますが、神経質に月ごと予算を出したいならこの記事の方法でならすことはできます。僕は面倒なのでやりませんが...
[^netasset]: 純資産は?と考える人もいると思いますが、多分純資産にお金を移動できるのは会計の外にいる人（会社に出資する人、株主、家計簿なら家計簿をつけ始める前の自分）であって、中の人はタッチできない領域だと思って間違いないです