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.