Recent Results

直近30日の標準AI予想の成績

2026年8月15日〜9月13日4,639レース(クリーン母数=中止・返還と締切後記録を除く)で、 本命1着率57.10%2連対74.91%複勝圏(3着以内)83.62%3連単完全一致9.38%。 いずれも指定時刻に自動記録した標準AI予想を対象とした検証結果で、回収率や利益を示す数字ではありません。 この数字の基準日は2026年9月13日です。集計から除外している締切後記録52件の内訳・発生原因は②集計の定義・対象・除外条件にまとめています。
57.10%
本命1着率
n=4,639
74.91%
2連対率
n=4,639
83.62%
複勝圏(3着以内)
n=4,639
9.38%
3連単 完全一致
n=4,639
直近30日: 2026-08-15〜09-13 (n=4,639) 直近7日: 2026-09-07〜09-13 (n=994) 記録開始からの累計: 2026-07-12〜09-13 (n=9,622)

3連単の「完全一致」は120通りの組み合わせから1点を言い当てる、最も厳しい的中条件です。 的中率だけを見て「低い」と感じるかもしれませんが、テトラが実際に見せている本命は 1着候補としては57.10%、3着以内でみれば83.62%の実績でした(直近30日・過去の記録に基づく集計であり、将来の的中を保証するものではありません)。 的中の意味は指標によって全く違うので、④較正チャートで「言った確率どおりか」を別角度から確認できるようにしています。 各指標の分子・分母の正確な定義は②集計の定義・対象・除外条件にまとめています。

※ 08-13実行分の累計4,611件・55.80%・84.02%・8.83%は「固定再現試験」(基準日を2026-08-12に固定した母集団で、当時と同一のSQLを再実行した結果)であり、上記のメインKPI(2026-09-11時点の最新集計・基準日2026-09-10)とは基準日が異なる別の数字です。両者を混同しないでください。 固定再現試験の生データはevidence/reproduction_result.json、 上記メインKPI(最新値・n=9,622系)の完全再現用データはevidence/current_result.json、 実際に使用した集計SQL全文はevidence/aggregation_sql.txtで確認できます。

Definitions & Scope

集計の定義・対象・除外条件

「的中率」という言葉は指標によって意味が変わります。ここでは各数値が何を分子・分母として計算されているかを、 実際に使っているSQL定義のまま明記します。

指標分子(何をカウントするか)分母
本命1着率本命(予想1位)艇が、実際の着順で1着だった件数クリーン母集団
(void_race=false
AND late_snapshot=false)
2連対率本命艇が、実際の着順で2着以内だった件数
複勝圏(3着以内)率本命艇が、実際の着順で3着以内だった件数
※統計用語としての呼称で、舟券として発売されている「複勝」の的中条件そのものではありません
3連単完全一致率予想した1-2-3着の組み合わせ(単勝確率が高い順に3艇を並べた1点)が、実際の着順3艇と完全に一致した件数

対象期間: 2026年7月12日(記録開始)〜2026年9月13日(直近の突合完了日)。以下の条件に該当する行は、分子・分母のどちらにも含まれません。

除外区分定義件数
対象期間
07-12〜09-10
中止・返還等
void_race=true
結果確定から2日経っても着順が確認できなかったレース。中止・返還等とみなし、的中判定をせずに終端した行41件
締切後記録
late_snapshot=true
予想の記録時刻(snapshot_at)が、そのレースの投票締切時刻(race_closed_at)より後だった行。「締切前記録」の前提と矛盾するため除外。内訳・原因は次項26件
未突合
unreconciled
予想は記録されたが、まだ結果照合バッチが処理していない行(前日以前のレースが対象)0件

締切後記録52件の内訳と原因。

2026年7月12日〜9月13日の累計9,674件のうち、52件が締切後記録(snapshot_at > race_closed_at)として検知され、上記の集計から除外されています。 2026年9月11日にVPS上のデータベースを直接調べ、当時の全26件の発生日時・締切時刻・記録時刻・遅延秒数を照合したうえで、原因を特定しました。2026年9月14日の更新で26件(すべて9月13日・日曜の発生)が加わりましたが、遅延は4.3秒〜27.1秒・14会場に分散しており、下記と同じ型でした。

