football_odds_project 给 ChatGPT 的项目说明
生成时间:2026-07-20 12:47:40(北京时间)
这是一份给 ChatGPT 读取的项目交接说明。它不是完整开发文档,而是当前可执行事实摘要。完整历史仍以 PROJECT_MEMORY.md 和 docs\PROJECT_HISTORY.md 为准。
1. 项目目标
- 项目路径:D:\football_odds_project
- 当前目标:围绕中国体彩竞彩足球、外部盘口、赛果和复盘,生成小红书文章用概率看板。
- 短期重点:服务美加墨世界杯相关国家队比赛文章输出。
- 长期目标:积累五大联赛、欧冠、国家队和历史盘口数据,为 XGBoost 等模型做准备。
- 当前不做:自动投注、投注平台账号操作、真实购买建议、付费数据强依赖。
2. 当前数据源
- 体彩:竞彩足球可售比赛、胜平负、让球胜平负、赛前快照。
- 懂球帝:欧盘、亚盘、大小球、凯利指数。
- 赛果:本地赛果采集入库,用于自动复盘。
- FIFA / Elo:国家队强弱评分辅助。
- 国家队历史:国家队历史赛果、近况、Football-Data 世界杯/世预赛历史欧赔参考。
- xG / G-xG:StatsBomb Open Data,作为国家队进攻/防守质量辅助,不替代盘口。
- 当前未接入 SofaScore:SofaScore 自动采集、缓存、报告和看板状态已移除,后续重新设计独立流程后再考虑接入。
2.1 当前主版本:v7 统一预测平台
当前模型版本:v7-market-joint-baseline;平台版本:v7-unified-platform。
赛前不可变特征快照(as-of + provenance) → 体彩 SPF / HHAD 市场锚点 → Dixon-Coles 联合比分网格 → 同一网格导出 SPF / HHAD / 总进球 / 净胜球 / Top比分 → 单一 PredictionBundle → 中文兼容字段一次投影 → 赛前冻结评估、Bayesian 风险门禁、OOF 收益门禁
- 新增的 v7_* SQLite 表是增量层;旧业务表不修改。v6 账本保留为 legacy_frozen_reference,不可用于训练或证明 v7 收益。
- 文章最终胜平负、让球主方向、唯一备选、Top3、三项面板和风险全部来自同一个 PredictionBundle,禁止各模块单独改写结论。
- v7 联合网格必须同时满足概率和为 1、SPF/HHAD/总进球/比分边际一致、市场方向保护和严格赛前时点审计。
- 当前残差模型未达到冻结样本门槛,因此 champion 是市场联合基线;不允许仅凭历史重算命中率改向。
- 风险使用 Beta-Binomial 后验 lift;样本、触发率、证据数和 lift 下界未同时通过时只能进入详情。
- 收益门禁使用 rolling-origin OOF 概率下界;当前正式选项为 0,只允许 shadow 研究,不能宣称正期望。
- 11角色已冻结为历史解释层,不再参与方向生成;主卡只显示统一模型状态和一个通过门禁的风险。
v7 代码入口:utils\v7_schema.py、utils\v7_snapshot.py、utils\v7_joint_model.py、utils\v7_engine.py、utils\v7_review.py、utils\v7_adapter.py、utils\v7_pipeline.py。
2.2 世界杯收官冲刺专属层
- 赛事作用域为 worldcup_2026,不会自动应用到其他联赛。
- utils\worldcup_asof.py 只从 SQLite 原始表重建 WRITING(开赛前6小时)和 FINAL(最后赛前);训练只使用 WRITING。当前 HHAD 101 场、SPF 82 场、时点泄露 0。
- M2-SPF 状态:REJECTED,比赛日 block bootstrap 改善概率 0.4095。
- M3-HHAD 状态:SHADOW,比赛日 block bootstrap 改善概率 0.893。
- M4-HHAD-DRAW-HURDLE 状态:REJECTED;OOF precision 0.46428571、recall 0.56521739、硬命中 0.42105263,门控稳定率 0.8185,proper-loss bootstrap 0.3825。
- 世界杯阶段口径已修复:三轮小组赛各 24 场,不再误标为 KNOCKOUT_UNKNOWN。
- 候选没有达到 90% 晋级线时,公开方向必须继续使用 v7-market-joint-baseline,不能因为新报告已生成就宣称切换成功。
- 剩余比赛使用 append-only v7_worldcup_prediction_ledger;FIRST_PUBLIC 是正式硬复盘口径,FINAL_PREMATCH 只审计临场更新价值。当前公开账本行数:14。
- 正式组合还必须满足 CHAMPION OOF、Edge 80%下界为正、OOF样本不少于30、BH FDR不高于10%;未通过时只允许 shadow。
- 代码入口:utils\worldcup_sprint_model.py、utils\worldcup_sprint_pipeline.py、utils\hhad_draw_hurdle.py。
2.3 v8 多边界校准研究层
- v8 只使用世界杯严格 WRITING 样本,统一替代看板与自动复盘原先不一致的偏差统计;其他赛事不能进入世界杯调参。
- 严格基线:热门高置信失败率 0.2857142857142857,SPF 平局 precision 1.0、recall 0.07142857142857142,总进球平均有符号误差 -0.2309832197405272,让胜误报率 0.4897959183673469。
- M5-SPF-DRAW-HURDLE:REJECTED,bootstrap 0.573。
- M5-TOTAL-MARGIN-CALIBRATOR:REJECTED,bootstrap 0.3405。
- M5-HHAD-DUAL-BOUNDARY:REJECTED,bootstrap 0.118。
- 三个模块独立晋级;未达到 90% 比赛日 block bootstrap 和 proper-score 联合门槛时,正式方向继续使用 v7 市场联合基线。
- v8 代码入口:utils\v8_multiboundary.py;核心报告:model_bias_v8_audit、v8_champion_gate_report、spf_draw_hurdle_v8_oof_report、total_goal_distribution_v8_oof_report、hhad_dual_boundary_v8_oof_report。
2.4 世界杯最后四场收官策略
- HHAD 使用 M3-HHAD-ORDINAL,状态是 CONTROLLED_OVERRIDE,作用域仅限半决赛、季军赛和决赛;它是用户授权的收官切换,不冒充通过 90% 门槛的 champion。
- SPF 继续使用 v7;KO_DRAW_ALERT 只降低置信等级,不改写 SPF 概率和主方向,防平也不计入硬命中。
- 当前策略事件数:7;最新事件 MODEL_POLICY_SWITCH,v7 HHAD 让负,M3 HHAD 让负,平局保护 HIGH。
- FIRST_PUBLIC 永不覆盖;M3 切换另写 MODEL_POLICY_SWITCH。M3 缺失、异常或检测到开赛后源数据时自动回退 v7-market-joint-baseline。
- 组合收益继续使用 OOF 下界门禁;M3 Edge 只作 shadow,不能因受控切换自动进入正式组合。
3. 当前核心算法
- 文章最终结论融合器:v7 只接受 PredictionBundle,不再从多个中文模块拼接观点;只有通过样本外门槛的残差修正才允许改变市场方向。
- 胜平负:以体彩胜平负、外部欧赔共识、比分分布为主,风险模块只降低表达强度。
- 让球胜平负:按净胜球边界问题处理,M = 主队进球 + 体彩让球数 - 客队进球;看板仍输出“倾向 X,防 Y”,但校准必须比较体彩市场基线、比分边界和后验模型。
- HHAD 输出:必须给出一个主方向和一个唯一备选,格式仍为“倾向 X,防 Y”;置信等级与方向分离。
- 让球链路:亚盘只作为净胜球 / 穿盘约束,不作为独立预测器;让球概率分为原始融合概率和校正后概率,校正后概率结合 Top4 让球映射、亚盘约束、大小球约束与整数让球线风险。
- 亚盘方向 / 穿盘约束第二轮复盘命中偏低,后续只能作为约束、风险和备选原因,不得单独推最终方向。
- 风险标签第二轮后降噪:热门过热必须有明确过热信号且盘口/大小球/凯利等至少两项不支持,弱矛盾/缺数据只放详情。
- 比分分布:使用同一个市场约束 Dixon-Coles 联合网格;Top3/Top4 只是网格视图,不再以人工规则反向切换让球方向。
- 概率校准:使用 Brier、LogLoss、RPS、Brier Skill Score vs 体彩市场、分桶校准和小样本观察提示。
- 复盘校准:让球复盘必须拆开看 Top4精确比分命中、Top4让球集合覆盖、Top4加权主方向命中、主方向命中、唯一备选覆盖、亚盘穿盘约束验证和校正后概率分桶。
- ROI 体系:区分体彩返还率观察、模型 Edge 观察、历史 ROI 回测;历史回测使用赛前体彩赔率快照兜底,只作研究复盘,不代表购买建议。
- 11角色:已经冻结为历史解释层;看板只显示五个数学信号组,任何角色都不再直接投票决定主方向。
- 风险主卡:最大风险必须参考结构化风险 lift;触发率超过 70% 且 lift 低于 1.10 的泛化风险只放详情。
- 国家队历史盘口参考:只能作为校准和风险层;模拟让球/大小球必须标注为结果推导参考,不能冒充真实盘口。
4. 当前看板和公开链接
- 在线首页:https://football-odds-dashboard.pages.dev/
- 项目说明:https://football-odds-dashboard.pages.dev/chatgpt_project_brief.html
- 文章概率看板 v4:https://football-odds-dashboard.pages.dev/article_probability_v2.html
- 自动复盘总线:https://football-odds-dashboard.pages.dev/auto_review_dashboard.html
- ChatGPT 提示词:https://football-odds-dashboard.pages.dev/chatgpt_prompt.txt
- 单场页面:https://football-odds-dashboard.pages.dev/match_pages/
本地关键输出:
- data\exports\article_probability_v2.html
- data\exports\article_probability_v2.csv
- data\exports\auto_review_dashboard.html
- data\exports\auto_review_match_detail.csv
- data\exports\hhad_match_review.csv
- data\exports\worldcup_round2_review_baseline_report.html
- data\exports\roi_backtest_report.html
- data\exports\role_effectiveness_report.html
- data\exports\role_signal_reliability_report.html
- data\exports\hhad_math_calibration_v5_report.html
- data\exports\hhad_margin_model_v2_ab_report.html
- data\exports\risk_lift_report.html
- data\exports\national_history_calibration_v4_report.html
- data\exports\worldcup_stage_integrity_report.html
- data\exports\feature_asof_audit.html
- data\exports\prediction_ledger_health_report.html
- data\exports\score_market_fit_report.html
- data\exports\market_residual_v6_oof_report.html
- data\exports\risk_bayesian_lift_report.html
- data\exports\role_signal_v6_report.html
- data\exports\purchase_plan_oof_gate_report.html
- data\exports\v7_snapshot_health_report.html
- data\exports\v7_probability_coherence_report.html
- data\exports\v7_model_registry_report.html
- data\exports\v7_cutover_report.html
- data\exports\v7_prequential_review.html
- data\exports\v7_risk_report.html
- data\exports\v7_purchase_gate_report.html
- data\exports\v7_residual_readiness_report.html
- data\exports\hhad_draw_hurdle_oof_report.html
- data\exports\hhad_draw_segment_report.html
- data\exports\hhad_draw_gate_ab_report.html
- data\exports\model_bias_v8_audit.html
- data\exports\v8_champion_gate_report.html
- data\exports\spf_draw_hurdle_v8_oof_report.html
- data\exports\total_goal_distribution_v8_oof_report.html
- data\exports\hhad_dual_boundary_v8_oof_report.html
- data\exports\worldcup_final_four_policy_ledger.html
- data\exports\worldcup_final_four_model_compare.html
- data\exports\worldcup_final_four_live_review.html
- data\exports\worldcup_2026_closing_model_report.html
当前统计:
- 文章看板比赛行数:224
- v7 统一预测契约行数:224
- v7 输出一致性失败:0
- v7 当前已完赛冻结样本:3434
- v7 正式收益门禁通过选项:0
- v6 历史冻结账本比赛数(只读参考):9
- 文章分析明细行数:224
- 自动复盘明细行数:3638
- 自动复盘模块数:13
- HHAD 复盘行数:224
- 角色有效性行数:11
- 五信号组报告行数:5
- 数学校准 v5 行数:264
- 让球边界 v2 shadow 行数:235
- 风险 lift 行数:6
- 国家队历史校准行数:231
- 第二轮复盘基线行数:14
- ROI 回测策略行数:13
5. ChatGPT 使用方式
如果要写某场小红书文章,优先给 ChatGPT 单场页面链接,并要求它只基于页面顶部短摘要和展开证据写文章。
推荐提示词:
请先读取项目说明: https://football-odds-dashboard.pages.dev/chatgpt_project_brief.html 然后读取这场比赛的单场页面: 把这里替换成 match_pages 里的单场链接 请基于胜平负最终结论、让球最终结论、最大风险、4 个比分方案、核心证据摘要和复盘状态,写一篇小红书风格文章。 不要写购买建议,不要写确定性命中表达,只写概率倾向、盘口矛盾和风险提示。
6. 后续调整原则
- 新增数据源:必须说明是否免费、是否授权、是否可公开、是否可训练。
- 新增特征:必须区分赛前特征和赛后复盘字段,避免未来函数。
- 新增算法:必须接入自动复盘总线,不能只在看板里发表观点。
- 新增中文字段:业务层优先登记 canonical key,不直接依赖中文表头。
- 新增让球判断:必须使用 HHAD_WIN / HHAD_DRAW / HHAD_LOSS 内部枚举,再输出中文。
- 新增亚盘判断:只能写成约束、支持、风险或分歧,不能直接写成最终主预测。
- 新增公开文件:不得包含数据库、API Key、cookie、token、私密 raw JSON、浏览器缓存和 debug 私密文件。
- 样本不足:必须标记“观察级”,不能写成稳定规律。
7. 表达边界
- 可以写:概率倾向、盘口分歧、市场一致性、最大风险、观察级结论。
- 不要写:确定命中、收益承诺、购买指令、自动投注建议。
- 文章服务内容分析,不服务实盘执行。
8. 当前版本锚点
- 当前代码:以本文件所在 Git 提交为准;v7 回退基线为 5da5edd
- 算法收敛标签:checkpoint-2026-06-10-algorithm-convergence-v1
- 编码治理标签:checkpoint-2026-06-10-encoding-normalization-v1
- v6 实施前标签:checkpoint-2026-07-10-v6-prerun-v1
- v6 完成标签:checkpoint-2026-07-10-v6-market-residual-v1
- v7 实施前标签:checkpoint-2026-07-10-v7-prerun-v1
- v7 完成标签:checkpoint-2026-07-10-v7-unified-platform-v1
- v8 实施前标签:checkpoint-2026-07-11-v8-multiboundary-prerun-v1
- v8 完成标签:checkpoint-2026-07-11-v8-multiboundary-v1
如果 ChatGPT 对项目上下文不确定,应先读本文件,再读单场页面,不要根据泛泛足球经验改写项目规则。