Upcoming close capture tasks that will fetch closing odds near game start time.
Game
League
Game Start
Next Capture
Captures
Source
Loading scheduled captures...
Games that have started but are waiting for final results to be fetched from result sources.
Event Date
League
Game
Bet
Bookmaker
Initial EV%
CLV%
Time Since Start
Close Capture
CLV Source
Loading pending results...
All opportunities regardless of settlement status.
Found
Event Date
League
Game
Bet
Bookmaker
Initial EV%
CLV%
Status
Result
Units +/-
Loading all results...
Bookmaker Performance Analytics
Performance metrics per bookmaker based on historical opportunities from the last 30 days.
Bookmaker
Total Opps
Avg EV%
Wins
Losses
Win Rate
Profit (Units)
Avg CLV%
Click "Refresh Stats" to load bookmaker analytics...
Active Opportunities--Live right now
Distribution by Time Horizon
By Sport
Loading...
14-Day Trend
Historical Trends(from daily snapshots)
Latest Snapshot
-
Period Avg: -
Range: -
Change: -
Total Opportunities
0
High EV (>5%)
0
Avg EV%
0%
Avg Opportunities/Day
0
Active Sources
0
Unique Leagues
0
Market Mix
0 1X20 ML0 DNB0 AH0 Totals0 Consensus Totals0 Player Props
System Health & FlagsLoading...Current issues only
Loading health indicators...
⚠️ Warning History
Detected
Warning
Details
Affected
Type
Status
Loading warning history...
🔧 Service ReliabilityLoading...
Loading service health...
Error History (Last 7 Days)
Date
Service
Error Pattern
Count
Severity
Status
Loading error history...
SRE Run Report
⏰ Automated Agents
🔍Data Quality Agent
Investigates data anomalies, validates fairlines, checks for cross-game contamination
Schedule:Every 2h at :00
Last run:-
Next run in --:--:--
🔧SRE Monitoring Agent
Monitors Render services, detects errors/outages, tracks service health patterns
Schedule:Every 2h at :30
Last run:-
Next run in --:--:--
Agents run via macOS launchd every 2 hours. Reports kept for 30 days.
Result SettlementLoading...
Overall Settlement
-
Soccer
-
Basketball
-
Ice Hockey
-
Missing Results
-
Daily Settlement Rate (Last 7 Days)
Date
Total
Settled
Rate
Worst Sport
Loading...
Settlement = past games with bet_result populated. Missing results are caused by TheSportsDB API 429 rate limits. Games must be 3+ hours past start time.
Result Linking Pipeline
Game Results (7d)
-
Linked to Opps
-
Unlinked Opps
-
Link Rate
-
League (unsettled)
Pending
Blocker
Loading...
Linking matches ev_opportunities to game_results by sport + team names + time window. Failures are usually team name mismatches or missing results.
Fairline Calibration by Sport
Sport
Settled
Expected Win%
Actual Win%
Calibration Error
Status
Loading...
Calibration error = Actual Win% - Expected Win%. Negative means underperforming. Values beyond ±3% indicate potential fairline issues.
🤖 Data Quality Investigation Agent
Loading...
Autonomous agent (powered by Claude Code) that investigates every indicator, examines every high EV opportunity, and produces detailed reports.
Run manually: ./scripts/run_dq_agent.sh
Loading latest report...
📋 Report History
Time
Status
Type
Loading...
📊 Fairline Accuracy
Fairline AccuracyMeasures how well fairlines predict outcomes. Compares actual win rates vs expected rates based on fairline probabilities. "Accurate" means within ±3% deviation.Loading...
Validates fairline quality by comparing different sources and detecting anomalies. Healthy fairlines are essential for accurate EV calculations.
🔬 Fairline Audit Results
Fairline Source Comparison
Source
Count
Avg EV%
Win Rate
Accuracy
Alt EV%
EV Δ
Loading...
Accuracy = Win Rate vs Expected. Alt EV% = avg EV if the other fairline source had been used. EV Δ = difference (positive = current source is more conservative).
Pinnacle vs Consensus Agreement
Sport
Both Present
Avg Diff
High Diff (>5%)
Agreement
Loading...
High disagreement between Pinnacle and Consensus may indicate data quality issues.
+EV opportunities where platforms_included array has 2+ entries. These have stronger confidence due to cross-verification.
--
Loading...
Cross-League Issues
Cross-League IssuesCount of leagues where platform naming doesn't match (e.g., "UEFA Europa League" vs "UEFA - Europa League"). These block cross-platform matching.
--
Loading...
Cross-Platform Rate (Last 7 Days)
Opportunities with data from 2+ platforms
Date
Opportunities
Multi-Platform
Rate
Status
Loading...
Data Source Flow (Last 7 Days)
Opportunities by contributing platform (one opp can count for multiple platforms)
Date
OddsJam
TheOddsAPI
BetBurger
Status
Loading...
Data Freshness (Queue Status)
Data FreshnessMeasures how recently odds in omenizer_queue were updated. Fresh data (<15min) is used for opportunity detection. Stale data is excluded to prevent acting on outdated prices.
Data older than 15 minutes is excluded from opportunity detection. Low freshness = missing from cross-platform merging.
Platform
Fresh (<15min)
Fresh RecordsRecords where updated_at is within last 15 minutes. These are eligible for +EV opportunity detection.
Stale (>60min)
Stale RecordsRecords not updated in 60+ minutes. Excluded from processing - may indicate scraper issues or low-volume leagues.
Fresh %
Freshness RateFormula: fresh / total × 100
Target: ≥70% for Good status. Low rates mean opportunities may be missed due to stale data.
Status
Loading...
🔀 Platform Divergence Detection
0
Opportunities where median odds differ >20% between data sources. This may indicate mapping issues, stale data, or mixed market types.
Divergence by Sport
Sport
Divergent
Total
Rate
Status
Loading...
Recent Divergent Opportunities
Event
Sport
EV%
Platforms
Detected
Loading...
🛡️ Market Data Validation
0
Markets rejected from fairline calculation due to invalid data. High rejection rates are expected for Soccer (2-way markets without draw) and incomplete SSE data. This prevents false +EV opportunities.
Sharp Book Availability
Sharp Book AvailabilityFormula: events_with_sharp / total_events × 100
Percentage of matched events where at least 1 sharp bookmaker has odds across any platform source. Events without sharp data cannot produce fairlines.
Of events that have sharp book odds, what % produced a fairline. 100% = engine converts every sharp signal. Event-level, deduplicated across platforms.
--
Loading...
Line Rejection Rate (24h)
Line Rejection RateFormula: rejected_lines / total_lines × 100
Per-bookmaker line rejections. High rates (>95%) are normal — most soft books have missing odds or bad overround. Only 2-3 sharp books per game are needed for fairline calculation.
--
Loading...
Lines Processed (24h)
Lines ProcessedTotal individual bookmaker lines validated in the last 24h. Each game has ~50-120 bookmaker lines; most are expected to be rejected.
Liquidity GovernanceLoading...PRD v1.02 Appendix C
Actionable Rate
--
Loading...
Suppressed
--
Loading...
Avg Confidence (Exch. Included)
--
LIQUID / THIN exchanges
Avg Confidence (Exch. Excluded)
--
ILLIQUID / UNKNOWN exchanges
Actionable Rate Trend
Suppression Reasons
Why opportunities are non-actionable
Reason
Count
%
Loading...
Exchange Liquidity by Sport
Classification of exchange volume (LIQUID / THIN / ILLIQUID)
Sport
Liquid
Thin
Illiquid
Unknown
Loading...
League Breakdown (Upcoming Games)
League ↕
Sport
Events ↕
Odds Records ↕
Fairline Cov.
Opps (24h) ↕
Loading...
Mapping Issues
Issue Type
Details
Count
Severity
Suggested Action
Loading...
Daily Opportunities Found
Opportunities by EV Threshold
Platform Coverage Analysis
Coverage by # of Platforms
Platform Combinations
Combination
Count
Avg EV%
%
Loading...
Platform Coverage Over Time
Bookmaker Performance
Top Bookmakers by Opportunities
Bookmaker Statistics
Bookmaker
Opps
Avg EV
≥5% EV
≥10% EV
Loading...
Top 5 Bookmakers Trend (Opportunities per Day)
Top Performing Leagues
Opportunities by League (Top 10)
League Statistics
League
Opps
Avg EV
Win Rate
ROI
Loading...
Top 5 Leagues Trend (Opportunities per Day)
Daily Breakdown
Date
Total
≥1% EV
≥3% EV
≥5% EV
≥10% EV
Avg EV
Leagues
Bookmakers
Loading...
Performance by EV Range
EV Range
Count
Win Rate
Avg CLV
ROI
Total P&L
Loading performance data...
CLV Performance
CLV Range
Count
Win Rate
Avg EV
ROI
Total P&L
Loading CLV data...
📊 League Coverage & Cross-Platform Analysis
--
Leagues
--
Total Events
--
Cross-Platform %
--
Active Opps
--
Mapping Gaps
-
Events vs Yesterday
League
Platforms
Events
Days Ahead
Cross-Platform
Opportunities
Opp Density
Health
Loading league coverage data...
OddsJam TheOddsAPI BetBurger|🟢 Healthy (2+ platforms, fresh)🟡 Warning (1 platform or stale)🔴 Critical (no data)⚠️ Mapping gaps|↑ More vs yesterday↓ Less vs yesterday
🗺️ Team Mapping Health
--
Match Rate
-- mapped / -- seen
--
Unmapped Teams
blocking event matching
--
Leagues with Gaps
--
--
Stale Mappings
not used in 90+ days
⚠️ Top Unmapped Teams (Last 7 Days)
Team
League
Platform
#
Loading...
📊 League Coverage Gaps (Worst First)
League
Platform
Coverage
%
Loading...
Pinnacle Odds Divergence Monitor
Multi-Source Events
-
Avg Divergence
-
Max Divergence
-
PIN/TOA Exact Match
-
OJ Mkt Mismatch
-
PIN Direct Events
-
PIN Direct
-
TheOddsAPI w/ PIN
-
OddsJam w/ PIN
-
Event
Sport
PIN H/A
TOA H/A
OJ H/A
Max Div%
Src
Loading...
Compares Pinnacle odds from PIN direct, TheOddsAPI, and OddsJam. PIN/TOA should be ~0% (same CDN). OJ soccer uses draw_no_bet (not comparable to h2h).
Spider Run Health (Last 24h)
Run Status Distribution
Current Cycle
Loading...
Cycle Duration Trend
Scraping Freshness by Platform
Platform
Last Scraped
Age
Status
Loading...
Stale Fairline Backlog
Stale Events
--
Total Upcoming
--
Stale Rate
--
Recent Spider Runs
Platform
Started
Duration
Status
Loading...
Leagues with Opportunities
0
Missing ESPN Mappings
0
Unprocessed Past Games
0
Coverage Rate
0%
League Coverage Report
League
Total Opps
With Results
Without Results
Coverage %
Result Sources
Mapping Status
Overall Status
Action
Loading results tracker data...
Add Custom Mapping
Find ESPN slugs: Soccer |
NBA |
MLB -
look at the URL (e.g., league=eng.1, league=nba)
Potential Name Mismatches
These leagues might have ESPN coverage under a different name:
Opportunity League Name
Possible ESPN Match
Similarity
Action
Checking for mismatches...
League Details
Select a league to see its games and identify mapping issues:
Game
Sport
Platform(s)
Start Time
EV %
Has Result
Result Source
Reprocess Results
After adding new ESPN mappings, you need to reprocess older games to fetch their results:
# Navigate to the ESPN scraper directory
cd scrapy-scraper/espn-results-scraper
# Run the fetch missing results script
python3 fetch_missing_results.py
# Or run the full pipeline (fetch + match + update)
Note: The fetch_missing_results.py script targets games older than 72 hours and uses the ESPN Core API to search for results by team names and date.
Make sure the config.json file has the correct database credentials.
Result Sources Statistics
Overview of all configured result sources, their mappings, and actual results obtained.
Total Sources
-
Active Mappings
-
Results Obtained
-
Overall Coverage
-
Source
Type
Configured Mappings
Unique Leagues
Results Obtained
Result Leagues
Coverage %
Status
Loading...
EV Tracking Configuration
Only include games with odds updated within this time window when calculating EV opportunities
Method for removing bookmaker margin (vig) from odds to calculate fair probabilities.
Additive: Simple proportional removal (default)
Power: Adjusts for favorite-longshot bias
Shin: Accounts for informed bettors, best for soccer
Worst Case: Assumes all vig on your side (conservative)
🎯 Fairline Configuration
Configure sharp bookmaker weights, prediction market settings, and consensus bookmakers.
These settings control how fairlines are calculated.
Weight determines influence in consensus. 0 = excluded, 1.0 = full weight.
These bookmakers are used for the Consensus fairline (public market mean).
🤖 Data Quality Agent Thresholds
Configure detection thresholds for the Data Quality Monitoring Agent. Values beyond these thresholds trigger warnings or critical alerts.
Outright / Futures Filters
Controls which outright EV opportunities are surfaced. These thresholds apply to multi-runner markets
(tournament winners, championship futures, election outrights). Sport-specific overrides can be added via the database.
Minimum edge to surface. Below this, noise exceeds signal.
Above this, almost always a stale recreational price.
Ignore deep long-tail runners. Consensus unreliable below this.
Reject when rec book diverges this much from consensus (stale price).
Minimum sharp/exchange books for valid consensus.
Minimum runners for valid N-way devigging.
Below this = exchange suspended runner (Betfair 1.01 artifact).
Reject bookmakers with overround above this (corrupted data).
Indicators Reference
Expected Value (EV)
Raw EV%
(decimal_odds × fair_probability - 1) × 100 Edge before any risk adjustment. Source: Pinnacle/Consensus fairline vs bookmaker odds.
Adjusted EV%
raw_ev × haircut_factor Risk-adjusted EV using empirical calibration. Haircut varies by segment (sport × market_type × market_state). Source: segment_calibration table, updated daily.
Current Best EV
Highest EV across all recreational bookmakers for the selected devig method. Excludes sharps, exchanges, prediction markets, and cross-validation flagged bookmakers. Refreshed every 30s.
Fairlines
Pinnacle Fairline
Devigged probabilities from Pinnacle's odds using the selected method (additive, multiplicative, power, shin, worst_case). Pinnacle is the primary sharp bookmaker — their prices reflect the most efficient market.
Consensus Fairline
Weighted median of devigged probabilities from all non-Pinnacle sharp bookmakers (CEP = Consensus Excluding Pinnacle). Only available when 2+ sharps have odds. Used as cross-validation, not primary reference.
Devig Methods
Additive: subtract equal margin from each outcome. Multiplicative: scale proportionally. Power: favorite-longshot bias correction. Shin: insider trading model. Worst Case: maximum margin removal (most conservative).
Market State
Classification of the opportunity's data quality structure. Drives haircut factors and EV thresholds.
STRONG SHARP
3+ sharp bookmakers, native market. Best data quality.
MULTI SHARP
2 sharp bookmakers, native market. Good independent price validation.
THIN SHARP
1 sharp bookmaker (typically Pinnacle only). Higher variance, still actionable.
DERIVED STRONG
Derived market (DNB, double chance) with 2+ sharps. Fairline derived from 3-way odds.
DERIVED THIN
Derived market with 1 sharp. Weakest structure — requires high EV threshold (5%+).
Note: Exchanges (Betfair, Matchbook) are NOT counted as sharp bookmakers. They provide an independent price signal via the Exchange Agreement indicator.
Confidence Score (0-100)
Penalty-based model starting at 100. Measures signal reliability, NOT edge magnitude. Recomputed every 30s refresh.
Sharp Depth
0 to -60
Non-Pinnacle sharp bookmakers contributing to the fairline for this specific line.
Sharp Diversity
0 to -25
Number of independent corporate pricing groups. 1 group = all sharp data from same entity.
Dispersion
0 to -30
Max probability spread among CEP sharp books. High dispersion = sharps disagree on fair price.
Other recreational bookmakers within 5% of opportunity odds (excluding self). 5+ = +10 (strong confirmation), 0 = -15 (isolated price).
Hold Comparison
0 to -15
Bookmaker overround vs Pinnacle overround. Large difference suggests aggressive margin extraction.
Longshot Risk
0 to -20
Penalty for low-probability outcomes (fair prob < 15%). Small errors in probability estimation create disproportionate EV on longshots.
Soft Tail Inflation
0 to -15
Detects when recreational bookmakers systematically price longshots higher than sharps. Only for odds > 3.0 decimal.
Bookmaker Volatility
DB-driven
Per-bookmaker penalty for known volatile/unreliable odds providers (e.g., GGBet = -15). Stored in canonical_bookmakers.confidence_penalty.
Market Agreement & Divergence
Phase 1 scoring signals that measure structural support for the edge. Computed per-bookmaker during EV detection.
Market Agreement
Sharp-weighted cluster analysis. Measures how many sharp bookmakers support the fairline side. High agreement = many sharps agree = efficient market. Score 0–1.
Market Divergence (v3)
Z-score based. Market-specific classification: Moneyline/AH/Totals (monotonic): higher z = better. Bands: WEAK (<1.5), MODEST (1.5–2), GOOD (2–3), STRONG (3+). 3-way/DNB (non-monotonic): sweet spot at z 2–3. Bands: WEAK (<1.5), STRONG (1.5–3), EXTREME_CAUTION (3+).
Divergence Multiplier
Applied to per-bookmaker EV based on divergence band. STRONG/GOOD = 1.0x, MODEST = 0.9x, WEAK = 0.75x, EXTREME_CAUTION = 0.5x.
Opportunity Classification
Edge classification based on market agreement, divergence, and sharp book count. Data-calibrated 2026-03-26 — empirical CLV/ROI per class shown.
HIGH_VALUE
BET
EV ≥ 15% at any confidence level. +22.9% ROI across 732 settled bets. Large detected edge — profitable regardless of confidence score.
PRIME
BET
Confidence ≥ 80, EV ≥ 2%. +3-4% ROI, best risk-adjusted segment. High fairline quality + meaningful edge = most reliable opportunities.
STANDARD
BET
Confidence 50-79, EV ≥ 2%. +1-3% ROI. Solid fairline quality with decent edge.
VALUE
BET
Confidence < 50, EV ≥ 2%. +1% ROI, profitable but volatile. Lower confidence (thin fairline source) but still positive expectation from settlement data.
THIN_EV
PASS
EV < 2%. -1.83% ROI across 5,434 bets. Edge too thin to survive vig and line movement. Only consistently losing segment.
NO_EDGE
PASS
0 sharp books or negative/zero EV. No reliable fairline to evaluate against. -14.4% ROI when 0 sharps.
Key insight: the classifier measures signal quality, not edge quality. High signal quality (STRONG) often means efficient markets with small edges. Low signal quality (THIN, FALSE) can still be profitable. Edge Score in the Combo Finder normalizes for this.
Edge Score (0–100) — Combo Finder
Composite score for comparing combos across all dimensions. Normalizes for odds tier inflation so a +5% CLV favorites combo and a +15% CLV longshots combo are comparable. Used in the Combo Finder (ROI Statistics tab).
Validation (35 pts)
Historical backtest agreement + ROI. Largest component — a combo without historical validation can never rank highest. Validated + hist ROI > 0 = 35. Validated + hist ROI ≤ 0 = 20. Directional + hist ROI > 0 = 25. Directional + hist ROI ≤ 0 = 10. Low Sample + hist ROI > 0 = 15. No Data = 8. Disagree = 0–5. Both Negative = 0.
Consistency (30 pts)
+CLV% × 30. How often you beat the closing line. A combo at 80% +CLV scores 24/30.
Edge Quality (20 pts)
min(CLV / EV, 2.0) / 2.0 × 20. Did the detected edge hold at close? CLV/EV ratio normalizes across odds tiers. Ratio of 1.0 = edge held perfectly. Capped at 2.0 to prevent outlier inflation.
Sample Size (15 pts)
min(ln(n) / ln(200), 1.0) × 15. Log-scaled, maxes out at n=200. n=20 → 8.5 pts, n=50 → 11.1, n=100 → 13.0, n=200 → 15.0. A 6.5-point spread between smallest and largest samples.
Historical backtest (585K simulated opps from 6-month TheOddsAPI data) compared to live results. Backtest CLV is from sparse hourly snapshots — directional guide only, not precise.
Validated
Same CLV direction (both positive) + historical +CLV% ≥ 50% + gap within 10x. Strongest signal that the edge is real and persistent.
Directional
Same direction but weak: historical +CLV% < 50% or gap > 10x. Edge might be real but historical data doesn't strongly confirm it.
Disagree
Opposite directions — live says profitable, historical says not (or vice versa). Treat with caution.
Both Neg
Both live and historical CLV are negative. Strong signal to avoid this combo.
Low Sample
Historical match exists but below the Backtest min-bets threshold. Not enough historical data to validate.
No Hist
No matching historical combo at all. Common for markets/sports not covered in the 6-month TheOddsAPI dataset.
Fairline Source Tiers
Fairlines are calculated using a priority cascade. Higher tiers are preferred when available.
Tier 1: Pinnacle
Devigged Pinnacle odds. Most accurate fairline. Confidence cap: 100.
Tier 2: Consensus EV
Weighted median of 2+ non-Pinnacle sharp bookmakers. Used when Pinnacle has no odds for the event. Confidence cap: 100.
Tier 3: Betfair Exchange
Devigged Betfair odds when liquidity is LIQUID or UNKNOWN. Independent price from exchange orderbook. Confidence cap: 55.
Tier 4: Robinhood
Prediction market probabilities from Robinhood. Different market dynamics — use as last resort. Confidence cap: 45.
No Source
No sharp/exchange/prediction market data available. Event cannot be priced — no opportunities generated.
Coverage improvement: Pinnacle alone covers ~40% of events. Adding Betfair (+15%) and Robinhood (+3%) brings total coverage to ~56%.
Stake Recommendation
Raw Kelly%
(b × p - q) / b where b = decimal_odds - 1, p = fair_prob, q = 1 - p. Optimal bankroll fraction assuming the fairline is exact.
Adjusted Kelly%
raw_kelly × (confidence / 100). Scales stake by model trust. Confidence 0 = no bet regardless of raw Kelly.
Recommendation
No Bet: adj. kelly ≤ 0. Minimum: < 0.5%. Small: < 2%. Standard: < 5%. Aggressive: ≥ 5%.
Ranking Score (0–100) — Per-Opportunity
Composite score for real-time opportunity prioritization in the Active Opportunities table. Different from Edge Score (which is for combos/aggregates).
avg_clv / avg_raw_ev per segment. What fraction of displayed edge historically materializes. Floored at 0.10, capped at 1.00. Segments: sport × market_type × market_state. Updated daily at 6 AM UTC.
Min EV Threshold
Lowest EV band where positive CLV rate ≥ 50%. Per segment. Prevents detection of opportunities in segments where low EV historically loses money.
Bayesian Shrinkage
(segment_val × n + parent_val × k) / (n + k), k=50. Small segments blend toward parent (market_state level) to prevent overfitting. 30+ samples required for segment-specific calibration.
Close Quality Score
0-1 scale. time_score (0-0.5): proximity to start (T-0 = 0.5, T-10h = 0). sharp_score (0-0.5): sharp books at close (3+ = 0.5). Higher quality CLV data is preferred in calibration.
Closing Line Value (CLV)
CLV%
(closing_fairline - initial_implied_prob) / initial_implied_prob × 100. Measures whether the initial bet had edge relative to the closing price. Positive CLV = the line moved in your favor. Visible in Results & Analysis tab.
Edge Decay
initial_ev - closing_ev. How much edge eroded between detection and close. High decay = the market corrected quickly.
Data Quality Signals
Price Outlier
Bookmaker odds > 2 standard deviations from the market cluster mean. Warning shown in modal when the opportunity bookmaker is the outlier.
Cross-Validation
For parameterized markets (AH, spread): detects when a bookmaker's odds appear identically under a different market type or param on the same event. Indicates platform labeling error. Flagged bookmakers excluded from Best EV.
Platform Divergence
Median odds differ by > 20% between platforms for the same event. Indicates stale data or market type mixing. Opportunity suppressed.
Impossible EV
EV > 100%. Indicates mapping error or data corruption. Opportunity suppressed.
Bookmaker Categories
Recreational
Standard sportsbooks (DraftKings, FanDuel, bet365, etc.). These are the actionable bookmakers — opportunities are detected against their odds. Shown in main table.
★ Sharp
Price-making bookmakers (Pinnacle, Marathon, Circa, etc.). Their devigged odds form the fairline. Not actionable — shown as reference in modal only.
↔ Exchange
Betting exchanges (Betfair, Matchbook). Provide independent price discovery. Not counted as sharp books. Exchange Agreement signal in confidence. Shown as reference in modal.
Prediction Mkt
Belief-based markets (Polymarket, Kalshi). Different probability semantics — not devigged. Provide Prediction Market Agreement signal when liquidity ≥ $1K. Never actionable.
Data Sources
OddsJam REST
Batch odds fetch every 20 minutes. Covers all major sportsbooks + prediction markets. Source of most bookmaker odds.
OddsJam SSE
Real-time odds stream. Updates existing records with live odds changes. Low latency.
TheOddsAPI
Scrapy spider, priority-tiered schedule. Primary source for Pinnacle odds and European bookmakers.
Prediction Mkt Liquidity
USD liquidity per outcome from Kalshi (weight 1.0) and Polymarket (weight 0.85). Used for the $1K liquidity gate on prediction signals.
Per-opportunity indicators recompute every 30-second refresh cycle. Calibration updates daily at 6 AM UTC. Edge Score and combo validation update on-demand via Combo Finder. Classification recalibrated 2026-03-26 based on 15K+ live opportunities. Formulas reference PRD v2.2.1, CLV Calibration PRD v1.0, and Quality Scoring PRD v1.0.
Loading pipeline funnel...
Loading ROI statistics...
Cross-Tab Explorer
Rows:×
Filter to:
Select dimensions and click Generate
Profitable Combo Finder
Live min:Backtest min:
Finds the most and least profitable combinations of Market × Sport × Odds × EV × Confidence × Classification × Stake
Profitability Over Time
ROI and cumulative P/L over time windows. Shows if edge is stable, growing, or decaying.
Data Quality Dashboard
Coverage, settlement rates, CLV quality, fairline sources, and historical data completeness by sport and market type