発生日件数締切からの遅れ
2026-08-172件8.5秒 / 22.4秒
2026-08-268件2.0秒〜25.6秒
2026-08-304件1.1秒〜22.6秒
2026-09-033件1.5秒〜6.1秒
2026-09-059件6.1秒〜25.6秒
2026-09-1326件4.3秒〜27.1秒(9月14日更新で追加)
合計52件最小1.1秒・最大27.1秒・平均15.2秒

原因。 予想の自動記録(スナップショット)は、締切の5分前に実行されるようスケジュールされています。ただし当日は24会場ぶんのオッズ取得・結果取得・予想記録が同じ処理待ち行列を順番にこなす設計のため、 複数レースの処理が近い時刻に重なると、実行そのものが数分単位で後ろへずれることがあります。この52件は、そのずれが締切5分前という余裕を使い切り、実際の記録が締切そのものを数秒〜27.1秒だけ過ぎてしまった行です。 このスケジューラーには「記録が遅れても省略せず遅延実行する」という設計が2026年7月15日から入っています(過去に、遅延を理由に記録そのものを省略した結果78レース分の予想が丸ごと欠測した事故が起き、その再発防止のために入れたものです)。 この52件は、この「欠測より遅延を選ぶ」設計が締切をわずかに越えて発動した結果であり、新たに発生した不具合ではありません。

今後もゼロにはならない見込みです。 9月11日の調査時点で、当時の26件を含む累計9,194件の記録タイミングを締切時刻からの差で見ると、中央値は締切の242秒前(約4分前)、 締切60秒前以内に滑り込んだ行が108件ありました。会場の混雑具合(同じ時間帯に締切を迎えるレースの多さ)は日によって変わるため、 同種の数秒〜数十秒規模の締切後記録は、今後も低い頻度で発生し続ける見込みです。記録処理のタイミング(5分前という設定値や処理待ち行列の仕組み)を見直す余地はありますが、 予想モデルや的中判定のロジックそのものを変える話ではないため、今回は現状の判定基準(snapshot_at > race_closed_atを1件でも機械的に除外)を変えずに据え置いています。

なぜ、それでも除外するのか。 遅れは最大でも25.6秒で、この間に出走表や展示のデータが差し替わるわけではありません。「実質的には締切前と同じ内容だ」と説明することもできます。 それでも、例外を作らず機械的に外します。 「締切前に記録した予想だけを載せる」という約束は、snapshot_at > race_closed_at という1本の機械判定だけで守っています。 ここに「1秒なら許容」「30秒までは実質同じ」といった人間の裁量を1つでも入れた瞬間、その約束は外から検証できないものに変わります。だから秒数にかかわらず除外します。

除外して数字が良くなっているわけではありません。 除外した52件だけを見ると本命1着55.77%・複勝圏84.62%(3連単完全一致は1件)で、全体平均と大きく変わらない行でした。 52件を含めた場合と除いた場合を並べます。

累計 2026-07-12〜09-13母数本命1着2連対複勝圏3連単完全一致
52件を除外(本ページの方式)9,62256.44%74.79%83.92%9.17%
52件を含めた場合9,67456.44%74.79%83.93%9.13%

差はどの指標も最大0.02ポイントです。都合の悪い行を捨てて数字を上げているのではなく、平均より成績の良い行を含めて捨てています。

週次自動チェックは、今後も「知らせるだけ」に留めます。 本ページの週次自動チェックは「締切後記録が1件でも検出されたら異常として知らせる」設計です(→⑦この数字の読み方)。 上記のとおりこの種の記録は今後も低い頻度で発生し続ける見込みのため、この基準のままでは毎週「異常あり」の判定になり続けます。 そのため現時点では、この仕組みは「チェックはするが自動送信はしない(dry-run)」設定のまま据え置き、ページの数値は今回のように運営者が内容を確認したうえで手動更新します。

