Blog / odds data explained

How odds move, and how to read them.

Explainers for people who build with odds: line movement, prediction market prices, closing line value and +EV. Every formula is worked through with real numbers.

Prediction markets / price comparison

Kalshi and Polymarket vs sportsbooks in one call

A recorded NBA response, raw versus net quotes, and documented curl and Python examples for comparing the same fixture.

Read the post →

Exchange fees / expected value

How exchange fees change the price and erode long-term gains

Hold the bets and the pre-fee expected gain constant, then measure what each fee takes over 1,000 bets, including negative expected returns.

Read the post →

API evaluation / testing

How to pick an odds API: a developer's test checklist

What to test during an odds API trial, how to measure each requirement, and what evidence to keep.

Read the post →

NFL / line movement

NFL line movement explained: openers, steam and key numbers

Openers, closing lines, steam, key numbers 3 and 7, and why each book posts its own number. With real charts from last week's NFL games.

Read the post →

Prediction markets / odds formats

Prediction market odds explained: convert a price to American odds

Turn a 62¢ contract into American odds and implied probability, and see how a market's spread and fees compare with sportsbook vig.

Read the post →

CLV / +EV / no-vig

CLV and +EV explained: closing line value and no-vig fair odds

Remove the vig from a two-way market, price expected value, and measure CLV against the book's own closing line. Every step worked.

Read the post →

Build with the same data

OddsLink serves the prices these posts talk about: 46 books across sportsbooks, exchanges and prediction markets, in one JSON shape. For working code, see the guides. For charts of last week's NFL games, see NFL historical line movement.