Earlier in this series, “Statcast Review,” we looked into xwOBA as a decent “catch-all” for what we can expect from a hitter or pitcher. It’s not perfect – no singular statistic is – but it is an essential comparative number where we can place two players side-by-side and gauge their relative performances.
At the time, we looked at the disconnect between the actual wOBA and the “expected” number. Regression in both directions was a key consideration.
We are now nearly two months into the season and have a solid baseline of how expected, and actual statistics are intertwined. We have also seen how they have moved over the first portion of the season.
That’s where rolling statistics come into play.
The “Rolling xwOBA” shows the difference between how a player was performing 100 plate appearances ago and how that same player is performing now.
There is a caveat. Generally, higher numbers – especially xwOBA – are better for hitters, while lower numbers are better for pitchers. We aren’t only looking at numbers, though. We are looking at the change in numbers – the delta – over a time period.
It is fair to question whether said delta is a sign of an outlier where regression to the mean is possible or a new trend forming. Unfortunately, this is a critical discussion point in all areas of statistical analysis. For our purposes, we will explore both possibilities.
Rolling xwOBA – Last 100 PA: Batters
Below are two tables for rolling xwOBA over the last 100 PA by batters. “Then” refers to the start of the timeframe, while “now” is the current xwOBA for a player. “Delta” is the difference between the two. The first table is sorted by “Delta” from high-to-low, while the second is sorted from low-to-high.
Sorted High-to-Low
Player | Then | Now | Delta |
Max Stassi | 0.238 | 0.382 | 0.144 |
Yonathan Daza | 0.250 | 0.391 | 0.141 |
Franchy Cordero | 0.217 | 0.350 | 0.133 |
Jonah Heim | 0.233 | 0.363 | 0.130 |
Trevor Story | 0.290 | 0.415 | 0.125 |
Kyle Garlick | 0.291 | 0.416 | 0.125 |
Matt Chapman | 0.287 | 0.411 | 0.124 |
Kole Calhoun | 0.273 | 0.397 | 0.124 |
Danny Jansen | 0.320 | 0.443 | 0.123 |
Harold Ramirez | 0.278 | 0.398 | 0.120 |
Jo Adell | 0.262 | 0.382 | 0.120 |
Pete Alonso | 0.332 | 0.451 | 0.119 |
J.D. Martinez | 0.360 | 0.473 | 0.113 |
Randy Arozarena | 0.242 | 0.351 | 0.109 |
Mookie Betts | 0.329 | 0.435 | 0.106 |
Joc Pederson | 0.366 | 0.471 | 0.105 |
Darin Ruf | 0.305 | 0.404 | 0.099 |
Christian Walker | 0.347 | 0.442 | 0.095 |
Mike Brosseau | 0.251 | 0.346 | 0.095 |
Max Kepler | 0.355 | 0.447 | 0.092 |
Sorted Low-to-High
Player | Then | Now | Delta |
Bobby Dalbec | 0.418 | 0.258 | -0.160 |
Adalberto Mondesi | 0.388 | 0.234 | -0.154 |
Jesus Sanchez | 0.398 | 0.253 | -0.145 |
Tyler O’Neill | 0.400 | 0.266 | -0.134 |
Jarred Kelenic | 0.395 | 0.263 | -0.132 |
Chad Pinder | 0.402 | 0.271 | -0.131 |
Joey Votto | 0.408 | 0.277 | -0.131 |
Steven Souza Jr. | 0.320 | 0.191 | -0.129 |
Salvador Perez | 0.368 | 0.240 | -0.128 |
Austin Riley | 0.438 | 0.311 | -0.127 |
Evan Longoria | 0.399 | 0.274 | -0.125 |
Wander Franco | 0.407 | 0.283 | -0.124 |
Brad Miller | 0.391 | 0.270 | -0.121 |
AJ Pollock | 0.433 | 0.312 | -0.121 |
Travis Shaw | 0.336 | 0.217 | -0.119 |
Jake Cronenworth | 0.367 | 0.260 | -0.107 |
Teoscar Hernandez | 0.390 | 0.284 | -0.106 |
Nick Castellanos | 0.408 | 0.302 | -0.106 |
J.P. Crawford | 0.384 | 0.278 | -0.106 |
Mike Zunino | 0.367 | 0.266 | -0.101 |
Notes
- The most extreme hitters in the positive delta direction are Max Stassi, Yonathan Daza, Francy Cordero, Jonah Heim, and Trevor Story, but we can easily attach a narrative to one. Story has frequently been one of the best fantasy baseball producers of the past few years but entered this season with essentially no time to prepare – primarily driven by the delayed offseason and then signing with the Red Sox late in the process. To see that Story’s numbers are vastly improving is almost certainly tied to an overall upward trend. Put another way; we knew he would hit eventually. Now he is.
- A handful of other names on the list simply don’t share the same pedigree as Story. Will Jonah Heim continue to bat nearly .280 as a catcher? Yonathan Daza obviously gets an offensive boost from playing in Colorado, but is his .350 batting average sustainable? Kyle Garlick is matching or eclipsing his career-best numbers in every category. Ultimately, these are the types of players who are more likely to be experiencing a hot streak, where the final numbers will probably dip from here.
- From the other side of the chart, the name that stands out among the crowd is Wander Franco. He is clearly slumping, and his trend is undeniably pointing down. Does anyone believe that he won’t recover? Not a chance. If anything, Franco is considered a “buy-low” candidate, although it’s unlikely that too many fantasy managers are thinking about moving on from someone with his name value.
- Jarred Kelenic, however, is a different argument. Like Franco, Kelenic was a highly-touted, hit-tool-centric prospect. Unlike Franco, Kelenic has yet to establish a long-term level of production that meets his former scouting report. He’s had multiple trips back to the Minor Leagues and carries a .140 batting average with the Mariners. That, in itself, is likely to correct in the positive direction, but the general output is disappointing.
Rolling xwOBA – Last 100 PA: Pitchers
Below are two tables for rolling xwOBA over the last 100 PA by pitchers. “Then” refers to the start of the timeframe, while “now” is the current xwOBA for a player. “Delta” is the difference between the two. The first table is sorted by “Delta” from low-to-high, while the second is sorted from high-to-low.
Sorted Low-to-High
Player | Then | Now | Delta |
Mike Clevinger | 0.401 | 0.234 | -0.167 |
Nick Pivetta | 0.422 | 0.278 | -0.144 |
J.P. Feyereisen | 0.381 | 0.244 | -0.137 |
Kyle Barraclough | 0.439 | 0.305 | -0.134 |
Ryan Helsley | 0.364 | 0.240 | -0.124 |
Alex Lange | 0.386 | 0.272 | -0.114 |
Drew Rasmussen | 0.358 | 0.245 | -0.113 |
Trevor Stephan | 0.344 | 0.236 | -0.108 |
Blake Snell | 0.345 | 0.238 | -0.107 |
Nick Martinez | 0.394 | 0.293 | -0.101 |
Joan Adon | 0.448 | 0.350 | -0.098 |
Ryan Yarbrough | 0.406 | 0.310 | -0.096 |
Sam Hentges | 0.342 | 0.247 | -0.095 |
Tarik Skubal | 0.345 | 0.250 | -0.095 |
Jorge Lopez | 0.372 | 0.278 | -0.094 |
Chris Martin | 0.340 | 0.250 | -0.090 |
Will Vest | 0.382 | 0.295 | -0.087 |
Trent Thornton | 0.390 | 0.304 | -0.086 |
Zach Eflin | 0.314 | 0.228 | -0.086 |
Ty Blach | 0.412 | 0.327 | -0.085 |
Sorted High-to-Low
Player | Then | Now | Delta |
Paul Fry | 0.266 | 0.429 | 0.163 |
Kris Bubic | 0.275 | 0.429 | 0.154 |
Jordan Hicks | 0.248 | 0.399 | 0.151 |
T.J. McFarland | 0.268 | 0.409 | 0.141 |
Ross Detwiler | 0.265 | 0.397 | 0.132 |
Dylan Cease | 0.213 | 0.345 | 0.132 |
Chad Kuhl | 0.265 | 0.396 | 0.131 |
Drew Steckenrider | 0.290 | 0.416 | 0.126 |
Hector Neris | 0.206 | 0.331 | 0.125 |
Garrett Richards | 0.264 | 0.388 | 0.124 |
Anthony Misiewicz | 0.253 | 0.377 | 0.124 |
Trevor Richards | 0.275 | 0.394 | 0.119 |
Miles Mikolas | 0.238 | 0.357 | 0.119 |
Matt Wisler | 0.210 | 0.326 | 0.116 |
Noah Syndergaard | 0.270 | 0.383 | 0.113 |
Kyle Finnegan | 0.245 | 0.357 | 0.112 |
Phil Bickford | 0.235 | 0.344 | 0.109 |
Garrett Whitlock | 0.240 | 0.348 | 0.108 |
Andres Machado | 0.260 | 0.368 | 0.108 |
Luis Cessa | 0.268 | 0.372 | 0.104 |
Notes
- It would be impressive if Mike Clevinger simply made the top-20 in this category. The fact that he leads the pack is an outstanding sign for a pitcher returning from injury. After all, every single fantasy manager is left to speculate how a player can handle recovery and a return to previous levels. Still, Clevinger is showing steady improvement along the way. He is headed back to the Injured List, but his most recent outings should yield optimism for his eventual return.
- Immediately following Clevinger on the list is Nick Pivetta, and his splits through roughly two months of the season are eye-popping. In April, he was 0-3 with an 8.27 ERA. In May, he is 3-1 with a 2.23 ERA and a complete game. The difference is laughable, but the key is that Pivetta is now settling around his averages from last year – which was also his first full season with the Red Sox. We may not see much further movement in his numbers, but it probably means that Pivetta has found new, stable ground.
- One player who might be overlooked is Tarik Skubal. His presence on the Detroit Tigers makes him a potential afterthought, especially if a prospective fantasy manager was looking for win potential. Still, Skubal has quietly been dominant, and he appears to be getting better. His “delta” and xwOBA speak for themselves, but he also hasn’t allowed a run – earned or not – since May 5. He isn’t routinely going deep into games, but that may change if he continues along with this pace.
- Finally, there’s the opposite view of the table. Many of the names listed are not relevant for fantasy baseball, but someone like Dylan Cease is worth a second look. He has performed far worse lately than he did to start the season. But that can be categorized as natural regression. His FIP is still the best of his career, which indicates that he might be the perfect “buy-low” option if anyone is frustrated with his recent string of games, including 13 earned runs over the last three starts.
Have something you want me to cover in this space, or just want to talk baseball? Feel free to reach out on Twitter @MarioMergola with questions or requests.
Subscribe: Apple Podcasts | Spotify | Google Podcasts | Stitcher | SoundCloud | iHeartRadio
If you want to dive deeper into fantasy baseball, be sure to check out our award-winning slate of Fantasy Baseball Tools as you navigate your season. From our Lineup Assistant – which provides your optimal lineup, based on accurate consensus projections – to our Waiver Wire Assistant – that allows you to quickly see which available players will improve your team, and by how much – we’ve got you covered this fantasy baseball season.
Mario Mergola is a featured writer at FantasyPros and BettingPros and the creator and content editor of Sporfolio. For more from Mario, check out his archive and follow him @MarioMergola.