競艇の結果表示で、精算済みなのに「結果不明」に見えるレースがある場合、失格・返還など数字の着順が付かない結果を表示できていない可能性があります。筆者の紙上シミュレーションのページでは、これに加えてデータ更新の停止も同じ「不明」に見えていました。

この記事では、シリーズ第5回として、結果コード(エ・転・落・沈・妨・F・L・欠)を日本語ラベルで表示する方法、データの鮮度を公開JSONと画面に出す方法、公開ページで見せる情報の線引きをまとめます。

この記事の結論

  • 失格・転覆・フライングなどは result_place(着順)が空になる。結果コードごとにラベルを付けて表示する。
  • 公開JSONに latest_race_date・latest_prediction_at・has_today_data を追加し、「最新データ未同期」を表示して結果待ちと更新停止を区別する。
  • 公開ページからはモデルのバージョンと戦略の詳細式を外し、記録(API・データ)には残す。
  • 競艇関連テスト37件は成功。ただし記録時点ではローカルでの実装・確認のみで、VPSとRaspberry Piへは未反映。

症状:精算済みなのに結果欄が「不明」

このサイトでは競艇AIの紙上シミュレーション(実際には購入しない仮想運用)の結果を公開しています。判定が記録されているのに、結果欄が「不明」に見えるレースがありました。

原因1:失格・返還で着順の数字がない

記録CSVでは、該当レースは settlement_status=settled(精算済み)でしたが、着順の列 result_place が空でした。たとえば2026年9月15日のあるレースは結果コードが「エ」(エンジン停止による失格=エンスト)です。画面が着順の数字だけで結果を表示していたため、「判定できなかった」ように見えていました。

対処1:結果コードを日本語ラベルで表示する

結果コード表示するラベル
F / L / 欠返還・フライング、返還・出遅れ、返還・欠場
転 / 落 / 沈失格・転覆、失格・落水、失格・沈没
エ / 妨 / 失失格・エンスト、失格・妨害、失格
数字の着順払戻、または外れと着順
未確定未確定、または知らない結果コードの確認中
  • 公開用JSONにラベルの項目を追加した。
  • 古いJSONしかない場合は、画面が従来どおりの表示に戻るようにした(後方互換)。

修正後、該当レースは次のように表示されます。

20260915_07_03  エ  settled  失格・エンスト(エ)

原因2:公開データの更新が2日前で止まっていた

調査中に、公開用JSONが2026年9月16日22時59分から更新されておらず、予測データの最終日も9月16日のままだと分かりました。画面を見る人には「結果が未確定」なのか「データが届いていない」のか区別できません。

対処2:データの鮮度を公開JSONと画面に出す

項目内容
latest_race_dateデータの中で一番新しいレースの日付
latest_prediction_at最後に予測した時刻
has_today_data今日のデータがあるか

画面には予測データの最終日を表示し、表示日より古く今日のデータがない場合は「最新データ未同期」と出します。

検証結果と未完了の作業

  • 実際の投票を止める仕組み(HALT)は解除していない。HALT中でも --live なしの紙上運用は動き続けることを回帰テストで確認した。
  • 競艇関連のテスト37件はすべて成功した。
  • 未完了:記録時点ではローカルでの実装・確認のみで、VPSやRaspberry Piへは未反映。更新再開には、Pi側の同期の仕組みとVPS側の受け取り先の確認が必要。

公開ページで見せる情報の線引き

同じページで、現在の判定条件やモデル・戦略の変更履歴に、モデルのバージョン番号や戦略の細かい計算式がそのまま表示されていました。原因は、テンプレートがAPIのプロフィール情報をそのまま描画していたことです。読者には分かりにくく、細かい調整内容まで公開する必要もありません。

9月21日に表示を次のように見直しました。

  • 判定条件と変更履歴から、モデルのバージョンと戦略の詳細式を外す
  • 当日の候補一覧では、バージョンの代わりにモデル名、詳細式の代わりに戦略名を表示する
  • 変更日時・変更の種類・オッズや確率など、結果の検証に必要な情報は残す

変えたのはサイトの表示だけで、APIや予測データの記録は変えていません。記録はすべて残し、公開ページには読む人に必要なものだけを出す、という線引きです。

まとめ

  • 画面上の「不明」には、失格・返還・未確定・データ未着など複数の意味が隠れていることがある。
  • 結果コードにラベルを付け、データの鮮度を表示すれば、見る人もあとで調べる自分も迷わない。
  • 内部の詳細(バージョン・計算式)は記録に残し、公開表示からは外す。