Author: Charlie Keglovitz: Computational Modeling and Data Analytics Major at Virginia Tech and Normal CornBelters Baseball Analytics Intern

Baseball Savant debuted with the launch of Statcast in 2015, ushering in a new era of advanced MLB analytics. High‑definition cameras and radar systems installed in every ballpark made it possible to track player movements and ball trajectories with precision. While baseball has always excelled at measuring past performance, this technology has enabled powerful new tools for predicting future outcomes by leveraging this data.

This year at the Corn Crib we installed the Yakkertech camera system, which gave us access to Statcast-like data. With this, I created a tool similar to Baseball Savant used in the MLB to give our coaches, players, and staff insight into players rarely found at the collegiate summer league level. 

Exploring Expected Stats

The traditional triple slash line of batting average, on-base percentage, and slugging percentage gives a pretty good glimpse into a player’s contact, eye, and power capabilities, but expected stats attempt to give even more information based on the quality of contact hitters are making. Expected batting average (xBA) is one expected stat and is calculated by taking in the metrics a hitter can control, exit velocity and launch angle, and calculating the likelihood of a hit by comparing it to batted balls with similar exit velocities and launch angles. For example, 92% of balls hit at a speed of 102 mph with an 11-degree launch angle fall for a hit, so that batted ball will have an expected batting average of .920. 

Merchants third baseman Noah Dill on June 14th went 0/5 on five balls put in play. After calculating the xBA of each of his outs, I found it was most likely Dill “should” have gotten one or two hits with an xBA on the day of .302. 

On the box score it looks like a bad day for Dill, but if he hit 5 balls with that exit velocity and launch angle every game, I would expect him to bat around .300. A main purpose of using expected stats is that they attempt to remove luck from the equation. xBA does not care if the defender made a spectacular catch or robbed a home run; it only takes into account what the batter can control and finds how likely they are to get a hit from there. 

On the flip side, Merchants DH Thomas Mickels went 3/3 on similarly hit balls to Dill’s. He only had a 3.58% chance of getting three hits, so while still a strong performance, we can tell that Mickels overperformed.

Exploring some of the extremes for xBA on batted balls in the KCL, on June 19th, Will Vogel hit a ball with an 81 mph exit velo and a 55-degree launch angle for a double when it only had an expected batting average of .071, or roughly a 7% chance at getting a hit. Nick Guidici was robbed of a hit on a torched line drive when he hit a ball 101 mph at 15 degrees for a lineout when it had an expected batting average of .627.

Beyond just xBA, the analytics team and I created models for expected slugging percentage (xSLG) and expected weighted on-base average (xWOBA), which aim to predict a player’s expected power and their overall offensive performance, respectively. These tools provide us with another data point on player performance and evaluation, allowing us to determine when a player is due to regress or when to continue giving a player at-bats because they have been unlucky.

Player Tendencies

With the help of the analytics team, I created visual modules to display player tendencies for both hitters and pitchers. These modules utilize the information collected from the cameras to gain a deeper understanding of player strengths and weaknesses. Below is a display of each chart and how they can be used through an example scouting report of league MVP Kaileb Hackman and Best Pitcher winner Joe Stellano.

Percentile Charts

The percentile charts unify all the advanced metrics into a single, comprehensive snapshot. Each bar represents a different skill, its length and color showing how a player compares to league peers. In these examples, Stellano (left) and Hackman (right) rank in the top 10% of the league in almost every category, a testament to why they excelled at their respective positions.

Spray Chart

Credit: Noah Lippman

Hackman hit .521 this season, but we can see his success came largely from line drives in the shallow outfield and hard-hit ground balls. He showed the pop to get one out, but didn’t rely on that to hold his high batting average. We can also see Hackman pushed a lot of balls the other way for hits with a slightly lower than average pulled fly ball rate.

Zone Chart

Hackman thrives up in the zone where he has xBAs around .500, but shows little weakness low and away with only a .270 xBA. Using the zone chart, you can also filter for specific pitch types or against left or right-handed pitching to give even more information for a player’s hot and cold zones.

Batted Ball Profile

Credit: Wyatt Sherman

Using insight from 38 batted ball events, Hackman shows the ability to hit the ball in the air to all fields. He could become a stronger hitter if he hit more fly balls to the pull side, but he has a strong profile from limiting pop-ups and ground balls. He boasts a strong 44% Launch Angle Sweet Spot Rate, which measures the percentage of balls hit between the optimal 8 and 32 degrees.

Plate Discipline

Credit: Cam Cischkey

The plate discipline table shows data related to a batter’s eye, contact ability, and aggressiveness. Hackman posted roughly league-average whiff rates, especially struggling outside of the strike zone, where he whiffed nearly 40% of the time. However, Hackman was one of the biggest free swingers in the KCL, especially on the first pitch. His first pitch swing percentage of 43.9% ranked first among all of the top 10 for the MVP race, and he swung at almost 80% of pitches in the zone. 

Pitch Tracking

Credit: Ari Goldberg

I grouped all pitches into categories of fastballs, breaking balls, and off-speed pitches, and measured a hitter’s performance against each pitch group. Hackman shows why he was the MVP as he has virtually no weaknesses and hits greater than .500 against each group. Hackman has power against all pitches, and his whiff rate does not climb against any group. One difference we can find is that he elevates fastballs more consistently, but also strikes out on fastballs at a higher rate than on other pitches.

Pitch Movement Profiles