この調査の生データはevidence/current_status_20260910.json、締切後記録52件の日時・遅延秒数の全件明細はevidence/late_snapshot_detail_20260914.json(9月11日調査時の26件の詳細はlate_snapshot_detail_20260911.json)で確認できます。

予想自体が記録されなかったレースについて。 対象期間(2026年7月12日〜9月13日)中に実際に行われ結果が確定したレースは10,076件でした。このうち標準AI予想が記録されているのは 9,675件(96.0%)で、残り401件(4.0%)は予想そのものが記録されていません(結果が確定したレースに対応するprediction_logの行が見つからない、という意味です)。 この401件は集計の分子・分母のどちらにも含まれていません──「的中」でも「不的中」でもなく、単純に集計の対象外です。

未記録の内訳(日別): 07-12(稼働初日)177件・07-13 71件・07-14 60件・07-15 78件・07-16 14件・08-16 1件。稼働初期の5日間(07-12〜07-16)に400件が集中しており、それ以外の期間で未記録が発生したのは08-16の1件のみです。 日別の生データはevidence/coverage_daily.jsonを参照してください。

How It Works

なぜ、結果確定後に予想を更新しないのか。

「AIの的中率」を名乗るサービスは他にもありますが、後から都合よく数字を作れてしまえば意味がありません。BOATCRAFTは締切前に記録し、結果確定後に更新しない運用でこれを防いでいます。

01

締切前に記録する

各レースの投票締切より前に、テトラが出した本命艇・3連単予想・確率をprediction_logに自動で保存します。結果が出る前の「言った時点の数字」です。記録時刻(snapshot_at)と締切時刻(race_closed_at)を両方保存しています。

02

結果確定後に更新しない運用

この記録を書き込むデータベースロールには、更新(UPDATE)・削除(DELETE)の権限がデータベース側の設定でそもそも付与されていません(SELECT・INSERTのみ。2026-08-14に実機で確認し、2026-09-02に同じ方法で再確認)。 そのため、アプリの通常の運用経路では一度記録した行を書き換える手段がありません。ただし、テーブルを所有するデータベース管理者権限まで含めれば技術的に完全な不変性を証明するものではないため、 本ページでは「改ざん不能」という言い切りは使わず、この事実に基づいた表現にとどめています。

03

毎日、自動で答え合わせ

公式の着順が確定すると、バッチ処理が自動で記録と突き合わせ、的中/非的中を判定してprediction_reconciliationに追記します。予想記録時刻と結果照合の履歴を、どちらも同じ仕組みで保存し続けています。

公開する集計では、締切前に記録された予想だけを対象にしています(本ページではvoid_race=false AND late_snapshot=false)。 的中に有利な母集団だけを選んでいるわけではなく、締切後の記録という「後出し疑惑が生じうる行」と、 そもそも結果が存在しないレースを除いているだけです。定義の詳細は②集計の定義・対象・除外条件、 判定ロジックのより詳しい説明は予測手法ページを参照してください。

Calibration

「言った確率どおり」に当たっているか。

BOATCRAFTが訴求したいのは「的中率が高い」ことではなく、言った確率どおりに当たっているか(較正)です。 テトラが「1着になる確率60%」と言った本命艇が、実際に60%前後で1着になっていれば、その数字は信頼できます。 逆に、低い確率の予想が低い的中率で終わるのは失敗ではなく、確率が正直に機能している証拠です。

