Creates the row in MySQL, marks email verified, then calls the API forgot-password mailer (password-reset link; typically expires in 1 hour). Requires INTERNAL_API_BASE reachable from PHP and SMTP on the API server.
Email
Display name (optional)
Plan
Publish Pick
Create game, market, prediction, and odds snapshot in one submit (NBA/NRL/AFL/EPL/TENNIS).
Manual ingest uses the selected Ingest leagues checkboxes in Automation Scheduler below.
Automation Scheduler
One game per day. Run pre-12h and pre-1h phases.
Schedule & Run Mode
Enable automation
Game selection mode
Publish mode
Target date (UTC)
Manual game
Top picks per run
Minimum edge %
Leagues
Ingest leagues (used by Ingest Odds + ingest cron)
AI leagues (used by pre-12h / pre-1h automation)
Settlement leagues (used by settlement cron + apply)
Market Filters
Max playable odds (decimal)
Min playable win probability %
Max best-vs-consensus multiplier
Fragile extras: min best decimal
Models & Adjustments
Momentum model
Momentum lookback (last games)
Momentum weight (edge %)
Home advantage weight (edge %)
Market movement filter
Movement window (hours)
Max negative drift % (skip above)
Steam bonus
Min steam move % (trigger)
Steam bonus (edge %)
Expert picks model
Expert picks weight (edge %)
Ladder standings model
Ladder weight (edge %)
Data Uploads
Upload standings CSV (weekly)
Format: league_code,team,rank with league_code in NBA, NRL, AFL. Example row: NRL,Melbourne Storm,1.
Upload recent form CSV (last 4 games)
Format: league_code,team,recent_form. Use values like W,W,L,W (most recent first).
These checkboxes describe what you installed on the server. The app cannot auto-detect cron. Tick the workers you scheduled, then click Save automation.
Pending automation suggestions (manual approve)
Pick Alert Delivery
Emails run send_pick_alerts.py from SS_ROOT (or the folder that contains ai_bootstrap.php). Set SS_ROOT=/home/sportshorts/ss and/or PYTHON_BIN in .env on the server. Also needs SMTP_*, DATABASE_URL (for the worker), and active follows rows. Pending sends only include picks inside the minutes window below.
Alert leagues
Test email
Send limit
Only picks from last (minutes)
Auto Settlement (Results)
Undo window (minutes)
Settle Open Picks
Open picks with no settlement yet — use Win / Loss / Push here. Auto Settlement above only applies to ingested games (Odds API game id + final scores). Picks from Publish pick are settled here, not by auto job.
+EV game scan
Choose a game, optionally pull extra markets from The Odds API, then scan moneyline, spreads, game totals, and extras you tick below—ranked by the same edge engine as auto-picks.
League filter
Game
Top edges to show
Min edge %
Min best decimal (fragile extras)
Include line types in scan
Extra markets to ingest (Odds API keys, comma-separated)
Ingest extra markets calls the per-event Odds API endpoint (one request per click; uses your API quota). Run it before scanning so alternates, period 3-way keys (h2h_3_way_h1, h2h_3_way_h2), exchange h2h_lay, spreads_h1, totals_h1, alts, and DNB exist in the database. Ranking: fragile extras (alt spreads/totals including H1 alts, team totals) need a best price ≥ your Min best decimal (fragile extras) (default 1.45; same setting lives under Automation → Market filters) and simple EV (model prob × best odds − 1) ≥ 2%; only the top edge is kept per team spread side (full game and H1 separately) and one Over / one Under per game (and per half for H1) so ladders do not flood the card. The model compares all ingested book quotes (min / avg / best, range %, # books) and can add a small edge boost when several books disagree but the best price still passes the consensus outlier check. Same-game cross prices (below the table after a scan) look for two- or three-way combinations on this game where the best price on each leg (possibly different books) implies under ~100%—including paired totals (Over/Under same line), complementary spreads (home vs away, lines sum to ~0 at the same handicap size), and ML / 3-way sums—separate from the per-line +EV rank. Positive-outcome note does not change the order of lines; it only adds text that the shortlist can mix market types if those score best—each row is still its own edge, not a parlay. Stake units apply money management: shorter best decimal and extra-market type trim the tier stake (shown as (tier x) when reduced). AI note is from the same on-site edge model as auto-picks—not a separate chat LLM.
Ingested prices by book (48h, latest quote per book per line — main + extra markets)
Run Scan for +EV after choosing a game to load every ingested line with per-book decimals (48h window, latest quote per book).
Arb calculator
Enter 2-way or 3-way decimal odds and a total outlay. Stakes are split so each outcome returns the same amount.