post

2019 FreezeStats Hitter Projections Revisited – Fantasy Baseball

Every year I run as many player projections as I physically can given my personal time constraints. I then compare each player’s final results to my projections at the end of the season to see how accurate (or inaccurate) I was. It also helps me determine where and why I was wrong to help correct these issues for the future. Of course, projections are extremely difficult due to the countless number of variables and the sheer length of the season. For reference, here is the link to my article from last year comparing my 2018 FreezeStats Projections to the final 2018 results. Additionally, here is the link to the Google Sheet.


You’ll notice that I use all positive values when I run my Z-Scores which is not the way your statistics professor teach you to run them. However, in this case, I’m running Z-Scores compared to the difference in a statistical category from my projection to what actually happened. So, using the absolute value of the difference is the most accurate way to go if I want to compare the accuracy of each categorical statistic for each player. In addition to the standard 5-roto categories, I also include OBP (for you OBP leaguers out there) and plate appearances. Why? Because you can’t even start a projection for a hitter without determining his plate appearances. Thus, it may be the most important statistic to project and will help determine the validity of a projection. Here is the complete Googlesheet with all the data goodness from my 2019 FreezeStats Projections. Without further ado, let’s dive into the best or worst projections.

Projections with High Categorical Correlations

Adam Jones (OF – ARI)
As it turns out, my most accurate projection (by sum of Z-scores) was veteran outfielder Adam Jones. I suppose projecting a durable veteran with consistent year-to-year numbers isn’t all that surprising. However, I overestimated a little in plate appearances. I had him for 575 PA and he finished with 528 PA. The rest looked almost identical. I pegged his home runs and steals, missed his RBI by three, runs by two, AVG by .005 and OBP by just .001. 

Kris Bryant (3B – CHC)
I was down on Bryant coming into 2019 and nearly nailed his projections. He was dealing with injuries in 2018 so there was a high probability for a rebound but I didn’t see the superstar numbers coming back and I was right. My projections matched three of Bryant’s final numbers in AVG – .282, home runs – 31, and steals – 4. I missed his plate appearance total by just six and was very close on runs, RBI, and OBP. Being a Cubs fan, I’ve seen enough of KB to know who he is. The juiced ball dwarfed his numbers a bit even though he still managed a very productive season.



Ryan Braun (1B/OF – MIL)
What do you know, another veteran! Braun always misses time. You can bank of 125-135 games from him every year. The lower plate appearance projection actually allows me to provide more accurate projections. He still has some power, speed, and decent contact rates. As I mentioned earlier, the projection starts with the PA total and goes from there. 

J.D Martinez (OF – BOS)
Martinez’s numbers did not appear to be aided by the juiced ball. This helped my projections match his final numbers. With almost five years of consistent metrics from JDM, is a player I can count on and feel confident with where his numbers ultimately lie. His elevated BABIP and high home run rate helped me peg his AVG and OBP. I slightly over-projected his home run total but the runs and RBI are once again very high hitting cleanup for a great Red Sox lineup.

Domingo Santana (OF – SEA)
This one is interesting. Domingo was granted a fresh start in Seattle making him a prime bounce-back candidate in 2019. However, I was not projecting a career-year that matched his 2017. I thought he played over his head a little bit that season. So, I lowered his home run total based on his low fly ball rate but given his quality of contact, kept his BABIP elevated. That’s how I nailed his average and home run total. Not knowing exactly where he would hit in the order threw off the run and RBI totals a some, but still relatively close. 

Adam Frazier (2B – PIT)
I was a fan of Frazier as a deep league option for batting average and runs in 2019. Unfortunately, he did not take advantage of the juiced ball and took a step back in xwOBA. I just about nailed his PA and rate stats but inflated his home run and stolen base totals expecting a step forward in those departments. 

Brandon Crawford (SS – SFG)
I’m surprised I even projected Crawford. I thought he might be too deep but he plays every day because of his elite defense. I was not a fan of his heading into the season and he actually performed worse than my projections but is was close. His metrics are extremely underwhelming and his skills are declining. I don’t expect more than 500 PA for Crawford next year and he may be out of the league by 2021.

Justin Turner (3B – LAD)
Like Braun, Turner is a veteran talent who regularly misses time due to injury. Turner’s skills are strong and extremely consistent year-to-year. I’ve said it before, if Turner could get 650 PA, he would be a borderline top-25 player. His contact rates are strong as are his quality of contact skills, so he’d be a beast in four categories IF he ever stays healthy. So again, being accurate on his PA turned out to be the main factor in Turner’s projection. 


