Back to Portfolio

Catcher Evaluation Report

Comprehensive defensive analytics using Trackman data

Project Overview

Using R as a tool and Trackman CSVs as my data, I was able to craft a report that analyzes catchers including aspects of throwing, pop time, accuracy, and framing.

R Programming Trackman Data XGBoost Machine Learning

Project Description

When making my catcher evaluation report, I wanted to use R to read Trackman data and make the catching data easily digestible. Trackman gives us data on pitch location, pitch type, throw speed, pop time, exchange time, time to base, and throw location. Using these measurements, we are able to analyze a catcher's performance.

My report formats this data in an understandable way, sorted by throws to each base. For each base, you are able to see the total throwing statistics, throwing statistics for pitches in the zone, throwing statistics for pitches out of the zone, and throwing statistics for whiffs. All of these data tables are sorted by pitch type. Each base also has an accuracy plot that is sorted by pitch type. These accuracy plots are color coded by height, allowing the viewer to better visualize the accuracy of the throw.

Key Features

Throwing Metrics

Detailed analysis of throw speed, pop time, exchange time, and accuracy to each base, segmented by pitch type and location.

Framing Analysis

Scatter plots showing pitch locations with strike/ball outcomes, color-coded by pitch type to visualize framing effectiveness.

Advanced Metrics

SL+ (Strikes Looking Plus) metric derived from XGBoost model, comparing catcher performance to expected outcomes.

Heat Maps

Strike percentage visualizations for pitches caught without swings, extending 6 inches outside the strike zone.

Splits Analysis

Separate framing statistics for left-handed and right-handed hitters to identify platoon advantages.

NCAA Benchmarking

Color-coded statistics comparing performance to rolling NCAA averages and standard deviations.

NCAA-Benchmarked Color Coding

For better interpretability, statistics where I felt it would be useful for them to be compared to league averages are automatically color coded on a blue to red scale where red is good for the catcher. The coding is based on the rolling NCAA average and standard deviation for each statistic. SL+ is color coded based on the 100 scale.

Below Average
Above Average

Statistical Insights

For each catcher there is also a framing plot which includes a scatter plot of pitch locations relative to the zone, color coded by strike/ball with different shapes corresponding to each pitch type. This helps visualize framing and a catcher's ability to steal strikes on pitches outside the zone. Their receiving performance is also depicted by a heat map that illustrates strike percentage for pitches caught by the catcher without a swing.

This page also includes framing statistics such as strikes stolen (and percentage), strikes lost (and percentage), framing runs saved, framing runs saved per 9 innings, and SL+ (Strikes Looking Plus). The SL+ is derived from my called strike probability model trained using a XGBoost in R. An SL+ of 100 means a catcher is getting the expected number of called strikes, 105 means they are getting 5% more strikes than expected, and so on.

For better interpretability, statistics where I felt it would be useful for them to be compared to league averages are automatically color coded (on a blue to red scale where red is good for the catcher) based on the rolling NCAA average and standard deviation for each statistic (SL+ is color coded based on the 100 scale).

Example Output: Iowa 2025 Season

The following output was made with data from the Iowa 2025 baseball season, demonstrating the report's comprehensive analytical capabilities. My code works with any Trackman CSV, making it adaptable for any team or league using Trackman technology.

Iowa 2025 Catcher Evaluations