{ "artifact": "submission_artifacts/final_planner.joblib", "artifact_sha256": "9d6505bd76f16255d46150102b8a72d7579b75881c6b96740c2b04fe8eec5289", "schema_version": 1, "base_artifact": "public/v05:submission_artifacts/planner.joblib", "base_artifact_sha256": "63d71091d7f46e8fb11798b7c2be936cc7e0022954824a4eb98c07dc1bf9b0b3", "configuration": { "eol_voltage": 2.4, "horizon_days": 42.0, "terminal_nonoverlap_weeks": 12, "minimum_weekly_increments": 4, "maximum_state_staleness_days": 7.0, "rank_residual_weight": 0.25, "capacity_lookback_days": 42, "emergency_operational_scale": 0.5, "expected_emergency_buffer_days": 3.0, "outer_pool": "leave current target building out", "smoothing": "strict 10=5; rolling seven-calendar-day median min_periods=3; terminal calendar day strictly before cutoff" }, "promotion_evidence": { "official_48": "artifacts/hierarchical_fpt_official.json", "robust_48x27": "artifacts/hierarchical_fpt_grid.cases.json" }, "source_sha256": { "src/batteryswapai/hierarchical_fpt.py": "c918b5dd69fe6ddb972466529c17b85258dc888274007747f6318a7ce0dfc080", "src/batteryswapai/identity_ensemble.py": "fa1f9aeaa89fba1bc5fc437c478c876544f2973960db18ef2c83f0042cc9df4a", "src/batteryswapai/competition_planner.py": "a56bfe549a3d6fcfe59217f7bd8a647533a4484fdbb26fe3ef8f1d6c84035a98", "scripts/experiment_hierarchical_fpt.py": "1ce854654813752930194413bcd5dff44984d105493a36c42e10945e23fa6b60", "scripts/evaluate_hierarchical_fpt_grid.py": "90f764da5df050e37af15fc47524c629cce2b021de34b0eab39095383639a51e", "scripts/build_hierarchical_fpt_submission.py": "9654f1cb906a82579ec0b2d29f9ee468e1eef3442869ea8490c2e18fe13694ba", "script.py": "ac7cb8f7a6744d5e5f6f150926f3ce9df8924d64a8691dd97d0c5c1163a0b51f", "Dockerfile": "84a3f71b2ba664f91ceb8a2980dd5397a002eed02af9fdd264325caf89158573", "requirements.txt": "53d9c582b98b392c0517dc87c78949cd13b99b3f09ebfce601d0c8eadd4f2db3" }, "runtime_versions": { "batteryswap_public": "0.3.4", "joblib": "1.5.3", "numpy": "2.2.6", "pandas": "2.3.3", "scipy": "1.14.1", "scikit-learn": "1.7.2" } }