Stale sportsbook prices are the single largest source of false +EV signals in betting models. A scanner says "+8.3% edge on Yankees -110 at SoftBook." You bet it. The book voids the bet citing "palpable error" or "obvious pricing error." The bet is dust. You blame the scanner; the scanner was just doing math on a number that wasn't real.
This post is about how to know that number isn't real BEFORE you click bet. Three structural tells, in order of reliability, plus the six-step filter we apply on every +EV and arbitrage candidate.
A sportsbook line is stale when it's still displayed on the book's site but doesn't reflect the book's current pricing model. Three things produce this:
From the bettor's perspective, all three look identical: a price that produces apparent edge but won't actually let you bet at it.
Sharp anchor (Pinnacle, Circa) and the major US books update at different cadences, but they all update regularly. If Pinnacle has new data within the last 30 seconds and SoftBook hasn't moved in 8 minutes on the same event, SoftBook is almost certainly stale. Books that are alive don't go quiet for 8 minutes on a flagship market.
degraded, breach, or stale state. The thresholds are at /v1/meta/per-book-sla: each book class (us_marquee, us_mid, dfs, exchange, monopoly_retail, international) has its own tight / slack / stale windows reflecting healthy cadence for that class.
Liquid books rarely disagree by more than 4-6 cents on flagship markets when both are live. If SoftBook has Yankees -110 and four other US books have Yankees -135, -132, -130, -128, SoftBook is either stale OR you've found a real outlier; the prior heavily favors stale. The cluster of -128 to -135 is the real market; -110 is an artifact.
| Spread of cluster (4 peers, cents) | What it means |
|---|---|
| ≤ 8 cents | Healthy disagreement. An outlier 15+ cents from the cluster is almost certainly stale. |
| 9-20 cents | Market in transition (post-news, late-stage scoring, weather). Outliers harder to classify. |
| 20+ cents | Market is volatile right now (injury just announced, etc.). Trust the sharp anchor only; ignore retail outliers. |
This requires checking the source book's status field. Many books expose a market-status alongside the price (open / suspended / closed). A "suspended" market with a price still posted is the single most reliable stale signal; the book has explicitly told you it won't accept bets. We surface this in status on our prop and odds responses; trust it before edge math.
Every +EV or arbitrage candidate should pass these six checks before it's actionable. Roughly ordered by how cheap they are to compute.
slack threshold (see /v1/meta/per-book-sla). Reject if degraded or worse.active (or whatever the book's "open" state is called). Reject suspended / closed / settled.commence_time within a 5-minute tolerance. Event-ID drift between books otherwise produces phantom matches. See reading +EV outputs honestly for the long-form on this.Two layers:
/v1/meta/source-quality endpoint is the authoritative read; the /v1/meta/per-book-sla endpoint exposes the thresholds. Any book in breach or stale state gets quarantined from our cross-book scans automatically until it recovers./v1/sports/{sport}/ev and /v1/sports/{sport}/arbitrage endpoints apply all six filters above by default. The free /v1/try/{sport}/* demos apply a subset (excludes prediction-market books from the cross-book pool and caps displayed edge at 20%) but customers should layer the full filter set on top of any candidate before staking.You can verify a book's status before betting:
# Pull live source quality
curl -s 'https://parlay-api.com/v1/meta/source-quality?minutes=2' \
| jq '.by_source[] | select(.source == "fanduel")'
If sla isn't ok, treat any +EV signal from that book as suspect.
Stale lines are the dominant source of "scanner said +EV but the bet got voided" stories. The pattern is always the same: a price that's structurally disconnected from the book's current model gets surfaced as edge, you bet it, the book rejects.
The six-step filter above eliminates most of these. The remaining 5-10% are genuine "soft book is just wrong right now" cases, which is what +EV scanning is supposed to find. Quarter-Kelly + 5% cap protects you against the residual.
If a scanner is showing you 50% edges, check freshness before checking math. The math is almost never wrong; the data underneath it almost always is.