Downloads
Save the files you need, then upload them in the next section. Scores and team stats every week; roster and injury report weekly; the depth chart every few weeks.
- Scores and schedule (games.csv) grade your picks and the model's. Upload it first, or together with the others.
- Team stats are each team's box score for every game played, and this is what moves the ratings. The file only exists once games have been played.
- Player stats keep the quarterback ratings current and record who actually started each game. Weekly, with the team stats.
- The roster answers "who is actually out": reserve and exempt designations mean the player cannot play. Small file, grab it weekly.
- The injury report is practice participation. Official Out and Doubtful tags only appear late in the game week.
- The depth chart identifies the starting quarterback. About 48MB, so re-download every few weeks rather than weekly.
Upload
Pick every file you downloaded in one go; each is recognised by its columns. Finished games are graded against the pick that was showing once both scores and team stats are in, ratings update, and the picks move to next week. Re-uploading is safe; processed games are skipped. Injury files are read in, but nothing is applied to the model until you click a suggestion.
Bet log
One line per week. Enter what you actually staked and what came back, and the chart above the table tracks your balance. Nothing here feeds the model, it is just your record.
Moneylines
The fetch button pulls published moneylines and spreads from the nflverse schedule file. For your own book’s numbers, upload a CSV with game_id, away_moneyline, home_moneyline. Payouts below are calculated from whatever is loaded.
What's changed
Fixes and features by version, most recent first.
| v1.32 | My Picks: a tick or cross badge on the winner's tag shows whether your pick hit, and your week and season records sit beside the week dropdown. |
| v1.31 | AI Picks: the model's record for the selected week and for the season sits beside the week dropdown. |
| v1.30 | AI Picks: the tick/cross is a small badge on the corner of the winner's tag, so the team pair sits in the same spot on every row. |
| v1.29 | AI Picks: the team pair stays centred; the tick/cross slot is reserved on both sides of every row. |
| v1.28 | AI Picks: a green tick or red cross sits beside the winner of every finished game, showing whether the model's pick hit. |
| v1.27 | AI Picks: finished games are no longer greyed out; they keep the winner and score line in green or red. |
| v1.26 | Power Ratings: the Elo, Elo change, Off and Def columns are centred and the explanatory paragraph above the table is gone. |
| v1.25 | Power Ratings: the rank change is a small tag tucked beside the rank number, and the Elo change has its own named column. |
| v1.24 | Power Ratings ranks by Elo and drops the Rating column; the Elo change pill sits right after Elo, rank movement is a pill with its arrow, and rows are centred so pills and numbers line up. The Challenger emblem is purple with a crown and star; Master is rose. Injury report shows OUT in capitals. |
| v1.23 | Power Ratings: the table is compact again, Elo changes are green or red pills, and each team wears a tier emblem (Iron through Challenger) next to its Elo. Rank and Elo movement now compare against the board at the end of the previous week, captured once when the first game of a new week is graded, so grading a Thursday game no longer moves the baseline for Sunday. |
| v1.22 | Quarterback absences are now sized instead of flat. Every quarterback has a rating from 2019-2025 play-by-play (expected points per dropback, pulled toward replacement level for players with few snaps), and when the expected starter is not the previous game's starter the model takes off a number proportional to the gap between their ratings, about 2.8 points for a replacement-level backup, fading 25% a game as the team rating absorbs the new starter. A returning starter adds points back the same way. This replaces the flat 4.7-point curve, which testing showed was about double the typical change. Both the main model and the challenger get the same adjustment. New weekly download, Player stats, keeps the ratings current and records who actually started; without it the app assumes the expected starter played. |
| v1.21 | Download buttons no longer change their label when clicked, and the scores button is slate grey. |
| v1.20 | A player only counts as an absence with a game designation (Out, Doubtful or Questionable) or a reserve-list move. Practice notes on their own, full, limited or did not practice, no longer list a player or take points off. The "Probable" label from v1.19 is gone; the NFL has not used it since 2016. |
| v1.19 | My Picks drops the comparison table at the bottom. Every download button shows "Downloading…" when clicked. Injury statuses now read Out, Doubtful, Questionable or Probable: Out is red, and a player on the report with no game designation reads Probable instead of his practice note ("Full", "Limited"). |
| v1.18 | My Picks drops the four summary boxes at the top. The parlay only shows a payout once at least two legs are ticked; one leg is a single bet. Finished games in AI Picks are dimmed and show the winner and score in green or red, the same way My Picks does. |
| v1.17 | Confidence bands moved: LOW is under 60%, MED is 60% to 70%, HIGH is 70% and up (was 62% and 75%). Labels only; predictions are unchanged. |
| v1.16 | Upload log lines are just "category: N changes", all in plain text, and the scores download button is rose. |
| v1.15 | Upload log lines share one format (what: count — what changed) for every file, and the scores download button is amber so it no longer matches the upload button. |
| v1.14 | Download buttons are colour coded, and downloading no longer posts a message to the log. |
| v1.13 | Upload is one button. Every file you pick is sorted by its columns, and all the summaries, scores, team stats, grading, roster, injury report and depth chart, now appear together in the one log under the button. The separate upload buttons and the clear button are gone, and the download buttons lost the word "Download". |
| v1.12 | Downloads now includes the scores and schedule file, saved as games.csv. Upload has one button that takes every downloaded file at once and sorts them by their columns, plus separate buttons for scores, team stats and injury files. The direct scores fetch is gone; scores go through the same download-then-upload path as everything else. |
| v1.11 | Data Upload is now two sections, Downloads and Upload. The "Update everything" button is gone: it fetched the GitHub release files through two public relay services, and both have stopped working (one now requires a paid key, the other is down), so it could only ever report "Failed to fetch". Scores still come straight into the app; the other files are downloaded from the links and uploaded by hand, which is the path that always worked. |
| v1.10 | A second model now runs alongside the main one. It seeds each team's preseason Elo from the betting market's season win total instead of carrying last season's rating; everything else is identical. In 2021-2025 testing it was right slightly more often than the main model on the games where they disagreed, but not by enough to be sure, so it runs as a challenger this season: tick "Show all models" on the Season accuracy chart to see its line and the running count of disagreements. It replaces the main model only if it wins those disagreements over the full 2026 season. Also new: "Rebuild ratings from Week 1" in Backup, which re-grades the season under the current model while keeping your picks and bankroll. The chart's reference numbers now use the walk-forward test results (63.8% overall). |
| v1.09 | Correction to how last season's ratings carry over. The preseason offense and defense EPA numbers were meant to fade out over the first few weeks, but the first game of the season replaced them outright, so from week 2 each team was rated on one game of data. The first-game weight is now 25% like every other game, so the preseason numbers fade gradually. This is a correction to what the carry settings were always supposed to do, not an accuracy improvement: in a 2021-2025 replay it changed 30 of 1,420 picks and went 18-12 on those, which is within noise. If you graded Week 1 before this update, use Reset to preseason baseline and re-upload Week 1 so the fix applies. |
| v1.08 | Power Ratings also shows Elo gained or lost. |
| v1.07 | Rank movement moved into its own column. |
| v1.06 | Rank arrows fall back to the preseason board when no graded week has been recorded yet, so they show up immediately. |
| v1.05 | Power Ratings shows how far each team moved up or down since the last graded week. |
| v1.04 | Data Upload gets an "Update everything" button that fetches and applies all five files at once, with per-file fallback to the manual links. |
| v1.03 | Finished games in My Picks are dimmed so they read apart from games still to play. |
| v1.02 | Week table shows percentages only. |
| v1.01 | Record & Bets now charts your accuracy against the model week by week, and the week table shows both side by side. |
| v1.00 | First release for the 2026 season. |
Backup and reset
- Save backup now writes everything to a JSON file: team ratings, graded results, your picks, bet log, loaded odds. This also happens automatically every time you upload results, so a graded week is never left only in the browser.
- Import backup restores one of those files, or moves your season to another computer. It replaces your current state completely.
- Rebuild ratings from Week 1 puts team ratings back to the preseason board and forgets which games were graded, but keeps your picks, bankroll, bets, odds and team news. Then re-upload the season files (games and team stats) from Week 1 and every game is graded again, against your kept picks, under the current model. Use it after a model correction mid-season.
- Reset to preseason baseline throws away every result you have uploaded and rebuilds team ratings from the preseason numbers in this file. Your season starts over from Week 1.
Where backups land. They go to your browser's download folder. To keep them somewhere specific, point Chrome at it: Settings, Downloads, Location.
Why this matters: the app keeps your season in browser storage. Clearing cookies and site data, or "Clear browsing data" with site data ticked, erases it. A JSON backup restores everything, so keep one somewhere outside the browser.
When to reset: if the status line above says your saved ratings came from an older build, or if a bad upload has thrown the ratings off. After resetting, re-upload every week's files in order from Week 1 so the ratings rebuild correctly. Export a backup first, since reset cannot be undone.