Built a 288-cell run expectancy matrix by expanding the traditional 24 base/out states to include the 12 possible pitch counts (0-0 through 3-2). This model captures how run expectancy changes not only by baserunner and out situation, but also by the in-progress count, allowing for more accurate in-game strategy evaluation. This processed multi-season TrackMan play-by-play data in R, grouped outcomes by base/out/count state, and computed average runs scored until the end of the inning. Produced as a lookup table for integration into scouting reports and in-game decision models. There are 3 other versions that show the Run Expectancy values of a strike, a ball, and a foul ball in each count as well.
I developed an interactive Shiny web app to calculate and display Stuff+, Location+, and Pitching+ scores for every NECBL pitcher, using models built from 2021–2024 TrackMan data and applied to 2025 Bristol Blues game data. The app allows filtering by team and pitcher handedness, and includes sortable tables with pitch-level velocity, spin, movement, and plus metrics.
Key Features:
Stuff+ Model: Uses pitch velocity × induced vertical break, spin rate, horizontal break, multiple release/approach angle interactions, and pitch type. Separate models for pitcher handedness.
Location+ Model: Based on pitch location and pitch type, also split by handedness.
Modeling Approach:
80/20 train-test split with NECBL historical data (2021–2024).
XGBoost regression with 3-fold cross-validation.
Predicts run expectancy from pitch characteristics (no base/out/count context).
Evaluation: RMSE = 0.29, MAE = 0.19.
Visualization: Color-coded columns to highlight performance above/below league average for Stuff+, Location+, and Pitching+.
I developed Pitching+ “cliff charts” in R using ggplot to track how a pitcher’s performance evolves throughout an outing. Each chart plots Pitching+ by pitch count, with smoothed rolling averages to highlight shifts in pitch quality as workloads increase. Integrated with the Stuff+/Location+ models from the NECBL Pitching Dashboard, these visuals reveal fatigue patterns, changes in command, and pitch usage adjustments. Coaches use them to pinpoint when performance begins to dip, guiding bullpen decisions and personalized stamina planning.
Highlights:
Built in R (ggplot) for professional, data-rich visuals
Tracks Pitching+ progression by pitch count for each outing
Includes rolling average trends to identify subtle performance changes
Fully integrated with Stuff+/Location+ model outputs
Supports fatigue detection, bullpen strategy, and workload management
You'll see that through this we can decide when to pull guys, like in the chart on the left, who we can ride through their outing, like the middle chart, and which relievers have the "it factor" where they get better in tougher situations, like the chart on the right.