Full Count Model

How a pick gets made — from a per-plate-appearance rate to published bets.

The short version

The FCM model builds ideas from scratch — does this hitter record a base, does this starter stay under his strikeout number — and then compares its own price to the sportsbook's, with the sportsbook's margin stripped out.

Almost everything interesting happens in two places:
(1) our multipliers adjust a hitter's rate into a rate for today: who's pitching, weather and wind effects, which hand he swings from and how much of the game the bullpen will cover.
(2) a calibration layer fit on the model's own graded ledger decides how much that opinion is worth in each public market

A ROUND-TRIPPER FOR THE FCM MODEL

01 Ingest MLB API · Statcast weather · odds 02 Base rates per-PA, shrunk toward the league 03 Modifiers platoon · matchup wind · park · pen 04 Projection rate × projected plate appearances 05 Probability count distribution fit per market 06 Calibration weighed against the de-vigged book 07 Gate cEV ≥ +2%, and only proven lanes The pick, published before first pitch · graded at that price
One trip around the bases per pick. The edge is manufactured on the way to second; it gets audited at third.

THE STACK, LITERALLY

A hitter's total-bases projection is one line of arithmetic. Every term is a multiplier on his own per-plate-appearance rate. The first four are blended by starter share — the starter's terms carry the fraction of the lineup's plate appearances he is projected to cover; the bullpen term carries the rest.

tb_pa (shrunk)  ×  opposing arm  ×  platoon  ×  pitch-type  ×  bullpen  ×  weather  ×  proj PA
TermWhat it reads
PlatoonHitter's split severity vs. this arm's hand, leveraged by the starter's arsenal
Pitch-type matchupBatter's per-pitch-type value against what this starter actually throws
Bullpen qualityOpposing pen's effective xFIP — leverage-corrected & fatigue-adjusted
WeatherTemperature & wind resolved against the hitter's handedness
Park geometryVenue × handedness fixed effect, multi-season blended rate
Opposing lineup KApplied to the starter's strikeout projection (not the hitter's)

Case one — the pick clears the gate and wins

Ben Rice · TB Over 0.5 · BOS @ NYY
Published · 3 total bases · win
EnvironmentLeft-handed bat, second in the order. Wind 6 mph, out to right field — the direction that helps a left-handed pull hitter.
Opposing armPatrick Sandoval, left-handed. Same-side matchup, so the platoon term works against the pick.
Starter shareSandoval projected to cover 56.8% of the lineup's plate appearances; the platoon penalty is diluted across the other 43.2%.
ProjectionStacked rate × projected plate appearances comes to 1.7 TB.
Model priceProbability of at least one base, through the fitted count distribution: 64%.
Market priceOffered at −110 — a 54.1% no-vig probability after stripping the book's margin.
Raw EVModel probability at the offered price: +21.7%.
Calibrated EVAfter the ledger has its say (see below): +16.2%.
Result2B & 1B --> 3 TB. Win.

The park term never touched this pick. Yankee Stadium's short porch is real and the model knows it - the fixed effect is confined to Rice's home run number - a different bet.
This pick was carried by his own rate, the diluted platoon penalty and the weather.

Case two — the gate says no, and the pick wins anyway

Jacob Lopez · K Under 6.5 · BAL @ ATH
Held back · 6 strikeouts · would have won
Projection5.6 strikeouts over 5.1 projected innings, after the opposing lineup's contact profile.
Model priceProbability of staying under 6.5: 64.5%.
Market priceOffered at −145 — a 55.5% no-vig probability.
Raw EVA nine-point edge on the book: +8.9%. The model liked it.
Calibrated EVThe strikeout-under weights barely credit the model's disagreement: −2.2%.
DecisionBelow the +2% publishing floor — held, not shown on the card.
ResultSix strikeouts. The under cashed.

This is what the gate is supposed to look like from the inside. It is not a judgment about Jacob Lopez on Aug 28 — it is a judgment about the population of picks that look like this one, made from 352 graded K unders. A gate that only ever suppresses losers is not a gate, it is hindsight. Publishing this pick because it happened to win would mean the ledger stopped governing and the vibes took over.

The model grades its own opinions

Every Monday the calibration layer refits on the full graded ledger. It asks one question per market: given what the model thinks and what the market thinks, what actually happened?

calibrated probability = σ( a + wmodel·logit(model) + wmarket·logit(no-vig market) )

The weights are the interesting part! A high model weight means the model's disagreement with the price has historically been informative. A weight near zero means it hasn't. A negative weight means the model's opinion in that market has been actively worth fading — and we fade it automatically.

MarketGRADED BETSWEIGHT OF FCM'S OPINION
Full-game moneyline147
TB/H — Over552
K — Over148
K — Under352
ER — Under149
Pitcher Outs — Under198
TB/H — Under314

Weights current as of August 2026 — fit on 2,339 graded picks. The layer refits weekly on the growing ledger, so treat this table as a dated snapshot, not a live feed. Bars are scaled to the largest absolute weight.

Where it loses

We provide this data for transparency - it's something a marketing page rarely volunteers: the FCM model's opinion about unders is currently worth nothing in three markets. When our model identifies an edge for those markets, the ledger says the book was usually right.

F5 moneylines are the model's worst product — a losing record against the closing no-vig price. The FCM model's response to a losing lane is to track it until the evidence decisively produces positive EV.

← The card