周回遅れの日記

はてなダイアリーから移転

Zaimのレシート撮影について

普段、家計管理はExcelで行っている。
Excel複式簿記っぽい仕訳帳を作り、こちらで公開されているハッピー家計簿に仕訳帳をコピペして毎月集計を行っている。
これで基本的には満足しているのだけれど、別に出先でも簡単に使える現金出納帳的なものがあるといいかなあと感じていて、最近しばらく「Zaim」というものを試しに使ってみた。
…7月初めから始めたのだが、もう使うのをあきらめました。
アプリをアンインストールする前に備忘録を書いておく。

レシート撮影のやり方

Zaimの売りは「レシート自動読取機能」、であるらしい。
出先でレシートを撮影するだけで自動的にOCR読み取りで家計簿の入力が完了する、というのである。
そこで、Android版の無料アプリ、家計簿Zaimをダウンロードしてインストール(迷機P-01Dを使った)。
さっそく撮影してみるが、全くレシートを読み取ってくれないので悪戦苦闘する。

レシート撮影には結構コツが必要だ。漫然と適当に撮っていたのでは全然読み取ってくれない。
Zaimの「よくある質問」には、レシートを読み取らせるポイントとして、以下の点に気をつけるように、とある。

  • 真上から撮影する
  • 画面上にある黄色い線とレシートを水平にする
  • レシート上に影が被る/被らないを一定にする
  • ぶれないよう端末を固定する
  • フラッシュをオン/オフする

まず、レシートは平らな面に置いて、上からスマホをかぶせるように撮ること。
電車内で膝の上に置いて撮ったり、壁にレシートをおしつけて撮っても全然ダメだった。基本的には落ちついた状態で机の上に置いて撮るもので、移動中の隙間時間を利用してレシート撮影なんてことはできないものと考えた方が良い。
そして、スマホはなるべくレシートと平行にする(つまり、机と平行にする)。
画面上にある黄色い線と、レシートの文字を水平にする。


撮影範囲は、レシートの全体を撮影する必要はない。
縦は、店舗の電話番号(店舗名を入力する手間が省ける)から、合計金額までが入ればよい。
この範囲が必ず含まれるようにして、なるべく近づけて撮影する。


↑はやたらと縦長のマルエツのレシートだが、撮影する必要があるのは青線で囲んだ一部分だけだ。長いレシートであっても、品目が少なければわざわざ「長尺」で撮影するべきケースはさほど多くないのではないかと思う。

「レシート上に影が被る/被らないを一定にする」は一番重要なポイントで、例えば机の上のPCのモニターがある場合に机の上で撮影しようとすると、モニターからの光でレシート上に影ができてしまうことが多い。上からの光も問題で、照明器具から直接光が当たらないように気をつける必要がある。だから、撮影できる場所はかなり制限される。出先でレシートもらった直後に撮影しようとしても、適切な撮影場所を見つけるのに苦労するので、必ずレシートを持ち帰らなければならないと思われる。レシートをすぐ紛失してしまう人には厳しいかもしれない。
なお、屋内ではなくて、外で太陽の下で撮影しても、影ができないようにすればちゃんと読み取ってくれる。もし出先で撮影するなら太陽光の下で撮るのが一番良いのではないかと思うが、でも真夏に陽光の下でレシートを撮影するというは苦行だからなあ。

なお、撮り方はこちらの記事が大変参考になった。Zaimでうまくレシートを読み取ってくれずに困っている人は必読。
レシートのスマホ撮影だけで勝手に集計! “ズボラこづかい帳”改良挑戦記

何度も失敗を繰り返して、最初は1枚のレシートの読み取りに30分もかかっていたような有様だったが、だんだん撮り方に慣れて、一発で読み取りに成功することも多くなってきた。
そこで、レシートの読み取り能力を確認すべく、10枚のレシートを何回の撮影で読み取りに成功するか試してみた。
(一番重要な合計額が読み取れた時点で「成功」とする)
結果。14回の撮影でレシート10枚を読み取ることができた。4回の失敗があったのだが、うち3回は丸まってしまったレシートをそのまま強引に撮影しようとして失敗したもので、最初からちゃんと伸ばして撮影すれば失敗しなかったと思われる。だから、10枚中9枚は一発で読み取れたと考えても良いと思う。
慣れれば結構簡単なもんだ。

