Custom Sports Bots
Sports Prediction Trading
Role
PM-builder · solo build
Duration
Q3 2024 · Q4 2024
Status
Live · subscription product

The problem
Retail traders on prediction markets (Polymarket, Kalshi) routinely overbet on confidence signals they can't quantify. The pros use Kelly criterion sizing and hard exposure caps; the retail crowd flies on gut feel and gets liquidated on a string of correlated losses.
We wanted a tool that gave retail traders the same bet-sizing discipline the pros use, automated, with AI confidence signals layered on top across the major sports markets. Subscription product, no platform fees, no upsell on bigger bets.
The approach
Kelly-fractioned bet sizing as the default. Never recommends a bet larger than the edge supports. Configurable Kelly fraction per user (default 0.25 for risk-aversion).
Exposure caps applied across correlated markets, not just per-bet. If three NBA games trade as a parlay, the system treats them as one position when sizing.
AI confidence signals across MLB / NBA / NHL / NCAA / Soccer / Esports. Sport-specific feature engineering, sport-specific models. No one-size-fits-all signal.
Three-layer caching for the dashboards (market data updates frequently, signals less so). Subscription billing via Stripe with metered usage.
What shipped
- ▪Automated trading bot scaffold (per-market, per-user) running on Deno workers.
- ▪Kelly bet sizing + cross-market exposure caps.
- ▪AI confidence signals across 6 sports.
- ▪Dashboard with portfolio view, per-bet recommendations, and risk-cap alerts.
- ▪Subscription billing + metered usage via Stripe.
Stack & decisions
Next.js + TypeScript
App Router. Heavy dashboard surface; caching is the headline.
Supabase
Postgres + RLS for multi-user. Materialized views for the leaderboards.
Deno
Trading bots run as Deno workers. Cheaper than EC2 at this volume, fewer moving parts.
Stripe
Subscription + metered usage. Webhooks reconcile to Supabase for entitlements.
Have something we should ship?
60-minute scoping call, then a clear plan for how we'd approach it.