{ "dataset_revision": "7f423ac4cb6ab146f7ea7a37872eb4dfc3c9705c", "artifact": "submission_artifacts/planner.joblib", "quantile": 0.05, "event_risk_threshold": 0.5, "prediction_offset_days": -5.0, "risk_calibration_scale": 1.5, "expected_gain_margin": 10.0, "expected_service_cost_hours": 2.0, "scheduled_fraction": 0.038, "capacity_lookback_days": 42, "weekly_guard_fraction": 0.95, "hard_limit_penalty_multiplier": 1.5, "minimum_scheduled_batteries": 8, "maximum_scheduled_batteries": 24, "calibration_folds": 5, "planner_policy": { "event_risk_threshold": 0.5, "prediction_offset_days": -5.0, "building_batch_window_days": 4, "unscheduled_margin_days": 1, "capacity_lookback_days": 42, "capacity_lookahead_days": 21, "capacity_daily_limit_fraction": 1.0, "capacity_weekly_limit_fraction": 0.95, "capacity_limit_penalty_multiplier": 1.5, "capacity_operational_cost_weight": 1.5, "use_expected_cost": true, "risk_calibration_scale": 1.5, "expected_event_day_shift": 0.0, "expected_service_cost_hours": 2.0, "expected_gain_margin": 10.0, "expected_emergency_buffer_days": 6.0, "stale_risk_cutoff_days": 7.0, "recent_gap_risk_factor": 0.75, "stale_risk_factor": 0.1, "minimum_scheduled_batteries": 8, "maximum_scheduled_batteries": 24, "route_last_leg_factor": 1.0, "survivor_horizon_scale": 1.0, "scheduled_fraction": 0.038, "risk_quantile_spread_days": 0.0, "selection_key": "expected_gain" }, "survivor_rul_head": true, "trajectory_weight": 0.25, "forecast_heads": [ "p30_2.45", "p30_2.5", "p60_2.45", "p60_2.5", "p90_2.45", "p90_2.5", "v30", "v60", "v90" ], "training_rows": 19890, "training_devices": 458, "features": [ "voltage_median", "voltage_mean", "voltage_min", "voltage_max", "voltage_std", "temperature_median", "temperature_std", "observations_day", "stable_voltage_median", "history_days", "days_since_previous", "voltage_mean_3d", "voltage_min_3d", "voltage_max_3d", "voltage_std_3d", "temperature_mean_3d", "voltage_slope_3d", "span_3d", "voltage_mean_7d", "voltage_min_7d", "voltage_max_7d", "voltage_std_7d", "temperature_mean_7d", "voltage_slope_7d", "span_7d", "voltage_mean_14d", "voltage_min_14d", "voltage_max_14d", "voltage_std_14d", "temperature_mean_14d", "voltage_slope_14d", "span_14d", "voltage_mean_30d", "voltage_min_30d", "voltage_max_30d", "voltage_std_30d", "temperature_mean_30d", "voltage_slope_30d", "span_30d", "voltage_mean_60d", "voltage_min_60d", "voltage_max_60d", "voltage_std_60d", "temperature_mean_60d", "voltage_slope_60d", "span_60d", "voltage_mean_90d", "voltage_min_90d", "voltage_max_90d", "voltage_std_90d", "temperature_mean_90d", "voltage_slope_90d", "span_90d", "voltage_mean_180d", "voltage_min_180d", "voltage_max_180d", "voltage_std_180d", "temperature_mean_180d", "voltage_slope_180d", "span_180d", "voltage_mean_365d", "voltage_min_365d", "voltage_max_365d", "voltage_std_365d", "temperature_mean_365d", "voltage_slope_365d", "span_365d", "voltage_recent_vs_30d", "voltage_recent_vs_90d", "voltage_range_day", "location_age_days", "data_gap_days", "voltage_rank_global", "voltage_rank_building", "voltage_rank_room", "building_battery_count", "room_battery_count" ], "artifact_sha256": "3cfca2e7dd2c05ddd84f2eca42a484168a1ab4ad3cd454806ef4e687fe8f1569", "runtime_versions": { "batteryswap_public": "0.3.4", "fastparquet": "2026.5.0", "joblib": "1.5.3", "numpy": "2.2.6", "pandas": "2.3.3", "scikit-learn": "1.7.2" }, "validation_report": "artifacts/submission_cv_final.json", "optimistic_train_score": { "building_change": 10.25, "daily_limit": 14.583333333333334, "travel": 32.68057291666667, "battery_swap": 4.026041666666667, "early_swap": 391.3229166666667, "weekly_limit": 39.583333333333336, "overtime": 51.89251388888891, "room_change": 6.75, "late_swap": 75.83333333333333, "total_cost": 626.9220451388888 } }