Help center

Help & FAQ

Plain-language answers for the weekly workflow, inputs, metrics, lineup tools, and model limitations. The short guides embedded on each page link back to the relevant section here.

Getting started

What the product covers, what you need, and the shortest path through it.

Is GPP Lab free?

Yes. Slate, Environment, Players (Role & history and Trends), and Help are open to everyone, and the invite-only tools cost nothing once you have an invite. There is no subscription and no pricing plan right now. Ko-fi support is optional and does not grant access.

Who is GPP Lab for?

DraftKings NFL Classic GPP players entering single-entry, 3-max, and 20-max contests with fields up to 12,000 entries, who bring their own projections. It is research and lineup-construction software; it does not currently support Showdown, FanDuel, cash games, or mass multi-entry workflows.

How do I get an invite?

Enter your email in Request an invite on the homepage or on any invite-only tool's page. Requests are reviewed by hand, and the reply comes by email within 48 hours. Your address is used only for that reply and is deleted after it, or within 90 days. You can also email info@thegpplab.com. No account is required, and sending a request or signing in does not grant invite-only access. If you receive a code, redeem it on any invite-only tool's page; once redeemed, it stays with your account whenever you sign in.

Does a high-ranked player, stack, or lineup guarantee a good result?

No. The site compares projections, modeled ranges, ownership assumptions, construction rules, and simulated outcomes. NFL results and opponent behavior remain uncertain. Use the outputs to make an inspectable decision, not as a promise of profit or contest placement.

Which pages require an invite?

Slate, Environment, Players (Role & history and Trends), Help, and the informational pages are open. Leverage Board, Stacks, FLEX, Optimizer, Late Swap, Sim Lab, and Results are invite-gated. Invites and optional Ko-fi support are separate from your private workspace.

Projections and data

Where the inputs come from and what happens to an uploaded file.

Where can I get projections?

Our projections partner TwoGunGPT offers free DraftKings projections with ownership. Create a free account at TwoGunGPT (opens in a new tab), download the Main slate CSV, and upload it on Slate. GPP Lab reads his columns as uploaded and asks which ownership column to use. He updates again Sunday morning before the early games, so upload the newer file then. You can also upload projections from any source you have permission to use. Neither site pays the other.

Do I need to upload projections?

You can inspect the published slate, schedule, salaries, and historical context without them. Your own projection snapshot is required for personalized point, ownership, ceiling/floor, leverage, optimizer, and simulation reads. Missing ownership is shown as unavailable and is never silently treated as a genuine 0% estimate. See Where can I get projections?

Who can see my projection file?

Projection snapshots are scoped to the anonymous browser workspace that uploaded them and are not exposed to other workspaces. Use Manage snapshots on Slate to rename, activate, or delete a saved snapshot. Deleting the active snapshot leaves other snapshots inactive; activate one explicitly to use it again. Changing active inputs does not change a previously saved build. Deletion removes it from the workspace immediately and marks it for permanent purge after 30 days, subject to the limited exceptions in the Terms.

Can I upload projections from any source?

Only upload material you own or have permission to process this way. A compatible CSV format does not itself grant usage rights. See the Terms and Data Sources pages for details.

How does Test a rule work?

From Role & history, Test a rule (invite access) checks how players who fit your rule have scored in past games. A rule is a position, which past games count, and up to five conditions on usage or the game, such as weighted opportunities of at least 20 and an implied total of at least 24. Each season compares the matching games with every game by a player in a regular role at the position: average DK points, how often they had a big game, and how often they finished as a top-24 RB (top-12 QB or TE, top-36 WR). Under 30 games reads too few to judge, and a game missing a value your rule needs is left out rather than guessed. It also lists this week's players who fit the rule. Lines are closing lines and there is no salary or ownership history, so it shows how players scored, not whether they were worth their price or popularity. Saved rules stay in your workspace and are never shared or ranked.

What should I do if Slate cannot load my inputs or research?

Use Retry slate, Retry research, or Retry history beside the failed section. Other loaded sections stay usable. If a snapshot was saved or changed but a follow-up read failed, retry that read; you do not need to repeat the saved change. No previous build available means there is no saved source to carry over; a failed previous-build request has its own retry.

