デジタルレシートOCR 整合性チェック

OCR結果の整合性チェック:金額・税率・合計の突合方法

読み取りた文字列が「家計簿として成立する数字」になっているかを、税率と合計の関係から検証します。 金額の桁ずれ、税抜/税込の取り違え、税率の丸め差など、よくある不整合の見つけ方と原因切り分けの手順をまとめました。

著者:TenshiLink編集部

読了:8分

OCR結果の整合性チェック:金額・税率・合計の突合方法

レシートOCRの入力値は、単体では「それっぽい」ことがあります。しかし、金額・税率・合計は互いに関係しています。この関係を検算に使うことで、誤読の混入を早い段階で見つけられます。

まず押さえるべき整合性の型

OCRが読み取った「小計」「消費税」「合計」をそのまま家計簿に流すのではなく、必ず突合します。突合の基本は次の2系統です。

  • 計算整合:税抜→税額→合計、または税額→合計が成立しているか。
  • 丸め整合:税額の計算で発生する端数処理(四捨五入/切り捨て等)まで含めて成立しているか。

金額・税率・合計の突合手順(実務手順)

  1. 1) OCRが出した数値を「税率つき」で扱う。
    同じレシート内で、税率が複数(例:軽減税率と標準税率)になる場合は、税率ごとに分解して整合を取りに行きます。
  2. 2) 税抜金額(または税額)から税額を再計算する。
    OCRの「税額」が多少ズレるケースは、読み取り誤差だけでなく丸め処理の違いでも起こります。再計算では、レシートが採用している丸めに合わせます。
  3. 3) 合計を再構成して比較する。
    合計=税抜合計+税額合計(または税抜→税額→合計)として再構成し、OCRの「合計」と一致するかを見ます。
  4. 4) 不一致時は、差分のパターンで原因を絞る。
    差分が一定の額(例:桁の入れ替え、税率の取り違え、税抜が別列の値を拾った等)になりやすいので、「差分の形」から優先順位を付けます。

丸めの扱いで落とし穴を潰す

税額は小計から計算すると端数が出ます。ここで、どの段階で丸めるかがズレると、OCRが読んだ「税額」や「合計」と一致しません。整合性チェックでは、税額の再計算を行うときに丸めロジックを固定し、複数候補(切り捨て/四捨五入)で最も一致するものを採用する設計も有効です。

実装のコツ

  • 税率ごとに計算し、税額合計を作る。
  • 合計比較は絶対一致にこだわりすぎず、許容差を持たせる(差分が端数由来かどうか切り分ける)。
  • 差分が大きい場合は、税抜の取り違え(列の誤結合)を疑う。

突合をワークフローに組み込む

おすすめの流れ

  1. OCR抽出 → 金額・税率・合計を“検算対象”として確定。
  2. 再計算 → 合計の一致/不一致を判定。
  3. 不一致 → 差分のパターンから補正候補を作り、再度突合。
  4. 最後に結果を家計簿側の仕訳ルールへ渡す。

この考え方は、単なる「エラー検知」ではなく、OCRの出力をデータとして扱うための品質保証です。金額データの信頼性が上がるほど、後工程(集計・カテゴリ分析・月次レポート)が安定します。

運用チェックリスト(短縮版)

  • 税率が複数ある可能性を前提にして突合しているか。
  • 税額の再計算は丸めロジック込みで一致確認しているか。
  • 不一致時に差分パターンで原因を切り分けているか。
  • 合計比較の判定基準(許容差や再計算候補)が運用に合っているか。