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:

  1. 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.
  2. FIFA match center scraper, polled every 60 seconds as a cross-check.
  3. 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.