clock menu more-arrow no yes

Filed under:

The reality of Kendrys Morales and the bullish Statcast metrics

New, 36 comments

Was there really method to the seeming madness of that signing five years ago?

Toronto Blue Jays v Baltimore Orioles Photo by Mitchell Layton/Getty Images

Five years ago, the Toronto Blue Jays signed Kendrys Morales to a three year, $33-million contract, a very early strike in the free agent market that took many by surprise. Even aside from the likelihood of it closing the door on Edwin Encarnacion coming back, it was not well-received by the fanbase (and we weren’t the only ones).

It wasn’t clear why the team had to or felt compelled to make such an early splash to secure a player with a limited market on those terms, particularly the third guaranteed year. To the extent there was a good reason to explain the Jays jumping on Morales, it was elucidated in an article published on the eve of the 2017 season by MLB.com’s Mike Petriello:

[U]sing our new Statcast™Hit Probability tools, one can easily see what they are hoping for here. In 2016, Morales hit 30 homers for the Royals, with a solid enough .263/.327/.468 line. [But b]ased on the skill Morales actually showed at the plate, he deserved better.

These were the nascent days of Statcast metrics. At that point, there were only two years of data available, at least publicly and comprehensively, though teams likely already had some of their own proprietary data sets beyond that. As the above article alludes, the predictive/analytical Statcast metrics that are now ubiquitous had just been rolled out.

In 2015, Morales experienced a resurgence after cratering in 2014, posting a 131 wRC+ that marked his second best season after 2009 (and recovery from breaking his leg celebrating a home run in early 2010). His .364 wOBA was roughly in line with what the new Statcast metric would have predicted based on his contact at .372 (note that if you check his Baseball Savant profile now, it will show .365 because of subsequent tweaks we’ll return to later, hence the link to the archived version).

He seemingly feel back to a pedestrian 110 wRC+ in 2016, but based on contact quality, the Statcast metrics estimated that he was actually better than 2015. At a 147 wRC+ (my calculation from the .391 xwOBA) instead, Morales would have been one of the elite sluggers in baseball.

Needless to say, the reaction to the signing would have been very different had the Jays signed a player with a 140 wRC+ over the previous two years to that contract rather than a ~120 wRC+ (in line with career 114 wRC+). The added kicker was going from a pitcher’s park for power to a hitter’s park (and a power friendly division generally).


Unfortunately, that didn’t come to pass. In 2017 he posted a below average 98 wRC+ batting line. That improved to 108 in 2018, but still mediocre for a bat-only player. The Jays essentially ate the rest of the contract in flipping him to Oakland on the eve of the 2019 season, which proved prescient beyond opening opportunity for younger players as Morales collapsed to a 63 wRC+ in his final half-season before being released in late-June.

But throughout, Morales kept posting very strong contact data that Statcast believed should have translated to much better results. By its reckoning, in 2017 he should have posted a strong 124 wRC+, and in 2018 an elite 140 wRC+. Even in 2019, it thought he should still have been producing with a 130 wRC+.

All told, from 2015-19, Morales posted a 108 wRC+ whereas Statcast estimated he should have produced a 136 wRC+. Such an elite mark would have ranked 20th in MLB, alongside George Springer. That difference works out to just over 85 runs, with 80 in the last four years. That’s 20 runs—or about two wins—per year (and the last two weren’t full even seasons)!

It’s one thing for a player with a short track record to have a deviation between results and a more predictive or process based metric and believe they should be better. But it’s a different matter when it comes to a veteran with a long track record. If a metric says they should be much better than the actual results, it’s often the case that it’s an issue with the metric. If a pitcher has one season with a big ERA-FIP gap we might look through the ERA, but if over a long time a large gap persists it’s very likely it’s telling you something about the pitcher’s talent.

With that in mind, and with Morales having already accrued an expected/actual gap of 60 runs, at the All-Star break in 2018 for the first time I did a deep dive into Statcast data to try and get a better idea of the truth with Morales. It yielded a couple interesting findings, but unfortunately as I was pinning things down my laptop at the time died and the moment passed by. But having since done more in-depth analysis with Statcast output, it’s worth circling back, and five years on it’s also opportune for a final lookback.


