How we find value in sports markets, why CLV is our north star, and the exact filter parameters that pass. Updated when the data changes — last refresh shown below.
Value betting is a math problem first. Three formulas matter — everything else is execution.
p — your true win probability. k — bookmaker's odds. EV > 0 means a value bet. Anything below zero is gambling.
The single most predictive metric of long-term ROI. If you consistently beat the closing line, profit follows on a long enough timeline. ROI is noise until ~1000 bets.
Kelly maximises log-growth of bankroll. We take ¼ Kelly to halve variance, capped at 1.5% of bankroll. Full Kelly is mathematically optimal but psychologically unbearable.
Three sharp books for fair-line consensus, eight RU books for line-shopping, internal Elo for sanity-check on tennis.
Median of Pinnacle, Betfair Exchange, and Matchbook — three sharps via the-odds-api. Three-source median eliminates stale lines and single-book noise. Sharp_spread filter rejects events where consensus disagrees by more than 8 percentage points (likely news shock).
Live odds from Fonbet and Pari every 30 minutes (1xСтавка in dev — Cloudflare Bot Management). For each value signal we take the highest of the available RU prices. 1xBet and Marathonbet excluded for non-tennis sports — known multi-sport limit-cutting.
Custom Elo trained on 91k+ matches across 14 sports. For tennis, ATP+WTA models use 2015-warmup walk-forward. The model is a sanity check — sharp consensus drives bet decisions. Glicko-2 lost in backtest (ADR-009) — Elo wins on this dataset.
RSS fetcher monitors ~30 sources every 55 min — fuzzy-matched to competitors and events. Confirmed news (≥2 sources) flag the value engine to skip or down-weight. Anti-fake corroboration filter prevents single-tweet manipulation.
Locked after 0.5-sprint backtest on 10,682 ATP matches 2022-2025. Walk-forward Elo + grid search across 324 filter combinations + bootstrap CIs.
EV upper bound (20%) is a safety guard against engine bugs and stale lines. Anything above is more likely a data error than a real edge.
Three independent guard rails. ¼ Kelly + 1.5% bankroll cap means we can sustain a 30% drawdown without a margin call.
Snapshot from our database. Includes ALL paper-mode settled bets — wins, losses, voids. ROI is noise at this N — track CLV.
| Date | Sport | Side | Odds | Result | CLV |
|---|
| Sport | Bets | W | Avg CLV | Net P/L (₽) |
|---|
Each bar = number of bets in a CLV bucket. Mass concentrated to the right of zero is the visual proof of edge — even if individual bets lose.
Live in @value_sniper_research (Telegram) and Bluesky. Triple-publish where applicable. Bot-driven, no manual moderation past initial template lock.
Main news of the day, auto-translated to RU. Driven by RSS impact-score.
Random data fact pulled from the database — historic CLV oddities, sport breakdowns, bookmaker margin trends.
Daily wrap-up: today's posts, top reactions, settled bets, P/L. Also: any open questions for the morning.
Triggered when Pinnacle line moves >5pp over 6 hours. Indicates a sharp re-pricing — useful as a leading signal even if no value bet appeared.
A value bet we just placed (paper). Posted with 30-minute delay and the bookmaker name redacted — protects the edge from public reverse-engineering.
Every Pulse post has three inline reactions — captured into pulse_reactions table for engagement analytics in the daily MENU.