# VYNDR — 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 → VYNDR 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
```
