RosterResource Now Has Contract Incentive Data!
As part of our constant, unwavering (some might say neurotic) efforts to make RosterResource the clearinghouse for everything baseball related, we’ve added contract incentive data to our Team Payroll pages and created a separate Payroll Incentives table.
Let’s walk through the new features, using Matt Strahm’s current contract as an example. In March of 2024, Strahm signed a one-year, $7.5 million extension with the Phillies covering the 2025 season. The contract also included a $4.5 million vesting option for 2026, which could increase by as much as $3 million for reaching 40, 50, and 60 innings pitched in 2025; Strahm exceeded all of those thresholds, throwing 62.1 innings. After the option vested, Strahm was traded to the Royals.
Here’s what the Royals’ 2026 payroll page looks like with Strahm. You’ll note that Strahm’s row in the Players With Guaranteed Salaries section still shows the base option value of $4.5 million, with the $3 million increase reflected in the Incentives section of the page:


The player’s main row on the team payroll page will never change. Instead, the value of all the incentives they achieve will go into the Incentives section of the page, and be added to both the team’s “real” payroll figure and its CBT, or luxury tax, payroll.
The team-level payroll pages don’t currently allow you to see which incentives were reached to trigger a player’s payout, which is where the team-level view on the Payroll Incentives page comes in (yes, the Royals are big fans of incentives!):

This table can be filtered by year and by team, with your choice of showing all 30 teams at once for a given year or just a single club. The Incentive Status is expressed by an emoji, with a ✅ indicating achieved incentives (like Strahm’s), a ❌ denoting missed incentives (like Michael Lorenzen, whose 2026 incentives were dependent on an option that wasn’t exercised, hence the little asterisk), and a ⏳ marking incentives that are still pending (like Lane Thomas’).
Virtually all of the 2026 incentives are currently pending, as we don’t know who will win awards or how many plate appearances a player will take. As those incentives are hit or missed, I’ll make the necessary changes. In most cases, we won’t know if an incentive has been met until either the end of the season or after awards have been determined, but if a player suffers an injury that will clearly keep him out for a great deal of time, I’ll flip some pending incentives to ❌.
The Payroll Incentives table is also filterable by the type of incentive, which are as follows:
- Playing Time: Incentives earned with a certain number of plate appearances, innings pitched, games played/pitched, games finished, etc.
- Award: Incentives earned by winning (or finishing in a particular place in the voting for) an award, or by being named to an All-Star or All-MLB team.
- Assignment Bonus: Incentives earned if a player is traded, usually paid by the acquiring team (this is noted in the Incentive Description).
- Option Escalator: Any type of incentive earned that applies to an option year. On the team payroll page, these escalators will be shown in the Incentives section, but will not be added to the team’s payroll total unless and until the option is exercised, which is also when the base option value will be added to the payroll total.
- Buyout Escalator: Any type of incentive that applies to a buyout of an option year. This is the inverse of an option escalator; on a team’s payroll page, buyout escalators will be shown and added to the team’s payroll total. As with the base value of the buyout as shown in the Other Payments section, this value will go away if the buyout escalator is nullified by an option being exercised.
As for coverage, we’ve incorporated all incentives for 2025 and 2026, as well as any prior incentives for contracts that were still active in 2025. Eventually, we’ll broaden our coverage to include earlier contracts and years.
We hope that the inclusion of incentives data will make our payroll numbers, already something we’re proud of, even stronger. I don’t want to give too much away about our future plans, but this is the first of many steps we’re hoping to take to make our payroll and contract information more comprehensive and intuitive to understand on both the team and player level. Of course, every additional layer of accuracy adds another layer of complexity, and I’m currently hard at work on developing streamlined ways of showing an individual player’s contract information more fully, including base salaries, incentives, options, and deferrals.
As always, work like this wouldn’t be possible without the support of our Members. If you’re not yet a Member, I hope you’ll consider becoming one. And if you have other payroll features you’d like to see on the site, let me know in the comments!
Jon Becker manages RosterResource's team payroll pages and assists with all other aspects of RosterResource, too. Follow him at your own peril on Twitter at @jonbecker_ and on BlueSky at @jon-becker.com.
Thank you! This is great stuff. Appreciate the effort to always be improving.
One request that I don’t think would be a heavy lift but would be awesome – on team payroll pages, add trailing 5 years of total annual team payroll $ and total luxury tax $ (if paid). Helpful to know how high a team has gone recently (or how much they may be saving during a rebuild), willingness to pay luxury tax, and if they recently did a reset on the tax.
At minimum, tax payor status and revenue sharing status would be super helpful, since the QO benefits/penalties are derived from revenue sharing status, and I’ve had a hard time finding that info consistently.