Sports Bet Winner Finder

Value bets + line shopping across Canadian sportsbooks — paper betting tracker

Last refresh: --
Bankroll: $1,000
API Credits: --/500
Active Bets: 0
Paper betting simulation only. Not gambling advice. Past performance does not predict future results.
Odds data: The Odds API (refreshed every 2-3 hours) • Books: bet365, FanDuel, DraftKings, BetMGM, PointsBet, Caesars • Ontario/Canada legal sportsbooks
🏆 Multi-Sport Situation Intelligence LIVE
All picks now use research-backed situation scoring (0–30 bonus pts) on top of market analysis. Factors include back-to-back fatigue (Dean Oliver 2004, Hockey Graphs 2014), rest advantage (Entine & Small 2008), turnover margin (Biro 2017, 70% win rate), team ERA (MDPI 2021), and injury reports. Intelligence covers NBA, NHL, NFL, MLB via ESPN APIs with failover + 2h cache. Auto-betting includes circuit breakers: $100/day loss limit & $800 bankroll floor.
Bankroll
$1,000
+$0.00
Settled Tickets
0
W:0 L:0 P:0 V:0
Win Rate ⚠ Win Rate Currently Low or Unknown

Why: Sports betting markets are highly efficient. The algorithm has minimal settled data (0-3 bets), making win rate statistically meaningless.

What We're Doing:
• Collecting 100+ settled bets before evaluation
• Research-backed situation scoring (B2B fatigue, injuries, rest)
• Quarter-Kelly sizing limits losses
• Planned ML filter to improve pick quality

Paper trading only — no real money at risk.
0%
wins / (W+L)
ROI
0%
$0.00 P&L
Today's Picks
0
Avg EV: --%
Active Bets
0
$0 reserved
Loading today's picks...
Loading odds...
Loading bets...

Bankroll Growth

Loading pick history...
⚠️ Honest System Assessment — Read Before Betting
This page provides complete transparency about our sports betting algorithm's current state, known limitations, and planned improvements. We believe in honest disclosure — every system has flaws, and ours is no exception.

✅ Current Strengths

SOLID FOUNDATION
Rule-Based Value Algorithm — Uses proven mathematical concepts: Expected Value (EV), Kelly Criterion sizing, and vig-removed probability calculations. These are industry-standard approaches used by professional bettors.
SITUATION INTEL
Multi-Sport Context — Incorporates research-backed factors: back-to-back fatigue (Dean Oliver 2004), rest advantage (Entine & Small 2008), turnover margin (Biro 2017, 70% win rate), team ERA (MDPI 2021), and injury reports.
RISK MANAGEMENT
Circuit Breakers — Auto-betting includes $100/day loss limit and $800 bankroll floor. Quarter-Kelly sizing (25% of full Kelly) reduces variance. Max 5% of bankroll per bet prevents ruin.
LINE SHOPPING
Multi-Book Comparison — Compares odds across 9 Canadian-legal sportsbooks (bet365, FanDuel, DraftKings, BetMGM, PointsBet, Caesars, etc.) to find the best prices automatically.
GRADING SYSTEM
Structured Rating (A+ to D) — Composite scoring based on EV% (50 pts), book consensus (20 pts), market type (15 pts), CA-legal book (10 pts), timing (5 pts), plus situation score (0-30 bonus).
PAPER TRADING
No Real Money at Risk — All bets are simulated with $1,000 paper bankroll. Perfect for testing strategies without financial risk. All picks tracked transparently with timestamps.

🔬 Deep Audit Findings (Feb 12, 2026)

A comprehensive audit of the database, pipeline, ML code, and bet history was conducted. Here are the findings:

Critical Finding: Heavy Underdog Bias
Of the 9 settled bets, 7 were massive underdogs (odds 5x-31x). Picks included: Pepperdine at 31.0, UL Monroe at 19.0, Washington Wizards at 10.0, Northwestern at 12.0. These have implied win probabilities of 3-10%. The algorithm was seduced by high EV% without filtering for realistic win probability. Fix deployed: ML filter now blocks bets with odds > 6.0 unless EV exceeds 15%.
Positive Finding: ROI is Positive
Despite a 22.2% win rate (2W/7L), the bankroll is +$16.66 (+19.87% ROI). This is because the wins came at high odds (UAB Blazers at 5.10 paid +$28.54, Spurs at 1.30 paid +$15.00). Quarter-Kelly sizing kept losses small ($0.58 to $5.02 each). The math works even with low win rate -- but it is unsustainable without ML filtering.
Database Finding: Sports DB Empty
The dedicated sports database had zero tables. All data was living in the fallback database via the PHP fallback logic in sports_db_connect.php. The pipeline works, but the intended dedicated database was never populated with schema.
ML Finding: Script Was Disconnected
The sports_ml.py file existed but had critical issues: (1) Expected columns (confidence_score, win_prob) that do not exist in the DB, (2) Only 4 features, (3) Retrained from scratch on every call, (4) Never called from any workflow. Fix deployed: Complete rewrite with 30 features, ensemble model, model persistence, and PHP integration endpoint.

