How it works
How RotoAlpha works
No hot takes, no hype. This page explains exactly how our projections are built, how we test them, how our draft-room bots behave, and what the AI strategist does and doesn't see — so you can decide for yourself whether to trust the advice.
Our projections are ours
Every projection on RotoAlpha — football and baseball — comes from a model we built and run ourselves, recalculated as new data lands. We don't license numbers from anyone, and we don't scrape anyone's work. The inputs are public data: official league statistics, public play-by-play and season summaries, and market average-draft-position boards.
Both sports follow the same discipline: a candidate signal gets into the model only by beating what's already there on data it has never seen. What follows is the football engine in depth — it's draft season — with baseball after it.
The football engine is a stack of layers, each one earning its place. In plain English, it:
- starts with several seasons of weighted history for every player — recent years count more than older ones;
- adjusts for age curves where the evidence supports them (receiver aging is real; we model it where it wins, not everywhere);
- reconciles team-level volume — a team's passing projections and its receivers' catching projections have to describe the same football games, so we force them to agree;
- prices in the market's knowledge via average draft position — camp news, coaching changes, injuries, and contract situations the market aggregates but no stat line contains, blended at strengths that tested best, position by position;
- handles rookies with priors fit on previous rookie classes and their draft capital;
- models kickers and team defenses with their own dedicated logic (including a tested adjustment for stadium wind);
- outputs a projection band, not just a point — a realistic range for every player, because pretending we know a breakout candidate's season to the decimal would be lying to you.
The test: would this have worked?
Anyone can publish projections. The question is whether they'd have beaten the obvious alternative, so we backtest the way honest quant work is done — walk-forward:
For each season from 2019 through 2025, the model sees only data available before that season, projects every player, and is scored against what actually happened. No peeking. And it competes against a baseline any skeptic would propose: just repeat last year's numbers.
Across those seven held-out seasons and five positions (half-PPR scoring):
| Our model | Last-year-repeat baseline | |
|---|---|---|
| Rank correlation with actual finish | .77 | .64 |
| Share of top players correctly identified | 61% | 52% |
| Average fantasy-point error | 26.1 | 29.3 |
Two things we want you to know about how we work, because they matter more than any single number:
- A change ships only if it wins the majority of held-out seasons. Not "it looks smart", not "it worked in 2024" — a candidate signal must beat the existing stack across most of seven test years, per metric, or it stays out.
- We publish our rejections to ourselves. Snap-count trends, injury-timing effects, within-season usage trajectories, kicker–team-scoring links — all real-sounding signals we probed and rejected because they failed out of sample. Most "advanced" fantasy signals are already priced into player history and market ADP; we only keep the ones that add information beyond both.
Baseball, same rules
Our baseball engine is a different model for a different game — separate hitter and pitcher models, built on official MLB statistics including Statcast batted-ball data — but it lives under the same discipline: benchmark on held-out seasons the model never trained on, and test every design choice before adopting it.
One example of what that testing buys. Baseball keeps changing — the sticky-stuff crackdown, the deadened ball, the pitch clock and shift ban — and our ablations showed that training on seasons before those regime shifts makes projections worse, not better. So the model deliberately trains on the recent game while using older seasons only as player history.
In season, baseball projections recalculate daily as real games land — rest-of-season numbers that move with playing time, form, and roles, feeding the same standings math and AI advice subscribers draft with.
Bots that draft like people
Practice is worthless against opponents who play wrong. The bots in our mock draft rooms don't just take the "best player available" — each one drafts inside a window around market ADP with its own tendencies and roster-slot needs, the way real league-mates do. Rooms form runs. Positions dry up while you're on the clock. Your queue plan breaks and you have to adapt — which is the entire point of practicing.
What the AI strategist sees
During a mock, the AI strategist gets the real state of your draft: every pick so far, your roster construction and remaining needs, positional tier state, how far players have fallen (or been reached for) relative to market ADP, and our projection bands. On your pick, it offers a couple of names and one sharp sentence of reasoning — free, automatic, while you're on the clock. You can also ask it questions; each mock includes a bundle of asks.
What it doesn't do: invent players, see the future, or pretend certainty it doesn't have. We ran it through an explicit quality gate — full mock drafts reviewed pick by pick for hallucinated players, scoring confusion, and advice a sharp friend would object to — before letting it talk to anyone.
In a real league (a paid RotoAlpha subscription), the same strategist gets your actual context: your league's scoring, your keepers, your rivals' rosters. Mock advice is generic by design; league advice knows your room.
What we deliberately don't do
- We don't scrape or repackage paid analysts' work. If you upload your own projections from a service you pay for, those stay yours — visible only to you, never blended into our numbers, never shown to anyone else.
- We don't sell your league-mates anything. Public pages exist so your league can view what you choose to share — they carry no ads and no pitches. The product is your edge, not a billboard.
- We don't invent credibility. No fake user counts, no cherry-picked accuracy brags. The backtest above is the whole pitch: measured, out of sample, against a baseline that keeps us honest.
See it work — draft a free mock.
Start a free mock draft