Skip to content
CS2OBSERVER
Log inSign up

How the model works

Last updated: 19 August 2026

Every prediction on CS2OBSERVER is one number — a win probability — produced from several measurable signals and then sanity-checked against the betting market. This page explains the approach in plain language. We keep the exact weights and code private, but nothing about the method is a secret: transparency is the point.

The signals we weigh

Each upcoming match is scored from factors we can measure from history, including:

  • Team strength (Elo). A rolling rating updated after every match, so recent results move it more than old ones.
  • Track record. Win/loss over the tracked period, adjusted for who it was against.
  • Roster ratings. The current lineup's per-round impact (rating, damage, consistency, aim, and CT/T side splits).
  • Recent form. The last handful of results and momentum.
  • Head-to-head. Direct history between the two teams, where a meaningful sample exists.
  • Map context. Map-by-map win rates, side (CT/T) splits, and pistol/eco tendencies inform the projected veto and per-map reads.

From signals to one probability

A model trained on our full match history combines those signals into a single win probability. The weights are learned from the data, not hand-set — and in practice team strength and roster rating carry most of the load, while noisier signals contribute less.

Shrinking to the market

The market (aggregated bookmaker odds) reflects a lot of information we can't fully model. So our raw number is pulled toward the market in proportion to how much data backs it: a matchup between two well-tracked teams keeps most of our own read, while a thin sample is pulled strongly toward the market so it can never read as a false lock. Where our number and the market diverge on a well-backed match, that gap is what we surface as a potential edge.

Confident picks, and how they're graded

We flag a match as a confident pick when the model gives one side a high win probability (roughly 70%+ on the raw model, the same threshold we validated against). Every pick is frozen before the match starts— the recorded call can never be edited after the fact — and then graded against the real result. The full ledger, wins and misses alike, is public on the record page.

How we know it's honest

Earlier history is reconstructed with a walk-forwardmethod: for each past match, the model is rebuilt using only games that had finished before it — the same method used to validate it — so no prediction ever “sees the future.” We care more about long-run calibration (does an 80% pick really win about 80% of the time?) than any single result.

Limits

Models can't see everything: a last-minute stand-in, tilt, a patch, or simply variance can upend a strong read. Treat every probability as exactly that — a probability, not a promise. Our predictions are for information and entertainment only; see the disclaimer.

Want to see it in action? Head to today's predictions.

CS2OBSERVERLive scores · deep stats · model predictions@cs2observer· questions & feedback
MatchesPredictionsResultsEventsTeamsPlayersNewsNewsletterAboutHow it worksContactPrivacyTermsDisclaimer