F1GridIQ
Private beta

F1GridIQ

An odds-driven expected-points engine for F1 Fantasy — optimizer, league sync and season tracking. Access is currently invite-only.

Sign in with Google
F1GridIQ is in private beta — access is limited to invited testers.
F1GridIQ
F1GridIQ
Expected Points Engine
Race '26
History
unsaved

// Setup

Race & budget
0.0
Budget the optimal squad must leave unspent — for next week's transfers, or to hunt the best squad that still banks $1M, $2M, etc.
Model
0.50
0.5 keeps the market as-is; above leans harder on a favorite’s upside, below fades it. Even at max, a 36%-win driver lands ~P5 (he loses 64% of the time) — that's correct.
Markets
15%
Caps how much not-classified % feeds the −20 penalty. Backtest to find what predicts best.
Enter FanDuel odds. Win / Pod / Top6 / Top10 are the finishing bands (each scores its own slice; Top6 optional). NC = not-classified (−20). DOTD auto = 0.8×win, OT & Pos± auto-estimated from grid vs finish — type to override. DRS (×2) auto-applies to your squad's top projected scorer; toggle Extra DRS for the once-a-season ×3 + ×2 chip.
DriverTeam Price$M Win%Pod%Top6%Top10% Quali% FL%DOTDautoOTauto NC% Pos±auto Form%±Pitlane Uselock/ban
Combined output of the team's two drivers (auto-matched by name) + teamwork quali bonus (+10 both Q3, +5 both Q2, +3 one Q3) + avg pit points.
ConstructorPrice$M Both Q3%Both Q2%1 in Q3% Avg pitptsUselock/ban

// Rankings live

Strong Fair Premium

★ Budget-Optimal Squad max xPts under cap

Driver Rankings

Constructor Rankings

// Budget Targets β · points needed per price move + odds

Enter this race's odds and fetch prices (Prices → Fetch latest) — then this shows, for every driver, the points they need this race to hit each price band (Great / Good / Poor / Terrible) and the odds of reaching it. The same numbers as tapping a driver's xP, all in one place.

// Price Moves β · season drift & momentum

Pulls every gameday's price feed and shows each driver's and constructor's season drift and latest move. Needs the hosted site. A points→price rule appears automatically once the feeds expose enough data to fit one.

// League β · private-league standings

Log in, then paste your league's invite code and Load to see the table — rank, points, weekly trend, and each rival's squad. (If code lookup isn't available yet for your league, F1GridIQ will tell you exactly where to find the numeric league ID instead.) Public data; needs the hosted site.

// My Synced Teams β · from linked leagues, no capture needed

Log in, load a league above, tick which entries are yours, and save — your teams reload automatically every time you visit, from any device.

// My Team β · sync & transfers · admin/dev only

Run the capture snippet on the F1 site (see docs/capture-snippet.md), open your Team or Transfers page, run __f1dump(), then Sync the downloaded file here. It loads your squad, budget and free transfers and recommends the best moves (−10 per transfer beyond free). Enter this race's odds first so the model can compare.

// Chip Advisor β · best week to burn each chip

Load the grid and enter this race's odds — then this ranks your chips by how many points each would add this week, so you know which one is worth burning.

// Live β · race scoring

During a race or sprint this shows live points for your team (and your league) from F1's public live feed, refreshing every 30s — dormant between sessions. Sync your team and load your league first. Needs the hosted site.

// Season log β · predicted vs actual

After a race (Go live to pull the points), hit Log this gameday to record your team's predicted vs actual points. Builds a season history you can export.

The model

Each driver's Win / Podium / Top 6 / Top 10 odds are read as disjoint finishing-position bands and scored directly against the 2026 points table — race, quali, fastest lap, Driver-of-the-Day, the overtake term, manual ± and the −20 not-classified penalty. Sprint weekends add the 8→1 scale.

What it is — and isn't

It translates FanDuel's view into fantasy points and finds the best-value picks within it. It doesn't beat the bookmaker — your edge is where your own reads diverge from the market. Still approximate: overtakes scale by grid position, not driver aggression or weather — the next calibration pass.

Saving

Autosave writes to browser storage moments after you type (won't persist inside a preview window — works once saved to disk and opened in a browser). Export always works: download your inputs as JSON, re-import anytime. Everything runs locally; nothing is uploaded.

Update prices

Refresh driver & constructor prices from the official game — without touching the odds you've entered. Prices are matched by name; any new drivers are added.

or load a file (offline)
1
Open a terminal in the package folder and run
python3 pull_prices.py
2
It writes prices.json next to the script.
3
Drop it in below — prices update, odds stay put.

First run can't reach the server? The script prints exactly what to check — it never overwrites your work.

Paste drivers from a spreadsheet

Copy rows from Excel / Sheets and paste below — tab or comma separated, in this column order:
Name · Team · Price · Win% · Pod% · Top6% · Top10% · Quali% · DOTD% · FL% · NC% · OT · Pos±
Leave DOTD / OT blank for auto. Header row optional (auto-detected).