読み取り精度もかなり高い。ほとんどの金額は正確に読み取ってくれる。
もちろん、誤りもある。上記の10枚の撮影テストで、合計額が誤っていたのが1枚あった。レシート10枚合計5,360円撮影して2円の差額が生じたことになる。
個々の品目の金額についても、すべてが正しく読み取られていたのは10枚中7枚であった。3枚は個々の品目の金額が誤って読み取られていた(この場合、読み取られたレシートの合計額と、読み取られた個々の品目の合計額が異なるので、その分「調整額」という科目を追加してつじつまを合わせるようになっている)。
「6」と「8」を間違えるケースが目立つ。

数字に比べて、文字の読み取りはいまいち。ただ、品目は金額ほど重要ではないし、後述するが品目は後で簡単に修正できるので問題は少ない。

読み取り結果を修正する

読み取りが誤っていても、簡単に修正できるならいいんですよ。
だけど…レシートの読み取り結果を修正するのは非常に大変だ。

これは機種固有の問題かもしれないが、撮影後、スマホで個々のデータを修正していると、入力途中なのにもかかわらず、入力中のデータがクリアされてしまうことが非常に多い。私が変な場所をタップしてしまったせいかもしれないが、撮影後一定時間が経過しても「記録する」が押されない場合は入力中のデータがクリアされる仕様になっているような気もする(この点完全には検証していない)。ともかく、スマートフォンのソフトウェアキーボードでちまちまとデータを修正して、ようやく全部正しく入力できた!と思った途端に入力中のデータがクリアされて苦労が無駄になってがっくり、ということが何度もあって嫌になってしまった。少なくともこの機種では、スマホアプリで読み取り結果を修正するのは非現実的だと思う。
スマホよりも入力しやすいタブレットなら、かなりマシだと思われる。ただし、私の手持ちのタブレット(Nexus7)はアウトカメラがないのでZaimのアプリを試すことができない。)

そこで、撮影後、クリアされないうちにすぐに「記録する」を押して、後でZaimのWeb版で読み取り結果を修正すれば簡単だ、と思ったが、これも結構な苦行であった。

PCでWeb版にログインして、「履歴」→「日ごとの履歴」を参照すると、保存されたレシートの読み取り結果がこのように表示される。

食品スーパーのレシートの読み取り結果だが、個々の品名はほとんど読み取れていない。
個々の品名をクリックすれば、簡単に修正することができるので、レシートと見比べながら修正する。ただし、カテゴリが正しく分類されている限りは、必ずしも個々の品名が正しく記録しておく必要はないと思うので、必要なものだけ修正すれば良いだろう。食品スーパーのレシートのように、全部カテゴリが同じになる場合は、読み取りが正確でなくともそのまま放置で良いのではないだろうか(見た目気持ち悪いかもしれないが)。

修正作業をやっていて気がついたのだが、日付と金額は修正できない
たとえば、7月6日のレシートが誤って「7月8日」と読み取られて、そのまま誤りを訂正せず記録されてしまった場合、後から修正することはできない。
(個々の品目の日付を全部直した後で、品目の一つを削除すると全体の日付が修正される。ただし、削除した品目は後から復活させることはできない)

金額を修正することもできない。これも重要なポイントだ。
個々の品目について、金額を修正することはできるのだが、個々の額を変更しても、それは合計額に反映されない。
割引額が間違っているケースも結構ある(単品で35円の商品を3つまとめ買いすると15円引きで100円です、みたいな場合)が、負数はそもそも後から入力できない仕様のようだ。
なんだこりゃ。

だから、レシートに負の数が含まれる場合は必ず撮影時に正しく入力されているか、レシートと照合する必要がある。

