1
Data. The 24/7 Cloudflare worker pulls real prices from Finnhub (live) and Yahoo (resolution, ~15-min delayed), real SEC Form-4 insider filings, and real market news — no fabricated numbers. It rotates through a ~72-symbol universe every few minutes, market hours only.
2
Features. Each symbol becomes a 22-dimensional vector — momentum, volatility, relative volume, distance from moving averages, RSI, day-of-session (ET-anchored), and more — computed from a rolling per-symbol bar history kept in KV so live captures match the training set exactly.
3
Model. Logistic regression with an Adam optimizer and L2 weight decay (0.025), trained on the most recent ~120 days so it shares the current regime. Output is P(up over the next 5 trading days, by at least 1%).
4
Calibration. A Platt layer maps raw scores to honest probabilities — but only if it passes a guard (slope a ≥ 0.2); a noisy fit that would invert the sign is rejected and we fall back to raw. The self-audit above shows the live Platt slope.
5
Selection. Conviction = how far P(up) is from a coin flip. The single highest-conviction passing call is the Pick of the Day; the most-bullish passing name is the Best Long; the top passing leans are Alpha. Your constraints (section 5) decide what "passing" means.
6
Learning loop. Every call is journaled with its entry price, then graded against the real move 5 trading days later. Those graded outcomes feed back into training — so the brain improves from real results, and section 3 shows which confidence bands actually earned their keep.
7
Honesty. Backtest ≠ live. The walk-forward number (section 2) is the out-of-sample estimate; the live record (section 4) is the real forward test and starts empty. We never present one as the other.
Educational research tool, not financial advice. A statistically-significant edge is still a small edge — position size accordingly and assume drawdowns.