レース検証

最終オッズの変動を検証する記録方法

途中オッズ、購入時オッズ、最終オッズを時刻付きで残し、欠測や結果判明後の書き換えを避けながら変動を検証する表の作り方を解説します。

  • #最終オッズ
  • #オッズ変動
  • #検証
  • #記録
  • #公営競技

投票前に見たオッズと、レース後に表示される最終オッズが違っていた経験は珍しくありません。しかし、「締切直前に下がった組合せは来やすい」といった印象を確かめるには、結果だけでなく、いつ、どの画面で、どの数字を見たかを先に固定する必要があります。

この記事では、JRAの競馬を主な例に、途中オッズ、購入時オッズ、最終オッズを同じ表へ残し、結果と結合するまでの手順を整理します。競輪、ボートレース、オートレースにも記録の骨格は応用できますが、発売締切、オッズの表示単位、公式結果の項目は主催者ごとに異なります。実際に使うときは対象主催者の公式情報で定義を確認してください。

ここで作る記録は、過去の変動を同じ条件で比較するためのものです。将来の的中や利益を保証する指標ではなく、投票を勧めるものでもありません。オッズの決まり方そのものは、先にオッズの決まり方と控除率で確認できます。

途中オッズと最終オッズの違い

JRAはオッズを「勝馬投票券が的中した場合の概算払戻率」と説明し、100円に対する倍率で表示しています。単勝5.0倍なら、100円の投票券が的中したときの払戻金は500円という読み方です。ただし、同着など競走結果によっては、JRAが発表した最終オッズと異なる率で払戻金が決まる場合があります。

途中オッズは、発売途中までに受け付けられた投票をもとに画面へ示された値です。その後も投票が加わるため、同じ買い目の表示は変わり得ます。JRAの払戻対象総額は、勝馬に投票された金額、勝馬以外に投票された金額、勝馬の数、投票法ごとの率などを使って算出されます。固定価格で販売される商品とは違い、購入操作の時点で見た数字が、そのまま最終的な払戻倍率として固定される仕組みではありません。

記録上は、次の三つを別の列にします。

記録する値意味主な用途
途中オッズあらかじめ決めた観測時刻に表示された値時間帯ごとの変化を見る
購入時オッズ購入判断または購入操作の直前に確認した値自分が見ていた条件を残す
最終オッズ発売終了後に公式結果で確認した値途中値との変化を確定する
払戻金競走確定後の公式払戻額同着、返還などを含む実結果を残す

「購入時オッズ」と「最終オッズ」を同じ列へ上書きすると、自分が判断した時点の情報が消えます。また、最終オッズと払戻金も同一視しません。同着、出走取消、競走除外、返還の有無は別列で残します。

取得時刻を固定する

オッズ変動を比較するには、毎回同じ基準時刻で観測します。「気になったとき」「大きく動いたとき」だけ記録すると、変動が目立つレースばかりが残るからです。

扱いやすい基準は、発走予定時刻から逆算した相対時刻です。たとえば「30分前」「10分前」「5分前」のように観測点を決めます。ここで示す時刻は記録設計の架空例であり、公式の更新時刻ではありません。取得元の画面がいつ更新されたかを確認できない場合は、自分が画面を確認した時刻だけを記録し、表示値の生成時刻だと決めつけないようにします。

最低限、次の列を用意します。

列名記録例注意点
race_key2026-01-05_Nakayama_01日付・場・レース番号を一意にする
scheduled_start10:05発走予定時刻。変更時は別列にも残す
observation_pointT-10発走予定10分前などの基準
observed_at09:55:08実際に確認した時刻を秒まで残す
sourceJRA公式オッズ画面サービス名と画面種別を残す
bet_type単勝券種を混ぜない
selection3馬番または組合せ
displayed_odds5.0画面に示された値を転記する
statusobserved観測、欠測、発売中止などを区別する

JRAのA-PATによる中央競馬の当日発売は、2026年の案内では各レース発走時刻の1分前が発売締切です。一方、即PATで扱う地方競馬・海外競馬は発走予定時刻の2分前と案内されています。つまり、「発走直前」という言葉だけでは、競走や投票経路の条件をそろえられません。対象、年度、発売経路を記録し、締切は当日の公式案内で再確認します。

発走予定時刻が変更された場合に備え、最初に取得した予定時刻と、最終的な発走時刻を分けます。観測点はその時点で公表されていた発走予定時刻に対して計算し、あとから変更後の時刻へ機械的に付け替えません。

購入時点の数字を残す

購入したレースを検証する場合は、観測表とは別に購入記録を作ります。JRAの即PAT案内では、入力した投票内容をJRAのコンピューターが正常に受信し、発売金として合算された時点で契約が成立すると説明されています。契約成立後は、出走取消、騎手変更、馬場状態の変更などがあっても、投票券の取消や変更はできないとされています。

