EsportsOdds publishes two derived odds lines and CS2 statistics as a data product: a market line we compute by combining prices from multiple bookmakers and exchanges, and (once validated) our own model’s line. We never republish any individual bookmaker’s or exchange’s price, and we never name the books that feed the aggregate. This page documents exactly how every number is derived. It is informational — nothing here is betting advice or an inducement to bet.
1. Data sources & provenance
Match, team, player and tournament data — results, maps, rosters and stats — is compiled from multiple independent public sources, cross-checked against each other, plus our own statistics parsed from public match data. We deliberately don’t rely on any single upstream source: facts are corroborated across sources, conflicts are resolved by recency and agreement, and every record carries internal provenance so a correction upstream can be traced and applied here. Player ratings are our own computation from raw performance data — never a third party’s rating republished.
2. The market line (live)
Our published market line (eo_market) is a de-vigged aggregate: we monitor real prices across multiple bookmakers and exchanges, remove each book’s margin to recover fair probabilities, take the median across books, and re-normalize. A market line is only published when at least two independent books contribute, and every line carries a book_count so you can see how deep the consensus is. What we never do: republish a single book’s price, name a contributing book, or frame any price as “best” — the aggregate is a reference line, not a shopping comparison.
3. Normalizing odds
We work in decimal odds throughout. Every published line is captured as a timestamped, append-only time series — one row per outcome, per update — and we never overwrite a value, so movement over time is preserved and auditable.
4. Implied probability
The implied probability of any decimal price is 1 ÷ decimal odds. Raw bookmaker prices bake in a margin (the “vig” / overround), so implied probabilities across a market’s outcomes sum to more than 100%. Removing that margin — de-vigging — is the first step in both our market line and our model.
5. Our modeled line — coming soon
We are building a proprietary model that estimates a fair probability and price for each outcome from match and player statistics. This model is not yet live. We will not present modeled lines as production data until they clear an accuracy-validation gate — measured against real outcomes — because a model people rely on must be shown to work before it ships.
When it goes live, we will publish its track record, not just its predictions: calibration (how closely predicted probabilities match real outcomes) and a Brier score against a stated no-skill baseline, so you can audit the model’s accuracy rather than take it on trust. Modeled lines are always rendered in our distinct model accent colour and clearly labelled as our estimate, so a modeled number can never be mistaken for the market line.
6. Update cadence
Pre-match lines are refreshed on a regular polling cadence, typically within tens of seconds of an upstream change. “Live” indicates data freshness — how recently a number was updated — bounded by our ingest cadence. It is not a countdown and not a signal to act quickly.
7. Limitations
- Coverage depth varies by tournament tier and by what upstream sources publish.
- The market line requires at least two contributing books — thinner matches may have stats but no published line.
- Our model, once live, is an estimate derived from public statistics — it is not a guarantee, and it does not represent any bookmaker’s price.
- Historical and live data can contain gaps or corrections; we version and revise.
8. Corrections
Found something that looks wrong? Tell us at data@esportsodds.gg and we’ll investigate and correct the record.