Methodology

How the model works

Model probability vs Polymarket price, measured at the ask, with a minimum bar before anything counts as a lean.

The short version

For every game in a slate, the model produces a win probability for each team. Polymarket prices the same game as a share that pays $1 if the team wins, so a 40¢ share is the market saying roughly 40%. The difference between the model's probability and the price, in cents, is the edge.

We measure edge two ways: against the mid (halfway between the best bid and best ask) and against the ask (what you would actually pay to buy right now). The ask is the one that decides anything, because the mid isn't a price you can trade at.

When something becomes a lean

A game only becomes a formal lean if all of these hold at the time of the slate:

  • There is a Polymarket market for the game with at least $5K of liquidity.
  • The model has a fresh output for the game.
  • The edge vs the ask is at least the league minimum: 1.8¢ for MLB, 2.5¢ for NBA.
  • Picks are allowed for that league and phase (no preseason picks, and leagues without a model get none).
  • At most the top three games by edge vs ask make the lean list.

Honest passes

If a game is eligible but the edge at the ask is under the bar, it's an honest pass. We still publish the numbers, because a pass is information too: it says the market and the model are close enough that the spread eats the difference.

Passes are never graded. We list their finals for reference, but they don't move the record in either direction.

Lineups, starters, and gating

MLB: the model comes from the FOOFIGHTER server's signals and is pitcher-adjusted, meaning it accounts for the probable starters. If ESPN's probable starter and the server's starter don't match, the game is held until that's resolved. The model does not read the full batting order.

NBA: the model is computed from last season's team ratings (net rating, offense, defense, recent form, head-to-head) plus home court. It is not lineup-aware. That's the main reason NBA preseason is context only: rest days and rotation experiments decide those games, and the model can't see them.

NHL and NFL: no model yet. Those games, when shown, carry market prices only and no pick.

Stale model signals and thin markets get flagged in the data, and a flagged game doesn't become a lean.

How grading works

After the games, a recap script pulls ESPN finals and grades only the formal leans from the last pregame snapshot: the lean wins if that team wins. Results are cross-checked against Polymarket's settled market where available. A lean withdrawn before the game is marked withdrawn, not graded.

Every graded lean, including every loss, is on the record page.

What this is not

It's not a guarantee and it's not advice. A positive edge means the model thinks the price is too low, nothing more. Models are wrong, markets are often right, and short samples are mostly noise. When the sportsbooks agree with Polymarket and only the model disagrees, the game page says so.

Data sources

  • Polymarket: market prices (order book bid, ask, mid) and liquidity.
  • ESPN public APIs: schedules, venues, injuries, the DraftKings line, ESPN's matchup predictor, and finals.
  • MLB Stats API (via the server): probable starters and ERA.
  • FOOFIGHTER server: model signals, read-only.
Get in touch

Follow the daily log

Model vs Polymarket numbers before the games, graded results after. Losses included.

Follow @0xDune0104 on X
Get in touch

How the model works

Probability vs the Polymarket ask, the bar for a lean, and why a pass stays off the record.

Read the methodology

Not financial or betting advice. This is model output shared for information and entertainment. Prediction markets and sports betting carry real risk of loss. 21+ only (or the legal age where you live), check your local laws, and play responsibly. If gambling stops being fun, get help: call or text 1-800-GAMBLER (US).

FOOFIGHTER Picks. Model output vs Polymarket prices. No guarantees.
Record · Methodology · About · Sitemap · X