Update batter rating scale #2

Open
opened 2026-02-28 05:34:18 +00:00 by cal · 0 comments
Owner

Problem

The current batter matchup rating scale was ported directly from the Python implementation but needs to be revised. The tier thresholds in get_tier() and the standardization ranges in standardize_value() were carried over as-is during the Rust rewrite (Phase 3), but they don't produce the distribution of ratings we want.

Current Implementation

Tier thresholds (src/calc/matchup.rs):

  • A: >= 40
  • B: >= 20
  • C: >= -19
  • D: >= -39
  • F: < -39

Standardization buckets (standardize_value):

  • Maps raw stat values to -3 to +3 range using stdev thresholds from league mean
  • 0.0 always returns +3 (best possible)

Weight sums: Batter weights sum to 22 (max component = 66), pitcher weights sum to 23 (max component = 69).

What Needs to Change

The rating scale should be re-evaluated so that tier distribution better reflects meaningful scouting tiers. The current thresholds were inherited from the spreadsheet era and may not produce useful differentiation with the current weight configuration.

Files Affected

  • rust/src/calc/matchup.rsget_tier(), standardize_value()
  • rust/src/calc/weights.rs — weight values may also need adjustment
  • rust/tests/calc_integration.rs — tests will need updating to match new scale
## Problem The current batter matchup rating scale was ported directly from the Python implementation but needs to be revised. The tier thresholds in `get_tier()` and the standardization ranges in `standardize_value()` were carried over as-is during the Rust rewrite (Phase 3), but they don't produce the distribution of ratings we want. ## Current Implementation **Tier thresholds** (`src/calc/matchup.rs`): - A: >= 40 - B: >= 20 - C: >= -19 - D: >= -39 - F: < -39 **Standardization buckets** (`standardize_value`): - Maps raw stat values to -3 to +3 range using stdev thresholds from league mean - 0.0 always returns +3 (best possible) **Weight sums**: Batter weights sum to 22 (max component = 66), pitcher weights sum to 23 (max component = 69). ## What Needs to Change The rating scale should be re-evaluated so that tier distribution better reflects meaningful scouting tiers. The current thresholds were inherited from the spreadsheet era and may not produce useful differentiation with the current weight configuration. ## Files Affected - `rust/src/calc/matchup.rs` — `get_tier()`, `standardize_value()` - `rust/src/calc/weights.rs` — weight values may also need adjustment - `rust/tests/calc_integration.rs` — tests will need updating to match new scale
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cal/sba-scouting#2
No description provided.