The first clear area where Morales’ lagged his Statcast expectations was on ground balls. This shouldn’t be surprising given that Morales was one of the slowest players in baseball, and that’s going to result in fewer hits. Just on the over 600 balls he put in play topped downward, Morales came in about 25 runs below Statcast expectation. Add in balls hit more squarely but weakly on the infield, and the total goes above 30 runs. That’s a big chunk of the total right there.

After 2019, the Statcast metrics were tweaked to account for player speed by incorporating sprint speed into ground balls and weak infield contact. For 2015-19, this reduced Morales’ expected production on contact from .429 to .421, or about 12 runs less in total. That’s a step in the right direction, but based on the above only seems to be capturing a fraction of the production actually lost.

The lack of speed cost Morales on more than just ground balls. On low line drives, Morales matched the overall league rate when it came to batting average, but ended up 30 points shy in slugging percentage as he couldn’t stretch some singles into doubles as other players do. This was worth about four more lost runs.

On “pure” line drives (10-18 degrees), Morales had a curious degree of underperformance amounting to nine runs. Despite hitting the ball harder (unequivocally good at this optimal angle for hits), his batting average was about 60 points worse than the league. But his slugging percentage was a whopping 180 points behind. Beyond missing hits, a bunch of the lag was due to speed costing extra bases as the league managed extra bases on 33% of hits to just 22 for Morales.

Across all these categories, it’s clear that as much as 35-40 runs of Morales’ underperforming Statcast expectations (of the time) was driven by his lack of speed as opposed to his bat. In other words, he was being overrated since that’s not bad luck that will revert, it’s a fundamental skill.


The other bucket where Morales had significantly underperformed the Statcast expectations was on hard hit balls in the air. From 2015-19 Morales hit 356 balls measured with an exit velocity of at least 90 MPH and with a launch angle between 18 and 40 degrees, the prime area for power outcomes (the exact parameters are somewhat arbitrary, the low end is what I use as the liner/fliner divider and anything higher is a pop-up/can of corn, but the results are robust even if the limits are moved around).

On these balls, Morales hit .469 and slugged 1.480 (101 of the 167 hits left the yard) for a wRC+ of about 420. That sounds fantastic, but it just matches the overall league average for all players on these balls of about .470/1.487. Not exactly what one would expect from a putative slugger.

Not only were Morales’ results pedestrian in absolute terms, but by the Statcast data the expectation was his contact should have resulted in better outcomes, a wRC+ nearly 100 points higher. That represents about 42 lost runs, and is the other substantial piece of the gap.

I have sliced and diced this data, and at the end of the day I don’t have a good explanation for why. Overall, his launch angle and exit velocities on these balls where very close to the league average (about 1 MPH better, versus up to 4 MPH for some buckets of ground ballsn and line drives). That’s not dispositive since individual combinations for given really matter, but directionally it’s suggestive of largely average results.

The most obvious potential factor is the Statcast expectancies are based only on launch angle and exit velocity, without considering the spray angle. A 375-foot fly ball to right or left field will usually go for a home run, but to centre it’s usually going to be caught, and Statcast averages across these outcomes.

But Morales sprayed fly balls roughly the same as the league and relative to league average, he actually underperformed more to right and left than to the centre of the field. The “underperformance” is more that Statcast had inflated expectations for the balls he hit to the centre of the field. That seems odd, given that his overall headline average hue close to overall numbers.

On a micro level, the one thing that stands out is Morales seems to be the king of the warning track fly balls in the middle of the field—375+ foot balls that die just shy of real damage (see for example: here, here, here, here, here, here...there’s dozens more). Every player will have some of these of course, but Morales seems to have a lot more than most, and Statcast gives a lot of credit for them.

In the end, I’m skeptical of the notion that Morales really should have achieved much better outcomes on those prime fly balls. While he really pounded balls at lower angles, he was much less impressive when elevating the ball. Over five years, the odds are strongly against it just being a long run of bad luck.


In the end, the bullish Statcast metrics on Morales are largely ephemeral. To the extent there was an outlier, it was 2015 when his production matched the stronger peripherals with most fortuitous timing to earn him one last big payday.