Top 25 MLB Players for 2017, 2018, 2019

This post will show the top 25 mlb players for the last 3 years according to this data model like what was done last year.  WAR evaluations will be included for comparison and contrast.  It takes year to year consistency to make the top of a list like this.  All the players below are the elite of MLB.


Rank 2019 Rank WAA Name_Teamid Pos
+001+ +003+ 25.81 Jacob_deGrom_NYN PITCH
+002+ +017+ 23.33 Max_Scherzer_WAS PITCH
+003+ +001+ 22.72 Justin_Verlander_TOT PITCH
+004+ +041+ 22.70 J.D._Martinez_TOT RF-DH-LF
+005+ +022+ 19.74 Nolan_Arenado_COL 3B
+006+ +025+ 19.40 Clayton_Kershaw_LAN PITCH
+007+ +005+ 17.79 Anthony_Rendon_WAS 3B
+008+ +009+ 17.16 Zack_Greinke_TOT PITCH
+009+ +045+ 16.61 Bryce_Harper_TOT RF-CF
+010+ +039+ 16.55 Mookie_Betts_BOS RF-CF
+011+ +027+ 16.17 Christian_Yelich_TOT CF-LF-RF
+012+ +002+ 15.96 Gerrit_Cole_TOT PITCH
+013+ +014+ 15.81 Nelson_Cruz_TOT DH
+014+ +008+ 15.60 Cody_Bellinger_LAN 1B-LF-CF-RF
+015+ +012+ 15.54 Mike_Trout_ANA CF-DH
+016+ +043+ 15.12 Edwin_Encarnacion_TOT DH-1B
+017+ XXXXX 15.12 Corey_Kluber_CLE PITCH
+018+ +004+ 15.04 Hyun-Jin_Ryu_LAN PITCH
+019+ +049+ 15.01 Charlie_Blackmon_COL CF-RF
+020+ +117+ 14.89 Aaron_Nola_PHI PITCH
+021+ XXXXX 14.62 Giancarlo_Stanton_TOT RF-DH-LF
+022+ +023+ 14.62 George_Springer_HOU CF-RF-DH
+023+ +028+ 14.59 Stephen_Strasburg_WAS PITCH
+024+ +172+ 14.45 Aaron_Judge_NYA RF-DH
+025+ +072+ 14.26 Javier_Baez_CHN 2B-SS-3B

The above shows rank for this three year split as well as rank for the 2019 season.  The WAA column is the addition of all three years used to determine rank.  As always, pitchers and hitters, AL and NL, all ranked together like in one big bowl of soup.  Pitchers produce runs by not giving up runs, hitters produce runs by driving them in or by scampering around bases to score them.

In the past three years there have been almost 2000 players who made an MLB appearance making the above 25 players considered top 1%ers.   They all can be considered superstars these last three years.  That doesn’t make them superstars next season.  The above is a reflection upon the past.

Most of the above players are not free agents.  At 25.81 Jacob deGrom averaged a little above 8 WAA per year.  This means that each year, if the rest of each Mets team played completely average, the Mets would end each season at 85-77 based upon deGrom’s pitching alone.  He has pitched well.  His team on the other hand …

Since the 2016 season dropped off these 3 year splits Cubs players will drop the most.  Javier Baez hangs in there at #25 having a career year in 2018.

Ranks 7-25 are fairly bunched up.  Although the top three, clearly in the lead are pitchers, there are only 10 pitchers in the top 25.  Mike Trout is ranked #15 last three years which will differ from the WAR table below.


