Under the hood

This isn't opinion.
This is machine learning.

Every projection, every recommendation, every insight on The Front Office is powered by real statistical models trained on 25 years of NBA data — not gut feel, not editorial opinion, not consensus rankings dressed up as analysis.

Our philosophy

Defensible decisions.
Not crystal ball predictions.

Every other fantasy analytics tool gives you a number and expects you to trust it. We give you a number, a confidence range, and a plain-English explanation of why the model projects that.

When we're wrong — and every model is sometimes wrong — we say so publicly. Our transparency scorecard tracks every projection against actual outcomes, week by week, for the entire season.

The goal isn't to predict the future. It's to give you the most defensible decision available with what we know right now.

🔒 Projections locked on opening night

Every season projection is timestamped and made immutable at season start. We can't quietly change them when we're wrong. Neither can anyone else.

📊 Walk-forward validated accuracy

Our models were tested by training on 2000–2015 data, then predicting 2016, measuring error, refining, then predicting 2017 — repeated through 2025. No cherry-picking. No lucky coincidences.

🌐 Public scorecard — no login required

Anyone can see how we're tracking. Wins and misses. Accuracy per category. Where we disagree with consensus and why. The transparency page is always public.

The prediction engine

How our prediction model builds your projections

Here's exactly what our prediction model does, step by step, to generate every stat projection on the platform.

1

25 years of NBA data ingested and cleaned

Every player-season from 2000–2025 lives in our database — over 15,000 player-season records, 2,311 distinct players. We flag the 2011 lockout season and 2020 bubble season as statistical outliers so they don't distort the model. Small sample seasons (under 40 games) are flagged separately.

NBA Stats APIBasketball Reference15,000+ records2,311 players
2

347 features engineered per player-season

Raw stats alone are weak predictors. We build 347 features that capture everything that actually drives year-to-year performance changes — rolling momentum windows, usage trends, teammate context, coach tendencies, injury history, schedule effects, aging curves, contract year flags, and team intent signals like tanking probability and playoff urgency.

347 features13 feature layersInjury ripple modelCoach profiling
3

Nine separate models — one per fantasy category

We don't project "overall performance." We train nine independent XGBoost models — one each for Points, Rebounds, Assists, Steals, Blocks, 3-Pointers, FG%, FT%, and Turnovers. Every category gets equal rigour. Steals matter as much as points. Blocks matter as much as assists. The model treats them that way.

XGBoost9 independent modelsAll categories equalTO modelled as cost
4

Walk-forward validation against real history

Train on 2000–2015. Predict 2016. Measure the error. Understand where and why we were wrong. Retrain incorporating those learnings. Predict 2017. Repeat through 2025. This is called walk-forward validation — the gold standard for time-series prediction. It means our reported accuracy is based on genuinely held-out data, not the same data the model trained on.

Walk-forward validation10 test seasonsNo data leakageHonest accuracy
5

Confidence intervals — a range, not just a number

Every projection shows a low, mid, and high estimate. A wide range means the model is uncertain — maybe a player's role is changing, or they're returning from injury. A narrow range means the model has high conviction. You should weight your decisions accordingly. We use quantile regression to calculate these intervals, not guesswork.

Quantile regressionLow / Mid / HighWide CI = uncertain
6

Plain-English explanations via SHAP values

SHAP (SHapley Additive exPlanations) is a technique that tells us which features drove each prediction and by how much. We translate those technical values into language you can actually use — "We project elite blocks because his block percentage ranks top-5 historically for age-22 centres, and his role grew 0.46 usage points through last season." Every projection has a reason you can point to.

SHAP valuesPlain English reasonsPer category
7

Fantasy value translation — what stats are actually worth to you

A player averaging 15 points isn't necessarily more valuable than one averaging 1.8 steals. Fantasy value depends on category scarcity (how rare is elite production in that stat?), replacement level (what's freely available on waivers?), and your specific strategy. We translate raw projections into personalised fantasy value scores that account for your punt strategy, your league's active categories, and the production available in your specific player pool.

Scarcity modelReplacement levelPunt-strategy awareYour league only
The feature engineering

347 reasons the model knows
what it knows

The gap between a good model and a great one is almost never the algorithm. It's the features. Here are the 13 layers of intelligence our prediction model considers for every player.

