レース開催前から取得可能な、選手・モーター・近況等の事前情報を集めた CSV 群です。
すべて data/programs/ 配下に配置されます。
per-race レース名
data/programs/title/YYYY/MM/DD.csvrace.boatcast.jp の getHoldingList2_YYYYMMDD.json を起源とする、1レース1行の sidecar ファイルです。Programs と同じ「レース名」(予選 / 予選特別 / 準優勝戦 / 優勝戦 / ドラドキ目玉 等) を、開催24場すべてについてレースコードキーで提供します。
race_cards / recent_national / recent_local / motor_stats には レース名 列が無いため、Programs CSV (大きい) を全部ロードせずにレース名だけを取りたい場合に使えます。
レースコード,レース日,レース場コード,レース場,レース回,タイトル,日次,グレード,ナイター,レース名,電話投票締切予定,中止状態
202605020101,2026-05-02,01,桐生,1R,第53回上毛新聞社杯,2日目,IP,N,予選,確定,
レースコード (202605020101): 12桁識別子(他CSVと共通)レース日 (2026-05-02)レース場コード (01): “01”-“24” の2桁ゼロ詰めレース場 (桐生): 場名レース回 (1R)タイトル (第53回上毛新聞社杯): 開催節タイトル日次 (2日目): 開催期間中の何日目かグレード: IP(一般)/ G3 / G2 / G1 / SG / PG1 等ナイター (N): Y / Nレース名 (予選): per-race のレース名(最重要列)電話投票締切予定 (確定): 投票締切時刻、または「確定」「中止」等のステータス文字列(boatcast の表記そのまま)中止状態: 中止 / 順延 / 途中中止 などの状態(通常は空)スケジュール: daily-sync.yml から python scripts/race-title.py --date $TODAY_JST --force が毎日 JST 00:10 に実行され、当日分が再生成されます。boatcast は当日/直近のみを返すため、過去日の本格的バックフィルは不可。
用途: per-race レース名(優勝戦判定など)を Programs を読まずに取得。
レースコードで他CSVに JOIN。
出走表詳細
data/programs/race_cards/YYYY/MM/DD.csvrace.boatcast.jp の bc_j_str3 を起源とする出走表詳細データです。Programs と並行して提供される 追加情報 で、Programs にない項目(全国/当地3連対率、全国平均ST、賞除フラグ、F/L本数、モーター/ボート3連対率、節間14スロット成績)を含みます。学習特徴量の拡張として利用してください。Programs CSV はそのまま維持されます。
レースコード,レース日,レース場コード,レース回,
艇1_登録番号,艇1_選手名,艇1_期別,艇1_支部,艇1_出身地,艇1_年齢,艇1_級別,
艇1_賞除,艇1_F本数,艇1_L本数,
艇1_全国平均ST,艇1_全国勝率,艇1_全国2連対率,艇1_全国3連対率,
艇1_当地勝率,艇1_当地2連対率,艇1_当地3連対率,
艇1_モーターフラグ,艇1_モーター番号,艇1_モーター2連対率,艇1_モーター3連対率,
艇1_ボートフラグ,艇1_ボート番号,艇1_ボート2連対率,艇1_ボート3連対率,
艇1_早見,
艇1_節D1走1_R番号,艇1_節D1走1_進入,艇1_節D1走1_枠,艇1_節D1走1_ST,艇1_節D1走1_着順,
... (節D1走2 〜 節D7走2 まで14スロット × 5項目)
艇2_… (同形式) ...
... 艇6まで ...
202604251712,2026-04-25,17,12R,
3941,池田 浩二,81期,愛知,愛知,48,A1,
,0,0,
0.13,7.88,53.2,71.9,
0.0,0.0,0.0,
0,57,42.9,56.2,
0,35,34.2,52.1,
,
,,,,,12,1,1,0.1,1,5,6,6,0.07,4,11,3,3,0.2,1,...
基本情報:
レースコード (202604251712): Programs / Results と同じ12桁形式の識別子レース日 (2026-04-25): 開催日付レース場コード (17): 場コード (1〜24)レース回 (12R)艇N 基本プロフィール (N=1..6, 各艇26列):
艇N_登録番号: 全国統一登録番号艇N_選手名: 選手名(全角スペースは半角1個に正規化)艇N_期別: 養成所期別(例 “81期”)艇N_支部 / 艇N_出身地: 支部および出身地(bc_j_str3 の 支部:出身地 を分割)艇N_年齢 / 艇N_級別艇N_賞除: 賞金除外フラグ(補欠出走など)。該当時 "賞除"、なければ空。出現率 ~0.8%艇N_F本数 / 艇N_L本数: フライング・出遅れの累積本数(0〜N の整数。空白は0扱い)全国/当地成績(Programs より粒度が高い):
艇N_全国平均ST: 全国期別の平均スタートタイミング艇N_全国勝率 / 艇N_全国2連対率 / 艇N_全国3連対率: 過去6ヶ月(今節除く)艇N_当地勝率 / 艇N_当地2連対率 / 艇N_当地3連対率: 過去3年(今節除く)モーター/ボート:
艇N_モーターフラグ / 艇N_ボートフラグ: 特殊状態フラグ(“1”=該当)艇N_モーター番号 / 艇N_モーター2連対率 / 艇N_モーター3連対率: 使用開始から前節終了時点艇N_ボート番号 / 艇N_ボート2連対率 / 艇N_ボート3連対率: 同上早見:
艇N_早見: 当日2レース出場時の他R番号(整数、bc_j_str3 の "5R" 表記から R を除去)、なければ空節間14スロット成績 (各艇 14 × 5 = 70列):
bc_j_str3 の col[25]..col[38] に対応)艇N_節D{D}走{S}_R番号: そのスロットで出走したレース番号艇N_節D{D}走{S}_進入: 実際の進入コース (1-6)艇N_節D{D}走{S}_枠: 枠番 (1-6)艇N_節D{D}走{S}_ST: スタートタイミング(負値はフライング扱い)艇N_節D{D}走{S}_着順: 着順または特殊トークン。半角1〜6 / F (フライング) / L (出遅れ) / 欠 (欠場) / 転 (転覆) / 妨 (妨害失格) / 落 (落水) / エ (エンスト) / 不 (不完走)。ソースの全角 F L は半角に正規化済みデータソース: https://race.boatcast.jp/hp_txt/{jo}/bc_j_str3_{ymd}_{jo}_{race}.txt。利用可能なのは概ね 2025-05-02 以降。それ以前は Programs を参照してください。
用途: ML特徴量の強化(コース別なし/節間R番号・進入・枠・ST・着順の構造化/3連対率・全国平均ST)。Programs と
レースコードで JOIN して利用します。
枠番別過去10走
data/programs/waku10/YYYY/MM/DD.csvrace.boatcast.jp の bc_j_waku10 を起源とするデータです。各選手が 今回と同じ枠番 で出走した直近10走の着順・進入コース・グレードと、枠番別の集計値(勝率・平均ST・平均スタート順)を含みます。1行 = 1レース(4 メタ列 + 6艇 × 34列 = 208列)。
基本情報: レースコード / レース日 / レース場コード / レース回(Race Cards と同形式)
艇N 枠番別集計 (N=1..6):
艇N_選手名: 選手名(全角スペースは半角1個に正規化)艇N_枠番別勝率: この枠番での勝率艇N_枠番別平均ST: この枠番での平均スタートタイミング艇N_枠番別平均スタート順: この枠番での平均スタート順(1.0〜6.0)艇N 過去10走 (各走3列、過去1走 = 前走 → 過去10走 = 10走前の新しい順):
艇N_過去{n}走_着順: 着順または特殊トークン。半角1〜6 / F / L / 欠 / 落 / 沈 / 転 / 不 / エ / 失 / 妨(全角は半角に正規化済み)艇N_過去{n}走_進入: 実際の進入コース (1-6)。空欄は枠なり進入(ソースが枠と異なる場合のみ値を持つ)艇N_過去{n}走_グレード: そのレースのグレード。IP(一般)/ G3 / G2 / G1 / SG出走歴が10走に満たない場合、古い側のスロットは全列空欄です。
データソース: https://race.boatcast.jp/hp_txt/{jo}/bc_j_waku10_{ymd}_{jo}_{race}.txt(bc_j_str3 と同時に毎朝取得)
用途: 枠番適性の特徴量(同一枠での実績・ST 安定性)。Race Cards と
レースコード+ 艇番で JOIN して利用します。
月間開催日程
data/programs/monthly_schedule/YYYY/MM.csvrace.boatcast.jp の bc_mon_2_{YYYYMM}_{jo} を起源とする全24場の節(開催)一覧です。ソースファイルは取得月を超えて 数ヶ月先の節まで 含むため、将来の開催予定の先読みに使えます。毎日再取得して 月ファイルを上書き するため、月中の日程変更は git 履歴で追跡できます。
場コード: 01〜24(2桁ゼロ詰め)節開始日 / 節終了日: YYYY-MM-DDグレード: IP(一般)/ G3 / G2 / G1 / SGタイトル: 開催タイトル(全角)レース数: 1日のレース数(例 12R)行順は 場コード → 節開始日 の昇順です。
用途: 開催スケジュールの先読み、節単位の集計キー(節開始日は Recent Form・モーター履歴系のキーとしても機能)
全国近況5節
data/programs/recent_national/YYYY/MM/DD.csvrace.boatcast.jp の bc_zensou を起源とする、各艇の全国近況5節(直近の節間成績)を集約したファイルです。Programs にない「節グレード」「節期間(開始日〜終了日)」「着順時系列の生文字列」を含み、ML特徴量として強力です。
レースコード,レース日,レース場コード,レース回,
艇1_登録番号,艇1_選手名,
艇1_前1節_開始日,艇1_前1節_終了日,艇1_前1節_場コード,艇1_前1節_場名,艇1_前1節_グレード,艇1_前1節_着順列,
艇1_前2節_… (同形式) …
… 前5節まで5ブロック ×(艇2〜艇6 同形式)…
202604251712,2026-04-25,17,12R,
3941,池田 浩二,
2026-04-12,2026-04-17,01,桐生,GⅠ,641 216 4 56,
…
基本情報:
レースコード (202604251712)レース日 (2026-04-25)レース場コード (17)レース回 (12R)艇N 識別 (N=1..6):
艇N_登録番号: 全国統一登録番号艇N_選手名: 選手名(全角スペース正規化済)艇N 前K節成績 (K=1..5、K=1が最新):
艇N_前K節_開始日 / 艇N_前K節_終了日: 節期間(YYYY-MM-DD)艇N_前K節_場コード: 場コード (“01”-“24”)艇N_前K節_場名: 場名(全角スペース除去済、例 “鳴門”)艇N_前K節_グレード: “一般” / “GⅢ” / “GⅡ” / “GⅠ” / “SG” / “PG1” など艇N_前K節_着順列: 着順時系列の生文字列。トークン定義:
1-6 (全角): 着順 — ソースが全角のため、ML特徴量化時は半角への変換を検討F: フライング, L: 出遅れ — ソースは全角 F L だが、CSV出力時に半角へ正規化欠: 欠場, 転: 転覆, 妨: 妨害失格, 落: 落水エ: エンスト, 不: 不完走, 沈: 沈没, 失: 失格(妨以外の失格)[N]: 優勝戦の着順 N (例 [1] = 優勝, [4] = 4着) ): 日区切り(同一節内の日違い)データソース: https://race.boatcast.jp/hp_txt/{jo}/bc_zensou_{ymd}_{jo}.txt。場×日×1ファイル(全選手の縦持ち)から、B-fileの艇番↔登録番号で逆引きして横持ちCSVに変換。新人選手で5節未満の場合は末尾セッションが空になります。
用途: 直近の調子・節グレード推移・休場頻度を時系列特徴量化。
艇N_前K節_着順列を文字単位で集計すれば「直近X日の連対率」「F発生数」などを派生できます。
当地近況5節
data/programs/recent_local/YYYY/MM/DD.csvRecent National Form と同一スキーマで、ソースだけ bc_zensou_touchi に差し替わったファイルです(当該レース場での直近5節のみが収録される)。当地適性をML特徴量化するために利用してください。
データソース: https://race.boatcast.jp/hp_txt/{jo}/bc_zensou_touchi_{ymd}_{jo}.txt。スキーマ・列名は Recent National Form と完全一致しているため、両ファイルを (レースコード, 艇N_*) で同列名の prefix 違いとして取り扱えます(実装時は CSV ファイル分離のためそのまま JOIN 不可、必要なら pandas で suffix 付与)。
用途: 当地で過去どのような戦績だったか、当地特化の特徴量に。
モーター期成績
data/programs/motor_stats/YYYY/MM/DD.csvrace.boatcast.jp の bc_mst (モーター期起算日) + bc_mdc (期内モーター詳細) を起源とする、1モーター1行のスナップショットファイルです。
収録範囲: 1日あたりの収録は 当日開催のある場のみ(B-fileから抽出)。24場のうち通常 14〜16 場 (~62%) しか含まれません。休場日のある場は当日のレコードが欠けるため、ML 時系列で利用する際は前回スナップショットからのフォワードフィルを推奨します。
重要な注意: race.boatcast.jp は現在のモーター期のみを返却するため、過去日のバックフィル不可。
記録日以降の日次スナップショットを継続蓄積する設計です。日次バッチ運用が始まった日から有効データが溜まり始めます。
記録日,モーター期起算日,場コード,モーター番号,
勝率,勝率順位,2連対率,2連対率順位,3連対率,3連対率順位,
1着回数,1着順位,2着回数,2着順位,3着回数,3着順位,
連対外回数,出走数,
優勝回数,優勝順位,優出回数,優出順位,
raw_col_21,raw_col_22,
平均ラップ秒,平均ラップ順位,期内初使用日,
整備種別1回数,整備種別2回数,整備種別3回数,整備種別4回数,整備種別5回数,整備種別6回数,
直近メンテ日
2026-04-25,2025-10-19,17,25,
8.1,1,80.0,1,90.0,1,
5,1,3,4,1,26,
1,10,
1,1,1,1,
677,8,
14.89,1,2025-10-22,
0,3,2,0,0,0,
2025-10-24
確度ラベル: ★★★ = JS実装またはデータ分布で確証あり/★★ = 強い状況証拠あり/★ = 仮説段階。
メタ情報:
記録日: スナップショット取得日(= スクリプトの --date 引数、通常は前日JST)モーター期起算日: 当該モーター期の開始日 (bc_mst の値)場コード: “01”-“24”モーター番号: 物理モーター番号勝率系(rate × 100 を /100 に変換し小数点表記、順位は1位が最高):
勝率 / 勝率順位2連対率 (%) / 2連対率順位3連対率 (%) / 3連対率順位着順回数(順位は最大値が1位):
1着回数 / 1着順位2着回数 / 2着順位3着回数 / 3着順位連対外回数: 4着以下+DNF(F・L・欠・転・落・妨など)の合計出走数: 当該モーター期の総出走回数。1着+2着+3着+連対外 == 出走数 が全データで成立Raw 列(意味未確定):
raw_col_21 / raw_col_22: 6.7-7.1 帯の不明指標 + 順位。場ごとに分布が異なる(場06=低め群 vs 場18=高め群、レンジ27以上)ため ML 特徴量化時は場ごとの正規化を推奨。要検証優勝・優出(boatcast の MotorHistory.js で確認済み):
優勝回数 / 優勝順位優出回数 / 優出順位ラップタイム:
平均ラップ秒 (×100 を /100): 14.85前後が宮島の典型値。場ごとに分布が異なる(場06=15.00 / 場18=15.20 など)平均ラップ順位: 値が小さい (=ラップが短い) ほど上位1着+2着+3着 == 0(連対実績ゼロ)のモーターは boatcast 側でラップタイムが算出されないため、平均ラップ秒 / 平均ラップ順位 / 期内初使用日 の3列が連動して空になる(直近サンプルで 3.0% のモーターに該当)日付・整備:
期内初使用日: 当該モーターがその期に初出走した日(連対実績ゼロのモーターでは空)整備種別1回数 〜 整備種別6回数: 6カテゴリ(典型: ピストン/リング/シリンダー/ロアー/キャブレター/その他)の整備実施回数。カテゴリ番号と項目名のマッピングは未確認直近メンテ日: 直近メンテ実施日(または次回予定日の可能性。要確認)データソース:
https://race.boatcast.jp/hp_txt/{jo}/bc_mst_{jo}.txt — モーター期起算日https://race.boatcast.jp/hp_txt/{jo}/bc_mdc_{period_yyyymmdd}_{jo}.txt — 期内モーター詳細用途: Programs の
モーター2連対率の上位互換。3連対率・優勝回数・整備履歴・平均ラップまで取れるため、モーター強さの強力な特徴量に。日次更新で時系列追跡可能。(記録日, 場コード, モーター番号)を主キーとし、programsの艇N_モーター番号と JOIN して使用。
モーター履歴
data/programs/motor_history/YYYY/MM/DD.csv(日付 = 基準節終了日。実行日ではない点に注意)race.boatcast.jp の bc_mrireki_{節終了日}_{jo} を起源とする、モーター番号ごとの 節単位の使用履歴 です。各ファイルはその節終了日を基準としたスナップショットで、モーターごとに直近約3節分の {使用期間, グレード, タイトル, 使用者名, 着順列} を含みます。1行 = 1(モーター × 過去節)。
Motor Stats (bc_mdc) が期集計値のみなのに対し、こちらは どの選手がいつ使ってどんな着順だったか の生履歴が取れます。また bc_mdc と異なりソースが過去節分も保持(実測 1ヶ月以上)しているため、導入時点からの短期バックフィルが可能です。
場コード: 01〜24(2桁ゼロ詰め)基準節終了日: ソースファイルのキー(YYYY-MM-DD)。同じ日に節が終了した複数の場が同一ファイルに入りますモーター番号: 整数使用開始日 / 使用終了日: その節の期間(YYYY-MM-DD)グレード: 一般 / GⅢ / GⅡ / GⅠ / SG(全角。Recent Form と同じ表記)タイトル: 開催タイトル使用者名: その節でモーターを使った選手(全角スペースは半角1個に正規化)着順列: 節内全走の生着順文字列。トークンは Recent Form の 着順列 と同一(全角 1〜6 / F / L / 欠 / 転 / 妨 / 落 / [N]=優勝戦N着 / 全角スペース=日区切り)。末尾パディングは除去済みmotor-stats.py(daily-sync)が開催中の各場について、bc_mon_2 から「実行日より前に終了した直近の節」の終了日を導出し、該当キーの bc_mrireki を取得しますデータソース: https://race.boatcast.jp/hp_txt/{jo}/bc_mrireki_{節終了日yyyymmdd}_{jo}.txt
用途: モーターの素性追跡(直近の使用者の腕を補正したモーター評価、乗り換わり分析)。
場コード+モーター番号で Motor Stats / Race Cards の艇N_モーター番号と JOIN して使用。