How current is the football data?

Historical and weekly football feeds refresh on a scheduled weekly pipeline, while an administrator publishes the active DraftKings salary and status snapshot. The slate UI identifies missing or stale inputs rather than assuming they are current. Source feeds can still contain errors or change after collection.

Leverage Board

How to read the per-position player view without turning it into a pick list.

What does range-of-outcomes width mean?

It is ceiling minus floor, divided by projected points. When uploaded bounds are unavailable, GPP Lab derives them from a lognormal player distribution using historical volatility when enough games exist and a position fallback otherwise. Those bounds summarize the model; they are not guaranteed prediction-interval coverage.

Why is the Leverage Board sorted by value?

The board used to rank players by a combined score that averaged ceiling, low ownership, and value. Checked against 2026 Week 1–5 contest results, that score did not hold up: players at the top of it finished like an average player, and value alone tracked results better in every week. The board now sorts each position by value and shows ownership in its own column. FLEX puts RB, WR, and TE in one table because they compete for the same roster spot; ceiling against the position median still compares each player with their own position. Lower ownership is context, not a reason to play someone by itself. The map's dashed lines are the position median ceiling and the median projected ownership in view, not thresholds for good or bad plays.

Why are there several kinds of leverage?

Player leverage compares projection with ownership. Stack leverage compares a correlated stack's ceiling-weighted range with modeled joint ownership. Each answers a different question, so compare values only within the same metric and slate context.

Game Environment

Vegas, pace, ownership, and game-level summaries.

How should I use the game rankings?

Use them to compare environments and decide where deeper research is worthwhile. Totals and implied team totals reflect market expectations; projection and ownership totals reflect your active inputs. None of them says that a game must shoot out or that a stack is automatically strong. Color shows where a total, implied points, pace, projection sum, or points per ownership sits on this slate: green (▲) is the top third, amber (●) the middle, red (▼) the bottom third. Higher is treated as better; it is a comparison with this slate, not a promise. Spread, ownership, pass rate, pass rate over expected, and moneyline are never colored.

What do the team player lists show?

Opening a game lists every player you projected on each team, in roster order (QB, RB, WR, TE, DST) and highest projection first, with salary, projection, ceiling, and ownership from your projections. Projected players DraftKings lists as out, or who are marked out, are named beneath the list instead. The lists are research, not a recommended stack or bring-back. Player and team links open the Leverage Board or Stacks; they do not add building rules. Defense-vs-position detail opens separately.

What happens when I target a game?

On Slate Brief, Stack this game asks the Optimizer to build every lineup around that game. It starts with at least four players from the game: the QB plus his WR/TE and players from the other team (RB, WR, or TE). The QB's own RB and either defense do not count. You can change the number, or which team must supply players, in the Optimizer. No player is locked by stacking a game. Only one game is stacked at a time: choosing another game replaces it, and Clear target removes it. The stacked game also filters the Leverage Board to that matchup. Lock puts a player in every lineup; Exclude keeps them out of every lineup. Undo lock or Undo exclusion removes that rule wherever the player appears. The Next step line at the bottom of Slate Brief sums up the game, locks, and excludes you chose, and Open Optimizer carries them into your build. Environment shows the same stacked game above its table.

Stacks and the modeled field

Joint ownership, field evidence, and duplication pressure.

What is modeled joint ownership?

It is the share of a generated opponent field containing the selected QB and same-team pass catcher, under the chosen entry-limit preset. The independent product of player ownership is shown only as a comparison baseline; players in real lineups are not independent.

Is the modeled field a prediction of the exact contest field?

No. It is a reproducible synthetic field built from projected ownership, roster rules, salary regime, and evidence-versioned construction assumptions. Fitted, directional, and fallback labels tell you how much historical support the preset has; none makes it the true future field. On Stacks it always has 12,000 lineups, because every stack number is a share of the field, and players ruled out for the week are left out of it.

Optimizer

How to build lineups, what the settings mean, and why a build can fail.

