Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions data/calibration_params.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,21 @@
"[2026-05-10] Initial params \u2014 lambda_bias pre-loaded from BaseballbettingEdge live calibration",
"[2026-05-10] swstr_k9_scale set to 16.0 (reduced from default 30.0 per live BBE evidence)",
"[2026-05-10] ump_scale set to 0.9 (umpire adjustment less reliable than expected)",
"[2026-05-13] lambda_bias -0.067 \u2192 -0.15 based on 142 live graded legs. Weighted logit-delta target = -0.247; stepping conservatively to -0.15. hits_runs_rbis and pitching_outs well-calibrated (delta \u2248 0). hits (n=28, delta=-0.647) and total_bases (n=13, delta=-0.911) severely overconfident \u2014 raised per-prop MIN_PROB floors to 0.62."
"[2026-05-13] lambda_bias -0.067 \u2192 -0.15 based on 142 live graded legs. hits_runs_rbis and pitching_outs well-calibrated. hits (n=28) and total_bases (n=13) overconfident \u2014 raised floors to 0.62.",
"[2026-05-18] PR #588: Temporary floor reduction \u2014 XGB model sparse (72 rows), predicts near 50-55%. All prop types explicitly overridden. Restore floors to 0.60/0.62/0.65 when graded rows reach 200+."
],
"sample_size": 142,
"updated_at": "2026-05-13T20:00:00-07:00",
"sample_size": 72,
"updated_at": "2026-05-18T19:28:00-07:00",
"prop_min_prob_overrides": {
"hits": 0.62,
"total_bases": 0.62,
"hitter_strikeouts": 0.62,
"hits_allowed": 0.65,
"pitcher_strikeouts": 0.55,
"hits_runs_rbis": 0.55,
"pitching_outs": 0.55,
"earned_runs": 0.55,
"walks_allowed": 0.55,
"hits": 0.57,
"total_bases": 0.57,
"hitter_strikeouts": 0.57,
"hits_allowed": 0.60,
Comment on lines +17 to +25
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

There is a naming inconsistency between these override keys and the canonical names used in the system's normalization logic (defined in calibration_layer.py).

  • Strikeouts: pitcher_strikeouts is normalized to strikeouts by _norm_stat(). If the override lookup mechanism uses normalized names, it will fail to find this key. Conversely, hitter_strikeouts is not currently in the _STAT_MAP at all (though batter_strikeouts is, mapping to strikeouts).
  • Walks: walks_allowed is missing from the _STAT_MAP entirely.

If the system normalizes prop types before checking overrides, using pitcher_strikeouts and hitter_strikeouts with different floors (0.55 vs 0.57) will not work as intended, as they would both map to the same canonical key. Please verify if the lookup mechanism uses raw or normalized strings and consider aligning with the canonical names where possible.

"fantasy_score": 0.99
},
"prop_calibration_brier": {
Expand All @@ -29,7 +35,7 @@
"hits_allowed": 0.4531,
"overall": 0.2586
},
"notes": "prop_min_prob_overrides: per-prop MIN_PROB gates stricter than global 0.57. fantasy_score set to 0.99 (effectively excluded). hits_allowed excluded pending more data (Brier 0.4531).",
"notes": "PR #588: All prop types explicitly floored. fantasy_score=0.99 effectively excluded. hits_allowed highest floor (Brier 0.4531 = poor calibration). Restore all floors when graded rows >= 200.",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The note states that hits_allowed has the highest floor, but fantasy_score is set to 0.99, which is significantly higher. While fantasy_score is effectively excluded, the note could be more precise to avoid confusion regarding which props are being gated most strictly.

Suggested change
"notes": "PR #588: All prop types explicitly floored. fantasy_score=0.99 effectively excluded. hits_allowed highest floor (Brier 0.4531 = poor calibration). Restore all floors when graded rows >= 200.",
"notes": "PR #588: All prop types explicitly floored. fantasy_score=0.99 (excluded). hits_allowed floor=0.60 (Brier 0.4531 = poor calibration). Restore all floors when graded rows >= 200.",

"league_constants": {
"_comment": "60/40 blend 2026/2025 \u2014 May 15 2026. Source: BBRef totals through May 14.",
"woba": 0.31,
Expand All @@ -44,4 +50,4 @@
"hr_fb_pct": 0.109,
"o_swing": 0.287
}
}
}