The reason for my math lecture in the last post was to hopefully generate some better understanding for how I got the results for this post, Fantasy CPL Wins Above Replacement (CPLWAR? CWAR? FWAR?).
First, this post will just focus on hitters. Pitchers are boring.
Replacement Definition:
For my replacement line, I started with my 2020 projections, aggregated the lowest statistical accumulators and generated a franken-team of the worst of the worst in every category (mostly Zo).
Results:
| Season Totals | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Composite Worst Team | 758 | 381 | 101 | 397 | 244 | 21 | 0.245 | 0.709 |
| Weekly Averages | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Composite Worst Team | 29.16 | 14.66 | 3.88 | 15.29 | 9.37 | 0.79 | 0.245 | 0.709 |
Next I had to calculate what this “player” looked like as an individual, instead of a team.I assumed that each player plays 5 games a week, but that each manager rostered 63 games a week (7 days a week X 9 positions open). This is a bad assumption for many reasons, but it’s mostly academic.
63/5 = the equivalent of 12.6 players worth of stats generated a week.
With that, I divided up the season totals of this franken-team to generate the following season lines for an individual player operating at this level:
| Season Total | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Avg Batter output (season) | 60 | 30 | 8 | 32 | 19 | 2 | 0.245 | 0.709 |
Boy howdy, that’s just awful.
For my last move, I subtracted 1 from each counting stat category. Just 1.My thought process is this: a player that is a below average player on the theoretical worst team in the league can probably be had at super cheap, maybe even border line free. Hell, there’s probably a dozen players like this on the free agent market every season. These numbers are atrocious.Taking positional eligibility into account may have changed this somewhat. For now, I’m treating every position the same, which may or may not be fair.
Results:
| Season individual Total | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Avg batter minus one | 59 | 29 | 7 | 31 | 18 | 0.6 | 0.242 | 0.701 |
| Weekly team total | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Weekly average team | 28.7 | 14.2 | 3.4 | 14.8 | 8.9 | 0.3 | 0.242 | 0.701 |
“Wins” Definition:
Luckily, after all of my work with season projections, I had a built in system to calculate how many more wins one team could achieve over another based on their statistical differentiation.
My next step is a little odd and I still don’t know how I feel about it. To calculate wins for individual players, I treated their stat line as if an entire team was composed of this player. Imagine it for a moment. A team of 14 Christian Yelich’s. Beautiful. It would look something like this:
| 2019 Season Totals | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| Christian Yelich | 164 | 100 | 44 | 97 | 80 | 30 | 0.329 | 1.100 |
| Projected Weekly Totals | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS | |
| Team Yelich | 79.7 | 48.5 | 21.3 | 47.0 | 38.8 | 14.5 | 0.329 | 1.100 |
So, to take stock, we have:
*) Weekly results for team Super Yelich Vs team “Replacement” *) A projection system that calculates win% based on weekly differential
Using the same tables mentioned in my previous article, I calculated the odds of each Super Team winning each category against the Replacement team. Adding each category’s win%, multiply by 21 weeks and we have the number of wins generated bySuper Team if they faced Replacement team every week in a season. And as we calculated before, we assume that we are using the equivalent of 12.6 Yelich’s every week, so dividing these wins by 12.6 yields 1 Yelich worth of wins.
Below is a table of my top 20, just for fun.Below that, a link to all hitters who generated a single stat (for the most part) in 2019.
| Rank | Name | WAR |
| 1 | Christian Yelich | 13.29 |
| 2 | Cody Bellinger | 13.22 |
| 3 | Ketel Marte | 13.17 |
| 4 | Mike Trout | 13.14 |
| 5 | Trevor Story | 13.06 |
| 6 | Mookie Betts | 13.05 |
| 7 | Austin Meadows | 13.02 |
| 8 | Juan Soto | 13.02 |
| 9 | Anthony Rendon | 12.98 |
| 10 | Rafael Devers | 12.98 |
| 11 | Yoan Moncada | 12.96 |
| 12 | Ronald Acuna Jr. | 12.93 |
| 13 | Alex Bregman | 12.91 |
| 14 | Marcus Semien | 12.91 |
| 15 | Ozzie Albies | 12.88 |
| 16 | George Springer | 12.85 |
| 17 | Freddie Freeman | 12.85 |
| 18 | Francisco Lindor | 12.82 |
| 19 | DJ LeMahieu | 12.81 |
| 20 | Anthony Rizzo | 12.80 |
https://docs.google.com/spreadsheets/d/1vnHB9E0eAf_MUMBO2BeZ2pYWx6LAiGIwvCXCEPuM4X8/edit?usp=sharing
Lastly, some sanity checks for fun.
Approximate Fangraphs Replacement level stat line:
| Season Totals | Hits | Runs | HRs | RBIs | BBs | SBs | Avg | OPS |
| FG Replacement level | 48.0 | 27.0 | 7.8 | 26.5 | 17.3 | 0.5 | 0.227 | 0.685 |
I would expect the CPL replacement level to be better than the MLB replacement level. This looks to be true, as my CPL replacement line seems better than the FG MLB replacement line by a decent amount in some categories. However, I was expecting the CPL replacement line to be significantly better than the MLB replacement line. One of the explanations may be that our “worst” is significantly worse than if every team had a fiscal motivation to be at least somewhat competitive. But, that’s just a guess that I’m not going to dig into.
Graph of CPL WAR vs Neutral Defense rated Fangraphs caluculated WAR:
Visually there appears to be a correlation between CPL WAR and MLB WAR (when attempting to filter defensive contributions, which is a bit of a guessing game), which is exciting to me. I kinda wish it was linear, but an exponential correlation is kinda exciting in its own way.
That’s all.
Any questions or comments, let me know.
Share this post
About the author

Comments