Why we’re up-front about a 5-minute live-data lag
Every other paid sports API in our price range hedges or fudges its live-data SLA. We chose not to. Here’s the reasoning, and what we actually do.
The hierarchy of sports data
Football data is a tiered market:
- Sub-second (Sportradar, Genius, Opta) — direct match-officials feed. Used by sportsbooks and broadcasters. $10K–$50K+/month minimum.
- 30-second (Sofascore, FotMob) — reverse-engineered from broadcast plus their own scrapers. They don’t expose a public API.
- 5–10 minute (Wikipedia + scraping the FIFA match center) — the realistic ceiling for an indie API.
- Post-match (us, FIFA’s archive page) — definitive, but only after the whistle.
We’re tier 3 during live matches and tier 4 once they’re over.
That’s a real position in the market. There are use cases where it’s a great fit and use cases where it’s not.
What we actually do during a live match
Three concurrent sources:
- Wikipedia match-page scraper, polled every 60 seconds from our cron. Wikipedia editors update WC matches within a minute or two — surprisingly reliable during the actual tournament.
- FIFA match center scraper, polled every 60 seconds as a cross-check.
- Manual operator override — an admin UI where we can fix a score, goalscorer, or red card if our scrapers disagree with what we’re seeing on the broadcast.
Result: typical lag during a live match is 2–5 minutes. We say “5 minutes” on the marketing page so customers plan around the worst case.
Why not just buy a feed?
Some other API providers offer sub-minute updates at the $99/mo tier. Why not pay them and pass the cost through?
Math: $99/mo of cost across our planned ~80-customer peak = $1.25/customer of margin lost. That’s tight at our $9 / $29 / $99 tiers. We’d have to push to higher prices or much higher volume to break even — and at that point we’re competing with them directly.
Better play: serve the customers who don’t need real-time, are happy with 5-minute lag, and would otherwise pay nothing because Sportradar pricing locks them out of the market entirely.
The honesty calculation
We could write “real-time live data” on the homepage and most customers wouldn’t notice the lag for the first few weeks.
By tournament end we’d have:
- Refund requests from sportsbook prototypes that built on us
- One-star reviews that hurt forever
- A reputation for bait-and-switch in a small community
Versus being honest up front:
- A small fraction of customers self-select out before paying
- The rest know what they’re buying
- We get to keep our reputation
The math is obvious if you’re optimizing for “run this for 5 years.” The only people honesty hurts are the ones optimizing for “exit in 18 months.”
What we’ll improve
Phase 2 plans:
- Webhook delivery for the Studio tier — when our scraper sees a score change, fire a POST to your endpoint immediately. Closes the lag for downstream UIs that just need to redraw on event.
- SSE endpoint streaming match-state changes for the Pro tier and above.
- Match-by-match scraper improvements during the tournament. We’ll publish weekly post-mortems.
None of those make us tier 1. They make us a really good tier 3.