🤖 ML System Status (Live)

Loading ML status...

📡 Sports Scrapers — Data Pipeline (Live)

Comprehensive scraping pipeline is now operational across 4 major sports:

Loading scraper status...

16 Scraper Tables
Each sport creates 4 tables: lm_{sport}_odds, lm_{sport}_team_stats, lm_{sport}_injuries, lm_{sport}_schedule. Plus lm_scraper_log and lm_cron_log for monitoring.
ESPN Multi-Source
ESPN JSON APIs for standings & scoreboard, ESPN HTML for odds lines & injuries. Runs every 2 hours via GitHub Actions cron. Weather module (NOAA + OpenWeatherMap) for outdoor sports.
ML Integration
Scraper data feeds into ML scoring as 5 new features: home_win_pct, away_win_pct, team_wp_diff, home_streak_val, and home_injury_count. Both PHP heuristic and Python ensemble use these.
Known Issues
Injury team mapping: ESPN HTML parses position (F/G/C) into team field instead of team name. Odds HTML: Only away team captured; home team field empty. Single source: ESPN only — no failover chain yet. These are on the fix list.

⚠️ Known Flaws & Limitations

HEAVY UNDERDOG BIAS
Critical Issue (Now Fixed) — The algorithm was picking extreme underdogs (odds 6x-31x) because they showed high EV%. Out of 9 settled bets, 7 were heavy underdogs that lost. The ML filter now blocks these. Win rate should improve significantly going forward.
SMALL SAMPLE SIZE
Only 9 Settled Bets — With just 9 results (2W/7L), no statistical conclusions can be drawn. Need 500+ bets for meaningful analysis. Current win rate and ROI are statistically insignificant.
ML NOT YET TRAINED
Heuristic Filter Active — The ML ensemble (XGBoost + LightGBM + RandomForest) requires 20+ settled bets to train. Currently using a rule-based heuristic filter as a bridge. Need 11 more settled bets before the full ML model activates.
ODDS API LIMITS
500 Credits/Month — The free tier of The Odds API limits us to 500 API calls per month. Data refreshes every 2-3 hours (not real-time). Scrapers reduce dependence by providing team stats/standings without using Odds API credits.
SCRAPER DATA GAPS
Injury & Odds Parsing Bugs — ESPN HTML scraping has known issues: injury team field stores position code instead of team name, odds scraper only captures away team. These reduce ML feature quality. Fix requires restructuring the ESPN HTML parser to extract section headers for team context.
SINGLE DATA SOURCE
ESPN Only — No Failover — All 4 scrapers depend solely on ESPN. If ESPN changes their page structure or blocks our requests, we lose all team intelligence. Need to add Basketball Reference, NBA.com, CBS Sports, and Yahoo Sports as failover sources.
MARKET EFFICIENCY
Efficient Market Hypothesis — If our edge detection actually worked consistently, sportsbooks would adjust. Finding +EV bets is mathematically hard. Most "value" bets may be false positives due to stale lines or incorrect probability modeling.

🔮 Improvement Roadmap

