{"artifacts_ready":true,"available_dates":365,"data_range":{"hitter":{"end":"2026-05-04","start":"2025-03-18"},"starter_so":{"end":"2026-05-06","start":"2025-03-18"}},"model_status":"ready","model_type":"XGBoost + LightGBM + LogisticRegression artifacts","models":{"hit":{"artifact_prefix":"hit","artifacts_ready":true,"features":146,"loaded":true},"hr":{"artifact_prefix":"hr","artifacts_ready":true,"features":137,"loaded":true},"so":{"artifact_prefix":"multi-threshold starter K","artifacts_ready":true,"features":24,"loaded":true}},"primary_model_status":"ready","serving_strategy":"xgb_primary","targets":{"hit":{"artifact":{"artifact_prefix":"hit","feature_count":146,"manifest":{"artifact_prefix":"hit","feature_count":134,"notes":"Enhanced with Savant features: avg_ev, batted ball profile, swing path. AUC 0.7028","serving_mode":"lgb_primary"},"serving_mode":"lgb_primary","updated_at":"2026-03-28T16:11:13.356227"},"holdout_metrics":{"lgb_brier":0.2133669951120768,"lgb_roc_auc":0.7105048193219456,"meta_brier":0.21016339909498524,"meta_roc_auc":0.7117560443104709,"xgb_brier":0.21396699214456993,"xgb_roc_auc":0.7125645367372508},"runtime_calibration":{"actual_rate_pct":57.3,"avg_probability_pct":53.6,"ece":3.96,"rows":49622},"serving_mode":"lgb_primary","target":"hit","training":{"feature_count":146,"generated_at":"2026-03-22T04:48:12.843664+00:00","holdout_end_date":"2025-09-02","holdout_rows":8150,"holdout_start_date":"2025-07-31","train_end_date":"2025-07-30","train_rows":30460,"train_start_date":"2025-03-18"}},"hr":{"artifact":{"artifact_prefix":"hr","feature_count":137,"manifest":{"artifact_prefix":"hr","feature_count":114,"notes":"Enhanced with Savant features: avg_ev, batted ball profile, swing path. AUC 0.6716","serving_mode":"lgb_primary"},"serving_mode":"lgb_primary","updated_at":"2026-03-28T16:11:13.357227"},"holdout_metrics":{"lgb_brier":0.09912804772386222,"lgb_roc_auc":0.681872632148656,"meta_brier":0.09555101897984061,"meta_roc_auc":0.6920435684647304,"xgb_brier":0.22563855855402087,"xgb_roc_auc":0.6919300619399844},"runtime_calibration":{"actual_rate_pct":10.5,"avg_probability_pct":12.7,"ece":2.22,"rows":49622},"serving_mode":"lgb_primary","target":"hr","training":{"feature_count":137,"generated_at":"2026-03-22T04:48:12.843664+00:00","holdout_end_date":"2025-09-02","holdout_rows":8150,"holdout_start_date":"2025-07-31","train_end_date":"2025-07-30","train_rows":30460,"train_start_date":"2025-03-18"}},"so":{"artifact":{"artifact_prefix":"pitcher_so_3_plus","feature_count":24,"manifest":{"artifact_prefix":"pitcher_so_3_plus","feature_count":47,"notes":"Pitcher SO 3+ model","serving_mode":"lgb_primary"},"serving_mode":"lgb_primary","updated_at":"2026-03-22T01:36:52.253009"},"holdout_metrics":{"lgb_brier":0.15473348586197,"lgb_roc_auc":0.6415049787084173,"meta_brier":0.15100276327893256,"meta_roc_auc":0.6405924823103768,"xgb_brier":0.22369089951531737,"xgb_roc_auc":0.6393598117375853},"runtime_calibration":{"actual_rate_pct":74.8,"avg_probability_pct":75.8,"ece":1.73,"rows":5778},"serving_mode":"lgb_primary","target":"so","training":{"feature_count":24,"generated_at":"2026-03-22T04:48:12.843664+00:00","holdout_end_date":"2025-09-28","holdout_rows":892,"holdout_start_date":"2025-08-23","train_end_date":"2025-08-22","train_rows":3764,"train_start_date":"2025-03-18"}}},"training_samples":49622}
