BTV History



In addition to providing forward-looking valuation estimates, we also track how our model is doing against real-life trades. Here’s our scorecard since August 2019:

  • Number of real-life trades: 436
  • Number of those trades accepted by our model: 412
  • Acceptance rate: 94.5%
  • Average margin of error: 1.8

And here are the records of a few recent trades that our model got right:

Kolten Wong to the Mariners

Hunter Renfroe to the Angels

Harrison Bader to the Yankees

Tyler Mahle to the Twins

David Robertson to the Phillies

Juan Soto to the Padres

Josh Hader to the Padres

Frankie Montas to the Yankees

Andrew Benintendi to the Yankees

Craig Kimbrel to the Dodgers

Matt Olson to the Braves

Mitch Garver to the Rangers

Max Scherzer, Trea Turner to the Dodgers

Kris Bryant to the Giants

Kyle Gibson, Ian Kennedy to the Phillies

Javier Baez to the Mets

Francisco Lindor to the Mets

Nolan Arenado to the Cardinals

Lance Lynn to the White Sox

Nate Lowe to the Rangers

Blake Snell to the Padres

Jameson Taillon to the Yankees

Steven Matz to the Blue Jays

Jeff Hoffman to the Reds 

In addition, we are also tracking other types of transactions to ensure that our model is robust. For example, players who are DFA’d and/or released would figure to have low values if we’re right. In 2020, we tracked minor-league releases for that purpose. The average value of those players was zero, as this article explains.


This site is based on a valuation model we’ve been building, testing, and fine-tuning over several years. For better accuracy, we logged every trade made by every major league team, and adjusted our model each time we noticed something was off — including in our first few months during the summer of 2019. This generated a lot of learnings about what indicators MLB teams valued, and by how much. Sometimes, one change triggered another, and the more that happened, the more accurate the model became overall, until we reached the point where we felt everything more or less gelled.

We have a fair degree of confidence that our numbers are, well, in the ballpark. To be clear, we don’t claim to be perfect. That’s why we also provide a range for each player. This is a work in progress, which will evolve. But our goal is to be as accurate as possible, which correlates well to valuations used by major-league teams. Feel free to suggest an improvement, and we’ll check it out and see if it works.

Going back a bit, in the spirit of transparency, we thought we’d share our analysis of the real-life trades of the 2018/19 offseason, with our numbers from that time plugged in so you can see how they correlate.

(Note that we will label these historical trades by the biggest name in the deal.)

Trade evaluation: J.T. Realmuto to the Phillies, 2/7/19


Breakdown of the Phillies’ return

J.T. Realmuto came with two years of control (in his prime), and based on our model, an initial (pre-adjusted) field value of $54.6M. We then applied a market adjustment of 10% for being the best available catcher on the market, at a time when many teams needed one. We also applied an additional $6M reflecting a 50% probability that the Phillies would receive a compensatory draft pick in late 2020 if he declined a qualifying offer. (We estimate the value of this pick for late 2020 at $12M; this is sometimes overlooked, but can be a significant added value in trades.) All told, we estimated Realmuto’s adjusted field value at $69.1M.

Meanwhile, we knew his salary, in his second year of arbitration, was set at $5.9M. And based on historical precedent (using the 25/40/60 model), we predicted he’d get a raise in 2020 to around $8.7M, bringing his total estimated salary for the two years of control to $14.7M.

Now let’s calculate his surplus value, which is simple at this point: 69.1 – 14.7 = 54.4. So on paper, he was worth $54.4M at the time.

But wait. If you followed the market, you knew the Marlins were shopping around for the highest possible bid. At that point, it was essentially an open auction – the opening price was $54.4M, but the number was bid up by several teams. Knowing this (and we’ve worked in Finance, so we know a thing or two about how markets behave), we estimated Realmuto would go at the highest end of his range of outcomes. Our model predicted he would go for somewhere between $61.3M and $68.2M, with a median of $64.8M. He eventually went for what we believe is a package worth $65.95M.

Phillies get:

  • Realmuto: 64.8

Overpay? Maybe a little, but not crazy.

Breakdown of the Marlins’ return

Now let’s look at the return package from our valuation perspective.

