Expected Duel Win Probability
xDuelCS2v0.1.0 · baseline · validated 2026-07-16What it measures
How likely a player was to win each fight before it happened, based on weapons, health, distance, flashes, smoke, and nearby support. A kill in a 20% situation is worth more than one in a 90% situation.
Formal definition
Logistic model P(attacker wins engagement) over pre-outcome features: weapon-class matchup, distance bucket, health differential, armor, blind fractions of both players, through-smoke indicator, and trade-support proximity for both sides. Evaluated per kill event from replay-derived state.
Inputs
- duel events (replay)
- position samples (support distances)
- flash-effect events
Exclusions
- team-kills
- suicides
- bot takeovers
- events with confidence < 0.5
Sample & population
- Minimum sample
- 50 duels
- Baseline population
- All parsed duels in the same game and window
- Direction
- neutral
- Unit
- prob
Percentile interpretation
Not ranked directly; feeds Duel+ and Opening Impact.
Confidence = source confidence × model confidence. Values from baseline models are capped at 0.7. Below-minimum samples display the value grayed out with no percentile.
Example
An eco pistol player wide-swings a rifler holding an angle: xDuel ≈ 0.18 for the pistol player.
Known limitations
- v0 coefficients are priors calibrated on synthetic fixtures, not fitted on pro data
- Cannot observe crosshair placement or peeker's advantage directly
Model card
xduel_cs2 v0.1.0Hand-specified directional priors, sanity-calibrated on the synthetic fixture corpus v1 (fictional matches). NOT fitted on production esports data.
Reliability checked on synthetic corpus only; expect miscalibration on real data until re-fit. Confidence for downstream metrics is capped at 0.7 while status=baseline.
- weapon_advWeapon-class matchup advantage (attacker perspective, -1..1)
- dist_closeEngagement below close-range threshold
- dist_longEngagement beyond long-range threshold
- health_diff(attacker HP − victim HP) / 100 at engagement
- armor_advAttacker has armor
- victim_flashedVictim blind fraction (blind ms / 1500, capped)
- attacker_flashedAttacker blind fraction
- through_smokeEngagement through smoke
- attacker_supportedAttacker teammate within trade range
- victim_isolatedVictim's nearest teammate beyond trade range
Coefficients (v0.1.0)
Betting or wagering decisions · Cross-game comparisons · Absolute skill claims
Change log
- v0.1.0 · 2026-07-16Initial baseline release