Taxnote meets hledger.
iPhoneアプリのTaxnoteを使って、家計簿をつけている。
複式簿記でつけるにあたって、勘定科目をどのように設定するか(勘定科目のバリエーションと、どのようにhledgerに連携するか)悩んだので、どのようにしたかをメモしておく。
hledgerでの勘定科目
hledger は勘定科目の分類として次の5つを定義している(これは、簿記においても一般的に用いられる区分であるようだ)。用語の思想とhledgerの考え方を理解するうえでは、hledgerのホームページ他、本家 ledger, a powerful command-line accounting system のドキュメント(pdf)も参照されたい。
- Expenses - where money goes,
- Assets - where money sits,
- Income(Revenue) - where money comes from,
- Liabilities - money you owe,
- Equity - the real value of your property.
hledgerでは、この5つの勘定に紐付く勘定科目は、 ":" で区切って表される。よって、例えば食費は次のように書ける。
Expenses:Food
家計簿をつけるにあたっては、費目をどのように設定するかが、差がでてくるところだと思う。費目の設定によって、どのような分類項目において支出があるかを把握することができるためだ。あまり細かすぎると手間がかかるので、とりあえず、家計簿の費目は13以上にしない|お金が貯まる人に必ずある項目とは?を参考に設定した(しかし、ここで一推しである、貯金は今後外そうとしているが・・・)。現時点では、以下のように整理している。
airbk% hledger -f taxnote.csv accounts --tree using conversion rules file /Users/krr/Dropbox/Documents/bookkeeping/taxnote.csv.rules Assets Cash CashShortage Savings Account(MUFG) Equity Opening Balances Expenses Clothing Communications Educational Entertainment Food Housing Insurance/Tax Medical/Daily Necessities Other Salaries Savings Transportation Utilities Income Miscellaneous Income Salary Liabilities Scholarship
Assets:CashShortage(現金過不足)は、その月のズレを吸収させる仮想の勘定科目。Equity:Opening Balancesは、開始仕訳として用いている。まだ、決算を行っていないので、足りていない勘定科目はある。
Taxnoteでの設定方法
hledgerに食わせるためには、先のようなコロンで連結した科目として記録する必要がある。Taxnoteには、標準でいろいろ勘定科目が設定されているが、下図のように自分でいれておく。
ここまでをTaxnoteにいれておくと、hledgerに連携する準備が整うので、あとはTaxnoteで出力したCSVファイルをhledgerに食わせるために設定ファイルを書けばよい。hledgerに読み込ませるためには、hledger: how-to-read-csv-filesにあるとおり、読み込む項目を定義した設定ファイルを用意する必要がある。設定ファイルの命名規則は "CSVファイル名.rules" である。Taxnoteをhledgerに読み込ませるためには、データ出力の際に「CSV(Excelなどの表計算ソフト)」形式で出力し、次のように設定ファイルを記述しておけばよい。(コマンドを実行するターミナルによっては、摘要に日本語を入力していると文字化けしてしまうので、出力する際の文字コードに注意すること)
airbk% cat taxnote.csv.rules # skip the header line skip 1 # date is in UK/Ireland format date-format %Y/%m/%d # name the csv fields, and assign some of them as entry fields fields date, account1, amount, account2,, description
2016.06.26 追記
Taxnoteから出力したCSVは、千円単位でカンマで区切られたCSVデータが出力される。一方、hledgerでは "digit groups (thousands, or any other grouping) can be separated by commas (in which case period is used for decimal point) or periods (in which case comma is used for decimal point)"(hledger: FILE FORMAT/amounts)とあるのでそのようなデータも取り込んでくれると思っていたのだが、実際に取り込んでみると、カンマで区切られないような百円単位の記帳があったときに、それを十万単位で扱ってしまっているようである(852円のところ、サマリーする際に852,000円として計算される)。
よって、取り込んだCSVは、数字の間のカンマを置換して取り除いておくことが必要であった。