Michael Conforto (OF – NYM)
Did Conforto disappoint in 2019? Of course not. He hit 33 homers, drove in 92 runs, and stole seven bases. That’s a great year if it was 2018 or 2015 but it was 2019. Remember, my projections were made prior to the knowledge that the ball was juiced, so I was expecting a step forward for Conforto but he didn’t quite deliver the breakout some (including myself) were hoping for.

C.J. Cron (1B – MIN)
Other than an absurdly low run total for Cron in 2019, I just about predicted his season numbers to a tee. Again, thanks to an accurate plate appearance projection, the rest of the numbers fell into place. The home run and RBI totals were just a hair higher but that may have been juiced ball aided. He’ll be an interesting sleeper in 2020 after posting a career-best 15% barrel rate and cut his strikeout rate by nearly four percent. The lineup in Minnesota remains stacked but unfortunately for Cron, Cruz still occupies the DH. If Cron can get 140 games at first base, we could be talking about a career-year that looks something like .275-32-95.

Nick Ahmed (SS – ARI)
Um, so apparently, I projected Nick Ahmed’s mini-breakout? Had I known that I did this, I might have called it out on Twitter or something. I completely pegged his 19 homers (a career-high) and nearly nailed his AVG, OBP, and steals. He was coming off a career-high 16 home runs in 2018 at age-28 but he also cut his K-rate and improved his BB-rate with the metrics to back it up. There are two ways to project this type of performance. Call it career-year and negatively regress closer to the player’s baseline or trust the skills growth from the previous season and create a new baseline. I took the later. Maybe the juiced ball had something to do with his power but Ahmed took another step forward in terms of his plate approach as well. You better believe I’m expecting more of the same in 2020 from Ahmed at age-29.

Tyler Flowers (C – ATL)
T-Flow is an interesting case. It’s not difficult to project his stolen base total but I also nabbed his home run total and was very close on his OBP. My projections essentially had his playing time at a 50/50 split with declining skills, so the fact that this projection is a hit isn’t all that surprising from a 33-year-old catcher. 

Mitch Moreland (1B – BOS)
Moreland is another part-time veteran that is extremely consistent year-to-year. I was a little lower on his PA projection and the juiced-ball certainly helped aid in his 19 homers, but otherwise, this was a close projection. He’s been the same player for the last six years, so why would he change now? Same ol’ Mitch.

Mike Moustakas (2B/3B, MIL)
Unfortunately, Moustakas failed to reach the 40-homer plateau but still have a quietly productive season. I blame the juiced ball for the slightly inflated offensive numbers but you know what you’re getting from Moose. He had no business scoring 80 runs with under 600 PA and a .323 OBP but playing in Milwaukee with the juiced ball with do that for you. 

Projections with Poor Categorical Correlations

Travis Shaw (1B/2B/3B)
Boy was I off on this one. Not by a little but probably more than anyone was ever off about anyone. Who would have guessed that a player in his prime with back-to-back 30-homer seasons would end up with just seven! He only had 270 PA, was sent to the minors and hit an embarrassing .157. Wow, just wow. To be fair, no one could have projected a decline like this but I thought he would improve! Ugh, I apologize to anyone who listened to me on this one. 


Justin Upton (OF – LAA)
This can be chalked up to the toe injury Upton suffered literally right before the start of the season. Without a clear timetable, I only had him missing about two weeks. He ended up missing a total of almost four months between the toe injury and a knee injury that ended his season. He never really got going, but if you project his home run total out, you get very close to the 29 HR I projected. 

Pete Alonso (1B – NYM)
Here is an example of what a poor plate appearance projection can do. I never adjusted his plate appearances up after the Mets announced Alonso would start the season with the big club. I had him at 410 PA compared to his amazing 693! I projected Alonso for 24 homers in those 410 PA which projects out to 41 home runs in 693 PA. Considering my projection was pre-juiced ball, that isn’t an awful total. Also, I had his AVG in the .240s because I thought he would have a 29-30%% K rate in the majors. So kudos to Alonso for smashing even my relatively lofty expectations on the way to the 2019 Rookie of the Year.

Joey Gallo (OF – TEX)
Gallo is another injury case but also made a change in approach. He significantly lowered his launch angle (and fly ball rate as a result) which improved his BABIP and batting average. He maintained mammoth power and a strikeout rate far north of 30%. The injuries caused him to miss a ton of time so my projections pegged him for twice as many PAs. If you double his R, HR, and RBI, it’s a win on my end. I’ll take it, I guess. 