PHASE 1: DATA ✅
Track Record Started — 9 settled bets, 69+ picks generated. 2W/7L with +19.87% ROI. Data pipeline operational via GitHub Actions: auto-fetches odds, generates picks, places bets, settles results. Historical backfill mechanism built (NBA/NHL/NFL/MLB from balldontlie + ESPN APIs). Target: 500+ settled bets for statistical significance.
PHASE 2: FEATURES ✅
30+ Engineered Features — Core EV metrics, sport-specific one-hot encodings, market type encoding, consensus strength, odds structure, time-to-game, rolling win rate, rolling ROI, bankroll percentage, Canadian book indicator, situation score, and more. ESPN intelligence integration for injuries, standings, and schedules. CLV tracking deployed.
PHASE 3: ML LAYER ✅
Full ML Pipeline Built — Stacking ensemble with RandomForest, GradientBoosting, XGBoost, LightGBM as base learners + calibrated LogisticRegression meta-learner. SHAP explainability. Model persistence with joblib. PHP heuristic bridge active until 20+ settled bets enable full model training. Heavy underdog filter deployed.
PHASE 4: ENSEMBLE ✅
Hybrid System Active — Rule-based algorithm generates candidates → ML filter scores win probability → Only bets where ML says "take" AND EV > 3% AND odds < 6.0 are placed. Pipeline: GitHub Actions → PHP endpoint → Python model. 45 bets approved, heavy underdogs filtered out.
PHASE 5: SCRAPERS ✅
Multi-Sport Data Pipeline — Comprehensive scrapers deployed for NBA, NHL, NFL, MLB. 16 tables across 4 sports track standings, odds, injuries, and schedules from ESPN APIs + HTML. Integrated into both PHP heuristic (Factor 8) and Python ML (5 new features). Runs automatically via GitHub Actions every 2 hours. Weather module available for outdoor sports.
PHASE 6: FAILOVER SOURCES
Multi-Source Data Redundancy — Add Basketball Reference, NBA.com Stats, CBS Sports, Yahoo Sports as failover scrapers behind ESPN. Fix injury team-name parsing bug. Add BallDontLie API and API-Sports free tier. Target: 4-5 sources per sport cascading on failure.
PHASE 7: REAL-TIME
Live Betting & WebSockets — Upgrade to paid Odds API tier for real-time odds. Add line movement alerts, arbitrage detection, and live betting opportunities. Current 2-3 hour delay is too slow for sharp markets.
PHASE 8: SELF-LEARNING
Adaptive Algorithm — Similar to our stock trading "Learned vs Original" system, track two versions: original static parameters vs. ML-tuned parameters. Auto-switch to better-performing version per sport/market. Walk-forward backtesting validates model before deployment.

⚡ Is It Safe to Bet On?

Short Answer: Getting closer, but not yet.

Here is where we actually stand after the audit:

  • We have 9 settled bets with a positive ROI (+19.87%). Too small to draw conclusions.
  • The ML filter is active but running on a heuristic bridge -- the full ensemble model needs 20+ bets to train.
  • The heavy underdog problem has been fixed -- no more $31-odds long shots burning bankroll.
  • CLV tracking is deployed but needs data accumulation before we can measure true edge quality.

What milestones remain?

  • 20 settled bets → Full ML ensemble model trains and replaces heuristic
  • 100 settled bets → Statistically meaningful win rate evaluation per sport
  • 500 settled bets → Walk-forward backtest validates model robustness
  • Positive CLV over 3+ months → Confirms we are beating the closing line
  • Win rate above break-even at average odds → Sustainable profit confirmed

Current Status: Paper trading with ML filter active. The system is significantly improved but still in validation phase. Do NOT bet real money until we hit the 100-bet milestone with consistent positive CLV.

📊 ML Architecture (Deployed)

The full ML pipeline is now built and integrated into the daily workflow. Here is what is running:

Stacking Ensemble
4 base models (RandomForest, GradientBoosting, XGBoost, LightGBM) feed predictions into a calibrated LogisticRegression meta-learner. Platt scaling ensures well-calibrated probabilities.
35+ Features
Engineered from raw data: EV%, odds structure, sport encoding, market type, consensus strength, rolling win rate, rolling ROI, time-to-game, bankroll %, situation score, Canadian book flag, plus 5 scraper features: team win%, win% differential, streak momentum, goal/point differential, and injury count.
Heavy Underdog Filter
Critical fix: bets with odds > 6.0 are auto-rejected unless EV > 15%. This prevents the system from chasing improbable longshots that historically destroyed win rate.
SHAP Explainability
Every prediction comes with SHAP values explaining which features drove the decision. Full transparency into why the model says "take" or "skip" for each bet.
Walk-Forward Backtest
Time-aware validation: train on past data, predict future bets. Prevents overfitting and measures realistic out-of-sample performance with ROI by EV bucket and max drawdown.
CLV Tracking
Closing Line Value is the gold standard metric. We track opening vs. closing odds for every bet. Positive CLV over time = real edge, regardless of short-term win/loss variance.

