SportSphere was built by an investment analyst — someone who spends his days researching companies, building financial models, and stress-testing balance sheets. The model points that same discipline at player prop markets: every prediction runs on one six-factor framework, identical in structure across every sport, with the weights and thresholds tuned independently against each league's history.
Every prediction is a weighted combination of six data inputs: season averages, recent-form windows, opponent strength, role and minutes, conditions, and matchup. Each factor has a sensitivity weight that pulls the prediction away from the player's baseline.
Weights are not chosen by feel — they're grid-search optimised on the prior season for each sport before anything goes live. AFL weights differ from WNBA weights differ from NFL weights, but the structure is the same: six factors, transparent sensitivities, no black boxes.
Raw edge — model prediction minus bookmaker line — is not enough. A 4-unit edge on a player with a standard deviation of 3.5 means something very different from the same edge on a player with a standard deviation of 8.0. Each sport's model converts edge into a conviction tier its own way, tuned against that league's history — there is no single universal cutoff:
Full per-sport definitions live on each sport's model page: AFL, NBA, WNBA, NFL.
Players with thin recent data — rookies, returns from injury, limited minutes — have their edges automatically damped to reflect reduced confidence. Below the per-sport minimum sample threshold, nothing is published.
Where uncertainty is meaningful but not disqualifying, picks carry a visible "limited sample" flag. We surface the uncertainty rather than hiding it.
Every pick is logged before games start and graded against official data. The track record builds publicly, round by round — no cherry-picking, no quiet edits after the fact. The current, graded numbers are always live on /accuracy.
We don't publish every pick the model generates. Each sport gets an archive analysis that isolates the segments where the model has a statistically meaningful edge — and the segments where it doesn't. Only the segments with measurable edge reach the public feed; known underperforming position/market combinations are excluded rather than papered over.
A single matchup can produce a dozen-plus correlated predictions. Those aren't independent edges — they're the same underlying matchup signal expressed across a team's players. The model's genuine edge is identifying whichplayer in each game is the most mispriced, not re-pricing fifteen of them better than the bookmaker. So we publish up to three picks per game, ranked by edge size.
Every published number is graded and current — see the live record on /accuracy and each sport's deep dive (e.g. /afl/model). Filters are re-cut against the rolling archive if performance drifts — they are not left static.
We surface our picks as a unified portfolio across every sport we cover. Each pick is a position — line is cost basis, edge is alpha, volatility is risk, P&L is realised return. We measure performance the way an institutional analyst would, with attribution, exposure, drawdown, and risk-adjusted returns at the surface level, not buried in reports. /portfolio is the live institutional view across the sports as each one goes live.
The structure above applies everywhere. The specific weights, position thresholds, and conditions multipliers are sport-specific. Read the deep dive for each sport:
Transparency means being clear about limitations, not just strengths.