OCR結果の整合性チェック:金額・税率・合計の突合方法
レシートOCRの入力値は、単体では「それっぽい」ことがあります。しかし、金額・税率・合計は互いに関係しています。この関係を検算に使うことで、誤読の混入を早い段階で見つけられます。
まず押さえるべき整合性の型
OCRが読み取った「小計」「消費税」「合計」をそのまま家計簿に流すのではなく、必ず突合します。突合の基本は次の2系統です。
- 計算整合:税抜→税額→合計、または税額→合計が成立しているか。
- 丸め整合:税額の計算で発生する端数処理(四捨五入/切り捨て等)まで含めて成立しているか。
金額・税率・合計の突合手順(実務手順)
-
1) OCRが出した数値を「税率つき」で扱う。
同じレシート内で、税率が複数(例:軽減税率と標準税率)になる場合は、税率ごとに分解して整合を取りに行きます。
-
2) 税抜金額(または税額)から税額を再計算する。
OCRの「税額」が多少ズレるケースは、読み取り誤差だけでなく丸め処理の違いでも起こります。再計算では、レシートが採用している丸めに合わせます。
-
3) 合計を再構成して比較する。
合計=税抜合計+税額合計(または税抜→税額→合計)として再構成し、OCRの「合計」と一致するかを見ます。
-
4) 不一致時は、差分のパターンで原因を絞る。
差分が一定の額(例:桁の入れ替え、税率の取り違え、税抜が別列の値を拾った等)になりやすいので、「差分の形」から優先順位を付けます。
丸めの扱いで落とし穴を潰す
税額は小計から計算すると端数が出ます。ここで、どの段階で丸めるかがズレると、OCRが読んだ「税額」や「合計」と一致しません。整合性チェックでは、税額の再計算を行うときに丸めロジックを固定し、複数候補(切り捨て/四捨五入)で最も一致するものを採用する設計も有効です。
実装のコツ
- 税率ごとに計算し、税額合計を作る。
- 合計比較は絶対一致にこだわりすぎず、許容差を持たせる(差分が端数由来かどうか切り分ける)。
- 差分が大きい場合は、税抜の取り違え(列の誤結合)を疑う。
突合をワークフローに組み込む
おすすめの流れ
- OCR抽出 → 金額・税率・合計を“検算対象”として確定。
- 再計算 → 合計の一致/不一致を判定。
- 不一致 → 差分のパターンから補正候補を作り、再度突合。
- 最後に結果を家計簿側の仕訳ルールへ渡す。
この考え方は、単なる「エラー検知」ではなく、OCRの出力をデータとして扱うための品質保証です。金額データの信頼性が上がるほど、後工程(集計・カテゴリ分析・月次レポート)が安定します。
運用チェックリスト(短縮版)
- 税率が複数ある可能性を前提にして突合しているか。
- 税額の再計算は丸めロジック込みで一致確認しているか。
- 不一致時に差分パターンで原因を切り分けているか。
- 合計比較の判定基準(許容差や再計算候補)が運用に合っているか。