Layer 1
Player talent baseline
Prior season stats, 3-year averages, per-36 minute rates, advanced efficiency metrics. The anchor — what did they actually do?
pts_prev_seasonts_pctbpm
Layer 2
Rolling momentum windows
Last 3, 5, 10, and 20 game rolling averages for all 9 categories. Detects momentum shifts before season averages catch up.
pts_last10usage_trend_slopeboom_pct
Layer 3
Opportunity signals
Minutes volatility, coach trust score, foul trouble frequency, rotation rank, starter vs bench, usage trend direction.
coach_trustrotation_rankmin_volatility
Layer 4
Lineup context
On/off splits, usage with vs without star teammates, lineup stability score, team spacing quality. Austin Reaves without LeBron is a different player.
net_rating_onusage_wo_starspacing_score
Layer 5
Injury ripple effects
Not just 'is this player injured' — but who benefits when they are. Historical teammate usage boost analysis. Real-time beneficiary prediction.
beneficiary_boostripple_scoreinjury_risk
Layer 6
Team + coach context
Team pace, offensive rating, coach rotation consistency, rookie trust score, tanking probability, playoff urgency, shutdown risk flag.
tanking_probcoach_rookie_trustplayoff_urgency
Layer 7
Opponent matchup context
Opponent defensive rating, pace, position-specific stat allowances. How many steals does this opponent give up to guards? How many blocks does this opponent allow at the rim?
opp_def_ratingopp_vs_pos_stlopp_pace
Layer 8
Schedule effects
Games this week, back-to-backs, 3-in-4 nights, travel distance, rest days, home/away splits, fantasy playoff schedule rating for weeks 19-22.
games_this_weekb2b_performanceplayoff_sched
Layer 9
Age + career stage
Position-adjusted peak age, improvement trajectory, workload accumulation, contract year flag, second-year leap detection, third-year breakout patterns.
pos_adj_agecontract_yearyr2_leap_flag
Layer 10
Volatility modelling
Per-category standard deviation, floor and ceiling scores (10th/90th percentile), boom-bust ratio. Feeds our simulation engine's Monte Carlo simulations directly.
pts_std_devfloor_scoreboom_bust_ratio
Layer 11
Market signals
Consensus ADP vs our ranking delta, ownership percentage, waiver add velocity, expert ranking dispersion. Surfaces where the market is wrong.
adp_deltaownership_pctmarket_lag
Layer 12
Player archetypes
ML-clustered into 10 archetypes: heliocentric creator, 3&D wing, rim-running big, point centre, and more. Enables better aging comps and breakout detection.
archetypearchetype_peersaging_comp
The agentic ecosystem

19 specialist agents.
One interconnected system.

Each system is purpose-built for one job. But the real power is how they feed each other — our prediction model's projections flow into our simulation engine, which powers our matchup optimiser, which informs our waiver wire agent's recommendations.

Prediction Model
Prediction Engine
ML stat projections for all 9 categories. 347 features. Walk-forward validated.
Feeds → simulation engine, transparency system, draft agent, strategy agent, matchup optimiser
Simulation Engine
Simulation Engine
Monte Carlo simulations — 1,000x runs of every matchup, trade, and season scenario.
Feeds → matchup optimiser, trade agent, draft agent, strategy agent
Transparency System
Transparency Agent
Tracks every locked projection vs actuals. Publishes public accuracy scorecard weekly.
Feeds → public scorecard, reporting system
Momentum Agent
Momentum Agent
Detects usage spikes, role changes, and breakout signals before the market reacts.
Feeds → waiver wire agent, market analysis agent, prediction model
Social Intel Agent
Social Intel Agent
Monitors Twitter, Reddit, and beat reporters. Impact-tagged for fantasy relevance.
Feeds → waiver wire agent, daily report card, reporting system
Market Analysis Agent
Market Analysis Agent
Compares our projections vs consensus ADP. Surfaces exploitable gaps before others notice.
Feeds → draft agent, reporting system, strategy agent
Matchup Optimiser
Matchup Optimiser
Shows which specific moves shift your projected 4-5 loss into a 6-3 win. Probability-powered.
Feeds → waiver wire agent, daily report card
Waiver Wire Agent
Waiver Wire Agent
Personalised adds — only from players actually available in your league. Never generic.
Feeds → daily report card, AI assistant
AI Assistant
Orchestrator
Coordinates all systems. Routes your questions. Synthesises competing perspectives into one answer.
Feeds → You
Podcast Agent
Social Intel Agent
Momentum Agent
Prediction Model
Simulation Engine
Matchup Optimiser
AI Assistant (You)

The intelligence pipeline — every agent makes the next one smarter

Radical transparency

We show our working.
Including when we're wrong.

Every projection is locked and timestamped on opening night. We track accuracy publicly every week. When our transparency system finds a systematic miss — like our model underestimating FT% improvement for young guards — it publishes it, names the cause, and explains what we're changing.

No competitor does this. Because they'd have to admit how often they're wrong. We built our transparency system specifically because we believe honesty is a better growth strategy than pretending to be a crystal ball.

Season accuracy — all 9 categories
91.4%
Overall model accuracy week 14 of 2026-27 season
93%
Points
92%
Rebounds
90%
Assists
87%
Steals
87%
Blocks
83%
3PM
85%
FG%
78%
FT% ⚠️
85%
Turnovers
vs competitors — points accuracy
The Front Office
91%
BBMonster
89%
Hashtag BB
87%
FantasyPros
86%

Competitor accuracy estimated from publicly available data using same methodology as our own scoring.

By the numbers

The platform at a glance

15,000+
Player-season records in the training database
347
Features engineered per player projection
1,000x
Monte Carlo simulations per matchup prediction
19
Specialist AI agents working for you 24/7

“The transparency scorecard sold me. Every other tool hides behind vibes. These guys publish their accuracy per category every week and flag when they're wrong. That's the kind of tool I actually trust.”

Pro subscriber · 12-team H2H · Gold Coast, AU

Ready to stop guessing?

14-day free trial. No credit card. Set up in under 3 minutes.

Supports Yahoo · ESPN · Fantrax · Sleeper · H2H categories · Roto · Points leagues