そのため、「買おうと思った時刻」と「受付が成立した時刻」を分けるのが安全です。

列名内容
decision_at購入すると決めた時刻
odds_seen_at購入直前にオッズを確認した時刻
odds_seenその時点で画面に表示されていたオッズ
submitted_at購入操作を送信した時刻
accepted_at受付番号などで成立を確認した時刻
stake購入額
receipt_id受付番号など照合に必要な識別子
purchase_status成立、未成立、要確認

通信遅延や画面更新の間に数字が動く可能性があるため、odds_seenを「購入価格」や「確定倍率」と呼ばないようにします。これはあくまで購入直前に観測した表示値です。受付番号を確認できなかった場合も、未成立と即断せず、公式の投票内容照会で確認します。

JRA投票照会サービスは、過去60日間の投票内容を確認できると案内しています。保存期間や表示項目は将来変わる可能性があるため、検証を継続するなら定期的に自分の記録へ転記し、確認日は残します。購入しなかったレースでは、購入関連の列を空欄にせずnot_purchasedと記録すると、記入漏れと区別できます。

一般的なレース記録の土台はレース検証の記録のつけ方で説明しています。本稿のオッズ表も、購入額、払戻額、判断理由を含むレース記録へ後から結合できる形にします。

変動率を計算する

オッズの動きは、差額と変動率の両方で残します。購入時オッズを基準に最終オッズを比べる場合、計算式は次のとおりです。

オッズ差 = 最終オッズ − 購入時オッズ

オッズ変動率(%)=(最終オッズ − 購入時オッズ)÷ 購入時オッズ × 100

架空例として、購入時5.0倍、最終4.0倍なら、オッズ差はマイナス1.0、変動率はマイナス20%です。購入時2.0倍、最終1.8倍なら、差はマイナス0.2、変動率はマイナス10%です。差だけを見ると前者の動きが大きく見えますが、変動率にすると出発点に対する大きさを比較できます。

架空例購入時最終変動率
A5.04.0-1.0-20.0%
B2.01.8-0.2-10.0%
C3.03.6+0.6+20.0%

数値が下がる変化を「短縮」、上がる変化を「上昇」と記述する場合も、表では正負の符号を残します。文章の表現だけに頼ると、集計時に向きを取り違えやすいためです。

券種は分けて集計します。単勝の5.0倍と3連単の5.0倍は、同じ倍率でも買い目の構造が違います。また、複勝やワイドのようにオッズが幅で表示される場合、上限、下限、中央値のどれを使うかを検証開始前に決めます。公式仕様を確認できないまま一つの値へ変換するなら「※要確認」とし、その列を主要分析に使いません。

変動率だけで有利不利を決めないことも重要です。倍率は投票分布から動くため、下落そのものが的中を示すわけではありません。比較するときは券種、競馬場、距離、出走頭数、人気帯、観測時刻をそろえ、少数の印象的な事例から結論を出さないようにします。

締切直前データの欠測を処理する

締切直前の観測は、通信、画面更新、発走時刻変更、操作の遅れによって欠けやすい部分です。欠測したセルへ直前の数字をコピーすると、本当は観測していない値が記録に混ざります。空欄のままにする方法も、未観測なのかゼロなのか判別しにくいため避けます。

欠測理由をコード化すると、後の集計で除外条件を再現できます。

status意味集計時の扱い
observed基準内に取得できた通常集計へ含める
late許容時間を過ぎて取得した別集計または除外
missed操作できず未取得値を補完しない
unavailable公式画面で確認できなかった原因確認まで保留
schedule_changed発走予定時刻が変わった変更前後を分ける
cancelled発売または競走が中止通常レースから除外

たとえばT-5の許容幅を「予定時刻の前後30秒」と決めたなら、4分10秒前に取得した値をT-5へ入れずlateとします。許容幅の30秒は分析者が決める架空の運用例であり、主催者の公式基準ではありません。検証開始後に結果を見て幅を広げないことが大切です。

締切直前が欠けたレースだけを除外するときは、除外件数と理由別件数も示します。欠測が多い時間帯や人気帯に偏っていれば、残ったデータだけの結果も偏る可能性があります。補完値を使う分析を別に試す場合も、実測値とは別列にし、補完方法と対象件数を明記します。

結果と結合する

観測が終わったら、公式結果から最終オッズ、着順、払戻金、返還、競走の成立状況を取得し、race_keyと買い目の識別子で結合します。馬名だけを鍵にすると、表記変更や同名に近い文字列で誤結合するおそれがあります。開催日、競馬場、レース番号、券種、馬番または組合せを使います。