予想時点の平均確率 実際に1着になった率
0% 50% 100% 36.3% 20-40%帯 n=854 49.3% 40-60%帯 n=1,536 68.8% 60-80%帯 n=1,917 79.2% 80-100%帯 n=332
読み方: 各帯の「予想時点の平均確率」(薄い金)と「実際に1着になった率」(濃い金)がほぼ揃っています (20-40%帯: 予想33.7%→実績36.3% / 40-60%帯: 予想50.4%→実績49.3% / 60-80%帯: 予想69.8%→実績68.8% / 80-100%帯: 予想83.7%→実績79.2%、いずれも直近30日)。 差はどの帯も1.2〜4.5ポイント程度で、テトラの確率は「言ったとおり」に近い水準で当たっています。 0-20%帯は該当データがほぼありません──本命艇は6艇中いちばん確率が高い1艇なので、 理屈のうえでもその確率が20%を下回ることはほとんど起きないためです(隠しているのではなく、構造上そうなります)。
Weekly / Monthly Log

週ごと・月ごとの内訳

良かった週だけを切り出さず、記録が始まった週からすべて期間順に並べています。公開後に成績が悪化した週があっても、 さかのぼって削除・非表示にすることはしません。数字は週によって上下します──それ自体が「後から選んでいない」ことの証拠です。

期間レース数本命1着複勝圏3連単完全一致
2026-W2807-12(単日・稼働初日)1540.0%86.7%6.7%
2026-W2907-13〜07-1991553.8%84.3%8.0%
2026-W3007-20〜07-261,11654.8%81.3%10.3%
2026-W3107-27〜08-021,05457.8%84.8%10.0%
2026-W3208-03〜08-091,00757.8%86.7%7.6%
2026-W3308-10〜08-161,28355.7%84.7%9.4%
2026-W3408-17〜08-231,09054.1%81.9%10.3%
2026-W3508-24〜08-301,08056.4%82.4%8.8%
2026-W3608-31〜09-061,06859.1%83.9%8.1%
2026-W3709-07〜09-1399459.0%85.6%9.9%

※ W28(稼働初日・n=15)は母数が小さいため、傾向を読むときは参考程度に。全10週の合計n=9,622は、上記「記録開始からの累計」と一致します。

期間レース数本命1着複勝圏3連単完全一致
2026年7月07-12〜07-312,80054.7%83.1%9.1%
2026年8月08-01〜08-314,90456.3%84.0%9.2%
2026年9月09-01〜09-13(進行中)1,91859.4%84.9%9.3%

3連単の完全一致率は週によって6.7%〜10.3%の範囲で動いています。この振れ幅自体が母数(1週間で約700〜1,300件)相応のばらつきであり、 毎週「絶好調」と言えるような一本調子の数字ではありません。数字が動く様子ごと、そのまま載せています。

Philosophy

なぜ、数字を盛らないか。

「的中率○○%」を売り文句にする予想サービスは珍しくありません。しかしBOATCRAFTがこのページで目指しているのは 「すごいでしょう」ではなく「言ったとおりでしょう」です。この2つは似ているようで、作り方が正反対になります。

的中率の自慢(やらない)較正の開示(やる)
主役調子が良かった日全ての日(当たりも外れも)
自信度の低い予想見せない・隠す見せる(低い的中率でも「それが正しい」ことの証明になる)
大穴的中ヒーロー扱い全体の中の1行として淡々と記録
目的「すごいでしょ」「言ったとおりでしょ」

競合サービスがこの形式を簡単に真似できないのは、真似した瞬間に自分たちの外れも同じ土俵で公開することになるからです。 BOATCRAFTは「当たった実績」ではなく「記録の透明性」そのものを差別化にしています。

回収率・利益・勝率の保証はこのページに出しません。 出すのは「言った確率どおりに当たっているか」という較正の話と、過去の記録に基づく検証結果だけです。 投資としての損得を示す表現(回収率・儲かる・勝てる・保証する 等)は、BOATCRAFTの表記ルール上使用しません。
How To Read

この数字の読み方。