Pitchers are typically measured by their max velocity on their fastball, spin rate on breaking balls, and run-prevention abilities. One of my interests this summer has been to find other, more nuanced ways of predicting pitcher performance that don’t rely on throwing the ball harder or spinning it more. I chose to focus on the difference in speed between a fastball and a changeup, or a pitch with a unique movement profile that could lead to increased pitcher success. 

To visualize this, I created pitch movement charts for each pitcher, showing how each pitch breaks with metrics on its speed and spin rate. Each pitch is placed on the grid by its induced vertical break and horizontal break. Horizontal break describes how many inches a pitch moves to the left or right based on the spin applied to the baseball, while induced vertical break “is reported without gravity, and attempts to isolate movement created by the pitcher’s ability to spin and manipulate the ball” (BaseballSavant). In simpler words, horizontal break is “run” while induced vertical break is “rise”.

Each game, the analytics team tags every pitch on the Yakkertech system, but after thousands of pitches many end up mistagged. These tags must be accurate, so I used a Gaussian Mixture Model that clustered pitches based on pitch speed, spin rate, induced vertical break, and horizontal break. It then looked up, within each cluster, which hand‑tagged pitch type was most common and assigned that the “auto” label. To show some examples, above is Joe Stellano’s deadly fastball/slider combination, Joey Kahwaji’s unpredictable knuckleball, and Marshall Ingold’s sweeping curve.

Catcher Framing

Defensive metrics are still being added to KCL Baseball Savant, but each catcher has a catcher framing chart that shows how often pitches in each part of the strike zone are called strikes compared to the league average. 

Credit: Noah Lippman

MVP candidate Lawson Alwan had one of the best bats in the league, but also posted slightly above average framing metrics as he framed five more pitches to be called strikes than the league average catcher would have in 390 opportunities. He is fairly strong inside the strike zone, but is especially strong below the zone, while struggling slightly with bringing pitches down just above the zone. Fellow MVP candidate Braxton Waller was the best defensive catcher with above-average framing skills on all parts of the plate, adding 12 strikes in just 229 opportunities.

Game Logs

Game logs allow players and coaches to see their games on an individual level that you can not get from looking at stats throughout a whole season. Hitters can see their stats down to the at-bat level, along with the expected stats for each ball put in play, while pitchers can see a breakdown of the stats for each of their pitches. I calculated a somewhat arbitrary “Game Score” metric that calculates the strength of the game in a fantasy sports-like way and scales it to a score of 0-100 based on the performances of every player in the league.

Kaileb Hackman posted one of the best performances in the KCL with a 3/3 day, including a triple that had the highest xBA of any hit all year in the KCL and was the second hardest-hit ball all summer.

Credit: Max Quirk

Stellano was untouchable when he struck out all eight batters he faced on June 7th. His fastball had a mystifying 87.5% whiff rate, even if it was only in the strike zone 30% of the time. 

Game logs and the rolling xWOBA charts shown below help players track their performance throughout a season. Adan Nieves (left) and Ethan Hamrick (right) were two of the most improved players in the KCL from the beginning of the season to the end. As briefly mentioned earlier, xWOBA is an expected stat that predicts WOBA, a stat designed to measure a player’s overall offensive run value production. 

Advanced Stats

The traditional triple slash line of AVG/OBP/SLG helps evaluate performance, but since the KCL is a different run environment with more offense than MLB, it can be difficult to contextualize results. wRC+ and WAR weigh performances against the league to see how a player’s hitting compares to league average and against “replacement level” hitting. 

wRC+ stands for “weighted runs created plus” and measures a player’s run creation ability against the league, with 100 being average. wRC+ is considered a more accurate measurement than OPS+ because it is based on wOBA, which is calculated based on the run values of different offensive events, unlike OPS+, which is based on OBP and SLG. 

The stat oWAR can be calculated in many different ways, but essentially is a measurement of how many “wins above replacement” a player contributes to their team from hitting. There are no “minor leagues” for the KCL, which is how replacement level is typically calculated. However, I found that the average replacement-level player in MLB has a wRC+ of around 75, so I used this as a basis to scale my wins above replacement measurement. As it currently stands, oWAR on KCL Baseball Savant only considers offensive run value production, but with the addition of defense, a more complete understanding of how each hitter compares to the “replacement level” player will be achieved. 

For pitchers, WAR is calculated based on a pitcher’s run prevention ability, similar to bWAR used on baseball-reference.com. Although Fangraphs, another baseball statistics website, uses fWAR (based on fielding‑independent pitching, or FIP), I chose to use bWAR for this project. Although bWAR is often viewed as less predictive of future performance and more reflective of past results than fWAR, I wanted to identify the best statistic for measuring past performance, since I already use xERA and xBA to predict pitchers’ future outcomes.

Conclusion

As we’ve seen, bringing Statcast‑style data to the Corn Crib has given our team a level of insight you don’t get in most summer leagues. From utilizing expected stats that neutralize bad luck to pitch‑movement maps that show spin profiles, the KCL Baseball Savant platform equips coaches and players with advanced analytics they can use.

Developing this platform sharpened my skills in R, statistical modeling, and UI design, capabilities I’m eager to bring to a career in baseball analytics. I’m grateful to the CornBelters analytics program for the opportunity to grow, and I want to thank the analytics team: Ari Goldberg, Cam Cischkey, Max Quirk, Noah Lippman, and Wyatt Sherman for their collaboration on this project.

Link to KCL Baseball Savant: https://thekegzster.shinyapps.io/cornbelterssummerprojects/

Leave a Comment