Zadok Villarreal
← back
QuantLive

CS2 Prop Model

Quantitative model for esports player-prop betting.

Status
Live — forward-tested every day
Role
Data · Modeling · Pipeline · Eval
Duration
Feb 2026 — present
Stack
Python · SQLite · NegBin regression · OCR vision · Kalshi

Overview

CS2 Prop Model is a daily pipeline for esports player-prop betting. It imports match history from HLTV, fits a hand-coded negative-binomial projection per player, evaluates the day's prop slate from screenshots, and writes a ranked CSV of bets with edge and a fair line. Settled bets get re-ingested as screenshots and the accuracy report updates itself.

What I built

Six steps: import match history into SQLite, pull team map stats, OCR the prop screenshots with a vision pass, project each prop, rank by edge, and build uncorrelated 2–4 leg parlays. The model has gone through five named eras; the current F1 is the clean regression with a two-rule filter — UNDER only, line ≥ 30 kills or model shading > +3. On top of it sits a Kalshi runner that places small flat bets on the match-outcome model when live edge crosses 5%.

Results

69.6%
Win rate (F1, 79 OOS)
+32.9%
ROI (F1, 79 OOS)
65.5%
Validated rules WR (438)
+25%
Validated rules ROI
Every version that 'worked' in a backtest had a leak. It only got real once I trusted walk-forward instead.

What's next

A role-share team-budget model is built but gated until four calibration blockers clear. On Kalshi, the next move is expanding from match-outcome into map-specific markets if the books surface them at usable volume.