総額表示の義務化
消費税が導入されたのは1989年です。 32年後の今月(2021年4月)から商品・サービス類の「 総額表示 」が義務化されました。しかしかなり以前から実態としては小売レベルの値段札やレシートは「 内税 」表示が主流です。内税にすれば税負担を意識させずに庶民のお財布から税金を抜くことができますものね。
ところで家計レベルでは消費税額をきちんと計算・捕捉する必要はありません。内税のまま記帳して消費金額に埋め込んでしまうのが普通でしょう。
しかし 消費税以外 の税金は家計でも把握されていることが多いと思います。たとえば所得税や住民税、固定資産税、それから自動車関係の税金、酒税などは通年で合算するとかなりの金額になります。
じつは消費税もこれらの税金とくらべて遜色のない金額が取られています。日々少しずつだからピンとこないだけです。家計でも、できれば簡単かつ正確に消費税として徴収されている金額を把握したいものです。
家計簿アプリや簡易経理システムでは、消費税を取り出してその金額を算出・表示する機能が組み込まれているものがいろいろあるようです。また電卓風な製品にも工夫をこらしたものがあります。
Ledgerをつかえば、それらの製品やアプリにくらべてはるかに簡単に消費税をトラッキングできます。
自動転記+仮想アカウント
ここでは消費税を(固定費と同じように) 自動転記 (automated transaction)+ 仮想アカウント (virtual account)で算出する方法を説明します。
やることはLedgerファイルの冒頭部に次の 4行 を書き足すだけです。
= /^Expenses:Food/
(Expenses:VAT) .07407407407407407407
= /^Expenses/ and not ( /food/ or /租税公課/ )
(Expenses:VAT) .09090909090909090909
これはLedgerの 自動転記 (automated transaction)記法で書かれています。
第1番目のトランザクションは次のような意味になります。
「これ以降のトランザクションにおいて、すべてのExpenses:Foodアカウントは、その支出額に .07407407407407407407 を乗じた金額を(Expenses:VAT)という仮想アカウントの支出として転記しなさい」
.07407407407407407407 という数字にはコモディティ(=通貨記号)がありません。これは0.08/1.08 の値、つまり内税で表示された金額を1.08で割って0.08を掛けた 定数 です。「この定数を元の金額に掛けなさい」という意味になります。
第2番めのトランザクションは、food(税率8%)と租税公課(無税) 以外 の支出には消費税が10%になることをLedgerに教えています(注1)。
サンプルLedgerファイル
日々のトランザクションは普通に「内税」ベースで記帳します。つぎの例( sample.ledger
)では「ハックドラッグ」だけが「外税」です。
= /^Expenses:Food/
(Expenses:VAT) .07407407407407407407
= /^Expenses/ and not ( /food/ or /租税公課/ )
(Expenses:VAT) .09090909090909090909
;;
2021/03/08 * カフェ
; 店内で食べたのでVAT=10%
Expenses:外食 500 JPY
Liabilities:Visa
2021/03/08 * McDonald's
; テイクアウトだったのでVAT=8%
Expenses:Food 635 JPY
Liabilities:Visa
2021/03/08 * ハックドラッグ
; 外税レシート
Expenses:医薬品 (floor ( 2,380 JPY * 1.10 ))
Expenses:Food (floor ( 644 JPY * 1.08 ))
Assets:Cash
2021/03/08 * イトーヨーカドー
Expenses:Food 3,199 JPY
Assets:Cash
(floor ( 2,380 JPY * 1.10 ))
の floor
は小数点以下の切り捨て関数です。
クエリの例
この sample.ledger
に対するクエリ例は次の通りです。
<1. 税込みの支出総額を知りたい>
$ ledger bal ^expenses -f sample.ledger
8,214 JPY Expenses
2,618 JPY 医薬品
4,529 JPY Food
500 JPY 外食
567 JPY VAT
--------------------
8,214 JPY
<2. 消費税額を知りたい>
$ ledger reg vat -f sample.ledger
2021/03/08 カフェ (Expenses:VAT) 45 JPY 45 JPY
2021/03/08 McDonald's (Expenses:VAT) 47 JPY 92 JPY
2021/03/08 ハックドラッグ (Expenses:VAT) 238 JPY 330 JPY
2021/03/08 イトーヨーカドー (Expenses:VAT) 237 JPY 567 JPY
<3. 税抜きの支出総額を知りたい>
$ ledger bal ^expenses and not vat -f sample.ledger
7,647 JPY Expenses
2,618 JPY 医薬品
4,529 JPY Food
500 JPY 外食
--------------------
7,647 JPY
上の 例3.
では、VATが 仮想アカウント なので、 and not vat
の代わりに
--real
とか --actual
とかしても結果は同じです。
このようにLedgerファイルのトップに消費税の定義を書いておくだけで、トランザクションごとにいちいち消費税のエントリを書かなくても、全トランザクションについて仮想アカウントで税の金額を計算してくれる、これはほんとうに強力な機能です。
注意するところ
「Ledger — 固定費のトラッキング」でも紹介したように、自動転記+仮想アカウントによる方法には aux-date をrespectしてくれないという不都合があります(注2)。そこまで細かいことを気にせずに使う限りでは、この方法はとても簡単です。
消費税アカウントは仮想アカウントなので、他の経理計算には影響を与えません。とりあえずLedgerファイルの冒頭に 4行 を追加して使ってみると良いと思います。
最後に
Ledgerによる消費税の取り扱いについては、書き溜めた下書きがこの数倍以上あります。話が細かくなりすぎるので、ここでは思いっきり短く要点だけに絞って書きました。もしかしたら絞りすぎたかもしれません。それについては後日のフォローということでご容赦ください。