Current Pipeline (Live in GitHub Actions):

  1. Odds refresh from The Odds API (9 Canadian-legal books) → stored in lm_sports_odds
  2. Sports scrapers run (NBA, NHL, NFL, MLB) → team stats, injuries, schedules into 16 tables
  3. ESPN intelligence fetch (injuries, standings, schedules) → situation scoring
  4. Value bet analysis (EV calculation, vig removal, line shopping)
  5. ML Filter scores each value bet (PHP Factor 8 uses scraper data; full ensemble at 20+ bets)
  6. Daily picks generated from ML-approved bets only
  7. Auto-placement with quarter-Kelly sizing + circuit breakers
  8. Auto-settlement via ESPN scores API
  9. CLV analysis and performance reporting
💡 Bottom Line

This system has moved from theory to active validation. The ML pipeline, feature engineering, heavy underdog filter, CLV tracking, and now comprehensive sports scrapers are all deployed. The scraper integration adds real team performance data (win%, streaks, injuries, goal differential) directly into ML scoring — no longer relying solely on odds data.

Current ROI is +19.87% but based on only 9 bets. The heavy underdog filter + scraper intelligence should meaningfully improve win rate going forward. Critical next steps: fix injury parsing, add failover data sources, and accumulate 20+ settled bets for full ML activation. Check the Performance tab for live tracking.

Research & Future Enhancements
This section documents our research into professional sports betting theory, the enhancements we have planned, and the benchmarks we are targeting. Understanding how sportsbooks operate is the first step toward building systems that can exploit their weaknesses.

How Sportsbooks Set Odds

PROBABILITY MODEL
Implied Probability -- Sportsbooks start with statistical models analyzing thousands of data points: team performance, injuries, weather, possession stats, shot conversion rates, even referee tendencies. For example, if a team averages 2.1 goals/game but their top scorer (40% of goals) is injured, the odds adjust downward.
THE VIG
Bookmaker Margin -- Fair odds for a 50/50 coin flip would be 2.00 each (100% total probability). But sportsbooks add a 5-10% margin, pricing both sides at ~1.91 (52.4% each, totaling 104.8%). This built-in edge ensures profit if betting is balanced.
LINE BALANCING
Risk Management -- Books do not try to predict winners; they try to balance action on both sides. If 70% of money is on Team A, they lower Team A's odds to attract more bets on Team B. The goal: equal money on both sides, collect the vig, and have zero risk.
SHARP MONEY
Professional Influence -- Sharps (pro bettors with models) bet early and move lines. When sharps heavily bet one side, books respect their edge and adjust. Books track sharp accounts closely. A line move without news often signals sharp action.

Closing Line Value (CLV)

What is CLV? The difference between the odds you bet and the final odds at game time (closing line). If you bet at +160 and the line closes at +140, you captured +20 cents of CLV.

Why CLV matters more than win rate:

  • The closing line reflects all available information after the market has settled
  • Consistently beating the closing line means you are extracting value before the market corrects
  • A bettor who wins 48% of bets but gets +5% CLV will profit long-term
  • A bettor who wins 55% but gets -2% CLV will lose money

Key insight: Even if you lose a bet with positive CLV, you made a good bet. Short-term variance is noise; long-term CLV is signal.

KEY NUMBERS
Not All Points Are Equal -- In NFL, spreads of 3 and 7 matter enormously because so many games are decided by field goals and touchdowns. Moving from +2.5 to +3.5 is ~3x more valuable than moving from +7.5 to +8.5.
VIG-FREE CLV
Remove the Juice -- To calculate true CLV, remove the vig from closing odds. If you bet -2.5 (-115) and closing is -3 (-110), the vig-free fair line is closer to -2.8. Your actual edge is smaller than it appears.
CLV TRACKING
How to Measure -- Professional bettors log every bet with: (1) odds taken, (2) closing odds, (3) implied probability difference. Over 100+ bets, positive CLV correlates directly with profitability.
MARKET EFFICIENCY
Efficient vs Inefficient -- NFL closing lines are highly efficient (hard to beat). WNBA, niche sports, and early-season college games are less efficient (more opportunity). CLV matters less in inefficient markets.

Sharp Money vs Public Money