結果表には少なくとも次を残します。

  • 最終オッズと取得元
  • 確定着順
  • 的中フラグ
  • 100円当たりの公式払戻金
  • 自分の購入額と払戻額
  • 返還額
  • 同着、取消、除外、中止などの注記
  • 結果を取得した日時

JRAは、払戻を裁決委員が確定した着順に基づいて行うと説明しています。出走取消や競走除外があった場合は、券種と組合せに応じて投票券が返還されます。また、同着時には最終オッズと異なる率による払戻金となる場合があります。したがって、最終オッズから払戻金を逆算して実績値を作らず、公式払戻金を別に取得します。

購入成績を評価するときは、的中率だけでなく購入額と払戻額を使います。計算方法は回収率という物差しを参照してください。オッズ変動の検証表では、「最終オッズが下がったか」と「的中したか」と「払戻額が購入額を上回ったか」を別々の列にし、一つのラベルへまとめない方が再集計しやすくなります。

後知恵を防ぐ検証表

最後に、観測時点の情報と結果判明後の情報を物理的に分けます。簡単な方法は、observationspurchasesresultsanalysisの四つの表を作り、結果が出る前は前二つだけを編集する運用です。

検証開始前に、次の項目を一枚のルール表へ書きます。

  1. 対象期間、主催者、競馬場、券種
  2. 観測点と許容時間
  3. 購入の有無にかかわらず記録する範囲
  4. 変動率の基準値と丸め方
  5. 欠測、返還、同着、中止の処理
  6. 最低限集めるレース数
  7. 比較する指標と検証終了日

観測後の表には、作成日時と最終更新日時を付けます。可能なら観測終了時に読み取り専用の複製を保存し、結果入力用の表へ渡します。途中で列の定義を変えた場合は過去データを黙って書き換えず、ルールの版番号と変更日を記録します。

最終集計では、全件数、観測成功件数、欠測件数、購入件数、返還件数を最初に示します。そのうえで、変動率の平均だけでなく中央値や分布も確認します。極端な一件で平均が動くことがあるためです。的中したレースだけを取り出して「直前に下がっていた」と説明するのではなく、不的中を含む全対象を同じ基準で集計します。

この表で分かるのは、定めた対象と期間において、どの程度のオッズ変動が観測され、結果とどのような関係が見えたかまでです。原因が大口投票だった、情報を持つ参加者が動いた、次回も同じ傾向になる、といった説明は記録だけでは確定できません。観測事実、計算結果、解釈、未確認事項を分けて書けば、後から条件を変えて再検証できます。

記録から集計までのまとめ

各工程で「いつ確定した情報か」を分けておくと、結果判明後の上書きや欠測の埋め合わせを防ぎやすくなります。

工程先に固定するもの後から追加するもの避けること
観測設計対象、券種、観測点、許容時間ルール変更日と版番号結果を見て観測条件を変える
発売中実観測時刻、表示オッズ、取得元欠測理由見ていない値を直前値で補う
購入時判断時刻、送信時刻、受付確認、購入額公式照会との突合結果表示オッズを確定倍率と呼ぶ
競走確定後最終オッズ、着順、払戻金、返還同着・取消・除外などの注記最終オッズから払戻金を逆算する
集計対象件数、欠測件数、除外規則中央値、分布、条件別比較的中例だけを抜き出して一般化する

よくある質問

最終オッズはどこで確認できますか?

JRA公式サイトでは、終了したレースのオッズ画面または「レース結果」で最終オッズを確認できます。記録にはURLだけでなく、取得日時、開催日、競馬場、レース番号、券種、買い目も残します。

購入時に表示されたオッズで払戻金は確定しますか?

確定しません。購入直前に見た値は発売途中の表示であり、その後の投票や競走除外、同着などによって、最終オッズや実際の払戻率と一致しない場合があります。購入時表示、最終オッズ、公式払戻金は別々に保存します。

最終オッズが下がった馬は的中しやすいですか?

下落だけでは判断できません。少なくとも観測時刻、券種、人気帯、出走頭数などをそろえ、不的中と欠測を含む全対象で比較する必要があります。観測された関連が、将来も続くことや原因関係を示すとは限りません。

締切直前のオッズを取り逃したらどうしますか?

直前値で埋めず、missedlateとして理由と実時刻を残します。除外する場合も件数を示し、欠測が特定の条件へ偏っていないか確認します。

複勝やワイドの幅オッズはどう記録しますか?

下限と上限を別列で保存し、一つの値へ上書きしません。中央値などへ変換する場合は計算列を分け、変換規則を検証開始前に固定します。詳しくは複勝オッズの幅はなぜある?払戻金と記録方法も参照してください。

関連記事

一次情報の確認記録(2026-07-24確認)