The backstory was that the Marlins desperately needed a quality package in return for Realmuto, because the previous year they had traded their best chip, Christian Yelich, who became the NL MVP, for a prospect package that turned out to be (so far, anyway), very disappointing to them. They couldn’t afford to make that mistake again with their last best chip. So they held out, and held out some more.

At the time, Sixto Sanchez was the Phillies’ top prospect overall, and one of the top pitching prospects in baseball. Based on our prospect valuation model, we estimated his value at $44.4M.

Jorge Alfaro had one year of service time under his belt, so he was less of a risk than perhaps other prospect options, and still came with five years of control and lots of upside. The Marlins also needed a catcher to replace Realmuto. In our model, he was worth $20.5M at the time.

Will Stewart served as a minor add-on to help fill out the package, and despite the Marlins speaking highly of him, the consensus from scouts was that he was considered to be a longshot to be a productive MLB pitcher, which was reflected in his valuation of $0.8M.

Rounding out the package was $250K of International Free Agency slot allocation, which we estimate at face value. (Note: IFA slots can be traded in increments of $250K; it’s important to note that it’s not the money itself, but rather, the right to spend that amount on an international prospect; valuing them is mostly guesswork, but according to a study by Fangraphs, the ROI on these investments is high. So based on that, the value we’re representing here is the likely appreciation on that investment, and based on a pattern we’ve noticed in other trades, we’ve defaulted to a conservative 1-1 approach, whereby the appreciation is roughly equal to the option to spend it.)

Marlins get:

  • Sanchez: 44.4
  • Alfaro: 20.5
  • Stewart: 0.8
  • IFA: 0.25

Total: 65.95

On paper, it was a good deal for the Marlins. They made a smart decision to pull the trigger on it, based on probabilistic thinking, which we support. Time will tell if it pays off for them in outcome.

Trade evaluation: Robinson Cano to the Mets, 12/3/18


Breakdown of the Mariners’ return

Let’s talk about negative value. As you might suspect, that occurs when a player is owed more on his contract than he is worth on the field. In many of these cases, the players are dead weight. Teams want to avoid this situation as much as possible, and are usually highly motivated to clear that salary obligation for more productive uses. So a large chunk of this transaction can be explained by this motivation.

That’s especially true for the Mariners here. GM Jerry Dipoto spent the 2018/19 offseason attempting to both decrease the team’s budget and restock their depleted farm. He accomplished both goals in this move.

Despite Robinson Cano’s star power and the fact that he was viewed by Mets fans as an offensive upgrade, his trade value was highly negative, due mostly to the fact that he was still owed $120M over the next five seasons, and carried significant injury and performance risk, as he was entering his late 30s. Given that, plus the negative PR effects of his 2018 PED suspension, Dipoto was eager to move him, so much so that he had to include closer Edwin Diaz in the package and $20M to compensate for Cano’s huge negative value.

In return, the Mariners received two high-upside prospects in OF Jarred Kelenic and pitcher Justin Dunn (Kelenic, as you can see by his value, was the more promising of the two). To even out the value and budget considerations, the M’s also agreed to take on two deadweight players from the Mets in Jay Bruce and Anthony Swarzak, but this was a minor compromise for Dipoto, who also received reliever Gerson Bautista as a throw-in.


Mariners get:

  • Kelenic: 24.9
  • Dunn: 11.5
  • Bautista: 0.7
  • Swarzak: -6.4
  • Bruce: -16.5

Total: 14.2


Breakdown of the Mets’ return

New Mets GM Brodie van Wagenen was committed to a turnaround strategy for the Mets, so he was focused on the positive field value Cano could bring in his first year or two, even though he knew he’d pay dearly for the underwater contract later as Cano declined further into his late 30s.

No doubt he was delighted to acquire Diaz as well to shore up the bullpen. From a valuation point of view, this was the real prize for the Mets, as Diaz was not only (arguably) the top closer in the game at the time, but also came with four years of control. Because of that, he was the most valuable reliever in baseball. Players like that are rarely traded, but because Cano’s value was so far underwater, Diaz was a must-include in this deal.

