Taxnote meets hledger.

iPhoneアプリのTaxnoteを使って、家計簿をつけている。

複式簿記でつけるにあたって、勘定科目をどのように設定するか(勘定科目のバリエーションと、どのようにhledgerに連携するか)悩んだので、どのようにしたかをメモしておく。

hledgerでの勘定科目

hledger は勘定科目の分類として次の5つを定義している(これは、簿記においても一般的に用いられる区分であるようだ)。用語の思想とhledgerの考え方を理解するうえでは、hledgerのホームページ他、本家 ledger, a powerful command-line accounting system のドキュメント(pdf)も参照されたい。

  1. Expenses - where money goes,
  2. Assets - where money sits,
  3. Income(Revenue) - where money comes from,
  4. Liabilities - money you owe,
  5. 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には、標準でいろいろ勘定科目が設定されているが、下図のように自分でいれておく。

20160625021115

ここまでを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は、数字の間のカンマを置換して取り除いておくことが必要であった。