PUBLIC MONEY
The Herd -- Casual bettors bet on favorites, popular teams, and recent performance. They chase narratives and media hype. Public money is emotional, biased toward big markets (Lakers, Cowboys, Yankees), and inflates lines on popular sides.
SHARP MONEY
The Pros -- Professional bettors use models, data, and discipline. They bet early, fade public bias, and seek value. When sharps hit a line hard, books move it fast. Sharps win 52-55% of bets but profit through +EV and CLV.
REVERSE LINE MOVE
RLM Signal -- When 70% of bets are on Team A but the line moves toward Team B, that is reverse line movement. It means sharp money is on Team B despite public sentiment. This is one of the strongest signals in sports betting.
STEAM MOVES
Coordinated Action -- When multiple sportsbooks move lines simultaneously on the same game, a steam move has occurred. Usually caused by syndicates hitting the same line across multiple books.

Strategies to Beat Sportsbooks

Based on academic research and professional betting literature:

1. Line Shopping
Getting +150 at Book A instead of +140 at Book B adds 5% to returns. Over hundreds of bets, this compounds dramatically.
2. Bet Early (Favorites)
Opening lines are softer. Sharp bettors bet early when lines have not been sharpened. Bet favorites early, underdogs late.
3. Specialization
Focus on niche markets where books invest less resources. Lower leagues, WNBA, international soccer have more inefficiencies.
4. Fade the Public
When public money heavily skews one side (greater than 70%), contrarian value often exists on the other side.
5. React to News Fast
Injuries, weather, lineup changes move lines. Being first to know and act creates CLV.
6. Arbitrage
When implied probabilities sum to less than 100% across books, bet both sides for guaranteed profit regardless of outcome.

Market Inefficiencies

RECENCY BIAS
Bettors overvalue recent performance. A team that won big last week gets overbet. Sharps fade recency bias. Past performance does not always predict future results.
FAVORITE BIAS
Books shade lines on popular favorites to balance action. Value often lies in moderate underdogs (+150 to +300 range).
HOME BIAS
Public overvalues home-field advantage. Books shade home teams knowing casual bettors prefer them. Road teams often offer value.
WEATHER LAG
NFL/MLB totals adjust slowly to weather. Wind greater than 15mph significantly reduces scoring. Books sometimes lag on weather adjustments.

Key Research Sources

Kaunitz et al. (2017)
Beating the House: Identified profitable strategy exploiting odds mispricings without building predictive models, using the books' own numbers against them.
Sauer (1998)
The Economics of Wagering Markets -- Foundational work on market efficiency, vigorish, and efficient market hypothesis in betting.
Levitt (2004)
Why Are Gambling Markets Organised So Differently -- Explains how books deliberately take positions rather than purely balancing books.
Walker and Gray (2009)
Sharp bettors and the efficient market hypothesis -- Academic validation of sharp money's ability to predict line movements.

How We Apply This Research

Our algorithm incorporates these findings:

  • EV-Based Grading: Grades prioritize expected value over win probability
  • Line Shopping: System compares 9+ sportsbooks automatically
  • Vig Removal: Win probabilities strip out bookmaker margin
  • Quarter-Kelly Sizing: Conservative bankroll management
  • Situation Scoring: Captures factors books may miss

Now implemented: CLV tracking (deployed), ML filter (active), heavy underdog rejection (live). Still missing: arbitrage detection, real-time line movement alerts, weather integration.

Future Enhancements & Research Priorities

Based on our audit findings, these are the highest-impact improvements to pursue:

Priority 1: Data Volume
The single biggest bottleneck. At 9 settled bets the ML model cannot train. Need automated settlement running reliably to accumulate 20+ bets for model activation. Historical backfill from balldontlie/ESPN helps but real bets are essential for model calibration.
Priority 2: Reverse Line Movement
Track when 70%+ of public bets go one way but the line moves the other. This "reverse line movement" signal indicates sharp money. Requires tracking line snapshots over time (already have CLV table) and calculating the direction/magnitude of movement.
Priority 3: Weather Integration
NFL and MLB totals adjust slowly to weather. Wind >15 mph significantly reduces scoring. OpenWeatherMap API (free tier) can provide game-day forecasts. Should adjust totals predictions and MLB moneylines for outdoor venues.
Priority 4: Sport-Specific Models
NBA moneylines behave differently than NFL spreads. Instead of one universal model, train sport-specific models that capture unique patterns: NBA rest days, NFL key numbers (3, 7), MLB starting pitchers, NHL goaltender matchups.
Priority 5: Arbitrage Detection
When implied probabilities across books sum to <100%, a guaranteed profit exists by betting both sides. We already compare 9 books -- adding an arb scanner on top of existing odds data is straightforward. Even rare arbs (0.5-2% margin) compound over time.
Priority 6: Real-Time Odds
Current 2-3 hour refresh interval is too slow for sharp markets. Upgrading to The Odds API paid tier ($20/mo) enables 1-minute refresh. Combined with WebSocket alerts for line movements, this enables live betting and steam move detection.

