PRICING-MANAGER · PR #173 · RUN 2026-06-02 08:57 UTC

Doppler Phase Dry-Run

Read-only rehearsal: phase-blind vs per-phase matching of the live csgoskins /prices feed against 462 doppler rows. Zero writes.

462
Doppler Rows
437
Market-Matched (94.6%)
327
Flipped Fallback → Market
131
Unsmoothed (0 Snapshots)
25
Still on buffSell

Headline Finding

The dry run surfaced a live mispricing the fix corrects

110 base-name doppler items are phase-contaminated in production today.

Items like ★ Karambit | Doppler (Minimal Wear) share one feed market_hash_name with all five phase entries. The current phase-blind index keeps whichever entry lands last — so generic dopplers have been priced off gem-phase (Ruby/Sapphire) market data.

PR #173 routes phased entries to phased keys, so the base name finally matches the feed's own base entry. Result: corrections of -60% to -81% on the generic doppler rows — e.g. Karambit Doppler MW $6,450 → $1,235. These all have full snapshot history, so the correction glides in over ~30 snapshot runs.

Coverage by Phase

437 of 462 doppler rows matched per-phase market data · feed: 36,483 entries, 670 phased

base (none)
110
Phase 3
57
Phase 1
56
Phase 4
56
Phase 2
55
Ruby
30
Sapphire
30
Emerald
24
Black Pearl
19

Price Delta Distribution

New market livePrice vs current stablePrice · 306 items with a current price (the 131 unsmoothed have none)

< -50%
37
-50 .. -25%
24
-25 .. -10%
14
-10 .. +10%
221
+10 .. +25%
9
> +50%
1

72% of priced dopplers move less than ±10% · median delta -0.7%

percentiles p10 / p25 / p50 / p75 / p90 : -53% / -9.4% / -0.7% / +3.1% / +6.5% — the entire negative tail is the phase-contamination correction

Top 20 Swings

Largest |Δ| vs current stablePrice · all have 100 snapshots → correction glides over ~30 runs

ItemPhaseMktsCurrentNew MarketΔ
Glock-18 | Gamma Doppler Emerald (BS)Emerald1$218.72$435.59+99.2%
★ Karambit | Doppler (MW)base15$6,450.86$1,235.02-80.9%
★ Bayonet | Doppler (MW)base16$2,152.50$444.65-79.3%
★ M9 Bayonet | Doppler (FN)base18$4,192.84$918.33-78.1%
★ ST™ M9 Bayonet | Doppler (FN)base17$4,111.40$947.03-77.0%
★ M9 Bayonet | Doppler (MW)base16$3,923.99$1,027.10-73.8%
★ Karambit | Doppler (FN)base17$4,410.91$1,226.37-72.2%
★ ST™ Karambit | Doppler (FN)base16$4,752.65$1,334.74-71.9%
★ ST™ Flip Knife | Doppler (FN)base18$1,155.02$339.01-70.6%
★ Bayonet | Doppler (FN)base18$1,317.67$399.39-69.7%
★ Flip Knife | Doppler (MW)base15$1,266.64$390.24-69.2%
★ Butterfly Knife | Doppler (FN)base17$6,317.32$1,968.71-68.8%
★ Flip Knife | Doppler (FN)base19$978.65$319.27-67.4%
★ ST™ Bayonet | Doppler (FN)base17$1,396.96$459.83-67.1%
★ Paracord Knife | Doppler (MW)base16$841.76$277.89-67.0%
★ Butterfly Knife | Doppler (MW)base13$6,630.01$2,304.30-65.2%
★ ST™ Gut Knife | Doppler (FN)base18$419.96$148.47-64.6%
★ Gut Knife | Doppler (FN)base19$348.25$124.19-64.3%
★ Gut Knife | Doppler (MW)base16$415.37$159.16-61.7%
★ ST™ Butterfly Knife | Doppler (FN)base16$5,790.24$2,265.85-60.9%

19 of 20 are base-name items shedding gem-phase contamination. The single upward outlier (Glock Emerald BS, +99.2%) prices off one market — verify by hand before trusting it.

Unsmoothed Cohort — 131 Items

Zero snapshots → no glide: these take full market price on run 1 · sample of the highest-value

ItemPhaseMktsDay-1 Price
★ Butterfly Knife | Doppler Ruby (MW)Ruby3$9,106.10
★ Butterfly Knife | Gamma Doppler Emerald (MW)Emerald3$7,217.97
★ Butterfly Knife | Doppler Sapphire (MW)Sapphire5$6,638.16
★ Butterfly Knife | Doppler Phase 2 (MW)Phase 25$4,247.74
★ Butterfly Knife | Doppler Phase 4 (MW)Phase 43$2,727.92
★ Butterfly Knife | Doppler Phase 1 (MW)Phase 13$2,371.26
★ Bayonet | Gamma Doppler Emerald (MW)Emerald1$2,340.00
★ Butterfly Knife | Doppler Phase 3 (MW)Phase 34$2,205.08
★ Butterfly Knife | Gamma Doppler Phase 1 (MW)Phase 18$1,934.16
★ Bowie Knife | Doppler Ruby (MW)Ruby1$830.00
★ Bowie Knife | Gamma Doppler Emerald (MW)Emerald9$764.60
★ Bayonet | Gamma Doppler Phase 2 (MW)Phase 21$715.00

Amber rows price off a single market with no snapshot damping — the real day-1 risk surface. protectDopplers floors still apply to all of these.

Interpretation & Go/No-Go

Existing dopplers: safe

All 306 priced items have full snapshot history. Every delta — including the -80% corrections — phases in over ~30 snapshot runs. No day-1 jump by construction.

Unsmoothed 131: day-1 prices

New per-phase items take raw market price immediately. Eyeball the thin-market (1–2 sources) entries above before the first /take snapshot locks their history in.

Backstops active

protectDopplers price floors apply unconditionally; item_prices_raw is upsert-per-run, so a master redeploy + one run fully restores prior state.

Recommended rollout

Backup doppler rows → deploy branch → one /update-prices run → diff vs backup → hold /take until satisfied → merge. The negative tail is a bug fix, not a regression.

Generated 2026-06-02 · scripts/doppler-dry-run.ts · PR #173 · tradeit.gg