The last time I wrote about Trevor Story, this was the lede:

Don’t make any Trevor Story puns, Devan. Don’t do it. Too late. The Rockies’ rookie shortstop has been a mammoth story this season, as he continues to break record after record.

I’m not proud of this, just as I’m not proud of the pun in the headline above. But when you can make a pun, you make the pun. There’s not much more to it than that.

That’s why I’m here to talk about Trevor Story. He has always been an offense-first shortstop. During his rookie season in 2016, Story became the fifth player in baseball history to homer in each of his team’s first four games of the season. He also became the fastest player to six career home runs. Today, I’m here to change the conversation regarding Story’s bat-first reputation.

This season, Story’s offense has still been the best part of his game. In 585 plate appearances, Story has slashed .296/.356/.548 with 30 home runs and a 116 wRC+. He’s produced 17.4 runs above-average of offensive value, a slight step back from 2018 (+23.9), but it’s still a figure that ranks seventh among all shortstops this season. (Alex Bregman is listed first on the leaderboard, but he’s been primarily a third baseman.)

That’s not bad, but the dropoff becomes even less of a concern when one realizes that Story’s defensive value has been quite high this season. Among primary shortstops, Story’s +12.9 defensive runs are the third-most in baseball, and among all players, they are the 12th-most. His eight-run increase in year-over-year defensive value is the 17th-highest in baseball among players who received ample playing time in both 2018 and 2019. Story is evolving from an offense-first shortstop to an all-around great one.

There’s more to this story. After all, it’s important to think about why Story has become a better defender in 2019 compared to prior years. If we look at his UZR breakdown by year, it becomes clear:

Trevor Story, UZR Breakdown Season DPR RngR ErrR UZR UZR/150 2016 0.5 -1.2 0.4 -0.3 -0.4 2017 1.0 -3.8 4.6 1.7 1.7 2018 0.4 -4.7 2.1 -2.2 -2.1 2019 0.0 3.7 3.4 7.1 9.7

Story’s range at shortstop has improved. He has gone from -4.7 in range runs above-average in 2018 to +3.7 range runs above-average in 2019; a near eight-and-a-half run improvement. Story’s range improvement has been worth nearly an entire win to his overall value.

The numbers might explain Story’s improvement; he covers more ground at shortstop this year compared to last, and that’s why he’s better. But defensive metrics can be tough for the average fan — or even most sabermetrically inclined fans — to visualize. We all know that defensive value is there, but since so much of defense is still reliant on the eye test, it can be rather tough to identify one player’s defensive improvements without watching him every day. Rockies fans might have noticed that Story has played better defense this year, and sabermetrics fans can point to the numbers and say that Story has played better defense this year, but what does this improvement actually look like on a play-by-play basis?

I decided to attempt to find out. Using Baseball Savant and Statcast’s expected batting average statistic, I looked at the number of expected hits Story has saved in each of the past three seasons on ground balls. It was rather simple. I summed the expected batting average for each play Story was involved in, and I gave him the credit for saving those hits. Would I see a tangible difference? These were the results:

Trevor Story, Expected Hits Saved Season Expected Hits Saved Innings at SS xH Saved/1000 Inn 2017 68.6 1185.1 57.8 2018 77.8 1372.2 56.7 2019 73.7 1101.0 67.0 Stats through games played on Friday, September 6.

This method is certainly not perfect. It does not take into account Story’s starting position; it does not penalize him for poor plays and only rewards him for good ones; and it assumes that Story is the only defender responsible for the out. Expected batting average itself is a little flawed too, only taking into account exit velocity and launch angle and not the batted ball direction.

However, even with those caveats, I would argue that we have a better understanding of the whole picture. On a rate basis, Story saved about the same number of hits in both 2017 and 2018. In 2019, he has saved about 10 more hits per 1000 innings at shortstop than he did in 2018. Story has potentially made some tougher plays this year, and that could be showing up in the numbers above. This is also corroborated by his Inside Edge Fielding data:

Trevor Story, Inside Edge Fielding Season Inn Impossible (0%) Remote (1-10%) Unlikely (10-40%) Even (40-60%) Likely (60-90%) Routine (90-100%) 2016 823.0 0.0% (6) 0.0% (19) 21.4% (14) 33.3% (9) 85.7% (21) 98.6% (292) 2017 1185.1 0.0% (4) 3.4% (29) 23.5% (17) 60.0% (20) 77.5% (40) 97.1% (373) 2018 1372.2 0.0% (9) 7.7% (26) 25.9% (27) 57.1% (14) 79.5% (39) 96.4% (420) 2019 1118.1 0.0% (9) 0.0% (17) 56.3% (16) 61.5% (13) 83.3% (36) 98.6% (350)

Story’s fielding has improved in every single area with the exception of “Remote.” His largest rate increase has been in the “Unlikely” range, in which he has improved by over 30 points. In 2018, Story made just seven “Unlikely” plays out of 27 total. In 2019, he’s already made nine plays in 11 fewer opportunities. That’s a real improvement.

Story has also already made 22 more plays outside of his range in 2019 than he did in 2018, according to his Revised Zone Rating data, while maintaining nearly the same rate of plays made on balls within his range (.778 in 2018, .781 in 2019). But what about his specific improvement in this area? Is Story improving in any one particular situation, such as moving to his left or moving to his right? To consider this, I looked at the x- and y-coordinates for every ground-ball out that Story has recorded in 2018 and 2019. I honed in my search to the x-coordinate distributions to highlight his horizontal movements.

Here is a histogram demonstrating the x-coordinate for every ground-ball out Story made in 2018:

Now, here is a histogram demonstrating the x-coordinate for every ground-ball out Story made in 2019:

It might not be immediately noticeable from the graphs, but there is certainly a trend towards higher x-values. Look at the data provided in this table format, as a percentage of total Story ground-ball outs:

Trevor Story, X-Coordinate of Outs X-Coordinate 2018 Percentage 2019 Percentage 90.00-101.99 2.5% 2.4% 102.00-113.99 61.5% 56.9% 114.00-125.99 28.3% 29.1% 126.00-137.99 5.5% 8.9% 138.00-149.99 2.2% 2.8% Stats through games played on Friday, September 6.

My theory is that Story has improved on ground balls to his left. In 2018, only 36% of Story’s ground-ball outs came on batted balls with an x-coordinate greater than or equal to 114. In 2019, that figure has risen to 41%. If we imagine the baseball field on a coordinate plane like so…

…we would see that balls hit to the shortstop’s left would have larger x-values. Of course, the above image doesn’t represent the same scale as Statcast data, but it is just a better way to visualize what might be happening here. Theoretically, if Story is making more outs on batted balls that have larger x-values, we could reasonably assume that he has improved on batted balls hit to his left.

My theory suggests that plays like these are the ones on which Story has improved the most:

Or this one, where Story has to charge the ball to his left:

Or even this one, where Story gets to the ball on its favorable hop:

One could argue that Story’s positioning is what is driving his improvement in range. However, this is likely not the case. Story’s average positioning is -11 degrees this season after being at -12 degrees in 2018. He also has moved back two feet. While these small adjustments may be playing a role, it’s unlikely that they can fully explain Story’s improvement with his range.

Thus, it’s pretty clear that Story has improved defensively. Once an offensively-focused shortstop, that’s no longer the full story for Trevor. With an improvement of his range at the position, Trevor Story has become an all-around great player, and that narrative needs no pun.