# 検証パック: 試走順位とハンデ位置が食い違うときの勝率比較

このディレクトリは、AUTOCRAFTブランドの記事「試走とハンデの本命が割れたら ── 試走側の1着率37.89%」で示した数値の集計根拠を公開するものです。記事では、本命が食い違ったレースで試走側の1着率がハンデ側を上回るという結果を示していますが、差が生じた原因までは検証していません。集計定義・再現用SQL・集計結果・公開時点との差異確認用ハッシュ値を含みます。

## 集計定義

- **データベース**: AUTOCRAFTデータベース(公開されているオートレース結果を集計したもの)
- **対象テーブル**: autorace_entries(出走・試走・ハンデ情報)、autorace_results(着順情報)
- **母集団**: trial_run_time_sec(試走タイム)とhandicap_m(ハンデ)がともに記録されており、retire_flag=0(非故障)かつabsent IS NULL(非欠場)のレース。さらに「試走単独1位」(そのレースでtrial_run_time_secが単独最小)と「ハンデ単独最大」(そのレースでhandicap_mが単独最大)がそれぞれ一意に定まるレースのみを対象(同着が複数車ある場合はそのレースごと除外)
- **集計期間**: 2023年4月1日〜2026年8月17日
- **指標**:
  - 試走単独1位車とハンデ単独最大車が「一致」したレース(n=5,163)の1着率
  - 「不一致」だったレース(n=3,254)で、試走1位車・ハンデ最大車・どちらでもない車、それぞれが1着になった割合

## 集計日時・データ基準日

- **集計実行日**: 2026年8月17日
- **データ基準日**: 2026年8月17日

## 除外条件

- trial_run_time_sec または handicap_m が未記録のレースは除外
- retire_flag=1(故障)、absent IS NOT NULL(欠場)のレースは除外
- 試走タイムが複数車で同着(単独最小でない)のレースは除外
- ハンデが複数車で同着(単独最大でない)のレースは除外
- 着順(finish_rank_int)が未記録のレースは除外

## 再現手順

1. `query.sql` を、AUTOCRAFTの本番データベース(PostgreSQL)に対して読み取り専用権限で実行します。接続情報はこのパックには含みません。
2. 2つ目のクエリ(不一致レースでの1着車内訳を直接カウントする方式)の実行結果が `result.json` の `disagree_race_winner_breakdown`(n=3,254、trial_wins_pct=37.89、hcap_wins_pct=14.26、other_wins_pct=47.85)と一致します。この数値が記事本文で採用した数値です。
3. 1つ目のクエリ(一致/不一致の集計)の実行結果が `result.json` の `agree_vs_disagree` と対応します。こちらは着順データが両車ともに揃っている3,251件に限定した集計で、集計方式の違いにより不一致時のハンデ車1着率がわずかに異なります(10.60% vs 14.26%)。記事本文では、1着車を直接数える方式である `disagree_race_winner_breakdown` の数値を採用しています。
4. `manifest.sha256` を使い、お手元の `query.sql` `result.json` `README.md` のSHA-256を、当社が公開時に記録したmanifestと照合することで、公開時点のファイルとの差異を確認できます。

## 注記(限界)

- ハンデの重さが「実力の高さ」を意味するという前提自体は別の集計に基づく解釈であり、本集計はその前提のもとで試走タイムとの優劣を比較したものです。
- 回収率・配当は集計していません。ここで示しているのは「1着率」という的中の話のみです。
- 「同着レースは除外」という定義のため、同着が起きやすいハンデの性質上、対象外になったレースが一定数あります。

## ファイル一覧

- `README.md` — 本ファイル
- `query.sql` — 再現用SQL(接続情報等の機密情報を除去済み)
- `result.json` — 集計結果(数値は原本から改変していません)
- `manifest.sha256` — 上記3ファイルのSHA-256ハッシュ値
