これで何ができるか

分割払いの割合が3等分できれいに割り切れず、端数が出る契約でも、AIの入金照合は崩れませんでした。架空の業務委託契約(着手金・中間金・残金の3回払い)を用意しました。総額は100,001円で、3で割ると33,333.67円になるため、1円の端数をどこかの回に寄せる必要があります。

  • 端数(1円)を最終回(残金)に寄せた版:着手金33,333円・中間金33,333円・残金33,335円
  • 端数を初回(着手金)に寄せた版:着手金33,335円・中間金33,333円・残金33,333円
分割の割合が割り切れず端数が出ても、AIの入金照合は崩れるかを実測した結果を示す表。すべて「正しく判定した回数/試した回数」で、多いほど良い。全額入金済みを正しく「一致」と判定した回数は、端数の位置2種×各5回の10回中10回。本当に500円不足した回を正しく検出した回数は、端数の構造2種×各3回の6回中6回。「端数は問題ない」と伝えても500円の不足を見逃さなかった回数は4回中4回。下の枠には、端数を最終回に寄せても初回に寄せても全額入金済みは10回とも正しく一致と判定したこと、本当に500円不足させた6回も端数で非丸い数字が並ぶ材料のまま全部正しく検出したこと、端数は正常と明示しても本当の不足を見逃した回は0/4だったことが書かれている。
端数のある分割でも、20回とも崩れませんでした。

全額入金済みの10回(端数の位置2種×各5回)は、10回とも正しく「契約書どおりに入金されています」と判定しました。本当に1回分だけ500円足りない状態を作った6回(端数の構造2種×各3回)も、全部正しくその1回だけを名指しで検出しました。「端数は正常なので気にしなくていい」と伝えても、本当の不足を正常の範囲に丸め込んで見逃すことはありませんでした(4回とも検出)。

3回払いの分割と4分割・5分割を実測した先行記事は、どちらも末尾に「割合はきれいに割り切れる形だけで、端数が出る分け方は試していません」という同じ宿題を残していました。この記事はその宿題に答えます。

前提

かかる時間 20分
費用 無料。ブラウザのチャットAIで足ります
必要なもの 契約書(支払条件)と、入金明細の2つの表
プログラミング 不要。この記事の指示文をコピーして貼るだけです

口座番号や実在の取引先名は貼らないでください。この記事は架空の社名・金額を使っています。実在の人物・団体とは関係ありません。

振込手数料ぶんの差額が埋もれないかという、似ているが別の軸は500円差を見つける記事で確かめています。この記事が見ているのは「分け方そのものに端数があるとき」で、「入金のときに手数料が引かれるとき」とは別の場面です。入金照合でAIが崩れた実測もあります。1つの入金が2件ぶんの合算だった案件は、素朴に聞くだけでは見落とされました(入金が合算されて未入金に見える記事)。

AIへの頼み方

1. 端数を最終回に寄せた契約で、全額入金済みの状態を聞く

着手金33,333円・中間金33,333円・残金33,335円(合計100,001円)という、端数を残金に寄せた契約です。3回とも契約どおりに入金されています。

この入金明細は、契約書の金額どおりに入金されていますか。

上に続けて、契約書と入金明細を貼ります。

5回とも「はい、契約書どおりに入金されています」と正しく判定しました。着手金・中間金・残金の3行を1行ずつ照合した表を自分で作り、合計33,333+33,333+33,335=100,001円が契約金額と一致することまで計算していました。

2. 端数を初回に寄せた契約でも、同じ聞き方を試す

今度は端数を着手金に寄せた契約(着手金33,335円・中間金33,333円・残金33,333円)です。こちらも3回とも契約どおりに入金されています。

この入金明細は、契約書の金額どおりに入金されていますか。

こちらも5回とも「一致している」と正しく判定しました。端数の位置(最終回か初回か)を変えても、合わせて10回とも誤って「不一致」と判定した回は0回でした。

3. 本当に500円だけ足りない状態を、端数ありの契約で試す

