diff --git a/graph/decisions/sba-scout-rust-phase-6-stat-weights-configurable-via-toml-se-c7aab0.md b/graph/decisions/sba-scout-rust-phase-6-stat-weights-configurable-via-toml-se-c7aab0.md new file mode 100644 index 00000000000..8343e25a2b3 --- /dev/null +++ b/graph/decisions/sba-scout-rust-phase-6-stat-weights-configurable-via-toml-se-c7aab0.md @@ -0,0 +1,31 @@ +--- +id: c7aab060-25b8-4128-a661-eefad9dc4674 +type: decision +title: "SBA Scout Rust Phase 6: stat weights configurable via TOML settings" +tags: [sba-scout, rust, configuration, phase-6, calc, weights, toml, figment] +importance: 0.6 +confidence: 0.8 +created: "2026-02-27T01:18:26.984962+00:00" +updated: "2026-02-27T01:18:26.984962+00:00" +--- + +# SBA Scout Rust — Phase 6 Configuration Decision + +## Decision +Cal requested that batter and pitcher stat weight constants be made configurable via the TOML settings file rather than hardcoded in source. + +## Current State (Phase 1) +Weights are hardcoded as `BATTER_WEIGHTS` and `PITCHER_WEIGHTS` arrays in `calc/weights.rs`. + +## Planned Phase 6 Change +- Expose standardized scoring weights in `settings.toml` +- Load via `figment` config pipeline (already used for other settings) +- Allows tuning matchup scoring weights without recompiling + +## Context +- Python SBA Scout has a `RatingWeights` in `config.py` for legacy composite ratings — this is the Rust equivalent for the standardized scoring system +- Standardized scores use a -3 to +3 range based on league averages/stdev +- Handedness-aware: `vLHP`/`vRHP` for batters, `vLHB`/`vRHB` for pitchers + +## Repository +- Repo: `sba-scouting`, branch `feat/rust-rewrite`, subdir `rust/`