ここに載っているのは、テトラが各レースの投票締切前に自動記録した標準AI予想(つまみ調整前のAI出力そのもの)を、 結果確定後に機械的に照合した検証結果です。アプリでユーザーが実際に見る予想や、16のつまみを調整した後の成績とは一致しません。 良い週だけを選んで見せることも、悪い週を隠すこともしていません。稼働開始週から直近の完了週まで、すべての期間をそのまま並べています。
独立再現の範囲について。 集計SQL全文と実行結果は公開していますが、入力データである予想記録そのもの(生データ)は非公開です。 そのため読者は「この計算式は正しそうだ」と検証することはできても、「同じ入力データから本当に同じ結果が出るか」を自分の手元で独立に再現することはできません。 ここで公開しているのは公開結果・集計定義の検証パックであり、「引用しやすい」ことと「独立に再現できる」ことは別物です。 本ページはBOATCRAFTの答え合わせページに続く初回公開版で、基準日を固定した過去版との再現比較(固定再現試験)はまだありません。次回更新以降、順次追加していきます。
3連単の「完全一致」は最大で504通り(9車立ての場合)にもなる組み合わせから1点を言い当てる、最も厳しい的中条件です。 的中率だけを見て「低い」と感じるかもしれませんが、テトラが実際に見せている本命は 1着候補としては45.57%、3着以内でみれば78.44%の実績でした(直近30日・過去の記録に基づく集計であり、将来の的中を保証するものではありません)。 的中の意味は指標によって全く違うので、④較正チャートで「言った確率どおりか」を別角度から確認できるようにしています。 各指標の分子・分母の正確な定義は②集計の定義・対象・除外条件にまとめています。
※ 累計(記録開始07-30〜基準日09-13、n=3,388)は 本命1着率44.78%・2車複的中率32.79%・複勝圏78.28%・3連単完全一致6.61%です。 実際に使用した集計SQL全文はevidence/aggregation_sql.txt、 公開結果・集計定義の検証パックはevidence/current_result.jsonで確認できます。
「的中率」という言葉は指標によって意味が変わります。ここでは各数値が何を分子・分母として計算されているかを、 実際に使っているSQL定義のまま明記します。競輪は7車立てを中心に5〜9車で開催されるため、指標名は競輪の言葉(本命1着率・2車複・複勝圏・3連単)で統一しています。
| 指標 | 分子(何をカウントするか) | 分母 |
|---|---|---|
| 本命1着率 | 本命(予想1位)車が、実際の着順で1着だった件数 | クリーン母集団 (void_race=false AND late_snapshot=false AND no_valid_snapshot=false) |
| 2車複的中率 | 予想確率上位2車(本命・対抗)が、順不同で実際の1着・2着の車と完全に一致した件数 ※車券の「2車複」の的中条件に相当する集計上の呼称です | |
| 複勝圏(3着以内)率 | 本命車が、実際の着順で3着以内だった件数 ※統計用語としての呼称で、車券として発売されている「複勝」の的中条件そのものではありません | |
| 3連単完全一致率 | 予想確率が高い順に3車を並べた1-2-3着の組み合わせ(1点)が、実際の着順3車と完全に一致した件数 |
対象期間: 2026年7月30日(記録開始)〜2026年9月13日(直近の突合完了日)。以下の条件に該当する行は、分子・分母のどちらにも含まれません。
| 除外区分 | 定義 | 件数(全期間) |
|---|---|---|
| 中止・返還等 void_race=true | 結果確定から2日経っても着順が確認できなかったレース。中止・返還等とみなし、的中判定をせずに終端した行 | 4件 |
| 締切後記録 late_snapshot=true | 締切(close_at_used)以前のスナップショットが1つも無く、記録の中で最も早い行を参考値として代用した行。「締切前記録」の前提と矛盾するため除外 | 0件 |
| 有効スナップショット無し no_valid_snapshot=true | 締切後記録と同時に立つフラグ(同じ事象の別名) | 0件 |
予想自体が記録されなかったレースについて。
対象期間(2026年7月30日〜2026年9月13日)中に、結果テーブル(keirin_results)に記録が存在するレースは3,531件でした。このうち標準AI予想が記録されているのは
3,392件(96.1%)で、残り139件(3.9%)は予想そのものが記録されていません。
この139件は集計の分子・分母のどちらにも含まれていません──「的中」でも「不的中」でもなく、単純に集計の対象外です。内訳は次のとおりです。
| 稼働フェーズ | 期間 | 未記録件数 | 備考 | |
|---|---|---|---|---|
| 初期稼働(稼働初日) | 2026-07-30(単日) | 70 | 66 | システムは当日22:55に稼働開始。それ以前の日中〜夜のレース(66件)は記録の仕組みがまだ動いていなかったため未記録。 |
| モーニング競輪の記録漏れ | 2026-07-31〜2026-08-21(23日間) | 73 | 73 | 各開催の1〜3R・締切8:25〜9:06(通称モーニング競輪)の対象レースは、この期間100%が未記録(73件/73件)。早朝帯の締切検知に使うcron収集窓の設定漏れが原因。2026-08-21に修正。 |
| 修正後 | 2026-08-22〜2026-09-13(23日間) | 1,800 | 0 | モーニング競輪を含め、未記録0件が継続。 |
未記録の内訳はevidence/coverage_daily.jsonに、レース単位の生データ(日付・開催・レース番号・締切時刻)を含めて公開しています。 モーニング競輪(各開催の1〜3R、締切8:25〜9:06)の記録漏れは、早朝帯の締切検知に使うcron収集窓の設定漏れが原因で、2026-08-21の修正以降は欠測0件が続いています。
「AIの的中率」を名乗るサービスは他にもありますが、後から都合よく数字を作れてしまえば意味がありません。KEIRINCRAFTは締切前に記録し、結果確定後に更新しない運用でこれを防いでいます。この作法は姉妹アプリBOATCRAFTで先に形にしたものを踏襲しています。
各レースの投票締切が30分以内に迫ると、cronが5分おきにテトラの予想計算(アプリの表示経路と同じ計算)を呼び出し、本命車・確率・全車の順位付けをkeirin_prediction_logに追記します。1レースにつき複数回スナップショットを撮り、締切時刻(close_at_used)と記録時刻(snapshot_at)を両方保存しています。
この記録を書き込むデータベースロール(keirincraft)には、更新(UPDATE)・削除(DELETE)の権限がデータベース側の設定でそもそも付与されていません(SELECT・INSERTのみ。2026年9月11日に実機で確認)。
日次の突合バッチも「一度書いた行は書き換えない(INSERT ON CONFLICT DO NOTHING)」実装です。ただし、テーブルを所有するデータベース管理者権限まで含めれば技術的に完全な不変性を証明するものではないため、
本ページでは「改ざん不能」という言い切りは使わず、この事実に基づいた表現にとどめています。
公式の着順が確定すると、深夜1時台に日次バッチが自動で記録と突き合わせ、締切前に一度も撮れていなかった行は参考値扱いにしつつ、的中/非的中を判定してkeirin_prediction_reconciliationに追記します。結果が2日経っても見つからないレースは中止・返還等とみなして終端します。
公開する集計では、締切前に記録された予想だけを対象にしています(本ページではvoid_race=false AND late_snapshot=false AND no_valid_snapshot=false)。
的中に有利な母集団だけを選んでいるわけではなく、締切後の記録という「後出し疑惑が生じうる行」と、
そもそも結果が存在しないレースを除いているだけです。定義の詳細は②集計の定義・対象・除外条件、
判定ロジックのより詳しい説明は競輪AI予想の仕組みページを参照してください。
KEIRINCRAFTが訴求したいのは「的中率が高い」ことではなく、言った確率どおりに当たっているか(較正)です。 テトラが「1着になる確率60%」と言った本命車が、実際に60%前後で1着になっていれば、その数字は信頼できます。 逆に、低い確率の予想が低い的中率で終わるのは失敗ではなく、確率が正直に機能している証拠です。
良かった週だけを切り出さず、記録が始まった週からすべて期間順に並べています。公開後に成績が悪化した週があっても、 さかのぼって削除・非表示にすることはしません。数字は週によって上下します──それ自体が「後から選んでいない」ことの証拠です。
| 週 | 期間 | レース数 | 本命1着 | 2車複 | 複勝圏 | 3連単完全一致 |
|---|---|---|---|---|---|---|
| 2026-W31 | 07-30〜08-02(稼働初日(07-30)を含む・週の前半のみ) | 244 | 40.16% | 33.20% | 77.46% | 6.56% |
| 2026-W32 | 08-03〜08-09 | 498 | 43.98% | 27.71% | 77.91% | 6.63% |
| 2026-W33 | 08-10〜08-16 | 455 | 44.40% | 32.75% | 77.36% | 5.49% |
| 2026-W34 | 08-17〜08-23(モーニング競輪の記録漏れ修正(08-21)をまたぐ週) | 564 | 45.39% | 34.04% | 78.90% | 6.03% |
| 2026-W35 | 08-24〜08-30 | 521 | 46.26% | 30.33% | 77.93% | 6.33% |
| 2026-W36 | 08-31〜09-06 | 556 | 44.06% | 35.25% | 77.34% | 7.55% |
| 2026-W37 | 09-07〜09-13 | 550 | 46.55% | 35.82% | 80.36% | 7.45% |
※ 稼働初日を含む週と、週の途中までしか無い最新週は母数が小さい/期間が不完全なため、傾向を読むときは参考程度に。全週の合計n=3,388は、上記「記録開始からの累計」と一致します。
| 月 | 期間 | レース数 | 本命1着 | 2車複 | 複勝圏 | 3連単完全一致 |
|---|---|---|---|---|---|---|
| 2026年7月 | 07-30〜07-31(稼働初日を含む2日間のみ) | 93 | 41.94% | 35.48% | 79.57% | 9.68% |
| 2026年8月 | 08-01〜08-31 | 2,281 | 44.67% | 31.65% | 77.99% | 6.23% |
| 2026年9月 | 09-01〜09-13(進行中(09-01〜09-13)) | 1,014 | 45.27% | 35.11% | 78.80% | 7.20% |
3連単の完全一致率は週によって5.49%〜7.55%の範囲で動いています。この振れ幅自体が母数(1週間で約250〜600件)相応のばらつきであり、 毎週「絶好調」と言えるような一本調子の数字ではありません。数字が動く様子ごと、そのまま載せています。
「的中率○○%」を売り文句にする予想サービスは珍しくありません。しかしKEIRINCRAFTがこのページで目指しているのは 「すごいでしょう」ではなく「言ったとおりでしょう」です。この2つは似ているようで、作り方が正反対になります。
| 的中率の自慢(やらない) | 較正の開示(やる) | |
|---|---|---|
| 主役 | 調子が良かった日 | 全ての日(当たりも外れも) |
| 自信度の低い予想 | 見せない・隠す | 見せる(低い的中率でも「それが正しい」ことの証明になる) |
| 大穴的中 | ヒーロー扱い | 全体の中の1行として淡々と記録 |
| 目的 | 「すごいでしょ」 | 「言ったとおりでしょ」 |
競合サービスがこの形式を簡単に真似できないのは、真似した瞬間に自分たちの外れも同じ土俵で公開することになるからです。 KEIRINCRAFTは「当たった実績」ではなく「記録の透明性」そのものを差別化にしています。
hit_in3という判定列)。車券として発売されている「複勝」の的中条件とは異なる場合がある、集計上の呼称としてお読みください。void_race=false AND late_snapshot=false AND no_valid_snapshot=false)。除外件数・比率、予想が記録されなかったレースの規模は②集計の定義・対象・除外条件に明記しています。テトラの予想は毎日、全国の競輪場ぶん自動で記録・答え合わせされています。アプリでは今日のレースの予想確率をそのまま確認できます。
App Store で見る → 予測の仕組みを読む →