Edge Picks AI Scorecard Backtest It's Alive Partners

How WeBetAI Is Built to Optimize Itself v10.0

Inside the deterministic feedback architecture that learns from every pick it makes. Published March 29, 2026.

Summary

WeBetAI runs a deterministic JavaScript pipeline that makes every pick. It tracks Closing Line Value on every bet, grades every result overnight, and is architected to feed that data back into tomorrow's picks automatically. Four feedback loops — CLV reliability multipliers, rolling edge thresholds, dynamic sport weighting, and an edge discount curve — will progressively turn on as clean data accumulates over the next 6 weeks. The model gets sharper every day without a human touching the code.

The Daily Cycle

The pipeline touches the same data at three points each day. These are the touchpoints where self-optimization feedback gets wired in.

1 Morning Pick Generation (10:00 AM EDT)

The background worker generate-picks-background.js fetches real-time odds from 13 sportsbooks, team stats and injuries from ESPN, daily-updated Elo ratings, and prediction market prices from Kalshi and Polymarket. A deterministic JavaScript engine computes projections, edges, cover probabilities, and quarter-Kelly unit sizing. Claude receives a pre-ranked candidate table and selects the top 3 picks — it can reject or reduce units, but structurally cannot override the math, add picks outside the table, or increase sizing.

2 CLV Capture (1:00 PM + 7:00 PM EDT)

The CLV tracker fires twice daily via scheduled Netlify functions. It pulls closing odds from The Odds API and compares them to odds locked at pick time. Every record stores sport, market type, unit size, and the exact delta. Positive CLV means sharp money moved toward us. Dual capture windows cover afternoon and evening games. Merge mode prevents duplicates.

3 Overnight Grading

Games finish, ESPN scores come in, results are graded. Win, loss, or push — every outcome is recorded alongside the original edge, unit size, sport, and market type.

Right now, Step 3 does not talk back to Step 1. The model wakes up the next morning with no memory of what happened yesterday. That is about to change.

Feedback Loop 1 — CLV Reliability Multiplier

Closing Line Value is the single most predictive metric for long-term betting profitability. If you consistently beat the closing line, you are a winning bettor — regardless of short-term variance. WeBetAI captures this on every pick.

Over 2+ weeks, CLV data accumulates into a reliability table:

SportMarketAvg CLVPicks
NHLPuck Line+8.214
NBATotal-1.328
NCAABTotal-4.119

This becomes a Kelly reliability multiplier inside computeEdgeTable. The pipeline already computes quarter-Kelly sizing — the multiplier scales it:

NHL puck line: CLV strongly positive → multiplier 1.2x → size up
NBA totals: CLV flat → multiplier 1.0x → no change
NCAAB totals: CLV negative → multiplier 0.6x → size down or skip

This is not a prompt instruction telling Claude to "be more careful with NCAAB." It is a number computed from real closing line data that mathematically reduces the unit size before Claude ever sees the candidate table. Claude cannot override it.

Feedback Loop 2 — Rolling Threshold Adjustment

Minimum edge thresholds today are hardcoded: NBA 2.0 points, NHL 0.3 goals, MLB 0.8 runs. Set from the 66-day backtest. But static thresholds cannot adapt to seasonal shifts, roster changes, or market efficiency trends.

With trailing accuracy data, those thresholds become dynamic. A calibration step runs at the top of each daily pick generation:

Step A: Read the last 30 days of graded results from Blobs
Step B: Compute trailing accuracy by sport and market type
Step C: NBA totals hitting 55%? Lower min edge to capture more volume
Step D: NCAAB at 47%? Raise min edge or drop the sport entirely
Step E: Pass adjusted thresholds into the pipeline. Everything downstream uses the new numbers

This is code that reads its own results and adjusts its own sensitivity — every morning, automatically.

Feedback Loop 3 — Dynamic Sport Weighting

The 66-day backtest revealed a dramatic imbalance: NHL picks hit at 66.7% accuracy with 35.1% ROI but only represented 12% of total picks. NCAAB dragged at 48.7% accuracy and -7.0% ROI while consuming a disproportionate share of the daily allocation.

Dynamic sport weighting feeds trailing performance back into the cross-sport ranking. Instead of uniformly ranking all edges by z-score, the system applies a sport-level confidence multiplier derived from recent accuracy. Sports where the model has edge get more candidates surfaced; sports where it does not get fewer.

Feedback Loop 4 — Edge Discount Curve

The backtest found that large computed edges (15+ points) hit at the same rate as small edges (3-10 points) — roughly 45%. A 20-point edge does not convert more reliably than a 5-point edge.

The edge discount curve compresses outlier edges before they enter Kelly sizing. A raw 20-point edge might be dampened to an effective 12-point edge for sizing purposes. The curve parameters update as more data accumulates — another self-tuning loop.

What to bet on — Rolling threshold adjustment pushes the model toward sports and markets where it has demonstrated edge, and away from those where it has not.

How much to bet — The CLV reliability multiplier sizes up where sharp money consistently confirms the model's edges, and sizes down where it does not.

Both adjustments happen in deterministic JavaScript before Claude touches anything — the same "math in code, not in prompts" principle that governs the entire v10 architecture.

Implementation Timeline
MilestoneTargetRequirement
CLV data collectionActive nowDual-window tracking live since Mar 28
CLV feedback loopMid-April 2026~40-50 picks with clean CLV data
Rolling thresholdsLate April 202630+ days of graded v10 results
Edge discount curveMay 2026Sufficient edge-vs-accuracy data per bucket
Dynamic sport weightingMay 2026Per-sport trailing accuracy over 50+ picks