2026-05-04 · principles
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, 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 uses cases where it's a great fit and uses cases where it's not.
What we actually do during a live match
Three concurrent sources:
- Wikipedia match-page scraper, polled every 60s 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 60s as a cross-check.
- Manual operator override — an admin UI where we can fix a score / goalscorer / 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?
API-Football's $99/mo tier would give us sub-minute updates. 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 API-Football directly.
Better play: serve the customers who don't need real-time, are happy with 5-min 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 tier Studio — 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 tier Pro 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.
Read the docs · check pricing · or just grab a free key.