The Mets’ GM was less concerned about giving away two prospects, as his priority was to win now. Giving up two other deadweight players was also a bonus.

From a strategic point of view, this deal was a positive for both sides — they each accomplished what they wanted.


Mets get:

  • Diaz: 76.3
  • Cano: -82.6
  • Cash: 20

Total: 13.7

Trade evaluation: Paul Goldschmidt to the Cardinals, 12/5/18


Breakdown of the Cardinals’ return

Paul Goldschmidt is a quiet superstar who seems to be consistently in the mix for NL MVP every year. As such, he carried a high field value despite the fact that he had only one year of control remaining on his then-contract.

We also calculated that he was a lock to receive — and decline — a qualifying offer (had he not yet signed an extension), which increased his trade value by $11.6M (the projected value of the compensatory draft pick the team that controlled him would receive in that scenario). Notably, that amount could only be factored in if he was on the same team for the entire season, which meant the D’backs had to trade him in the offseason to maximize that value.

Further, because he’s such a reliable contributor and star player, we applied a market premium to his value on the high side of his range, which ended up at a total value of $52.6M.

One other hidden, but unquantifiable, value was that the Cardinals may have calculated a high probability of extending Goldschmidt to a friendly contract, thus increasing his surplus value. That’s exactly what they did before the start of the 2019 season, so in effect they recouped the market premium, hidden draft pick value, and then some in the end.

Cardinals get:

  • Goldschmidt: 52.6


Breakdown of the Diamondbacks’ return

We don’t like to use the term “haul” here, because we think it’s grossly overused and misapplied. But in this case it might be valid. One year of Goldschmidt (plus that hidden draft pick value) netted two key pieces: a young starter in Luke Weaver (value: $30.1M), who was just coming into his own and carried less performance risk because he’d already had some MLB service time under his belt; and Carson Kelly, a former top catching prospect who’d had a brief MLB stint but had yet to prove himself at the level, and whose stock had fallen a bit (value: $17M).

That wasn’t quite enough, so the Cards also threw in Andy Young, a 2B prospect whose stock was never high but whose performance was consistently impressive, including a .319/.395/.556 slash line at AA in 2018 (value: $3.7M); and their competitive balance pick in Round B of the 2019 draft, which falls at the end of round 2 (value: $2M).

Diamondbacks get:

  • Weaver: 30.1
  • Kelly: 17.0
  • Young: 3.7
  • Comp pick B: 2.0

Total: 52.8

We’d call that a haul — even though it worked out as an even trade on paper for both teams.

Trade evaluation: Domingo Santana to the Mariners, 12/21/18


Breakdown of the Mariners’ return

At first glance, this trade seemed slightly puzzling. After all, Domingo Santana had a productive 2017 and had the upside of an impact bat. Ben Gamel seemed like a fourth outfielder. But Brewers GM David Stearns had tried to trade Santana after that 2017 season, with no luck. Santana has defensive shortcomings, and was viewed as a future DH for an AL team, which meant NL teams were not interested. Further, his production declined in 2018, to the point where he was optioned to AAA for parts of the season.

But the most important factor affecting Santana’s value was that he was out of options. “Given where we are from a roster perspective, and given he was out of options, we felt this was a move that made sense,” Stearns told the Milwaukee Journal-Sentinel.

For us, this trade was the standard bearer for deals involving out-of-options players, and enabled us to solve for the amount of discount we should apply to all fringey OOO players (that is, players who are not quite established regulars). Once applied, the values squared up. The M’s received a power bat who got off to a hot start in 2019, albeit one that may turn out to be a DH in the long run.

Mariners get:

  • Santana: 6.6

Breakdown of the Brewers’ return

The Brewers prized roster flexibility, as Stearns noted. They needed optionable depth. Because they set their sights on October, they had to plan for seven months of baseball, which meant accounting for significant wear and tear on their regulars. Gamel’s options allow them to mix and match to protect against roster injury risk and to optimize that playing time. Pitcher Noah Zavolas was a throw-in to even out the value.

Brewers get:

  • Gamel: 6.4
  • Zavolas: 0.1

Total: 6.5


Trade evaluation: Edwin Encarnacion to the Mariners, three-way trade, 12/13/18