Aaron Hicks (OF – NYY)
This will be the last injury guy that I’ll talk about. Of course, I’m going to miss on guys that lose huge chunks of the season due to an injury. The difference between Hicks and players who were hurt after the season already began is number one, his history and number two, he was questionable to start the season due to a back injury suffered during spring training. Back injuries linger and I failed to adjust my plate appearance projection for Hicks docking him only two weeks of playing time. Going forward, in regards to players with injuries in the preseason (especially back, obliques, or arm injuries for pitchers) I’m going to downgrade and try to stay away from no matter how much I may love them. Other players I missed due to injury (after the start of the season) include Andrew McCutchen, and Mitch Haniger. 

Brandon Nimmo (OF – NYM)
I wasn’t expecting another step forward from Nimmo even though I projected his 2018 breakout. I thought he was good in 2018 but out-performed his metrics. Nimmo is technically an injury case but he was healthy through the first two months of the season and he was terrible. I expected a little bit of negative regression but what we got was a strikeout rate north of 30% and no power to speak of. He’s a curious case for 2020 as he’ll only be 27 and be dirt cheap. I suspect I may be back in after pick 250. 


Ian Kinsler (2B – SDP)
Nope, nope, nope! It’s safe to say Kinsler’s career is over. I’m not entirely sure what I saw in Kinsler’s profile that made me think Kinsler could hit .250 with 17 home runs at age-36. This was a poor projection and I’ll be the first one to admit it. 

Jorge Soler (OF – KCR)
Here is a projection that I was far too low on. I would imagine, most people were. I mean, he led the AL with 48 home runs for crying out loud! One issue for me was his strikeout rate that improved in 2018 but I wasn’t fully buying it. Also, his previous HR/FB rates were relatively pedestrian. There was nothing in his profile that showed an improvement that would result in a 20%+ HR/FB. Now, to my credit, I noticed his increased launch angle in the spring and I projected a potential power breakout, just nowhere near the final results. I guess I should have listened to myself but ended up with only one share.

Jose Peraza (2B/SS – CIN)
I was fading Peraza in 2019 and I owned him nowhere, that’s the positive side of things. His metrics were awful in 2018 and he “lucked” his way to 14 home runs. I dropped him to just nine HR which was correct but still projected him for 25+ stolen bases which is where I missed. That and the batting average. He just straight tanked. 

Cody Bellinger (1B/OF – LAD)
Ranking Rhys Hoskins over Cody Bellinger was a huge mistake. Where I missed with Bellinger is making the determination that his true skill level fell closer to 2018 than in 2017. I failed to realize that we were dealing with a 23-year-old phenom who hit 39 home runs as a rookie. He made strides from year-1 to year-2 by cutting his strikeout rate but made an unpredictable jump from year-2 to year-3. That’s my mistake. I projected him closer to a 25% strikeout rate and he finished with an impressive 16.3%! Amazing. That will add about 30 points to one’s batting average. Combine that with the juiced ball and you have the 2019 version of Cody Bellinger. I don’t expect 47 homers again, but 40 seems about right.

Rafael Devers (3B – BOS)
Devers is another young player where I failed to project significant improvements. While I did expect improvements in batting average and home runs, it was nowhere near the jump he made in 2019. So while I wasn’t completely out on Devers, I just missed on his superstar breakout. Oh well. My lesson learned is that maybe year-three is the time to buy into a young prospect who had high pedigree regardless of the previous year’s performance. 

Ryan O’Hearn (1B – KCR)
After a hot final two months of 2018, I expected better numbers from O’Hearn. He showed that his power was real even if it would come with a low batting average. His power was just OK and boy was he ever a batting average drain finishing below the Mendoza line. He’s a guy where I fell in love with the Statcast metrics (12.5% barrel rate, 44.2 hard hit%, solid batted ball profile, etc). I failed to notice that he was extremely poor against offspeed and breaking pitches where his whiff rate was north of 42% on both pitch types. A few good outcomes boosted the small sample numbers against those pitches for O’Hearn in 2018. In 2019, larger samples and regression set in. He actually made a few slight improvements and was unlucky against fastballs. He might just be a deep-league option in 15-team and deeper formats in 2020. Maybe.

Follow me @FreezeStats. Check out my work at FantasyPros and Pitcher List.




Photo by: Patrick Gorski-USA TODAY Sports