How do I build lineups?
  1. Add your projections in My Inputs on the Slate page.
  2. In the Optimizer, pick the slate, the contest type, and how many lineups you want.
  3. Choose what to build for, plus a QB stack and a bring-back if you want them.
  4. In the player pool, lock or exclude players, keep only a few at a position, or set how often a player should appear.
  5. If you need them, add limits across your lineups, game stacks, or group and correlation rules. Ownership limits and other expert options are under Advanced settings.
  6. Build. Then check the lineups and any rule that fell short.
  7. Export the DraftKings file.
Which option under "What are you building?" should I use?

Most people want Build my lineups: you get up to 20 lineups ready to export. Build a pool for Sim Lab to score optimizes each lineup for your chosen goal, adding variety to explore alternatives while keeping your projections unchanged. Variety 0 builds the best remaining different lineups. A pool can take up to two minutes; if it stops early, completed lineups are kept and the reason is shown. After scoring in Sim Lab, come back and choose Pick my entries from a Sim Lab run to choose the final set from that run. Use the pool path only if you want Sim Lab's estimates to help pick your entries.

What do the "Build for" options mean?
  • Projection: the highest average score.
  • Ceiling: the highest best-case score.
  • Projection + ceiling: a mix of the two that you set.
  • Fade popular players: average score, pulled away from heavily owned players so your lineups look less like the field's. This is not the game-level Fade on the Game stacks board.

Projection builds for the best average lineup. Ceiling and Fade popular players aim for lineups that can finish high when things go right, or that look different from the field, and they usually give up some average score to do it. Which fits depends on your contest's size and how many entries you have; none of them is a promise of a better result.

What is the difference between "must" rules and "try to" rules?

Locks, excludes, at-most amounts, ownership limits, the minimum salary, minimum different players, group rules, game stack rules, and "Always" and "Never" rules must hold. Aim-for amounts, "Try to" rules, and the strength of "Avoid popular QB stacks" are preferences, and at-least amounts are tried in every build. Any of those can be missed, and a miss is reported after the build.

Why can't it build my lineups?

The three common causes:

  • Two rules contradict each other, such as locking five WRs or locking and excluding the same player.
  • The pool isn't big enough for lineups that each differ by that many players. Lower the minimum different players or build fewer lineups.
  • A minimum can't be reached, such as a minimum salary above what your locks and roster allow, or at-least amounts that add up to more roster spots than your lineups have.

The error panel names the control to change and has a Review button for it. A fix button changes your settings only when you click it. An aim-for outside its at-least and at-most amounts is caught before the build starts.

What are game stacks, Skinny, and Fade?

In the Game stacks board, Stack puts that game's QB in the number of lineups you choose. The stack counts the QB, his WR and TE, and the opposing team's RB, WR, and TE. His own RB never counts, but can still be used. Skinny takes at least one RB, WR, or TE from each team and no QB. Fade uses no one from the game, including the DST; it is separate from the Fade popular players build option. Stacked games never share a lineup.

What do the ownership limits and "Avoid popular QB stacks" do?

Max total ownership adds up each player's projected ownership and caps the total for every lineup. Max popular players caps how many players owned at least the percent you set can be in one lineup. Avoid popular QB stacks steers lineups away from QB stacks that show up in many simulated contest lineups. That popularity comes from simulated contests, not real ownership. All three are under Advanced settings in Settings.

What does a group-rule percentage apply to?

New If I play X rules use Pair at least (%): a minimum share of the lineups containing X. At 50%, two appearances need one pairing; three need two. The required count rounds up, and more pairings are allowed. Your player exposure target remains separate. Other group rules apply to a share of all lineups. Older conditional rules keep that full-build meaning and are labelled as saved rules; remove and re-add one to use the player's appearances.

What do "Min", "Target", and "Max" mean for a player?

Enter each value as a percentage of your lineups or candidates, for every build size. When you build final lineups, Max is a must and is never exceeded. Min is tried in every build and reported if it can't be met, for example when no legal lineup can still take that player. Target is only a preference and may be missed. It can't sit above max or below min, and setting it never locks a player or turns it into a min. After a build, each player you set shows how many lineups used them, such as “used in 5 of 20”. Your player exposures and added group rules save automatically for the active slate when you navigate away or reload. Removing or resetting them, or changing the slate, clears the applicable rules.

