イントロ1
NPO法人会計で所管庁2に提出が求められいる会計書類は 財務諸表 とその 注記 です3。それらは数値とその表、若干の補足文言です。
しかし日々、月々さらには年ごとの 費用、収益 や 資産、負債 などの動きを、グラフやチャートなどで 可視化 できたら、より効率的でかつ合目的的にNPO法人の運営を進めることができると思われます。
ここでは
経常費用を月ごとに集計して折れ線グラフを描く
もっとも初歩的で簡単な例を紹介します
Ledger-cli と他のソフトウエアを組み合わせてグラフやチャートを描く方法はたくさんあります4。
この記事では、それらの中で bashのシェルスクリプト内でLedger-cliと gnuplot を組み合わせて使う例を紹介しています。gnuplotはヒアドキュメントとしてシェルスクリプト内に組み込んでいます。
この記事中のサンプルを見ながら各自の用途にマッチするように改変すれば、すぐにきれいな図が描けると思います。
出力サンプル
- 図の元になったLedgerのサンプルデータ(
sample-NPO.ledger
)はこちらからダウンロードできます。 - Ledger起動時のinit-fileのサンプル(
init-npo.dat
)は こちら からダウンロードできます。 - Ledger-cliをインストールして、適当なディレクトリ内に上のサンプルデータとinit-fileを置き、下のソースコード1を起動すれば図1が表示されます。
- 図1では細かい修飾は抜きにして最小限の情報のみ描出しています。
Codeサンプル
#!/bin/bash
#
# 月ごとの経常経費を折れ線グラフにする
# $0=expns-linecurve.sh
#
ledger reg 経常費用\
- f sample-NPO.ledger\
--init-file ./init-npo.dat\
--monthly\
--amount-data\
--collapse\
> data-to-plot.dat
# csv化
sed 's/ \+/,/g' data-to-plot.dat > csv.dat
csv_file="csv.dat"
out_file="monthly-expnese-rolling.pdf"
gnuplot <<EOF
set terminal pdfcairo transparent enhanced font 'Arial, 12'
set style data linespoints
set datafile separator ","
# Y軸設定
set ylabel 'Amount(千円)' font 'Arial,12'
set ytics font 'Arial,10'
# 数値に3桁ごとにカンマ(最大8桁)
set decimal locale
set format y "%'4.0f"
set yrange[0:]
# 時間軸設定
set timefmt "%Y-%m-%d"
set xdata time
set format x "%01m" time
# X軸設定
set xtics font 'Arial,10'
set xlabel "月" font 'Arial,12'
# 出力ファイル指定
set output '$out_file'
# 描出
plot '$csv_file' \
using 1:(column(2)/1000) w linespoints pt 7 ps 0.5 lw 2 notitle,\
'' using 1:(column(2)/1000):(sprintf("%'d", column(2))) with labels\
font "Arial,8" offset 0,0.7 textcolor linestyle 0 notitle
set output
EOF
evince ${out_file}
exit 0
補足説明
- 金額を表示する時に3桁ごとにカンマを入れる
- Y軸の横幅を小さくしてグラフ面をできるだけ広く取るために、ラベルを千円単位にする
- X軸の「月」表示ではリーディングゼロを書かないようにする
- 折れ線グラフのポイントごとに金額を記入する
など、普段gnuplotでは余りやらないことだけ追加しておきました。
Appendix:
過去のブログで直接・間接的にLedgerの「可視化」に関連したものは次のとおりです:
- 2021-10-17: 投資信託の評価損益を「見える化」する
- 2020-04-22: Give me a break!
- 2020-02-21: 予算消化率の水平ゲージをledger-cliとgnuplotで描く
- 2020-01-31: ぼちぼちですが可視化してます
- 2019-07-27: プレーンテキストファイルで「複式」家計簿(6)
Footnotes:
-
この記事は Ledger-cliによるNPO法人会計シリーズの第3弾です。記事リストは次のとおりです(2024/02/15現在)
2024/01/21 NPO法人会計に準拠した財務諸表をLedger-cliで書く
2024/01/25 小規模学会のためのLedgerポスティング例 — NPO法人会計基準に準拠しながら
2024/01/29 Ledger-cliでNPO法人会計の可視化 — かんたん折れ線グラフ
2024/02/02 Ledger-cliによるNPO法人会計注記 – 役員及びその近親者との取引
2024/02/15 Ledger-cliによるNPO法人会計注記 – 使途制約のある寄付等
2024/02/22 Ledger-cliでNPO法人会計 – 勘定科目にエリアスを使う ↩︎ -
NPO会計で求められている 注記 も大半はLedgerクエリ出力でカバーできます。後日紹介しますが、ポイントは「役員及びその近親者との取引」を転記する時に、忘れずにそのトランザクションに、それと分かるタグ(例えば :近親者取引: など)を付けておくことです。そうすれば簡単にそのタグの付いた取引だけを抽出して集計できます。同様に「使途が制約された寄付等」についてもタグづけしておきましょう。 ↩︎
-
例えば
(1) Report Scripts for Ledger CLI with Gnuplot
(2) Easy to use analytics/visualization tool for ledger-cli
(3) Simple Ledger visualisations using Python など
中でもとくに(1)は私自身も参考にさせていただきました。ありがとうございます。 ↩︎