Rank 2019 Rank WAR oWAR dWAR Name_Teamid Pos
+001+ +003+ 25.2 24.9 1.1 Mike_Trout_ANA CF-DH
+002+ +012+ 24.1 17.2 5.5 Mookie_Betts_BOS RF-CF
+003+ +022+ 21.9 X X Max_Scherzer_WAS PITCH
+004+ +008+ 21.3 X X Jacob_deGrom_NYN PITCH
+005+ +005+ 20.4 X X Justin_Verlander_TOT PITCH
+006+ +002+ 19.4 19.8 1.1 Alex_Bregman_HOU 3B-SS
+007+ +032+ 19 14.5 3 Aaron_Judge_NYA RF-DH
+008+ +085+ 18.7 X X Aaron_Nola_PHI PITCH
+009+ +009+ 18.6 19.1 -1.4 Christian_Yelich_TOT CF-LF-RF
+010+ +023+ 18.5 15.3 4.1 Nolan_Arenado_COL 3B
+011+ +013+ 18.5 11.4 8 Matt_Chapman_OAK 3B
+012+ +102+ 18.1 16.7 2.4 Jose_Ramirez_CLE 3B-2B
+013+ +043+ 18.1 15 5.6 Francisco_Lindor_CLE SS
+014+ +001+ 17.4 13.4 2.1 Cody_Bellinger_LAN 1B-LF-CF-RF
+015+ +085+ 17.2 16.9 1.6 Jose_Altuve_HOU 2B
+016+ +015+ 16.4 16.6 0.9 Anthony_Rendon_WAS 3B
+017+ +028+ 15.8 X X Zack_Greinke_TOT PITCH
+018+ XXXXX 15.4 8.5 9.3 Andrelton_Simmons_ANA SS
+019+ +015+ 15.4 X X Stephen_Strasburg_WAS PITCH
+020+ +176+ 15.2 X X Chris_Sale_BOS PITCH
+021+ +134+ 15 10.7 5.5 Lorenzo_Cain_TOT CF
+022+ +055+ 15 13.4 -0.8 Freddie_Freeman_ATL 1B-3B
+023+ +010+ 15 X X Gerrit_Cole_TOT PITCH
+024+ +014+ 14.6 12 5.1 Trevor_Story_COL SS
+025+ +005+ 14.3 X X Mike_Minor_TOT PITCH

All WAR data displayed here is calculated by  Our detailed explanation written in 2013 about WAR can be read here.  The above rank columns are the same as in the WAA table.  Ranks for WAR are calculated from the combined WAR for each player using the same methodology used to rank WAA values.

Baseball-reference calculates an oWAR (offense) and dWAR (defense) component which is shown above.  Since WAR folds very subjective and error prone defense theories into their calculation,  showing all three WAR columns provide context as to why some players rank so high or low.

Slight diversion: This brings us back to 2012 when this happened.

Rank WAR oWAR dWAR Name_TeamID Pos Year
+039+ 4.8 1.5 3.6 Darwin_Barney_CHN 2B 2012

Darwin Barney had a combined WAR of 4.8 in 2012 ranking him +39 in MLB on a Cubs team that went 61-101, WAA=-40.     By showing dWAR we can see Darwin Barney’s defense was a significant factor in his combined WAR.  He did win a gold glove that season but how many games did his defensive skills win for the Cubs?  Here’s his long form record according to this data model.

Rank WAA BA OBP PA RBI R Name_TeamID Pos
-126- -1.87 0.254 0.299 588 44 73 Darwin_Barney_CHN 2B  2012

This is a rather large dispute between the two value systems.  Based on the Cubs overall seasonal record this data model shows what part of that –40 Darwin Barney contributed, -1.87.  That’s how this model works.  Not sure what WAR=4.8 is supposed to mean.

FanGraphs has their own own way of calculating WAR which is described in this article:

A Layman Attempts To Calculate WAR: Batting Runs. 

The article ends with them calculating only one component of WAR.  Even the person interviewed didn’t fully understand how a Fangraph WAR is calculated.

This data model found baseball-reference to be the most accurate after spot checking which is why we use it for context in every post like this.  Fangraph WAR is very inflated.  Generally this model and WAR agree on top and bottom players with exceptions.  This is why playoff horse race and WAR models converged in late stages of playoff season because concentration of top players playing is highest.

Highlighted in bold blue in the above WAR 3 year split table show players who propelled to the top based upon rather subjective defense theories.  Mike Trout isn’t one of them, his value is mostly oWAR which makes his an almost apples to apples comparison with this model.

Trout plays for the Angels who have been a below average team these last three years.  This model counts runs actually produced.  WAR estimates runs based on hits and lots of other factors.  That model favors players like Trout.  Trout is a #1 player if MLB baseball wins and losses were determined by Draft Kings.  In real baseball games however teams win by the runs they score and don’t let up which is what this data model counts.  That Trout is ranked  #15 by this data model for the last three years is still extremely good making him an elite MLB player on a mediocre sub average team.

The next post will show Trout ranking #4 for the 2010 decade even though he didn’t play an entire decade.  He will soon be the #1 active player based upon career numbers and most likely a first ballot HOF — especially if ANA can win a World Series now that Joe is managing them.

Top 25 players of the decade coming tomorrow before the decade ends — hopefully.  Until then …