動機
同人関係を記帳したいな~というモチベーション。
Ledger
Plain Text Accountingという類の、簿記をプレーンテキストによって行うソフトがあり、有名なのがLedgerやBeancountなどであるらしい。LedgerはC++(互換のHLedgerはHaskell)、BeancountはPythonで書かれている。
違いはよくわからんのだが、このページによるとBeancountは「悲観的」であり、ユーザーは入力ミスを犯すもので、通常の複式簿記の仕組みが提供する以上に入力のチェックを行っているとのことだ。
今回はLedgerを使うことにする。
ちなみにLedgerは一般名詞なので検索性が異様に悪く、Ledger CLIとかで検索しないとまともに情報にありつけない。あるいは公式サイトからたどるとか。
なぜLedger?
勘定科目の名前に日本語を使いたかったのだが、Beancountの安定版であるv2はASCIIの範囲内の文字しか科目名に使えないという制限があった。v3では改善されているとのことだったが、うまくコンパイルが通らない(特にWindowsでは無理そう)。
LedgerやHLedgerは勘定科目名として非ASCIIも扱うことができる。しかし、Windows用として配布されているバイナリは、Ledgerは入力ファイルはShift_JIS (というかたぶんcp932)しか対応してないようで、HLedgerについてはエラーが出て使えないという感じだった。できればUTF-8が使いたいのだが。
UbuntuなどのLinuxならどっちも普通にUTF-8ファイル読めるっぽい。
CygwinでLedgerのインストール
Cygwinに次のパッケージをインストールする
ソースコード持ってきてコンパイルする。今回はv3.2.1を使う。
wget https://github.com/ledger/ledger/archive/refs/tags/v3.2.1.tar.gz tar xvf v3.2.1.tar.gz cd ledger-3.2.1 ./acprep update make install
できた。
./acprep update
には-j4
などでプロセス数を多く指定してやるとコンパイルが早くなる。
これでUTF-8テキストが扱えるようになった。
実行
例えば、2022年の収支をまとめたファイル2022.journal
が次の内容だとする。
2022-01-31 * 1月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金 450円
この残高を見るには
ledger -f 2022.journal balance
とする。
出力は
-500円 収益:売上:Fanbox 50円 支出:支払手数料 450円 資産:売掛金 -------------------- 0
となる。
書き方
コメントは;
の他、行頭に来る場合#
, |
, *
, %
も使える。
たとえば次のような仕訳は…
2022/1/31 1月分Fanbox売上 | |
---|---|
(売掛金) 450 | (Fanbox売上) 500 |
(支払手数料) 50 |
Ledgerでは次のような書き方ができる。
2022-01-31 * 1月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金 450円
- 日付は
2022/01/31
みたいな書き方もでき、割と柔軟である。日付の横はスペースで区切って摘要を書く。摘要の前に*
を入れると決済が済んだ取引として扱われ、集計ができるらしいが、使う気が無いので今回は付けなくてもいい気がする。 - その下に勘定科目と、スペースで区切って金額を書く。
- 勘定科目
Assets:Cash
のように:
で区切って2つ以上をつなげたものとなる。英数字以外も使える。- 最初の部分が勘定科目の種類であり、一貫してれば何でも良くて、今回は資産・負債・純資産・収益・支出の5種類を使うことにする。
資産:A銀行:普通預金
みたいに3つ以上を:
でつなげることもできる。細かく集計したいときとかに便利。
- 金額
- 借方(debit)がプラス(符号なし)
- 貸方(credit)がマイナス
JPY
でも円
でもいいけど金額の前か後に一貫した文字列を置いておくとそれを単位として集計するっぽい。- 複式簿記の性質から、貸方と借方でそれぞれの合計は一致するため、金額の一つは省略できる。
2022-01-31 * 1月分Fanbox売上 収益:売上:Fanbox ;金額を書かないと自動計算される 支出:支払手数料 50円 資産:売掛金 450円
金額は、実は単位は何でもいい
- 通貨以外でも可能
@
や{}
を使って単価を示すことが可能→通貨に換算される
2022-08-13 コミケでの販売 資産:商品 -10 同人誌A @ 320円 資産:商品 -15 同人誌B {800円} 支出:売上原価 15200円 収益:売上:コミケ -20,000円 ;同人誌A 10冊×500円, 同人誌B 15冊×1000円 資産:現金 20,000円
事業としてやってるわけでもないので、事業専用の財布や銀行口座をもっているわけではない。
そこで、現金を得たり銀行口座に振り込まれた金額は事業主貸として、現金を支払ったり銀行から引き落とされた額は事業主借として振り替える。これにより、事業主貸・事業主借を見るとキャッシュフローが見える*1。
2022-08-11 スーパーにて消毒用エタノール購入 資産:現金 436円 純資産:事業主借 -436円 支出:消耗品費 436円 資産:現金 -436円
実例
; Declare top level accounts, setting their types and display order; ; Replace these account names with yours; it helps commands like bs and is detect them. account 資産:銀行:普通預金 account 資産:現金 account 資産:売掛金 account 資産:商品 account 資産:貯蔵品 account 負債:買掛金 account 純資産:資本金 account 純資産:事業主貸 account 純資産:事業主借 account 収益:売上 account 支出:支払手数料 account 支出:荷造運賃 account 支出:通信費 account 支出:消耗品費 account 支出:販売促進費 account 支出:売上原価 declare commodities: commodity 円 2022-01-01 繰越 資産:商品 51 ギリシャ文字・ロシアの文字合冊 @ 96.4円 純資産:資本金 ;自動計算 2022-01-31 1月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-02-28 2月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-03-31 3月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-04-26 Booth Tシャツ無在庫販売 収益:売上:Booth -3,100円 支出:支払手数料 584円 支出:売上原価 2,350円 資産:売掛金:Booth 166円 2022-04-30 4月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-05-31 5月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-06-30 6月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-07-01 7月初頭分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-07-22 Fanbox売上の振り込み 資産:売掛金:Fanbox -3,150円 支出:支払手数料 200円 資産:銀行:普通預金 2,950円 2022-08-11 スーパーにて消毒用エタノール購入 資産:現金 436円 純資産:事業主借 -436円 支出:消耗品費 436円 資産:現金 -436円 2022-08-11 ホームセンターにてコミケ用資材購入 資産:現金 849円 純資産:事業主借 -849円 支出:消耗品費 849円 資産:現金 -849円 2022-08-13 コンビニにておしながき印刷 資産:現金 60円 純資産:事業主借 -60円 支出:販売促進費 60円 資産:現金 -60円 2022-08-13 『モンゴル文字とUnicode』納入される 資産:商品 110 モンゴル文字 @ 215.9円 負債:買掛金 -23,750円 支出:売上原価 ;端数調整 2022-08-13 コミケでの販売 資産:商品 -36 モンゴル文字 @ 215.9円 資産:商品 -27 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 収益:売上:コミケ -31,500円 資産:現金 31,500円 2022-08-13 コミケ見本誌提出 資産:商品 -1 モンゴル文字 @ 215.9円 支出:支払手数料 ;自動計算 2022-08-13 コミケ新刊をサークルメンバーに配布 資産:商品 -2 モンゴル文字 @ 215.9円 支出:売上原価 ;自動計算 収益:売上:配布 -1,000円 純資産:事業主貸 1,000円 2022-08-13 コミケ販売後の在庫をゆうパックで自宅へ発送 純資産:事業主借 -1,100円 資産:現金 1,100円 資産:現金 -1,100円 支出:通信費 1,100円 2022-08-13 コミケ売上の現金の回収 資産:現金 -31,500円 純資産:事業主貸 31,500円 2022-08-11 100円ショップにて梱包資材購入 資産:現金 550円 純資産:事業主借 -550円 支出:荷造運賃 550円 資産:現金 -550円 2022-08-18 Booth通販売上 収益:売上:Booth -1,370円 支出:荷造運賃 370円 支出:支払手数料 99円 資産:売掛金:Booth 901円 資産:商品 -1 モンゴル文字 @ 215.9円 資産:商品 -1 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 2022-08-19 Booth通販売上 収益:売上:Booth -2,240円 支出:荷造運賃 740円 支出:支払手数料 170円 資産:売掛金:Booth 1,330円 資産:商品 -2 モンゴル文字 @ 215.9円 支出:売上原価 ;自動計算 2022-08-20 Booth通販売上 収益:売上:Booth -3,610円 支出:荷造運賃 1,110円 支出:支払手数料 269円 資産:売掛金:Booth 2,231円 資産:商品 -3 モンゴル文字 @ 215.9円 資産:商品 -2 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 2022-08-24 Booth通販売上 収益:売上:Booth -4,780円 支出:荷造運賃 1,480円 支出:支払手数料 357円 資産:売掛金:Booth 2,943円 資産:商品 -4 モンゴル文字 @ 215.9円 資産:商品 -2 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 2022-08-25 Booth通販売上 収益:売上:Booth -870円 支出:荷造運賃 370円 支出:支払手数料 71円 資産:売掛金:Booth 429円 資産:商品 -1 モンゴル文字 @ 215.9円 支出:売上原価 ;自動計算 2022-08-31 Booth通販売上 収益:売上:Booth -870円 支出:荷造運賃 370円 支出:支払手数料 71円 資産:売掛金:Booth 429円 資産:商品 -1 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 2022-08-31 8月分Fanbox売上 収益:売上:Fanbox -500円 支出:支払手数料 50円 資産:売掛金:Fanbox 450円 2022-09-06 Booth通販売上 収益:売上:Booth -2,740円 支出:荷造運賃 740円 支出:支払手数料 198円 資産:売掛金:Booth 1,802円 資産:商品 -2 モンゴル文字 @ 215.9円 資産:商品 -2 ギリシャ文字・ロシアの文字合冊 @ 96.4円 支出:売上原価 ;自動計算 2022-09-13 Booth通販売上 収益:売上:Booth -1,370円 支出:荷造運賃 370円 支出:支払手数料 99円 資産:売掛金:Booth 901円 資産:商品 -1 モンゴル文字 @ 215.9円 支出:売上原価 ;自動計算 2022-09-21 8月分までのBooth売上の振込 資産:銀行:普通預金 8,229円 支出:支払手数料 200円 資産:売掛金:Booth -8,429円 2022-09-27 印刷代クレジットカード引き落とし 負債:買掛金 23,750円 純資産:事業主借 -23,750円 2022-09-30 9月分Fanbox売上 収益:売上:Fanbox -500円 支出:販売手数料 50円 資産:売掛金:Fanbox 450円 2022-10-31 10月分Fanbox売上 収益:売上:Fanbox -500円 支出:販売手数料 50円 資産:売掛金:Fanbox 450円 2022-11-30 11月分Fanbox売上 収益:売上:Fanbox -500円 支出:販売手数料 50円 資産:売掛金:Fanbox 450円 2022-12-31 12月分Fanbox売上 収益:売上:Fanbox -1,000円 支出:販売手数料 100円 資産:売掛金:Fanbox 900円 2022-12-31 銀行口座のお金を回収 資産:銀行:普通預金 -11,179円 純資産:事業主貸 11,179円 2022-12-31 決算 支出:荷造運賃 -225円 資産:貯蔵品 225円
-X 円
って指定すると円
換算で計算してくれる
ledger -f 2022.journal balance -X 円
-59,950円 収益:売上 -20,950円 Booth -6,500円 Fanbox -31,500円 コミケ -1,000円 配布 28,456円 支出 16,952円 売上原価 2,934円 支払手数料 1,285円 消耗品費 5,875円 荷造運賃 60円 販売促進費 250円 販売手数料 1,100円 通信費 12,018円 純資産 -26,745円 事業主借 43,679円 事業主貸 -4,916円 資本金 19,477円 資産 13,849円 商品 5,403円 売掛金 2,703円 Booth 2,700円 Fanbox 225円 貯蔵品 -------------------- 0
所得だいたい3万円か。よかったですね。交通費考慮すると更に1万円近く減るんだけど。
参考
日本語でいろいろまとめてくれている人がいて助かる
Documentationsへのリンク