What is this?
A 24/7 robot that scans 25+ sportsbooks looking for moments where one book accidentally offers better odds than the rest of the market. When it finds one, it tells you (Telegram + dashboard).
The 3 types of opportunities (alerts)
+EV POS_EV
"Positive Expected Value" — Pinnacle (the sharpest book) says the true win probability is 55%. DraftKings is offering odds that imply only 50%. If you bet at DraftKings every time this happens, you'd profit long-term.
Real-world example: Yankees vs Red Sox. Pinnacle: Yankees -120 (true fair). DraftKings: Yankees -105. The DK price is +EV by about 3%. Over 1000 such bets, you'd net positive.
Arbitrage ARB
Two books with opposite mispricings. You bet BOTH sides at the right split — no matter who wins, you make a small guaranteed profit.
Example: Book A: Yankees +110 ($100 wins $110). Book B: Red Sox +110. Split $48/$52 → guaranteed $5 profit either way. Real arbs are usually 0.5-2% guaranteed.
⚠️ Sportsbooks dislike arb-bettors. Get caught doing it consistently and your account gets limited. Use sparingly.
Stale Line STALE
Pinnacle just moved its line (because sharp money came in). A soft book hasn't updated yet — you can grab the OLD price before they catch up.
Example: Star pitcher gets scratched 30 min before game. Pinnacle moves Yankees from -120 to -150. BetRivers still shows -120 for 5-10 min. Grab BetRivers' -120 before they sync.
⚠️ Stale lines vanish fast (often <10 min). Speed matters.
The numbers on the dashboard, explained
| Column | Meaning | Example |
|---|---|---|
Edge | How much extra value vs fair price | +3.20% = bet $100 expecting to win $3.20 long-term |
Kelly | Optimal % of bankroll to wager (× 0.25 fractional) | +0.42% of $50 = bet $0.21 |
Fair | True probability of side winning (per Pinnacle) | +52.9% = side wins ~53% of the time |
Conf | AI confidence (0-100). Higher = more trustworthy | 73 = good, 18 = LLM thinks it's a bug |
Odds | Decimal odds at the book | 1.95 = bet $1 to win $0.95 (American -105) |
Alert tiers in Telegram
ACTION conf ≥ 70 — Strong signal. AI says this looks legit. Consider betting.
WATCH conf 35-69 — Worth watching but doesn't have strong AI confirmation. Don't bet yet, observe.
IGNORED conf < 35 — AI thinks data is bad (3-way market leak, stale book quote, etc). Filtered out.
How to actually make money (the realistic plan)
What's the realistic upside?
Professional sharp bettors aim for +2% to +4% ROI. On $50 bankroll bet at ~1-2% per opp × 5 opps/day = $50/day in action × 30 days = $1500/month action. At +2% ROI that's $30/month profit on $50.
Compound that as bankroll grows: month 1 = $50→$80, month 6 = $50→$300, year 1 = $50→$2k. Realistic if model is real and you don't get account-limited. Many sharps get limited within 90 days at US books.
Built-in safety checks
System self-protects against bad data + bad bets at every layer:
- Ingestion sanity: edge > 50% rejected (data bug); decimal > 25 dropped (book mispost); 3-way "draw" markets filtered out (would corrupt 2-way math).
- Detector: sharp books never used as soft side (no circular self-comparison); US-only books surfaced (MA bookable); CI width < 6% required (tight estimate).
- AI gate: Each opp scored 0-100 confidence by cx/gpt-5.5. Anything < 35 ignored. ACTION tier requires ≥ 70.
- Alert tier: deduped via opp_id (no double-fire); rate-limited 20/tick; circuit breaker pauses if data flood detected.
- Paper-bet auto-staking: Kelly × 0.25 fractional (not full Kelly which is too aggressive); hard cap 2.5% bankroll per bet ($1.25 max on $50); skip if bankroll < $1.
- Real-money gate: dashboard refuses to suggest real $ until Sharpe>0.5, Win Rate>53%, Max DD<20%, ≥30 settled bets all met.
"Palpable error" — books void bug-bets
Every sportsbook contract has a clause: if a price is obviously wrong, we void the bet. Example: T&Cs page 4 of DraftKings: "DraftKings reserves the right to void any wager placed at odds that are clearly erroneous (palpable error)."
So when our detector says "+EV 30%" — it's usually NOT a real edge, it's a book typo that DK/FD will refund if you hit it. That's why we cap edge < 50% as actionable and reject > 20% as suspect. Real opps live in the 1-5% range.
What's the realistic downside?
- Data lies. If a book quotes a wrong price by accident, our detector flags it as "edge" but the bet can't actually be placed.
- Variance. Even with +3% true edge, you'll lose 8-12 bets in a row sometimes. Stick to the staking plan.
- Account limits. Soft books detect winners and reduce max stake to $5. Use multiple books.
- This is gambling. Only bet money you can lose. CLV positive paper = NECESSARY but NOT sufficient to bet real $.
What's running right now
- L1 INGEST — pulls odds from Pinnacle (sharp) + 25 books via the-odds-api every 30 min
- L2 PRICING — strips out the vig, computes "fair" prob from Pinnacle de-vig
- L3 DETECTOR — finds +EV / arb / stale-line opps every 10s
- L4 AI REASONER — GPT-5.5 scores each opp 0-100 confidence
- L5 ALERTER — pushes ≥35 conf to Telegram (you)
- L6 WEB UI — this dashboard
Quick reference
Telegram bot: @thesmartbettingbot · Type /start if alerts stop.
Dashboard: edge-scanner.duckdns.org
Source code: ~/Projects/edge-scanner
edge-scanner v0.1 · Built with Rust + Python + Go · CC0 license