この数字は、アプリでつまみを調整した後の予想実績ですか?
いいえ。このページの数字は指定時刻に自動記録した標準AI予想(23つまみを調整する前のAI出力そのもの)の検証結果です。ユーザーがアプリで実際に見る予想や、つまみを動かした後の予想の実績を記録する仕組みは、現在別途整備を進めています。将来的にこのページ、またはアプリ内の表示に反映する予定です。
「複勝圏」とは具体的に何を指しますか?
本命(予想1位)艇が、実際の着順で3着以内に入った割合です(SQL上はhit_top3という判定列)。舟券として発売されている「複勝」の的中条件とは異なる場合がある、集計上の呼称としてお読みください。同様に「2連対率」は本命艇が2着以内だった割合(hit_top2)です。
「3連単の完全一致」とは具体的に何ですか?
各艇の単勝確率をもとに、最も確率が高い順に3艇を並べた1-2-3着の組み合わせを1点選び、それが実際の着順3艇の並び順と完全に一致した割合です(SQL上はhit_trifecta)。全120通りから機械的に1点を選ぶ、最も厳しい的中条件で判定しています。
記録は本当に書き換えられないのですか?
「改ざん不能」という言い切りはしていません。この記録を書き込むアプリ用データベースロールには更新(UPDATE)・削除(DELETE)の権限が付与されておらず(2026-08-14に実機で確認・2026-09-02に再確認・SELECTとINSERTのみ)、アプリの通常の運用経路では書き換えられません。ただし、テーブルを所有するデータベース管理者権限まで含めれば技術的に完全な不変性を証明するものではないため、「締切前に記録された予想を結果確定後に更新しない運用」という事実に基づいた表現にとどめています。
記録されなかったレースはありますか?
あります。対象期間中に実際に行われた10,076レースのうち、401件(4.0%)は標準AI予想そのものが記録されていません。うち400件は稼働初期(2026年7月12日〜16日の5日間)に集中しており、それ以外の期間で発生したのは08-16の1件のみです。この401件は集計の分子・分母どちらにも含まれていません。詳しくは②集計の定義・対象・除外条件、日別の生データはevidence/coverage_daily.jsonを参照してください。
数字はどのくらいの頻度で更新されますか?
締切後記録などの異常が無いかを毎週チェックするだけの仕組み(VPS cron・毎週月曜6:15 JST)は2026年9月11日に稼働を開始しました。ただしこれは「異常が無いか見て知らせる」だけで、ページの数値を書き換える権限は持たせていません。週次で自動更新する仕組み(update_proof_page.py)自体は実装済みですが、まだ稼働は開始していません(公開ステップは無効化フラグで封印しています)。異常検知の基準は明確に固定しています──累計・直近30日・直近7日のいずれかの区分で、本命1着率・2連対率・複勝圏率・3連単完全一致率のうちいずれか1つでも前回実行時点の同一区分の値から5ポイント以上動いた場合、または件数が前回の50%未満に急減した場合、件数が0件の場合、締切後記録・未突合が1件でも検出された場合は、自動更新を停止し、人間の確認を経てから再開する設計です。集計定義・SQLや文言そのものを変える場合も同様に自動停止します。

【2026-09-14 現況】この停止条件のうち「締切後記録が1件でも検出された場合」は現在も成立しています(累計52件・原因はに記載のとおり判明済み。ただし今後もこの種の記録は低い頻度で発生し続ける見込みのため、ゼロにはならない見通しです)。 そのため上記のヘッドラインKPIは、この52件を除外したうえで今回・運営者が内容を確認して手動で更新しました。自動チェックの仕組み自体は「知らせるだけ(dry-run)」のまま据え置き、通知の自動送信(apply)には今回は切り替えていません──現在の基準のままapplyにすると、ゼロにならない前提の事象で毎週「異常あり」を送り続けることになるためです。この点は今後の課題として運営側に申し送っています。
Disclaimer

免責事項。

この予想を、アプリで確認する。

テトラの予想は毎日、全国24会場ぶん自動で記録・答え合わせされています。アプリでは今日のレースの予想確率をそのまま確認できます。

App Store で見る → 予測手法を読む →
— この答え合わせは、どこの話か —
競艇AI予想の仕組み ── 作り方から、答え合わせまで →

このページの検証は、競艇AI予想全体のうち「答え合わせ」の部分です。予測の作り方から検証までの流れは、まとめページで通して読めます。