
This is a fun little grid I’ve worked on the last couple seasons.
Bill James, the godfather of sabermetrics, devised a formula that would estimate the “expected” winning percentage of a baseball team, given that team’s runs scored and runs allowed. Using this, we can tell which teams have over or under performed.
Like most of the things I do with the Valley League that mirror major league baseball, we have to keep in mind that the Valley League’s sample size is pretty small. One bad blowout, for example, can skew the expectation one way or the other, since the Valley only plays 42 regular season games.
But I thought we could still take a peek at the charts. First, 2018, sorted by expected wins:
2018 | Actual | Expected | Expected | |||||
Team | W | L | % | RS | RA | % | Wins | Difference |
Charlottesville | 24 | 18 | 0.571 | 257 | 168 | 0.701 | 29.4 | -5.4 |
Front Royal | 24 | 18 | 0.571 | 251 | 199 | 0.614 | 25.8 | -1.8 |
Waynesboro | 24 | 18 | 0.571 | 247 | 210 | 0.580 | 24.4 | -0.4 |
Purcellville | 25 | 17 | 0.595 | 234 | 205 | 0.566 | 23.8 | 1.2 |
New Market | 24 | 18 | 0.571 | 283 | 254 | 0.554 | 23.3 | 0.7 |
Winchester | 22 | 20 | 0.524 | 225 | 218 | 0.516 | 21.7 | 0.3 |
Covington | 26 | 16 | 0.619 | 234 | 230 | 0.509 | 21.4 | 4.6 |
Harrisonburg | 20 | 22 | 0.476 | 222 | 222 | 0.500 | 21.0 | -1.0 |
Staunton | 20 | 22 | 0.476 | 273 | 274 | 0.498 | 20.9 | -0.9 |
Strasburg | 17 | 25 | 0.405 | 250 | 312 | 0.391 | 16.4 | 0.6 |
Woodstock | 5 | 37 | 0.119 | 171 | 356 | 0.187 | 7.9 | -2.9 |
According to the formula, the Tom Sox “should” have won 29 games instead of 24 in 2018, putting the team at the top of the “negative” scale. Woodstock and Front Royal also underperformed by more than one game (this is the “season that shall not be named” for the Bandits).
Covington is at the top of overperformers, winning 4.6 more games than they would have been expected to. Purcellville also overperformed by more than a game.
Now, 2019:
2019 | Actual | Expected | Expected | |||||
Team | W | L | % | RS | RA | % | Wins | Difference |
Waynesboro | 31 | 11 | 0.738 | 335 | 199 | 0.739 | 31.0 | 0.0 |
Charlottesville | 25 | 17 | 0.595 | 289 | 231 | 0.610 | 25.6 | -0.6 |
Woodstock | 25 | 17 | 0.595 | 294 | 246 | 0.588 | 24.7 | 0.3 |
Strasburg | 26 | 16 | 0.619 | 271 | 228 | 0.586 | 24.6 | 1.4 |
Staunton | 19 | 23 | 0.452 | 259 | 273 | 0.474 | 19.9 | -0.9 |
Harrisonburg | 18 | 24 | 0.429 | 201 | 220 | 0.455 | 19.1 | -1.1 |
New Market | 19 | 23 | 0.452 | 229 | 260 | 0.437 | 18.3 | 0.7 |
Winchester | 18 | 24 | 0.429 | 240 | 278 | 0.427 | 17.9 | 0.1 |
Covington | 21 | 21 | 0.500 | 194 | 235 | 0.405 | 17.0 | 4.0 |
Purcellville | 15 | 27 | 0.357 | 220 | 282 | 0.378 | 15.9 | -0.9 |
Front Royal | 14 | 28 | 0.333 | 218 | 300 | 0.346 | 14.5 | -0.5 |
No one vastly underperformed in 2019- only Harrisonburg even reached -1.0. Look at Covington, though- at +4.0! That puts Alex Kotheimer’s last two teams at +8.6 over the last two seasons. (Do two seasons constitute a trend? Hmm. Maybe.) Strasburg came in second in ’19 at +1.4. Interestingly, Waynesboro hit the number of wins exactly.
I’m not sure why these numbers came out this way, of course, but it’s still fun to look at.