Methodology Overview
Which number answers which question
Start from the question
Each PEAR model answers a different question. The rating says how good a team is, PCR says what its season has earned, PRV values a player, expected runs take the luck out of a box score, and win probability follows a game play by play. They are related but not interchangeable, so pick by the question you are asking, not by the name.
| Model | The question it answers | Unit |
|---|---|---|
| Team Strength Rating (TSR) | How good is this team right now? | Runs better than the average team, neutral field |
| PCR, RQI and SOS | How strong is this team’s résumé? | A score and a rank (1 = best résumé) |
| Preseason ratings | How good should this team be before it plays a game? | Same scale as TSR |
| PEAR Run Value (PRV) | How good is this player? | Runs above average per 100 plate appearances / batters faced |
| Expected runs (xR) | How many runs did those at-bats deserve? | Runs per game |
| Win probability, WPA and leverage | Who wins from here, and how much did a play matter? | Probability, 0 to 1 |
| Excitement Index | How much did this game swing? | Total win probability moved |
| Park factors | How much does this park add to or take from scoring? | Run effect of the home park |
| Rating drift | How much can a team change before the season ends? | Runs of rating movement in simulations |
What these pages cover
Each page explains what a model measures, how it is built in broad terms, how to read its output, where the API returns it and where it falls short. The models are proprietary, so exact formulas, weights and fitted values are not published.
Comparing over time
- Keep the season and the date with any number you store. In season, D1 baseball ratings refresh every 30 minutes and every other division's refresh once a day.
- Models are improved between seasons, and when one changes, past seasons are recomputed with it. A value you saved last year may not match what the API returns for that season today.
- Coverage differs by division and season. A missing value is
nulland should never be read as zero.
Data availability lists the seasons each division has.