家計簿アプリ『家計ネコ』を作り始めた当初、考えていた仕様は極めてシンプルでした。

「カメラでレシートを読み取り、印字された商品をそのまま家計簿に保存する」

それさえできれば、「スーパーで3,280円使った」という総額だけでなく、その日に何を買ったのかまで後から振り返ることができる。実際に開発を進めるまでは、それで課題は解決すると思い込んでいました。

しかし、テストのために大量のレシートを読み込ませるうちに、すぐに一つの根本的な問題に直面しました。

レシートに印刷されている商品名は、そもそも「人間があとから振り返るため」に作られていない、ということです。

レシートの文字は「POSレジのための略称」である

スーパーやドラッグストアのレシートには、厳しい文字数制限があります。紙幅を節約し、POSシステム内部で商品を識別できれば十分だからです。

その結果、印字されるテキストはどうしても不親切なものになります。

商品名が途中で断ち切られている(例:日清 カップヌー…)

半角カナと独自の略称だらけになっている(例:Cポテチ ウスシオ)

メーカー名やカテゴリ名しか印字されていない

買った直後であれば、「ああ、あのお菓子だな」と記憶で補完できます。 しかし、数ヶ月後に家計簿の履歴を見返したとき、その暗号のような文字列を見て何を買ったか正確に思い出せるでしょうか。おそらく無理です。

そこで自問しました。 私が本当に作りたかったのは、「レシートの文字列をそのまま保存する家計簿」だったのか。

答えは違いました。 欲しかったのは、「あとから見返したときに、何を買ったかが一目でわかる記録」です。

単にレシートの印字を残すだけなら、写真をクラウドに放り込んでおけば事足ります。 しかし家計簿のデータとして残す以上、その情報は「読めて」「探せて」「振り返りに使える」状態でなければ意味がありません。

「整えた名前」と「元の印字」、両方を残す理由

この気づきから、『家計ネコ』では読み取った文字列をそのまま並べるのではなく、可能な限り人間が読んで理解しやすい商品名に補正・整理して扱うアプローチを取ることにしました。

ただし、整理後の綺麗な名前だけを残す仕様にはしませんでした。 OCRの読み取りミスや自動整理のズレが起きた際、確認する術が失われてしまうからです。

一覧・集計・検索で目にするもの:誰が見てもわかりやすい整理された商品名

詳細を開いたときに確認できるもの:レシートに実際に印字されていた「生の文字列」

どちらか一方に絞るのではなく、両方を保持する。 「日常的な視認性」と「原本としての正確性」を両立させるこの構造は、実際に自分でレシートを処理し続けたからこそ行き着いた仕様です。

「商品名」から過去の支出をたどれるようにする

もう一つ、明細を残すうえで不可欠だと感じたのが「検索性」でした。

商品をどれほど細かく記録しても、過去のカレンダーを1日ずつ開いてスクロールしなければ見つからないのなら、蓄積したデータは死んでしまいます。

日常の中で発生する疑問は、日付ベースとは限りません。

「前回買ったあの調味料、いくらだったか」

「どのスーパーで買うのが一番安かったか」

購入した正確な日付や店舗名は覚えていなくても、「商品名」は覚えているものです。 そのため『家計ネコ』では、記録した個々の商品明細をダイレクトに横断検索できるように設計しました。商品名を入力するだけで、過去の購入履歴と価格推移を遡ることができます。

「文字のデータ化」は、ただの入口にすぎない

現実のレシート表記は一筋縄ではいきません。 同じメーカーの同じ商品であっても、スーパーAとドラッグストアBで印字パターンが全く異なることは日常茶飯事です。容量違いやフレーバー違いをどこまで厳密に区別し、どこまでを元の表記に委ねるべきか。この境界線については、今もアルゴリズムの調整を続けています。

開発を通じて、私自身の認識は大きく変化しました。

最初は「レシートを読み取って商品明細が残せれば便利だ」という技術的な目新しさから入りました。 けれど今は、それだけでは片手落ちだと確信しています。

重要なのは「読み取ること」そのものではなく、「あとから使える記録として残すこと」です。

何を買ったのか直感的にわかる

必要なときに商品名で引き出せる

疑問があれば原本の印字まで遡れる

この3点が揃って初めて、「買ったものを家計簿に残す」という体験が実用的な価値を持ちます。

『家計ネコ』はまだリリースしたばかりのプロダクトです。 実際のレシートには、想定を超えた表記やレイアウトがまだまだ存在します。利用者のフィードバックを受け止めながら、「買った記録を本当に活用できる家計簿」へと精度を高めていきます。