Data Quality & Accuracy Improvements (Feb 12)

New scraper pipeline deployed to dramatically improve data quality for ML predictions:

Scraper-to-ML Integration
5 new scraper-derived features added to both PHP heuristic and Python ensemble: home_win_pct, away_win_pct, team_wp_diff, home_streak_val, home_injury_count. The ML now knows if you are betting on a 75% team vs 21% team instead of treating all matchups equally.
PHP Heuristic Factor 8
New scoring factor uses team standings and streaks: +6% for strong favorites, -6% for weak teams, +4% for hot streaks (5+ wins), -4% for cold streaks (5+ losses), +2-3% for goal/point differential in NHL/NFL. Injury differential also adjusts score.
Fuzzy Team Matching
ML lookup now handles team name variations: tries exact match, then LIKE on last word (e.g. "Lakers" matches "Los Angeles Lakers"), then abbreviation. This bridges the gap between Odds API team names and ESPN scraper names.
Known Data Gaps
Injury team field bug: ESPN HTML stores position (F/G/C) instead of team name. Odds parsing: Only away team captured. No failover: ESPN is the only source. NFL/MLB: Both offseason, tables empty until Sep/Mar. These are on the fix roadmap.

Impact on algorithm accuracy: Before scrapers, the ML scoring treated all teams equally — a bet on the #1 seed got the same base score as a bet on the #30 seed. With scraper intelligence, the system now understands matchup quality, team form, and injury context. This should significantly reduce false positive "value" bets on weak teams with inflated EV.

World-Class Benchmark Comparison

How top sports betting models/services compare, and where we need to be:

Metric World-Class Target Our Current Gap
Win Rate (Moneyline) 52-55% 22.2% (9 bets) Need data + filter fix
CLV (Positive %) >55% of bets Tracking (new) Deployed, collecting
ROI (Long-term) 3-8% +19.87% (noise) Too few bets to judge
ML Features 50-200 35+ (incl. scraper) Good, add weather/refs
Data Sources 10-15 sources 4 (Odds API, ESPN API, ESPN HTML, balldontlie) Add failover + weather
Scraper Tables N/A 16 tables (4 sports x 4 types) Deployed
Odds Refresh Real-time (<1 min) 2-3 hours Upgrade to paid tier

Real Winning Patterns from Successful Bettors

Data from Reddit, Twitter/X, and Competition Analysis
We analyzed successful bettors on r/sportsbook, Twitter/X handicappers, and competition tools (OddsJam, RebelBetting, BetBurger) to identify real patterns that win. Here is what we found.
THE 2% RULE
Bankroll Management -- Winning bettors consistently bet 1-2.5% of bankroll per wager. "Straight plays only for 1-2.5% of bank roll. This won't make money as quickly as most people like, but if you build it up it works." -- r/sportsbook profitable bettor.
+EV DISCIPLINE
Only +EV Bets -- "Just be disciplined and only place bets you can prove are +EV by devigging to sharp books. And then size your bets using Kelly criterion." -- r/sportsbook green bettor. Arbitrage bettors are the most consistent profit makers.
SHARP BOOK DEVIG
Use Pinnacle/Circa as Truth -- Professional bettors "devig" (remove vig) from Pinnacle or Circa lines to find true probability. When soft books (FanDuel, DraftKings) diverge, that is where value lives. Tools like OddsJam and RebelBetting automate this.
SPECIALIZATION WINS
Niche Markets -- "I only bet on local leagues I follow closely" -- Kenyan bettor with 4 years profit. "Focus on niche sports or events where bookmakers may have less expertise. This often leads to mispriced odds." -- betting inefficiency research.

What We Learned from Competition Tools

We analyzed OddsJam ($199/month), RebelBetting (EUR 99/month), BetBurger (EUR 80-320/month), and BetHero (EUR 50-150/month) to understand what makes them work:

