Files
vyndr/BUILD-STATE.md
T
builtbykev 411cb6f196 feat: Feature 2.1 — Parlay Scan with correlation detection + monetization
POST /api/scan/parlay — authenticated parlay analysis:
- Supabase JWT auth middleware (auth.getUser verification)
- 5 correlation types detected between legs (same_game, same_team,
  same_player_conflicting, positive_correlation, blowout_cascade)
- Overall parlay grading (A/B/C/D) with correlation penalty adjustments
- Free tier: 5 scans/month, atomic scan count increment
- Scan 5: full analysis + personalized upgrade pitch
- Scan 6+: 403 block with upgrade pitch
- Pitch personalization from scan history (top stats, grades, tier rec)
- DB writes: picks + scan_sessions per scan

30 new tests, 158 total (131 Node.js + 27 Python), all passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:45:15 -04:00

2.6 KiB
Executable File

BetonBLK — Build State

Last Updated

2026-03-21

Current Phase

Phase 2 — Core Product (IN PROGRESS)

What Has Shipped

Phase 1 — Foundation (COMPLETE)

  • Feature 1.1 — Odds API Integration
  • Feature 1.2 — NBA_API Stats Wrapper (FastAPI microservice)
  • Feature 1.3 — Prop Analysis Engine (6-step grading pipeline)
  • Feature 1.4 — Database Schema (6 tables, RLS, triggers in Supabase)

Feature 2.1 — Parlay Scan (COMPLETE)

  • POST /api/scan/parlay — full parlay analysis with auth
  • Supabase JWT auth middleware (auth.getUser() verification)
  • 5 correlation types: same_game_opposing, same_game_same_team, same_player_conflicting, positive_correlation, blowout_cascade
  • Overall parlay grading (A/B/C/D) with correlation penalty adjustments
  • Free tier: 5 scans/month with atomic scan count (race-condition safe)
  • Scan 5: full analysis + personalized upgrade pitch
  • Scan 6+: 403 with upgrade pitch, no analysis
  • Paid tiers (analyst/desk): unlimited scans
  • Upgrade pitch personalization from scan history (stat types, grades, player patterns)
  • Tier recommendation: analyst for casual, desk for power users
  • Database writes: picks table (per leg) + scan_sessions table (per scan)
  • Founder pricing highlighted in all pitches

Test Summary

  • Node.js: 131 tests passing (unit + integration)
  • Python: 27 tests passing
  • Total: 158 tests, all green

What's Next

  • Feature 2.2 — Real-Time Line Movement + Cascade Detection (depends: 1.1)
  • Feature 1.5 — Bet Submission (depends: 1.4)

Active Blockers

  • BLOCKER-003: WSL2 DNS cannot resolve *.supabase.co (verify-schema.js cannot run from CLI)

Session Log

Session 1 — 2026-03-21

  • Built Feature 1.1: Odds API Integration (28 tests)
  • Credits used: 2 of 500 (498 remaining)

Session 2 — 2026-03-21

  • Built Feature 1.2: FastAPI microservice (27 Python tests)
  • Built Feature 1.4: Database schema (37 tests), applied to Supabase

Session 3 — 2026-03-21

  • Built Feature 1.3: Prop Analysis Engine (36 new tests)
  • Phase 1 Foundation COMPLETE

Session 4 — 2026-03-21

  • Built Feature 2.1: Parlay Scan
    • auth.js (Supabase JWT middleware)
    • correlationEngine.js (5 correlation types)
    • parlayGrader.js (parlay-level grading with correlation penalties)
    • upgradePitch.js (personalized monetization pitch from scan history)
    • parlayScanService.js (orchestrator: auth → count → analyze → correlate → grade → persist → pitch)
    • routes/scan.js (POST /api/scan/parlay)
    • 30 new tests (unit + integration)
  • Logged DECISION-006 (auth via Supabase getUser) and DECISION-007 (atomic scan count)
  • Total: 158 tests (131 Node.js + 27 Python), all green