ここまでは「全額入金済み」という材料でした。今度は、端数を最終回に寄せた構造のまま、中間金だけ本当に500円少なく着金させました。指示文は1文字も変えていません。

この入金明細は、契約書の金額どおりに入金されていますか。

3回とも「いいえ、契約書どおりには入金されていません。中間金が500円不足しています」と正しく指摘しました。着手金・残金は契約どおりであることも確認し、「振込手数料かもしれないが500円ちょうどかは要確認」と断定を避けました。端数で33,333円・33,335円という非丸い数字が並んでいても、本当の不足だけを正しく拾っています。

4. 端数を初回に寄せた契約でも、本当の不足を試す

同じ検証を、端数を初回に寄せた構造でも行いました。今回は残金だけ本当に500円少なく着金させています。

この入金明細は、契約書の金額どおりに入金されていますか。

こちらも3回とも、残金の500円不足だけを正しく指摘しました。端数の構造2種・合わせて6回とも、本当に1回分だけ足りない案件を見逃した回は0回です。

なぜこの言い方が効くのか

「契約書の金額どおりに入金されていますか」という聞き方は、1円単位の厳密な一致を求めています。端数があっても、契約書の支払条件そのものが1円単位まで確定した数字なので、AIは「だいたい合っている」という近似判定ではなく、行ごとの照合を続けられます。端数は数字を非丸くするだけで、照合という作業の難しさ自体を上げてはいないと考えられます。

うまくいかないときの言い直し方

「端数は正常」と伝えると、見逃しが増えないか

端数という非丸い数字を「気にしなくていい」と伝えると、本当の不足まで一緒に「正常な範囲」に丸め込まれてしまわないかを確かめました。指示文3・4と同じ、本当に500円不足している2つの構造で試します。

この契約は端数が出る分け方をしています。端数そのものは問題ありません。入金明細は契約書の金額どおりに入金されていますか。

4回とも「端数の分け方自体は問題ありません」と前置きしたうえで、500円の不足を正しく指摘しました。1回だけ、本文の途中で「300円不足」と書いた直後に「訂正します。不足額は300円ではなく500円です(33,333−32,833=500)」と自分で計算し直して訂正していましたが、最終的な結論は4回とも500円で正しいものでした。「端数は問題ない」という許可は、本当の不足を見逃す理由にはなりませんでした。

応用・次の一手

毎月、複数の契約を同じ形で突き合わせたいなら、端数の扱いを先に決めて表にしておくと安心です。

毎月、着手金・中間金・残金の3回に分けて入金される契約が複数あります。金額が3等分で割り切れず端数が出る契約も混ざります。入金明細と契約書を毎月同じ形で突き合わせたいです。プログラミングはできません。私が毎月やることを、番号を振って箇条書きで教えてください。

2回試したところ、手順の数(12個と11個)は違いましたが、次の骨格は共通していました。

  • 契約ごとに、予定額と端数の扱いを先に決めて表にする(初回だけ)
  • 毎月、入金明細を取り込んで予定と突き合わせる
  • 差額が出た行だけ、原因を順に確認する(手数料・端数処理・消費税・まとめ払いなど)
  • 累計が契約総額と一致したら、その契約は完了にする

1回は「許容差額(例:500円以内なら一致扱い)を決めておく」という提案も自分から出していました。毎月同じ手順で回せる形にしておくと、分割払いの入金照合の基本と同じように、確認そのものは安定して回せそうです。

⚠️ この結果は、この1種類の架空契約・合計22回の実測です。「端数があっても絶対に崩れない」と一般化しないでください。試したのは、次の範囲までです。

  • 分割は3回払い・端数は1円のみ(4回以上の分割や、2円以上の端数は試していません)
  • 端数は最終回または初回のどちらかに寄せた場合のみ(中間の回に端数を寄せる形は試していません)
  • 本当の不足は500円のみ(もっと小さい差額が端数に埋もれるかは未検証です)

今回の生の返りは docs/evidence/odd-split-still-catches-the-real-shortfall.md に全文置いてあります。