06b82624a2
Closed-loop intelligence: settled bets feed back into grading weights. - Grade accuracy tracking per stat type (A/B/C/D hit rates) - Signal accuracy tracking (which deltas predict outcomes) - Kill condition effectiveness (hit_rate_with vs without) - Conservative weight adjustment (20% cap, 50-pick minimum) - 4 new DB tables: grade_accuracy, signal_accuracy, kill_condition_accuracy, weight_history - Desk-tier endpoints: /api/model/accuracy, /api/model/insights Spec complete, ready to build when Phase 3 deployment is stable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
98 lines
4.3 KiB
Markdown
Executable File
98 lines
4.3 KiB
Markdown
Executable File
# BetonBLK — Product Roadmap
|
|
|
|
## PHASE 1 — FOUNDATION (Weeks 1-2)
|
|
|
|
### Feature 1.1 — Odds API Integration (no dependencies — build first)
|
|
- GET /api/odds/nba — Returns today's NBA props normalized across DraftKings, FanDuel, BetMGM
|
|
- GET /api/odds/ncaab — NCAA props in season
|
|
- Data shape: { player, team, stat_type, line, over_odds, under_odds, book, timestamp }
|
|
- Cache: 15-minute refresh. Graceful fallback if rate limit hit.
|
|
- Tests: Mock API response, verify normalization, verify cache behavior
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 1.2 — NBA_API Stats Wrapper (no dependencies — build parallel with 1.1)
|
|
- getPlayerSeasonAvg(playerId, statType) → season average
|
|
- getPlayerLast10Avg(playerId, statType) → last 10 game average
|
|
- getPlayerSplits(playerId, statType, filters) → home/away/B2B/vs opponent situational
|
|
- Cache: 24hr on season averages, 1hr on recent games
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 1.3 — Prop Analysis Engine (depends: 1.1 + 1.2)
|
|
- Input: { player, stat_type, line, book }
|
|
- Step 1-6: Season avg compare → situational factors → injury check → kill conditions → grade A/B/C/D → BetonBLK voice format
|
|
- Output: { grade, edge_pct, reasoning, kill_conditions_triggered, confidence }
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 1.4 — Database Schema — Supabase (no dependencies)
|
|
- users: id, email, tier, scan_count, scan_reset_date, stripe_customer_id
|
|
- picks: id, user_id, player, stat, line, grade, reasoning, created_at
|
|
- outcomes: id, pick_id, result, actual_value, logged_at
|
|
- bets: id, user_id, amount, slip_data, book, placed_at
|
|
- performance: id, user_id, roi, win_rate, sample_size, period
|
|
- scan_sessions: id, user_id, legs[], final_grade, kill_conditions, created_at
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 1.5 — Bet Submission (3 Methods) (depends: 1.4)
|
|
- Screenshot: POST /api/bets/screenshot — image upload, OCR extracts bet data
|
|
- Quick slip: POST /api/bets/quickslip — natural language: 'Jokic PRA 50.5 over $20 DraftKings'
|
|
- Sportsbook sync: POST /api/bets/sync — OAuth, auto-logs all bets
|
|
- Status: NOT STARTED
|
|
|
|
## PHASE 2 — CORE PRODUCT (Weeks 3-4)
|
|
Depends on: Phase 1 complete
|
|
|
|
### Feature 2.1 — Parlay Scan (depends: 1.3 + 1.4)
|
|
- Logic: Grade each leg → check correlation → grade overall parlay
|
|
- Scan cap: Check scan_count before processing. If 5: return personalized upgrade pitch
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 2.2 — Real-Time Line Movement + Cascade Detection (depends: 1.1)
|
|
- Line movement: Alert when line moves 0.5+ points from 8 AM baseline. Flag sharp money direction.
|
|
- Cascade: Star player scratches → identify affected props → re-grade → alert affected users
|
|
- Status: NOT STARTED
|
|
|
|
## PHASE 3 — WEB MVP (Weeks 5-6)
|
|
Depends on: Phase 2 complete
|
|
|
|
### Feature 3.1 — Landing Page (no code dependencies)
|
|
- Next.js. Hero, How It Works, 3-tier pricing with founder badge, email CTA
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 3.2 — Scan UI (depends: 2.1)
|
|
- Natural language input or manual leg builder
|
|
- Color-coded grades. Scan counter.
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 3.3 — Bet Tracker UI (depends: 1.5)
|
|
- Win rate, ROI, behavioral pattern card at 30+ bets
|
|
- Status: NOT STARTED
|
|
|
|
### Feature 3.4 — Stripe Integration (depends: 1.4)
|
|
- Checkout → subscription → webhook → tier update in DB
|
|
- Founder code locks rate
|
|
- Status: NOT STARTED
|
|
|
|
## PHASE 4 — INTELLIGENCE (Backlog)
|
|
|
|
### Feature 4.1 — Model Learning Loop (depends: 1.3 + 1.5)
|
|
- Settled bets feed back into grading weight analysis
|
|
- Track grade accuracy (A/B/C/D hit rates) per stat type
|
|
- Track signal accuracy (which deltas actually predict outcomes)
|
|
- Track kill condition effectiveness (do they prevent bad bets?)
|
|
- Auto-adjust grading weights with conservative learning rate
|
|
- Weight changes capped at 20% per cycle, min 50 picks per signal
|
|
- GET /api/model/accuracy (Desk tier) — current model stats
|
|
- GET /api/model/insights (Desk tier) — human-readable learnings
|
|
- Status: SPEC COMPLETE — ready to build
|
|
|
|
## DEPENDENCY MAP
|
|
```
|
|
1.1 (Odds API) ──┐
|
|
├──→ 1.3 (Prop Engine) ──→ 2.1 (Parlay Scan) ──→ 3.2 (Scan UI)
|
|
1.2 (NBA API) ───┘
|
|
1.1 ──→ 2.2 (Line Movement + Cascade)
|
|
1.4 (DB Schema) ──→ 1.5 (Bet Submission) ──→ 3.3 (Bet Tracker)
|
|
1.4 ──→ 3.4 (Stripe)
|
|
3.1 (Landing Page) — no code dependencies
|
|
```
|