交通費精算書の写真をAIで読み取り運賃を照合する精度検証
運賃の計算誤り・同名の駅・乗換を見抜けるか
交通費の精算は、申請書の区間と運賃を運賃表や経路検索の結果と見比べる作業が毎月発生します。AIに任せるときに困るのは、運賃の数字の読み違い、同じ名前の駅の取り違え、乗換の足し算の間違い、そして申請額の誤りを見落とすことです。1行の誤りを見落とすと、そのまま過払いになります。そこで、これらを仕込んだ精算書を、答えを知らないAIに読ませて確かめました。
検証方法
当社で架空の交通費精算書を3枚作成しました。会社名・氏名・駅名・運賃はすべて架空で、実在の鉄道会社や運賃表とは関係ありません。3枚とも、列は日付・出発・到着・経路・運賃(円)で、下に同じ架空の運賃表を載せ、副題に「乗換は区間ごとの額を合計する」と書いてあります。
- サンプルA(印字):4行。申請額は運賃表どおりで、誤りは無い。
- サンプルB(印字):4行。10/7の港北から中央(北線)の行だけ、運賃表では160円のところを180円と申請している。申請の合計(740円)は、行の合計と一致している。
- サンプルC(手書き風フォント):4行。「中央」に北線と南線があり運賃が違う。10/14は西口で乗換える行(140円と150円の合計290円)、10/15は到着が線の書かれていない「中央」で経路の欄が南線、10/16は到着が線の書かれていない「中央」で経路の欄が北線なのに、南線の額の260円を申請している。申請の合計(1070円)は、行の合計と一致している。