How do I keep only a few players at a position?

In the player pool, pick a position tab and choose Keep only these at QB (or RB, WR, TE, DST). Select the players you want, then choose Exclude everyone else at that position, or Exclude selected to drop only the ones you picked. You see what stays and what goes before anything changes, and you decide about any locked player or any player with a min, target, or max amount. It covers the whole position, including rows hidden by a search or filter. Undo reverses the last change, and Restore brings back every excluded player at that position. You can't shortlist so far that a lineup can't be filled, such as fewer than three WRs. How many players to keep is your call; it isn't a recommendation. The same panel can set lineups for the selected players: one target percentage and an optional max percentage for all of them, with Undo. Below the tabs, Lineup spots by position adds up your aims (for example, “RB spots: aims add up to 44; 20 lineups have 40–60”) and warns when they can't fit, such as aims that need more spots than your lineups have.

What does "Player usage" tell me?

It shows how many different players your lineups use and how concentrated they are. It doesn't judge them: fewer players isn't better by itself, and a player used once can be a deliberate alternative. Use it to check that the mix looks the way you meant it to.

How do I compare two builds?

Build once, change your pool or settings, and build again. Under the new results, open Compare with run to see the earlier build next to this one: what you changed, how the lineups differ, which players are used more or less, and what you asked for against what was used. If your projections, salaries, or what you build for also changed, it says the comparison isn't like-for-like. It describes two sets of lineups and doesn't show that any change caused a difference, and a lower number of players isn't better by itself. Projection totals are estimates, not results.

How many lineups can I build?

Up to 20 final lineups. A pool for Sim Lab can be larger (100 to 1,000 lineups), but the entries you export are always 20 or fewer.

Late Swap

What is pinned and what must still be checked manually.

How does GPP Lab decide which players are locked?

The tool compares the current time with the recorded kickoff for each player's game. Started players are pinned and open roster slots are solved again. Always confirm live contest status and the final DraftKings roster before submitting; source timestamps and game statuses can be delayed or wrong.

Do I need a previous optimizer build to late swap?

No. Select the slate, upload your DraftKings Classic entries CSV and the current contest standings CSV or ZIP, then review and download the updated entries file. Entry IDs identify your entries in that contest; entries from other contests stay unchanged. Open slots use your active private projections. Current standings show rank and points but do not change the projection objective.

Sim Lab

How to run a sim, what it does, and how to read the numbers.

How do I use Sim Lab?
  1. Build lineups in the Optimizer first. Sim Lab tests lineups you already built.
  2. In Sim Lab, pick the slate and the build under Lineups to test.
  3. Match the contest: choose it from the Contest list, or pick Custom contest and set the field size, entry fee, and payout shape.
  4. Pick the entry type: single entry, 3-max, or 20-max.
  5. If you want, adjust players for this sim or turn on Pick my entries.
  6. Run the simulation.
  7. Read the Summary first: what the run found, which lineup leads and whether it is really ahead, and how often your entries cash. Then compare lineups in Your lineups (select a lineup number for its roster, or More columns for the rest of the numbers). The stack and player sections below stay closed until you want them. Download CSV saves the lineups with their numbers, each roster in DraftKings upload form, so you can paste the ones you like into your DraftKings entry file. From there you can also rebuild or go back to the Optimizer.
  8. To see an earlier run again, open Past sims at the top of the page and choose Open sim. It shows that run's results as they were, and the settings on the page stay as you left them for your next run.
What is the simulation actually doing?

Each simulated contest draws a score for every player. Teammates and players in the same game rise and fall together, the way real games go. Your lineups and thousands of simulated opponents are scored, and prizes are paid from the payout, with ties split. Then it does that again, thousands of times, and adds up how often each lineup cashed, finished near the top, or won.

Why do the returns look so high?

The sim treats your projections as exactly right, and your lineups were built from those same projections. So the lineups that look best on paper also look best in the sim, and returns come out higher than you should expect in a real contest. Use the numbers to compare your lineups with each other, not to predict profit.

Account for projection misses, under Advanced settings, lets projections miss in the sim, which removes some of that edge. It is experimental, off by default, and not yet checked against real contests.

