The MLB Arbitration Analyzer is an interactive tool designed to project salaries for arbitration eligible MLB players. I built an Excel dataset combining FanGraphs performance data from 2021 through 2025 with salary and arbitration data for the corresponding 2022 through 2026 arbitration classes.
Using RStudio, I cleaned and joined the data, separated players into hitters, starting pitchers, and relief pitchers, and developed an independent regression model for each group. The final models were integrated into an R Shiny application and deployed through shinyapps.io.
AI tools were used throughout development to assist with coding, debugging, and editing.
V1 of the Arbitration Analyzer used predetermined formulas and WAR based market valuations to estimate arbitration salaries.
V2 instead learns from historical arbitration results. Each model estimates how a player's prior salary, MLB service time, playing time, and performance have historically related to his salary in the following arbitration season. The importance of each input is determined by the historical data rather than manually assigned weights.
Each player type is modeled separately because different statistics can influence arbitration value in different ways.
Hitters are evaluated using prior salary, MLB service time, plate appearances, OPS, wRC+, and WAR. These variables capture salary history, experience, playing time, offensive production, and overall value.
Starting Pitchers are evaluated using prior salary, MLB service time, innings pitched, ERA, FIP, and WAR. These measures capture workload, run prevention, underlying pitching performance, and overall value.
Relief Pitchers are evaluated using prior salary, MLB service time, saves, innings pitched, ERA, FIP, and WAR. Saves help account for bullpen role and closer value, while the remaining statistics measure workload and pitching performance.
During development, I tested different variable combinations and mathematical transformations to determine which specifications performed best on historical data. The final models use logarithmic and nonlinear relationships where appropriate rather than assuming every statistic affects salary at a constant rate.
Each model produces an expected arbitration salary, which serves as the Midpoint. I then analyzed historical differences between team and player filing figures for each player group and applied those observed spreads around the midpoint to estimate a Team Offer and Player Ask.
The models were evaluated using rolling out of sample testing across the 2023 through 2026 arbitration classes.
For each test season, the model was trained only on arbitration classes that occurred beforehand. It then projected salaries for players in the next class without using their actual salary results during training.
Performance was evaluated using Mean Absolute Error, Root Mean Squared Error, and Mean Absolute Percentage Error.
V2 advances the original Arbitration Analyzer from a formula based calculator into a model trained directly on historical MLB arbitration outcomes. The project covers the full process from data collection and preparation in Excel to statistical modeling and validation in RStudio and deployment through R Shiny.
For the sample results below, I analyzed three different scenarios: historical results to evaluate the model against actual outcomes, future projections for upcoming arbitration eligible players, and a V1 vs. V2 comparison to demonstrate how the Arbitration Analyzer has improved.
For each scenario, players were selected at random from the applicable dataset.
Case Results
Projected 2026 Salary: $15.87m
Actual 2026 Salary: $15.65m
Case Results
Projected 2026 Salary: $6.95m
Actual 2026 Salary: $6.10m
Case Results
Projected 2026 Salary: $6.36m
Actual 2026 Salary: $5.75m
2027 Salary Projection
$8.06m
2027 Salary Projection
$2.41m
2027 Salary Projection
$1.62m
2026 Salary Projection
V1 Projection: $13.90m
V2 Projection: $5.40m
Actual Salary: $5.20m
2026 Salary Projection
V1 Projection: $7.90m
V2 Projection: $2.56m
Actual 2026 Salary: $2.62m
2026 Salary Projection
V1 Projection: $6.93m
V2 Projection: $3.63m
Actual 2026 Salary: $3.95m