Three-team deals are obviously complicated. The trick is to measure the gap between what each team gave up and what each team acquired. As you can see from our estimates, each team here managed to break even on that basis.

Breakdown of the Indians’ return

In this deal, the Indians essentially swapped out one negative-value slugger for another. Their motivation was largely budgetary, as they were operating well above their comfort zone and needed to shed some salaries. Edwin Encarnacion was owed $26.7M for 2019, while Carlos Santana was owed $20.3M for that year (albeit with $21.3M in guarantees after that), so they shaved $6.4M and figured to receive similar on-field value, and because they also received $6M in the deal they really cut $12.4M off the 2019 books in one shot.

They also wanted to restart their clock by getting a bit younger, and the acquisition of 1B/OF Jake Bauers fit that goal. He was a former top prospect whose stock had dropped, but the Indians clearly were still attracted to his upside. Giving up Yandy Diaz, who was older than Bauers and had issues with a high ground-ball rate, was acceptable to them given all the above.

Indians get:

  • Santana: -15.9
  • Bauers: 13.7
  • Cash: 6

Total: 3.8

Indians give up:

  • Encarnacion: -16.9
  • Diaz: 18.6
  • Sulser: 0.2
  • Comp pick B: 2.0

Total: 3.9

Net: -0.1

Breakdown of the Mariners’ return

As with their trade of Robinson Cano, the Mariners wanted to both shed salary and restock their farm. And as with the Indians, they swapped negative-value sluggers, but received the more expensive one. From a cash perspective, they chipped in $6M and got back $5M, for a net increase of $1m on their budget. But they were looking more long-term, so shedding Santana and his extra contract year (a total commitment of $41.6M) ultimately saved them a total of $13.9M. That will give them more headroom to add players down the road as they look to compete in future years. Getting the competitive balance pick B, which we estimate at a $2M value, was a minor benefit as well for restocking the farm.

Mariners get:

  • Cash: 5.0
  • Comp pick B: 2.0
  • Encarnacion: -16.9

Total: -9.9

Mariners give up:

  • Santana: -15.9
  • Cash: 6.0

Total: -9.9

Net: 0

Breakdown of the Rays’ return

The Rays knew their window was starting to open, so their primary goal was to improve the MLB team. They also saw an opportunity to fix Yandy Diaz’s groundball tendencies if they could improve his launch angle, as they liked his exit-velocity stats. Doing so would give them a more powerful bat with a more immediate impact on the team. And although Bauers still had upside, they viewed him as a longer-term project; they also knew they had plenty of OFs and Nate Lowe (and later, possibly Brendan McKay) coming to cover 1B, so it was a higher reward/lower risk play. Many thought they sold low on Bauers, but prospect watchers knew his stock had fallen a bit, to the point where his value was less than that of Diaz, so the Rays kicked in $5M to offset the difference. Pitcher Cole Sulser was a throw-in with a tiny bit of upside to even out the value.

Rays get:

  • Diaz: 18.6
  • Sulser: 0.2

Total: 18.8

Rays give up:

  • Bauers: 13.7
  • Cash: 5.0

Total: 18.7

Net: 0.1

Trade evaluation: Alex Claudio to the Brewers, 12/13/18


Breakdown of the Rangers’ return

Although this seems like a minor trade on the surface, we found it notable for two reasons:

First, Alex Claudio was a productive reliever who came with three years of control (albeit at escalating cost for all three arb years).

Second, since this was a cold, 1-1 trade, it signified an opportunity to place a value on all Competitive Round A draft picks. If Claudio’s value = Comp A draft pick value, then all Comp A draft picks should also have around the same value.

Based on our methodology, we ended up at $11.3M for Claudio, which squared with several other trades of similar draft picks. Thus:

Rangers get:

  • Comp A pick: 11.3

Breakdown of the Brewers’ return

The Brewers were all in, after coming an inch away from the 2018 World Series, so trading a draft pick (who would in theory be a long way away from helping the MLB team) for immediate relief help (which they sorely needed) — and one at reasonable salary cost — was an easy decision.

Brewers get:

  • Claudio: 11.3