「支払元」(現金払いか、クレカ払いか、電子マネー払いか等)は結構重要な項目だと思うのだが、なぜかレシート撮影時には入力できない。後から履歴を見て入力するのだが、これ、個々の品目ごとにドロップダウンメニューから選択して入力する方式である。つまり、レシートに10項目あれば10回クリックして「お財布(現金払い)」を選択しなければならない。これが非常に面倒で、Web版ということもあり、非常に反応が遅くイライラさせられる)。ここはぜひ一括修正機能が欲しいところ。というか、たいていの場合レシートが一枚ならその中の品目は全部支払方法は同じはずだと思う。

「カテゴリ」も、後から修正しようとすると個々の品目ごとに入力しなければならない。
品目が正しく読み取れていれば「食料品」「消耗品」「ガス代」など、結構適切に自動的に分類してくれるが、品目が読み取れてないとダメで、レシートと照合しながら個々に修正が必要だ。やはり面倒なので一括修正機能が欲しい。

削除と追加

どうも読み取り結果が間違いだらけなので削除してしまおう、と思った場合は、「削除」のゴミ箱アイコンをクリックすれば削除することができる。ただし、ゴミ箱アイコンの配置で分かるように、10個の品目がある場合に全部削除するには10個のゴミ箱アイコンをクリックしなければ全部削除できない。どうして一括削除機能がないのだろう。だから、同一のレシートを2枚記録してしまったような場合は削除が大変だ。

削除もやりにくいが、個々の品目を追加することもできない。
たとえば、「1点500円の弁当を2つ、自分の分と同僚の分を買って1,000円支払い、後で同僚から500円を受け取った」という場合。レシートをそのまま読み取ると1,000円の食費1点になってしまう。これを食費500円、立替金500円の二つの品目に修正したいんだけど、品目を追加できないので不可能。
読み取り結果を修正する代わりに、別途マイナスの食費500円を計上してつじつまを合わせられないか(借方:立替金500円/貸方:食費500円という感じ)と思ったが、そういう処理もできないようだ。

まだ確定ではないけれど、将来、レシートの税抜/税込表示が混在するようになったら、個々の品目を柔軟に削除追加できるようにしないと、さらにカオスになると思われる。

レシート読み取り結果の修正もやりにくいし、新規レコードの入力ももさもさしてイライラする。正直エクセルで作ってcsvファイルをアップロードさせて済ませてしまいたいくらいだ。

レシートを撮影するメリットはあるのか?

レシートの撮影結果の修正作業を続けていてふと思った。
わざわざ撮影して読み取る意義があるのか?

レシートを撮影して読み取るのは、慣れてもそれなりに手間も時間もかかる。
どうせ後でレシートと照合し直さなければならないのだし、はっきり言って、最初からレシートを持ち帰ってキーボードを叩いて入力した方が早くて正確
ただし、キャベツ、コロッケ、ビール…と個々の品目まで全部細かく記録するのであれば、自動読み取りの方が楽だろう。でも、個々の品目の読み取りはさほど正確ではないし、そもそもそこまで細かく記録する必要性を感じない。日付と合計額と科目名だけなら、やっぱりキーボードを叩いた方が楽だ。

となると、今までどおり、レシートを持ち帰って記録するやり方で良い(ついでに一年間保存する)。
わざわざZaimでレシートを撮影する意義はない。
レシート自動読み取り機能に意義を感じないとすると、Zaimを使うメリットもあんまり感じられない。
ということで、使うのやめることにした。

とはいえ。
もともと記録をつける習慣のない人、レシートをすぐ紛失してしまう人にとっては、撮影するだけで一応の記録ができるというのは魅力的かもしれないね。
ただし、現金差は確実に出る。
個々の勘定科目についてもあんまり正確には集計されない。
それを避けようとすれば必ずレシートと照合して修正する必要があるけど、修正はやりにくい。というか、そもそも後から修正することを全く考慮していないように思われる。それは、たぶん想定しているユーザーが、「レシートを撮影するだけで後は放置する人」だからなのだろう。

なお、Zaimは基本的に費用/収益の管理が基本で、資産への反映はOCN家計簿を利用することになっているようだ。私もこの機会にOCN家計簿をお試ししてみようかなあと思っていたのだけれど、Zaimを使う気がなくなってきたのと、どうもOCNが不正アクセスの標的になってるようなので、OCN家計簿のお試しは今回は見送り。