From live scores to draft rankings — the engine behind your team, and how it stays fresh on its own all season long.
FBS rosters, the full schedule, and team‑strength ratings — SP+, SRS, strength of schedule and strength of record. This is the structured backbone.
During games we pull real‑time scores and box scores from ESPN, so points update while the games are still being played.
Everything targets the current season and week automatically — no hardcoded dates to babysit.
During games (Thu–Sat). Every ~1–2 minutes, scores, player fantasy points, and matchup totals refresh — your dashboard ticks up on its own.
Every Tuesday. The schedule and team ratings re‑sync and projections regenerate for the upcoming week.
On the clock. If a pick timer runs out, a server‑side sweeper auto‑picks the best available player — even if everyone closed the tab.
Thursday and Tuesday. A reminder if your lineup still has holes, and your result once the week is scored. At most one a day — and nothing at all when there's nothing worth saying.
40% recent form (last ~5 games, weighted toward the most recent) + 40% season average (outliers trimmed) + 20% trend.
Stats are normalized by a composite team rating (SP+ 60% / SRS 40%), so production against weaker competition is discounted and tougher slates are rewarded.
Adjusts for the matchup — elite defenses pull projections down, soft ones push them up.
Usage (touches/targets) and points‑per‑opportunity. Since the box score often omits targets, receivers use receptions as a volume signal instead of being under‑counted.
Strength of schedule, game environment (blowout vs. nail‑biter), and a home/away nudge.
Per‑position factors are re‑learned from actual vs. projected accuracy, so the model tunes itself as the season goes.
Injuries, weather, or depth‑chart notes can override any projection as a final step.
A bye week shows as Bye and a player with no data as No data — not a misleading 0.0.
At Week 1 there are no current‑season stats, so we blend four signals into a season‑long draft board and Week 1 projections:
Last year regressed toward the positional average, plus an age/experience curve.
SP+ offense percentile + how much production the team returns.
Team volume split by each player's prior usage share — starters beat backups.
Recruiting rating for freshmen, and a competition adjustment for transfers changing levels.
Passing
Rushing
Receiving
Kicking
“1 / 25” = one point per 25 yards. Each league's commissioner can override any of these in Settings, and matchups are scored with that league's rules.
Higher confidence = the projection rests on more, cleaner data.
Start exactly one of each:
Positions: QB, RB, WR, TE, K. (No defense/special teams.)
The commissioner opens a room and everyone joins with a six-digit code. Draft order follows the order people joined.
Pick order reverses every round, so the last pick of round one gets the first of round two. Ten rounds fills all ten roster spots exactly.
The board is sorted by value over replacement, not raw points, so a quarterback doesn't occupy the whole first page.
If the clock runs out, the server picks the best available player. This runs on the server, so it fires even if every browser in the draft is closed.
When the last pick lands, each team is created and slotted automatically — first player at each position starts, the rest go to the bench.
Installs as a real app: full screen, its own icon, no address bar. On iPhone that's Share → Add to Home Screen; Android and desktop Chrome offer a one-tap install.
The app shell is cached, so it opens in a stadium. Live data always comes from the network — a cached score would be worse than none.
Thursday evening if your lineup has holes; Tuesday morning with your result. Capped at one a day and three a week, and skipped entirely when there's nothing to report.
Nothing is sent until you turn it on in Settings, where each reminder type has its own switch and a button to send yourself a test.
On iPhone, notifications only work once the app is on your home screen — an Apple restriction. Reminders still appear under the bell icon either way.