Which numbers matter most?
  • Avg. return: average profit or loss per dollar entered, after split prizes.
  • Cash rate: how often the lineup finishes in the money.
  • Top 1% rate: how often it finishes in the top 1% of entries.
  • Win rate: how often it finishes first.
  • Duplicate risk: the chance someone else plays the exact same lineup.

In single entry, lean on avg. return and cash rate, since one lineup has to carry you. In 3-max and 20-max, top 1% rate and win rate matter more, along with duplicate risk, because a few big finishes decide the result. The ± beside avg. return shows how much it moves from simulation noise alone: two lineups within each other's ± are effectively tied.

How should I set up the contest?

Use a listed contest when one matches the one you plan to enter. Otherwise choose Custom contest and set the field size, entry fee, and payout shape as close as you can. The entry type changes how the simulated opponents build their lineups, so match it too. Simulated contests, core size, a repeatable seed, and account for projection misses are under Advanced settings; their starting values suit most runs.

What do duplicate risk, core overlap, and rarity mean?

Each one looks at a different size of overlap with the simulated opponents, and any overlap can split a prize. Duplicate risk is about the exact same nine players. Core overlap is the share of opponents who play the same core, a smaller group of your players set by Core size under Advanced settings. Rarity ranks how uncommon your core is compared with theirs. Stack ownership does the same for your QB and his pass catcher.

What does "Pick my entries" do?

It picks how many entries you ask for from the lineups you tested, for the goal you choose: avg. return, cash rate, a top finish, or the win. Entries are picked one at a time, best first. The limit on shared players keeps two picks from being near-copies. The “any entry” chances it shows may run a little high, because lineups that share players tend to win and lose together.

When should I adjust players for this sim?

Use it for late news, or when you disagree with a projection and want to see what changes. It only changes this simulation. Your saved projections and the Optimizer build stay the same.

What is in Technical details?

Each run has a closed Technical details section at the bottom of its results. It is for repeating or reporting a run, not for choosing lineups. It holds the run number and seeds, how long the run took and how much memory it used, the settings the simulated opponents were built with and the past contests behind them, the noise behind each lineup's finish rates and each stack's return, the account-for-projection-misses settings, the entry fees and average winnings in dollars, version names, and the record of which inputs the run used. When a run fails, its own Technical details holds the raw error.

Why can a high-scoring lineup have weak results?

Projection is only part of a top-heavy contest. A lineup can share its core with many opponents, be copied exactly, split prizes when it wins, or reach its ceiling less often than a similar lineup. Read avg. return, win rate, the payout shape, and duplicate risk together.

Results Review

Private contest uploads and your DraftKings identity.

What is Results Review for?

Results is your private contest history. Uploads are open: preview a completed DraftKings NFL Classic results CSV or ZIP locally in your browser, select your own username, then save only selected lineups and limited summaries. No entrant handle or original entry ID is saved. To correct a selection, delete the saved record and reopen the file. Saved USD fees and winnings support a realized monetary summary; missing amounts stay unavailable. Lineup review and field comparisons use browser-computed assertions with coverage and small-sample withholding. Records and their monetary revisions expire after 90 days, including for accounts. Deletion stays available even if uploads are paused.

Does opening a past contest change my build slate?

No. Historical Results leave your build alone. Use the explicit “Use this slate in workspace” action if you want to switch to the uploaded contest's slate; that clears the old slate's build state.

Troubleshooting

Common reasons a page is empty, stale, or temporarily unavailable.

Why are values blank or unavailable?

The active projection file may omit a column, a player may not resolve to the published salary pool, historical feeds may not have enough qualifying games, or the weekly source may not have published yet. GPP Lab preserves missingness instead of replacing unknown values with zeros.

What does a superseded run warning mean?

The saved optimizer or simulation run no longer matches the current slate, projection snapshot, thesis, or constraints. It remains available for audit, but build or simulate again before treating it as the current workflow result.

Why was a compute run temporarily limited?

Optimizer, simulation, and late-swap attempts share a per-workspace rolling-hour compute budget. A limited response includes how long to wait. This protects the live service; changing pages or retrying immediately does not reset the window.