Scan Speed Matters
BetBurger refreshes every 2.5-4 seconds. BetWasp every 3-4 seconds. BetHero under 5 seconds. Fast scanning catches line movements before they disappear. Our 2-3 hour delay is a major disadvantage.
Sharp Book Benchmarking
All tools use Pinnacle/Circa as the "true line." RebelBetting explicitly compares soft book odds to sharp books. The edge is calculated as: (Soft Book Odds / Sharp Book Fair Odds) - 1.
Auto Kelly Sizing
RebelBetting and BetHero include automatic Kelly Criterion calculators. Users input bankroll, the tool suggests optimal bet size based on edge. Removes emotional sizing decisions.
CLV Tracking is Standard
Trademate Sports built their entire product around CLV tracking. BetHero includes "auto-grading, CLV" in their tracker. Pros validate edge by beating closing lines, not just winning bets.
Arbitrage Detection
BetBurger and RebelBetting show arbitrage opportunities (sure bets) alongside +EV bets. Risk-free profit when implied probabilities sum to less than 100% across books.
The Warning on OddsJam
Reddit r/EVbetting exposed OddsJam: "Their algorithms are awful... after 3 months in a row of losing... the chances of that happening were 1 in 64 million." Poor CLV calculation methods can destroy profits.

Integrating These Patterns Into Our System

Based on this research, we are implementing these winning patterns:

  • Quarter-Kelly Sizing: Already implemented. Bets sized at 25% of full Kelly to balance growth and safety.
  • Sharp Book Consensus: We compare 9 books including sharp-priced ones to find consensus "true odds."
  • EV Threshold Filters: Only bets with +2% EV or higher are considered (configurable).
  • CLV Tracking: Now tracking opening vs closing odds for every bet to validate edge quality.
  • Heavy Underdog Filter: Auto-reject odds greater than 6.0 unless EV is extraordinary (greater than 15%).
  • Real-Time Upgrade Path: Need to upgrade from 2-3 hour refresh to sub-minute scanning for true sharp capability.

Key Gap: We need faster data. Competition tools refresh in seconds; we refresh every 2-3 hours. This is our biggest disadvantage for capturing true +EV before lines move.

Sharpest Sportsbooks by Market (Research Data)

From Pikkit analysis of which books other books move toward:

MLB Main Markets
1. Pinnacle (1.18 weight)
2. Circa (1.155)
3. BookMaker (1.118)
4. DraftKings (1.025)
5. FanDuel (1.022)
MLB Props
1. FanDuel (1.236 weight)
2. Propbuilder (1.138)
3. Pinnacle (0.918)
4. Caesars (0.916)
FanDuel dominates MLB props
NBA Main Markets
1. Circa (1.079)
2. Pinnacle (1.076)
3. DraftKings (1.069)
4. BookMaker (1.06)
5. BetOnline (1.058)
NBA Props
1. Circa (1.094)
2. DraftKings (1.046)
3. Propbuilder (1.014)
4. FanDuel (1.007)
5. Caesars (0.995)

Source: Pikkit analysis of line movement patterns. Higher weight = other books move toward their lines.

The Hard Truth

Academic research shows that while markets have inefficiencies, consistently profiting is extremely difficult. Books employ teams of mathematicians and have built-in 5-10% margins. Most bettors lose. The few who win: (1) specialize deeply, (2) move fast, (3) manage bankroll ruthlessly, (4) track thousands of bets. Our system now has the technical foundation -- the question is whether the data will prove we have a real edge, or if we are finding false positives.

Grades & Recommendations

STRONG TAKE
The highest-confidence recommendation. The algorithm found a large positive EV edge with strong book consensus. Historically the most profitable grade of picks. ⚠ This is paper simulation analysis — never bet money you can’t afford to lose.
TAKE
A solid bet with meaningful positive EV. Good risk/reward ratio but not as extreme as a Strong Take. Our model suggests placing at the recommended Kelly-sized amount. ⚠ Paper simulation only — not financial advice.
LEAN
Slight edge detected but not a slam dunk. The EV is positive but marginal. Consider placing at half the suggested amount, or skip if your bankroll is tight.
WAIT
Edge is borderline or the line may move. Don’t bet yet — check back closer to game time. Odds often shift and the value may improve (or disappear).
SKIP
No edge found or negative EV. The odds don’t justify a bet. Discipline means sitting out bad spots — skipping losing bets is how you stay profitable.
Grade (A+, A, B+, B, C+, C, D)
A composite score (0-100) converted to a letter grade. Based on: EV% (50 pts), book consensus (20 pts), market type (15 pts), Canadian-legal book (10 pts), timing (5 pts). A higher grade does not always mean higher win probability — it means better risk-adjusted value.

