apinn.io
← All articles
Market7 min read

Anatomy of a line move, from opening to kick-off

A price does not drift randomly: it passes through four regimes, each with different limits and reliability. Knowing which one you are looking at changes when you enter.

Most value-detection systems treat a price as a number. It is a trajectory. The same 4% gap to your model means completely different things depending on whether it shows up three days out or four minutes before kick-off β€” and a lot of false positives come from exactly that confusion.

A line passes through four successive regimes, each with its own reliability, liquidity and stake limits.

Phase 1 β€” The opening: a model, not a market

The first posted price contains no market information: it is the output of the bookmaker's internal model, usually posted with deliberately low stake limits. The book knows it might be wrong and gives itself a cheap way to learn.

Practical consequence: this is where the gap to your own model is widest β€” and also where it is least reliable. Disagreeing with the opening means "one of us is wrong", not "I found value". Check first whether the limits let you stake a size worth the risk.

Phase 2 β€” Slow drift: adjustments and noise

Over the following days the line moves in small steps: probable line-ups, weather, modest bets, realignment on competitors. Many of those moves are reversible β€” the line goes out and comes back.

  • A move that returns to its starting point was not information: it was flow.
  • A move that holds and extends is the signal worth following.
  • Direction matters less than persistence: it is the absence of a snap-back that separates information from noise.

Classic measurement trap: sampling the line every five minutes, then drawing conclusions about "the day's move". You capture the endpoints, not the trajectory β€” and you will never see the round trips, which are exactly the information you need in order to filter.

Phase 3 β€” Informed money: the move that does not come back

As the game approaches, limits rise and meaningful money arrives. The book raises its ceilings because it now trusts its price; in exchange, it accepts being corrected by the best-informed bettors. This is the regime where the line becomes a consensus rather than an opinion.

It is also the window where your latency decides everything. On a decisive move, the interesting price exists for a few seconds: if you discover the move through a once-a-minute poll, you always arrive after, and you take the corrected price believing you took the old one.

A line move detected late is not a missed opportunity: it is a trap, because you are betting the wrong side of information that is already priced in.

Phase 4 β€” The close: the most informed price of the sequence

The last price before kick-off contains everything the market learned. That is why it serves as a judge rather than an opportunity: it is too late to act on, but it is the best yardstick for the prices you took earlier.

Note that a line can reopen and reclose several times in the final minutes (late injury, delayed kick-off). The "close" is not the price at the scheduled start time: it is the last price actually posted.

Why the same sequence is not worth the same everywhere

These four phases only exist cleanly at a book that accepts being corrected. A bookmaker that limits its winning customers does not need an accurate price: its line follows the others, late and with a wider margin. What you observe there is a copy, not price formation.

You can verify this on your own data: over the two hours before kick-off, compare the trajectory of a reference book against an aggregator average. The first moves, the second follows. A signal computed on the thing that follows arrives late by construction.

Reading the four phases in your data

To use this reading you need three things: the opening price, the full trajectory (not samples), and the last real price. That is exactly what apinn's history returns, line by line β€” every handicap, every total, every period.

# opening + closing + full timeline in one call
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/history?event_id=1610000123"

# changes since a given instant (delta polling, no need to refetch the book)
curl -H "X-API-Key: $APINN_KEY" \
  "https://api.apinn.io/api/odds?event_id=1610000123&since=2026-06-28T18:00:00Z"

And for phase 3, polling is not enough: the SSE stream pushes every change the second it happens, which is the only way to end up on the right side of a decisive move.

  1. Classify every signal by phase before pricing it: a gap at the opening and a gap in phase 3 do not deserve the same stake.
  2. Filter out reversible moves by requiring persistence, not an instantaneous threshold.
  3. Always measure your price against the real close: it is the only feedback available on every bet, won or lost.

apinn.io is an independent service, not affiliated with or endorsed by Pinnacle.

Run this maths on real data

Real-time Pinnacle odds with fair odds included, plus opening and closing history β€” self-serve access, API key in minutes.