答えを知らないClaude(Opus 5.5・Haiku 4.5)に、下のプロンプトと、画像を開く手順・表と合計だけを返す指示だけを渡し、画像1枚ずつを別々に読み取らせました(3枚×2モデルの計6条件、各1回)。正解表の5項目で採点しました。日付・出発・到着を正しく読む、経路を正しく読む、申請運賃を正しく読む、再計算した額と不一致の指摘が正しい(誤りの見落としも、存在しない不一致の指摘も誤り)、申請合計と再計算合計が正しい、の5つです。
結果:読み取りと、運賃表での再計算・照合
| 条件 | 行の読み取り | 不一致の指摘 | 申請合計/再計算合計 | 備考 |
|---|---|---|---|---|
| Opus 5.5・A | 4行とも正確 | なし(正解どおり) | 840円/840円 | 「4行すべてと合計が一致しています」と書いた |
| Haiku 4.5・A | 4行とも正確 | なし(正解どおり) | 840円/840円 | 各行を「一致」とした |
| Opus 5.5・B | 4行とも正確 | 10/7の1行(20円多い) | 740円/720円 | 申請合計が行の足し算とも一致することも書いた |
| Haiku 4.5・B | 4行とも正確 | 10/7の1行(20円多い) | 740円/720円 | 末尾に差額(20円)と該当する行をまとめて書いた |
| Opus 5.5・C | 4行とも正確 | 10/16の1行(80円多い) | 1,070円/990円 | 「南線の運賃で申請されている」と原因まで書いた |
| Haiku 4.5・C | 4行とも正確 | 10/16の1行(80円多い) | 1,070円/990円 | 原因は書かなかった |
同名の駅と乗換に対するAIの回答の原文(サンプルC)
線の書かれていない「中央」が出る10/15・10/16と、乗換の10/14について、保存した回答の原文を2モデルで並べました(各条件1回)。
| 行 | Opus 5.5 | Haiku 4.5 |
|---|---|---|
| 10/14 見本町から中央(南線)、西口で乗換 | 「290円(見本町-西口 140円 + 西口-中央(南線) 150円)」「一致」 | 「290(見本町-西口 140 + 西口-中央(南線) 150)」「一致」 |
| 10/15 見本町から中央、経路は南線 | 「260円(見本町-中央(南線))」「一致」 | 「260(見本町-中央(南線))」「一致」 |
| 10/16 見本町から中央、経路は北線、申請260円 | 「180円(見本町-中央(北線))」「不一致(80円多い。南線の運賃で申請されている)」 | 「180(見本町-中央(北線))」「不一致(申請が80円多い)」 |
わかったこと
- 6回とも、採点した項目の誤りは0件だった。運賃の数字の読み取り、乗換の足し算(140円と150円で290円)、行ごとの再計算、2つの合計を、2モデルとも間違えませんでした。
- 誤りの見落としも、存在しない誤りの指摘も無かった。誤りが1行ずつ入ったBとCではその1行だけを不一致とし、誤りの無いAでは不一致を出しませんでした。
- 同名の駅は、経路の欄の線に合う運賃表の行で再計算した。線の書かれていない「中央」が2行あっても、2モデルとも、経路の欄の南線・北線に合う運賃表の行(南線は260円、北線は180円)を引いて再計算しました。経路の欄が空だった場合や、運賃表に無い区間があった場合にどうなるかは試していません。
- 原因の書き添えはモデルで分かれた。Opus 5.5は80円の差を「南線の運賃で申請されている」と説明し、Haiku 4.5は差額だけを書きました。原因の推定は画像に書かれていないので、申請者への確認の材料としては使えても、そのまま事実として扱わないほうが安全です。
- この検証で差は出なかった。6条件とも全項目で正解だったため、2モデルの優劣は言えません。運賃表が画像の外にある場合、実在の運賃表との照合、定期券の区間、経路が複数ある場合、斜めの撮影や影は、今回は含めていません。
交通費精算書の読み取りと照合のプロンプト
次のプロンプトは、上の検証で使った依頼文の本体です(実際には、これに画像を開く手順と、表と合計だけを返す指示を添えました)。
この交通費精算書の写真を、日付・出発・到着・経路・申請運賃の表にして、画像内の運賃表で各行の運賃を再計算し、申請額と合っているか行ごとに照合してください。申請合計と再計算合計も出してください。
使うときのコツ
- 運賃表は、必ず同じ画像か同じ依頼に入れる。今回は運賃表を画像の中に載せました。運賃表を渡さずに頼んだ場合に、AIが運賃を推測で埋めるかどうかは試していません。
- 乗換の足し方は、依頼か画像に書く。今回は「区間ごとの額を合計する」と画像の副題に書きました。書かずに頼んだ場合は試していません。
- 不一致の行だけ、元の写真と見比べる。今回は誤りが出ませんでしたが、不一致を指摘された行は、読み取りの誤りでないかを写真で確かめてから申請者に戻します。
- 原因の説明は、確認の材料にとどめる。検証では、Opus 5.5が不一致の原因を書き添えました。原因は画像に書かれていないので、申請者に聞いて確かめます。
まとめ
交通費精算書の転記と照合は、この検証ではOpus 5.5・Haiku 4.5のどちらも、行の読み取りを1件も間違えず、運賃表で再計算して、誤りのある1行だけを不一致と指摘し、誤りの無い精算書には不一致を出しませんでした。同名の駅と乗換も、経路の欄をもとに正しく扱いました。運賃表を画像に載せた、きれいな画像での結果です。実在の運賃表との照合や、実際の手書きの精算書で同じ結果になるかは確かめていません。
よくある質問
交通費精算書の写真をAIに読ませて、運賃の間違いを見つけられますか。
この検証では、架空の交通費精算書(運賃表つき)で、Opus 5.5とHaiku 4.5のどちらも、運賃表で再計算して申請額の誤りを見つけました。誤りが1行ある2枚では、その1行だけを不一致と指摘し、誤りの無い1枚では不一致を出しませんでした。ただし各条件1回で、運賃表を画像の中に載せた条件での結果です。
同じ名前の駅(北線と南線の「中央」)があると、AIは取り違えますか。
この検証では、取り違えは出ませんでした。線の書かれていない「中央」が出る行でも、2モデルとも経路の欄の南線・北線に合う運賃表の行を引いて再計算し、10/15は260円で一致、10/16は申請260円に対して180円と再計算して80円多いと指摘しました。経路の欄が空の場合は試していません。
乗換のある区間の運賃は、AIが正しく足せますか。
この検証では、見本町から西口で乗換えて中央(南線)まで行く行を、2モデルとも140円と150円の合計290円と再計算し、申請額と一致と判定しました。乗換の運賃を区間ごとの合計とする旨を画像の副題に書いた条件です。
この精算書や運賃は実在しますか。
いいえ。会社名・氏名・駅名・運賃はすべて当社が作成した架空のデータで、実在の鉄道会社や運賃とは関係ありません。実在の運賃表は使っていません。
合同会社フューチャープロンプト(AIプロダクト開発・業務自動化/東京・渋谷)がまとめました。AIの検証は2026年10月10日に行いました。検証の進め方は実測の進め方、方針は検証・編集・AI利用方針をご覧ください。