Key Betting Concepts

EV (Expected Value)
The average profit you'd make per dollar bet over many repetitions. An EV of +5% means for every $100 bet, you'd expect to profit $5 on average long-term. Positive EV (+EV) bets are profitable over time, even if individual bets lose.
Vig-Removed Probability
Sportsbooks build a profit margin (the “vig” or “juice”) into their odds. For example, a fair coin flip should be 50/50 but books price both sides at ~52.4% (totaling 104.8%). “Vig-removed” strips out that margin to show the true consensus probability the market implies. This is what the “win prob” percentage represents on each pick card.
Kelly Criterion
A mathematical formula for optimal bet sizing based on your edge and the odds offered. Betting more when your edge is larger, less when it’s smaller. We use quarter-Kelly (25% of the full Kelly amount) for safer bankroll management — this reduces variance at the cost of slightly slower growth.
Line Shopping
Comparing odds across multiple sportsbooks to find the best price for the same bet. If bet365 offers +150 and FanDuel offers +160 on the same outcome, FanDuel is the better line. Over time, always getting the best price compounds into significantly higher returns.
Bankroll
The total amount of money set aside for betting. All bet sizes are calculated as a percentage of your bankroll. Starting bankroll on this tracker is $1,000 (paper/simulated money).
ROI (Return on Investment)
Total profit divided by total amount wagered, expressed as a percentage. An ROI of +5% means you profit $5 for every $100 risked. Professional sports bettors typically target 2-10% long-term ROI.
P&L (Profit & Loss)
The net dollar amount gained or lost. A positive P&L means you're up overall; negative means you're down. Shown in green (profit) or red (loss) throughout the tracker.
Paper Betting
Tracking bets with simulated (fake) money to test a strategy without risking real cash. All bets on this tracker are paper bets — no real money is at stake. Great for building confidence in a system before going live.

Market Types

Moneyline (h2h)
The simplest bet: pick which team wins. No point spread involved. The favorite has lower odds (smaller payout), the underdog has higher odds (bigger payout). “h2h” stands for head-to-head.
Spread
A point handicap applied to the favorite. If Team A is -6.5, they must win by 7+ points for the bet to win. The underdog at +6.5 can lose by up to 6 points and still “cover.” Spreads equalize mismatched teams.
Total (Over/Under)
Bet on whether the combined score of both teams will be over or under a set number. E.g., Total 215.5 — bet Over if you think both teams will score 216+ combined, Under if 215 or fewer.
Decimal Odds
The format used in this tracker. Multiply your bet by the odds to get total payout. E.g., $100 at 2.10 odds returns $210 total ($110 profit + $100 stake). Higher = bigger payout. Odds of 2.00 = even money.
American Odds (+/−)
+150 means bet $100 to win $150 profit (underdog). −150 means bet $150 to win $100 profit (favorite). The number tells you how much you win on $100 (positive) or how much you must bet to win $100 (negative).
Push
A tie result where neither side wins. Your bet amount is returned in full. Happens when the final score lands exactly on the spread or total number (e.g., spread of -7 and team wins by exactly 7).

Other Terms

Book Consensus
How closely different sportsbooks agree on the odds. Strong consensus (many books with similar lines) suggests the market is efficient. When one book’s odds diverge significantly, that’s where value bets appear.
CA Legal
Sportsbooks that are licensed and legal in Canada (specifically Ontario via iGaming Ontario). Includes bet365, FanDuel, DraftKings, BetMGM, PointsBet, and Caesars. Picks from CA-legal books get a small scoring bonus.
Key Number
Specific point spread values where many games land (e.g., 3 and 7 in NFL). Getting a spread of +3 vs +2.5 matters a lot because so many games are decided by exactly 3 points. The “KEY#” badge flags these significant line differences.
Win Probability
The vig-removed consensus likelihood that a bet wins, derived from market odds. A 40% win prob doesn’t mean it’s a bad bet — if the odds pay enough to compensate, it can still be +EV. Grade reflects value, not just probability.
Confidence (High / Medium / Low)
The algorithm's certainty level for a pick. High: strong signal, multiple factors align. Medium: moderate signal, some uncertainty. Low: speculative, edge is less reliable. Higher confidence picks are sized larger via Kelly.
Savings %
In line shopping, the percentage difference between the best and worst odds for the same bet. Higher savings = bigger edge from choosing the right book. Even 2-3% savings compounds massively over hundreds of bets.