PERSONAL ANALYSIS CONSOLE
Find the signal.
Measure the risk.
Browse current scoreboards, compare available market prices, and keep your personal records on this device.
Live games & research
Free scoreboard snapshots. No account or API key needed for scores.
0 events shown
Feed coverage and errors
Game research
Select a game to inspect supplied records, leaders, injuries and box scores.
Recent-game research
Open a team game above to calculate player averages and inspect recent performance.
Experimental baseline methodology
Optional: real bookmaker price comparison
Uses your own The Odds API key. A free plan may be available; check its current quota. No purchase is required by EdgeLab. Verify the free plan when signing up. Do not paste your key into chat.
Your key is sent directly to that provider over HTTPS and held only in memory. ESPN and the odds provider receive ordinary network information such as your IP address. No vault records are sent. Hosting this app does not make its code private.
Requests are manual, one US region and one market at a time. No background polling. Prices can move; verify them with the bookmaker. Payout differences do not establish positive EV. Outrights and three-way markets retain their own outcome sets.
Live player props
Metered automatic snapshots from your own data-provider account.
Connect your free-plan key
Get a key from The Odds API. Its advertised free allowance is 500 credits/month; verify current terms. No purchase is needed. Your key is sent directly to that provider and held in memory only.
Fetches up to three upcoming events within 48 hours, one market each, every 15 minutes while this tab is visible. Up to six active leagues per sport. This is limited scanning, not a complete all-game feed.
Sport coverage and experimental forecasts
NFL, NBA, MLB, college football, college basketball, NHL and soccer have provider prop adapters, subject to availability. This provider configuration has no tennis or golf player-prop adapter; those sports remain available under Live games. A selector does not guarantee coverage.
Experimental forecast: EdgeLab attempts to load matching recent-game history automatically; you can still open a matching event in Live games if it is unavailable. Supported passing/rushing/receiving stats and basketball stats can use five recent appearances with an exact player/team/time match. Half-unit lines only. Model p(over) = (historical overs + 1) / (appearances + 2); p(under) = 1 − p(over). No verified injury, opponent or minutes adjustment. Sampling uncertainty is shown but is not model validation. Other combinations abstain.
Paper forecasts are saved on this device, separately from your encrypted vault. They contain public player/market data and model outputs, no API key, stakes or betting journal. Export them before clearing website storage. Estimates are not used for automatic wagers.
Automatic recent-game history loads after prop quotes are retrieved, where supported.
Test 108 · Secondary-source access diagnostic
Read-only browser access checks for CBS Sports and NBA.com. No Odds API credits, no API key, no player-stat verification and no ledger changes. Browser CORS restrictions may prevent direct access even when a site works in Safari.
Not run. Cross-source verification: PENDING.
Test 109 · CBS HTML extraction diagnostic
Read-only inspection of the public CBS NBA scoreboard HTML. Reports structured-data indicators, not player-stat verification. No Odds API credits or ledger changes.
Not run. Cross-source verification: PENDING.
Test 121 · Cloudflare server-side NBA connectivity
Read-only Cloudflare Pages Function checks three fixed NBA endpoints and ESPN. Records HTTP status and game identity, but does not claim independently verified player stats or settle forecasts. Requires Pages Functions deployment support.
Not run. Server-side connectivity: PENDING.
Test 120 · NBA source connectivity diagnostic
Read-only browser checks of three official NBA CDN endpoints and the ESPN control. A browser fetch rejection cannot conclusively identify CORS versus network blocking; the report preserves this distinction. No forecast changes or paid API requests.
Not run. NBA source connectivity: PENDING.
Test 119 · Live NBA CDN independent-source probe
Read-only live NBA CDN versus ESPN historical box-score retrieval for one controlled game. Browser CORS failures are recorded, not treated as missing statistics. No Odds API credits, ledger changes, or settlement.
Not run. Live independent-source verification: PENDING.
Test 118 · Official NBA box-score cross-check
Read-only controlled comparison of live ESPN summary values with a dated NBA.com official box-score reference for Philadelphia at Detroit on November 4, 2026. The NBA reference is a fixed snapshot, not a live NBA.com API fetch. Other games remain unverified. No Odds API calls, ledger writes, or automatic settlement.
Not run. Official-source comparison: PENDING.
Test 117 · ESPN athlete identity review
Read-only targeted checks of historical box-score athlete IDs against ESPN athlete profiles. Flags suspicious team assignments for independent review; current roster differences are not proof of historical errors. No Odds API calls or ledger changes.
Not run. Independent verification: PENDING.
Test 116 · ESPN player/team and stat integrity
Read-only historical game identity, roster consistency, and points arithmetic checks. Generates a compact JSON download. Single-source checks do not independently authenticate results. No Odds API credits or ledger changes.
Not run. Verification: PENDING.
Test 115 · ESPN completed-game player-stat probe
Read-only inspection of one completed ESPN NBA game per historical date (Nov 7, 4, and 2). Reports event identity and player-stat structure. ESPN alone is not independent verification. No Odds API credits or ledger changes.
Not run. Independent verification: PENDING.
Test 114 · Historical NBA box-score feasibility
Read-only historical date probes of CBS scoreboard and ESPN schedules (Nov 7, 4, and 2). A successful page load is not player-stat verification. No Odds API credits or ledger changes.
Not run. Historical verification: PENDING.
Test 113 · CBS/ESPN matchup normalization
Read-only repair of CBS dates and team names; retrieves ESPN schedule candidates. No authenticated player stats, Odds API credits, or forecast ledger changes.
Not run. Cross-source verification: PENDING.
Test 112 · CBS game identifier extraction
Read-only extraction of repaired CBS SportsEvent identities and cautious ESPN candidate matching. No player-stat verification, Odds API credits, or ledger writes. A candidate match is not authentication.
Not run. Independent verification: PENDING.
Test 111 · Controlled CBS JSON-LD repair
Read-only, string-aware control-character escaping. Compares original and repaired parsing without changing source records, forecasts, or validation status. No Odds API key required.
Not run. Independent verification: PENDING.
Test 110 · CBS JSON-LD parser investigation
Read-only diagnosis of all CBS scoreboard JSON-LD blocks, exact parser errors, control-character counts and box-score link indicators. No player verification, Odds API requests, or ledger changes.
Not run. Cross-source verification: PENDING.
Model testing
Forward paper records and evaluation by sport, market and model version.
Paper forecast ledger
0 forecasts recorded on this device. Each event/player/market/line/side/model is recorded once, before its scheduled start. Reloads do not replace the first forecast.
Restore saved forecasts
Choose your previously exported EdgeLab-paper-forecasts.json. Records are merged by forecast ID; existing records are not deleted. Keep your original backup.
To evaluate, add settlements to the exported JSON. Each settlement needs forecast_id, result (win/loss/push/void), and settled_at (ISO timestamp after start). Use the settlement helper below to record results on this device; this does not independently authenticate outcomes.
Record a completed result
What counts as evidence
The evaluator checks forecast time before game start, feature cutoff no later than forecast time, and settlement time after start. It reports Brier score, log loss, calibration bins, distinct event count, and equal-unit paper return separately per sport/market/model. Pushes and voids are excluded; repeated forecast IDs are counted once.
These are diagnostics, not a validation badge. A model still needs reliable outcomes, enough independent events, comparison to market and simple baselines, uncertainty estimates, and a separate chronological test period. No sport inherits validation from another sport.
Market opportunities
Ranked by estimated expected value. These are not guaranteed outcomes.
Game & player explorer
Search imported selections or inspect a model calculation.
Choose a market to see how the probability, edge and estimated return were calculated.
Bring your own data
Import legally obtained market prices and independent probability estimates. Everything is stored in your encrypted vault.
CSV import
Use the included CSV template. Each row is one potential selection, not necessarily an entire game.
Probability methods
Independent estimate: enter model_prob as a percentage (e.g., 58) or fraction (0.58). This is your estimate, not one calculated from odds.
Experimental Elo baseline: if probability is blank, provide rating_for, rating_against, and optional home_advantage. The simple Elo formula applies only to binary winner markets and is not calibrated by sport.
No model input: odds are shown, but no EV ranking is calculated. The app never treats sportsbook prices as an independent prediction.
Manual entry
Private vault
Encrypted on-device storage for your imported markets, journal and preferences.
Unlock or create vault
Encrypted local records
No betting journal is transmitted by EdgeLab.
Backups and data controls
Download an encrypted backup of your data. Store it somewhere safe; the same passphrase is needed to restore it.
Methodology & limits
What this version calculates, and what it does not.
How opportunity rankings work
American odds are converted to decimal payout and break-even probability. If an independent model probability is supplied, expected ROI = probability × decimal odds − 1. Rankings are derived from that estimated expected ROI. Model accuracy matters more than the ranking formula.
Optional fractional Kelly suggestions are capped at 1% of bankroll as an educational reference; use of any stake is entirely optional.
Live feeds and automatic refresh
Live games fetches ESPN scoreboards on opening, when the date changes, on manual refresh, and every five minutes while its tab is visible and automatic refresh is enabled. Details fetch supplied box scores and injury reports when opened. ESPN endpoints are undocumented and can change. Optional bookmaker prices use your own The Odds API key. Neither service supplies a validated independent projection in this app. Recent-game player means and historical line hit counts are available for supported team events. Live props offers capped automatic pregame price polling with your own key, subject to coverage. Experimental forecasts can be recorded for later evaluation. Calibrated forecasts remain unavailable.
Coverage depends on available licensed data, not just the sport selector. The demo illustrates all nine sports without claiming live coverage.
Private by design, with important limits
The vault encrypts stored records with AES-GCM and a key derived from your passphrase through PBKDF2. Encryption is performed in your browser. The app does not save your passphrase. This is not an independently audited security product.
If hosted online, the host could serve modified JavaScript on a later visit. A trusted, fixed-code native app would provide stronger control. Browser site storage can also be removed by the operating system or user settings.
Development budget
Current version: $0 in hosting or data fees when run locally; no Apple Developer membership required for the web app. A free HTTPS host may make installation easier, but may have limits and a separate privacy tradeoff. This project does not place bets or connect sportsbook accounts.