Replay scores a set of lineups against a contest that already finished. It ranks each lineup on the real leaderboard, pays it from the real payout table, and reports profit, ROI, cash rate, and best finish. Use it after a slate to see what you would have made, and before a season to test a playbook against history.
Power plan. Replaying a playbook across past slates needs the Power plan. Scoring the Entries Preview lineups, the entries you played, or a saved build against one contest works on Essential too.
Before you start
- Pick a slate with final scores and at least one contest with a stored leaderboard. See Contest results and the Contest Analyzer.
- For the workspace path, build the slate first. Replay scores the Entries Preview set of the active build tab, never the whole pool. See The lineups panel.
- For a playbook Replay, create a playbook for the sport, site, and mode you want to test. See Create a playbook.
Replay Entries Preview against one contest
- Open the slate in the workspace and open the Contests rail.
- Find a contest row with a Replay button (rewind icon). The button appears once the slate has a finished build and final scores.
- Click the Replay button. The Replay dialog scores the Entries Preview lineups at once.
- Check the context line. It names the lineup count from Entries Preview, the contest, and the field size, so confirm Replay used the contest you meant.
- Click View lineups to open the lineups panel with the results applied. Click Run again to score the current set once more.
- Click Clear replay to remove this contest's results from the workspace.
You can also open the same dialog from the Replay button in the Contest Analyzer header, or from Replay in the lineups panel actions menu.
Read the results
- The headline is net profit and ROI across the scored lineups.
- CASH is how many lineups won money. BEST is the best finish against the field, with "tied 2 ways" when other entries share that place.
- AVG SCORE and HIGH show your average and top actual scores.
- SCORE DISTRIBUTION puts every lineup on a histogram against the cash line. A wide spread with most bars under the line means the pool has upside and a weak floor.
- TOP FINISHERS lists the eight best lineups with place, score, payout, and profit. A shared place shows the tie under it. The list scrolls when the dialog has no room for all eight rows.
- A Partial marker means some players have no final points yet. Those players count 0, so re-run after the slate finishes scoring.
The results in the lineups panel
After a run, the results attach to the workspace.
- A chip in the lineups panel tab row names the contest and your cash count. Click it to reopen the dialog without a new run. With several contests replayed, the chip opens a menu with one row per contest and Clear all.
- Every lineup card gains a REPLAY footer with rank, payout, profit, score, and whether it cashed. Each card also shows its actual score next to its projection.
- Rank by gains an Actual option, so you can sort the pool by real points.
When you change the selection, the entry count, or a player inside an entry, DFS Hero re-scores every applied replay. Switching the active build tab clears every applied replay.
Replay a past slate from the Day View
This path works from a slate on a past date, with no workspace open.
- On the Day View, click Change date and pick a past day.
- Find the slate with a Replay button (rewind icon), in My slates or under Locked. The button appears only when the slate has final scores and at least one stored leaderboard.
- Click the Replay button.
- Pick a subject at the top: My entries, Saved build, or Playbook. My entries appears when you played the slate, and DFS Hero preselects it.
- Fill in the fields for the subject and click Run replay. Results appear inside the dialog and vanish when you close it.
My entries
Replay scores the entries you played on this slate, contest by contest: the entries of your entries file and the entries found by your username. Click Run replay. One row per contest shows the entry count, fee, and net profit. An entry the contest's final standings list takes its real rank and payout from them, so the result matches what the site paid, also for a lineup you changed on the site or an entry you filled there. An entry the standings do not list is scored from its lineup here. Click a row to expand the full results view. A contest with no stored leaderboard, or with an incomplete one, cannot be scored, and its row says why. A status line tells you when an entry had no lineup or when a contest has unscored players.
After you upload an entries CSV on a past slate with filled entries, this dialog opens on its own with My entries selected. See Upload your entries.
Saved build
| Setting | What it does | Default |
|---|---|---|
| Build | Which saved build to score. | Newest build |
| Contest | Which contest with a stored leaderboard to score against. | The contest you played, else the largest field |
Click Run replay. Replay scores the whole saved pool against the contest. A pool of 10,000 lineups pays 10,000 entry fees, so the headline shows what the whole pool would have cost, not what your real entries would have made. Keep the contest you played rather than the largest one: a 150-max field and a single-entry field pay very differently for the same lineups.
Playbook
| Setting | What it does | Default |
|---|---|---|
| Playbook | Which playbook to rebuild on this slate. Only playbooks that match the slate's sport, site, and mode appear. | Your default playbook, else the first |
| Contest | Which contest to score against. | The contest you played, else the largest field |
Click Build & run replay. The run builds and simulates the playbook on this slate, scores it, and continues on the Playbooks page. With no matching playbook, click New Playbook to create one. The playbook list loads on the Power plan only.
The card's more menu (three dots) also holds Replay with playbook with a submenu of matching playbooks.
Replay a playbook across past slates
A playbook Replay rebuilds the playbook on up to 20 archived past slates, simulates each build against a real contest, scores every lineup, and enters the lineups a cloud run of the playbook would have entered. The result is a record on the playbook card. This path needs the Power plan.
Open the setup form
- Click Playbooks in the top bar.
- On a playbook card, click Replay on past slates. A card with a record shows View record instead, which opens the latest ledger; use Replay the past in the card's Actions menu to start a new run.
The playbook interview's closing screen offers See how it would have done, which opens the same form.
Pick the slates
| Control | What it does | Default |
|---|---|---|
| Last 5, 10, 20 | Picks the most recent eligible slates. | 5 slates picked |
| Played | Picks every listed slate you played. | |
| Slate row | Check a slate to include it. A You played this badge marks the slates you played, and a Played chip marks the contest you played. Point at either to see where DFS Hero found your entries. | Your 5 most recent played slates, else the 5 most recent eligible |
| Entry limit | Keeps only contests with that per-user cap: Single Entry, 3-Max, 20-Max, or 150-Max. Every row switches to its largest matching contest. The chip shows the chosen value. | Any |
| Fee | Keeps only contests in that fee band: Under $5, $5-20, $20-100, or $100+. The chip shows the chosen value. | Any |
| Field | Keeps only contests with at least that many entrants: 1K+, 5K+, 10K+, 25K+, 50K+, or 100K+. Use it with Contest to get the big version of a contest. For example, "Play-Action" with 100K+ keeps the big main-slate Play-Action and drops the smaller copies on other slates. The chip shows the chosen value. | Any |
| Contest | Keeps only contests whose name holds the word you type, for example "Play-Action". Case and punctuation do not count. Press Enter or click Apply; Clear removes it. The chip shows the word. | Any |
| Change | Picks another contest on that slate. The list holds the slate's 12 largest contests that match the filters, and played follows a contest you played. | The contest you played, else the largest field |
| Entries | How many lineups to enter in that contest. The maximum is the contest's per-user cap, 150, or the playbook's lineup count, whichever is smallest. A number you type stays with its contest: when Change or a filter puts another contest on the row, the field shows that contest's default. | Your played entry count in that contest, else the contest's cap |
With no filter on, the list holds the 60 most recent slates from the last 365 days. A disabled row states its reason: no player pool was archived at lock, or no contest has a saved leaderboard. With a filter on, the list holds only the slates that have a matching contest, up to 60, so Last 5, 10, and 20 pick only those slates. If no slate matches, the list says so. Set a filter to Any to see more slates. Pick slates with the You played this badge when you can. The ledger then compares the playbook against what you really played.
DFS Hero remembers the four filters for each playbook on this browser. A Single Entry playbook opens on Single Entry contests every time.
After a run, Replay more slates opens the form with the same slates, contests, and entry counts as the run you were reading. Adjust the playbook, come back, and run it on the same contests to compare. Each entry count stays with its contest, so a filter that moves a row to another contest also resets that row's entries to the new contest's default. A slate that cannot be replayed right now stays unselected, and a line above the list counts those slates. Widen the filters and a held-out slate comes back.
Set the run and start it
Set Entries per contest for contests with no entry cap on record. The maximum is 150 or the playbook's lineup count, whichever is smaller. The default is your most common entry count, else 150, or the playbook's lineup count when it builds fewer than 150. A commitment line under the button shows the total entries, the stake, and the expected run time.
Click Run replay · N slates. A run with 2 or more slates runs in the cloud, so you can close the page. The progress board shows one cell per slate as it builds, simulates, and scores, plus running totals for profit, ROI, entry count, and stake. Stop replay ends the run, drops unfinished results, and keeps every slate already scored.
Read the ledger
The ledger opens when the run finishes, and again from View record on the card.
The decision block gives a verdict: working, breaking even, or underperforming. With 1 or 2 scored slates it says there is not enough evidence yet. Under 15 scored slates the app calls the result an early signal, not a verdict. Trust a record only from 15 scored slates up. When SELECTION below recommends a selection your playbook does not use, the verdict says a better selection is recommended below.
Under the verdict:
- Net profit, ROI, stake, return, cash rate, slates won, and best finish across the run. Won counts the slates that returned more than they cost. Cash rate counts entries, so a slate with 150 entries weighs 150 times a slate with 1; Won weighs every slate the same. In a large field most slates lose and a few big wins carry the ROI, so a low count is normal for a strong tournament playbook.
- A comparison line when you played a contest the run replayed: You played this contest with your entry count and your real net, as the contest's final standings paid it, next to the playbook's result. While the final standings have not ranked every entry you played, the line shows the count only.
- A concentration callout when one slate carried more than half of the return. A record that one slate carried is one good night, not a strategy.
- Running profit and loss, a chart of cumulative profit over the slates. It shows at 3 or more scored slates.
- Slate rows with date, contest, finish tier, and net. Click a row to see the field size, fee, the entries and cashes, how far the best lineup finished from the cash line, whether the replay entered the pool's best lineup, and a strip of every lineup the slate built against the cash line. When DFS Hero finds more entries you played in the contest after the run, the row reads DFS Hero found N more entries. Replay again. A skipped slate states its reason. A slate where a playbook guardrail kept the playbook out enters nothing, and its row names the guardrail. A row that the contest's per-user entry limit held below your entry count says so.
Adjust playbook opens the playbook's editor. Replay more slates returns to the setup form.
Selection
SELECTION answers which selection method this run should have used. It re-enters the stored pools with no new run, so use it before you edit the playbook. A sentence under the title names the selection the record uses.
When the ledger opens, DFS Hero scores the run again under every selection method with every Rank by, over the same slates, entries, and contests. It builds and simulates nothing again. The comparison runs in the background and takes from a few seconds to a few minutes; a bar shows the slates done.
- The table ranks each selection by ROI and shows its profit, its share of entries in the Top 1% and Top 5% of the field, its cash rate, and Won: the slates that returned more than they cost, out of the slates it entered. Won never changes the order. On a phone the profit, the three rates, and Won sit under the selection's name.
- Recommended marks the selection to use. A selection is recommended over the run's own only when its lead still holds after one slate leaves both selections: the slate where it gained the most over the run's own. That slate can differ from the slate that paid it the most. A run of up to 20 slates can rank a selection first because of one big prize, and this check keeps that selection from the recommendation. The sentence above the table names a selection that ranks higher but fails the check, the slate its lead rests on, and the ROI of both selections without that slate. When no selection passes, or the run has 2 slates or fewer, the run's own selection stays recommended.
- Your playbook marks the selection your playbook uses now. This run marks the record's selection when your playbook uses another one.
- The table shows the top 10 rows, the run's own row, the recommended row, and your playbook's row. Show all opens every row.
- Selections that got the same result on every slate share one row.
- Min Uniques uses your playbook's Min uniques floor. At a floor of 1 it picks what Highest Ranked picks, so the table leaves it out.
- Click a row to see that selection's full ledger: the verdict, the chart, the totals, and the rows below change. When your playbook does not use that selection, the verdict names it, for example "Working so far with Highest Ranked · ROI." When some slates keep the run's own numbers, the verdict names its share, for example "on 9 of 12 slates." The line beside Entries per contest names the selection the ledger shows and its result. Reset returns to the run's own selection.
- Entries per contest tries another entry count. The rows below change, and the table ranks every selection again at that count. Each row enters no more lineups than its pool holds or its contest allows per user, and the line beside the field counts the rows that entered fewer.
- Use in playbook saves the recommended selection in the playbook as the table measured it: its method, its Rank by, its Min uniques floor, and the run's keep-count. The playbook takes the settings this replay ran, with that selection. A new replay then opens with that selection's results at the run's own entry counts, and the RECORD band on the playbook card shows it. The replay you read keeps its own results. When the replay ran settings your playbook no longer has, a confirm lists what else changes first. When a slate of the run cannot be scored again, nothing changes and a message says why. A message names the selection and offers Undo, which puts the playbook back as it was.
A view uses the run's stored sims and the Before fill guardrails the run applied. Win Paths and the sim metrics in Rank by need a run that simulated its pool. Min Uniques joins the table only when the playbook's Min uniques floor is 2 or more, since a floor of 1 picks what Highest Ranked picks. A note under the table names a selection the stored pools cannot serve. Every row uses today's contest scoring. When that scoring reads the run's own row differently from what the run recorded, a note states both numbers.
Versions
Every replay keeps the settings it ran. Each set of settings is a version, and Versions in the Replay header lists them.
- Versions are grouped by slate set: the slates, contests, and entries a replay ran. Figures compare only inside one group.
- Each row names what its settings change from your playbook now, for example "Lineups: 150 to 300". Current marks the version your playbook holds. When your playbook now has no replay in a group, the group still shows it as Your playbook now with no figures, so you can tick it for Test together.
- The figures come from the newest replay of that version that ran every slate of the group: net profit, ROI, slates won, and best finish. A replay or test you stopped gives the figures only when no replay of that version finished.
- A version that was in a Test together shows its newest verdict there, for example "Test together: Ahead of the baseline". Click it to open that test. A test that still builds reads "In a test of 2 versions". A newer test that ended with no verdict does not hide an older verdict: you stopped it before any slate scored, it failed, or no slate compares. When no test of the version has a verdict, the row reads "Test together: no verdict".
- Open shows that replay's ledger. When the replay ran other settings than your playbook now, the ledger says so under its result. Show every replay in the row's menu lists every replay of the version.
- Edit from this version opens the editor with that version's settings. Nothing changes until you click Save Playbook.
- Apply this version gives your playbook that version's settings. A confirm lists what changes, and says so when your current settings have no replay. Scheduled builds use the new settings. The message offers Undo.
- A replay from before October 25, 2026 recorded no settings. Its row shows Settings not recorded and offers Open only.
Test together
Two replays of the same settings at different times can differ a little: the opponent field model updates every 30 minutes, final scores take stat corrections, and a busy machine can stop a solve early. Test together builds 2 to 4 versions in one run, on the same slates with the same inputs, so they compare fairly.
- In Versions, tick 2 to 4 versions of one slate set.
- Click Test together. The test runs on that set's slates, contests, and entries.
In the playbook editor, Test draft tests your unsaved changes against your saved playbook, on the slates of your newest finished replay. With no finished replay, the setup form opens first. Nothing saves, and the draft is kept as a version.
The test view shows one card per version: net profit, ROI, slates won, best finish, and what its settings change from the baseline. The baseline is your saved playbook when it is in the test, else the first version you ticked. Click Compare with this on a card to compare against that version. Each version gets a verdict:
- Ahead: it wins more slates than it loses, and its total lead holds without its best slate. A slate counts as a win when the version's net beats the baseline's by at least one entry fee, and as a loss in the mirror case.
- Behind: it loses more slates than it wins, and the baseline's lead holds without the baseline's best slate.
- Too close to call: every other result.
A slate counts only when every version scored it in the same contest and no build stopped on its time limit. The table under the cards shows each slate's date, contest, and net per version, and names the slates left out. Each card's menu holds Open its ledger, Edit from this version, and Apply this version. Stop test stops every version. A test counts as your one replay at a time, and each version takes the build time of one replay. While a test builds, the progress names the version that holds your playbook's settings. If you leave, Replay shows "A test of this playbook is building" with Open the test.
The record on the card
A playbook card shows a RECORD band with the slate count, NET, ROI, BEST FINISH, and View record. The band shows the newest finished replay of the playbook's current settings. With none, it shows the newest finished replay and adds older settings: its figures come from settings the playbook no longer has. For a replay from before October 25, 2026, which recorded no settings, the band adds prev. selection when the playbook's selection changed after the replay. Point at the line to see why. While a run is in flight the card shows a Replaying badge; click it to reattach to the run.
Ask Hero Chat or an agent
Hero Chat reads a playbook's versions and its Test together results, so you can ask it which version did best. It does not start a replay or apply a version. A connected AI agent can also start a replay or a Test together and apply a version, and it asks you first. See What an agent can do.
How it works
Rank and payout
Before Replay places a lineup, it takes the entries you played in that contest off the leaderboard. Your lineups then never compete with the entries you really played. An entry that Replay cannot match to a leaderboard row stays on the leaderboard.
A lineup's rank is 1 plus the number of entries that scored higher. Replay places an entry set together: the workspace path, My entries, and the lineups a playbook Replay enters. In a set, your own lineups that scored higher also push a lineup down. A saved build and the pool strip of a playbook Replay row are pools of candidates, so Replay places each of their lineups alone.
Entries that tie share the prizes of the positions they hold, split evenly, as DraftKings and FanDuel pay a tie. In a set, your own lineups at the same score join the tie and share one rank. A lineup cashed when it won more than its entry fee. A tie across the last paid place splits the prizes of the places it covers, so each entry in it can win less than the fee, and that is no cash. The cash line is the lowest score on the leaderboard that cashed.
Profit is payout minus entry fee. Cash rate is cashed lineups divided by total lineups. ROI is net profit divided by total entry fees. A lineup that scores 0 ranks last and loses its entry fee.
In a showdown contest the captain slot counts 1.5 times. Players with no final points count 0, and the Partial marker tells you how many.
What each path scores
- The workspace path scores the Entries Preview set of the active build tab. It keeps an entry that scores 0, and that entry loses its entry fee.
- My entries on a past slate reads each entry you played, contest by contest. An entry the final standings rank takes its real rank and payout from them. An entry no standings rank yet is scored from the lineup your entries file holds. Zero-scoring entries stay, because they were real paid entries.
- Saved build scores the whole stored pool and drops lineups that score 0.
- A playbook Replay rebuilds the playbook from the player pool DFS Hero archived at lock and simulates it the way a scheduled cloud build does, against the matched contest's real field size and payouts. It scores every lineup. It then enters the lineups a cloud run of the playbook would enter in that one contest, up to the contest's per-user entry limit.
Guardrails in a playbook Replay
A playbook Replay runs the playbook's guardrails at the same two checkpoints as a cloud run. When a Stop the run or Skip fill guardrail trips, the playbook enters nothing on that slate: no fee and no winnings. At After build, the slate is skipped and its row names the guardrail. At Before fill, the row keeps its pool, shows zero entries, and names the guardrail. The verdict and the chart do not count a slate where the playbook entered nothing. A Time to lock guardrail always passes, because a past slate has no run clock.
Contest matching in a playbook Replay
DFS Hero picks the contest you played first, then the largest field. When the chosen contest cannot be read, or its stored leaderboard is incomplete, the run falls back to another contest you played, then to the largest field in the same fee band and entry limit with a readable leaderboard. If a filter was on when you picked the contest, the other contest must also match that filter, so a "Play-Action" pick is never scored on a different contest. A slate with no usable contest is skipped, and the row says why.
Limits
- 20 slates per run, from up to 60 listed slates in the last 365 days.
- 150 entries per contest at most, never more than the playbook's lineup count, and never more than the contest's per-user entry limit.
- 10,000 lineups scored from a saved build.
- One playbook Replay at a time per account. A Test together counts as one.
- 2 to 4 versions per Test together, each building at least the entries the test enters.
- A playbook Replay needs the Power plan. Scoring Entries Preview, the entries you played, or a saved build against one contest does not.
- A build or entry set older than your data retention cutoff behaves as if it does not exist.
What Replay does not do
Replay does not write to Film Room or to the Dashboard. It changes no build and no entries. It changes a playbook only when you click Use in playbook or Apply this version. It is separate from the Replay tab in Game Sim, which replays a simulated game.
Troubleshooting
The row has no Replay button : the slate has no finished build, or the contest has no final points. Build the slate and wait for final points.
"No lineups fill this contest's entries, so there is nothing to score." : the plan for this entered contest holds no lineup. The contest's Fill switch is off in Contest Setup, or an exposure cap excludes every lineup. Turn the switch on or loosen the cap.
"None of the {N} lineups from Entries Preview could be scored against this contest." : no lineup matched a scored player. Check that the build belongs to this slate.
"This contest's leaderboard is incomplete, so Replay cannot score it." : the stored leaderboard holds more than 10% fewer rows than the contest had entrants, so the ranks below the missing rows would be wrong. Pick another contest. A playbook Replay moves to another contest on its own.
"Could not run the backtest for this contest. Try again." : the contest's leaderboard could not be read. Close the dialog and try again in a minute.
"No actuals available for this slate yet." : the slate has no final points yet. Come back after the games finish.
"Contest leaderboard data not available" : the contest has no stored leaderboard. Pick another contest with the Data filter on.
"Your entries on this slate hold no lineups, and no leaderboard ranked them yet. Fill them first, or use Saved build." : the entries you played hold no lineup in DFS Hero, and no final standings ranked them yet. Fill them, wait for the final standings, or use Saved build.
"Could not run the replay. Try again." : the past-slate run failed. Try again, then try another contest.
"Could not start the replay. Try again." : the playbook Replay did not start from the past-slate dialog. Open the Playbooks page and start it from the setup form.
"You already have a replay running. Stop it from the progress view, or let it finish." : one playbook Replay runs at a time. Open the running one from the Replaying badge on its card.
"The slate you came from cannot be replayed yet, so it is not selected." : that slate has no archived pool or no stored leaderboard. Pick other slates.
"No replayable {SPORT} slates yet" : no slate for that sport was archived at lock and scored with real results. NFL replays start with Week 1.
"Replay stopped." : you stopped the run before any slate finished. Click Replay more slates.
"This run failed." : the run hit an error. Click Run again. "The build engine reported an internal error." means the problem was on the DFS Hero side.
"Replay is unavailable right now. This is a problem on our side, not with the slates you picked." : wait and try again later.
"That view could not be loaded. Try it again." : a re-slice on the ledger failed. Click the link to retry.
"Two of these versions hold the same settings. Change one, or test fewer versions." : untick one of the two, or change the draft before Test draft.
"Version 2 builds 20 lineups, fewer than the 150 entries this test enters. Raise its lineups or test on fewer entries." : every version enters the same lineups count on each slate. Raise that version's Lineups per run, or pick a slate set with fewer entries.
"Version 2 ran before DFS Hero recorded settings, so it cannot be built again." : that version has no recorded settings. Tick a newer version.
"1 slate of this replay could not be scored again, so nothing changed." : Use in playbook found a slate whose stored pool or leaderboard cannot be read. Nothing changed. Run the playbook again to store new pools.
"This slate's lineup pool could not be read." or "No lineup pool was stored for this slate." : the pool strip has nothing to draw for that row. The row's numbers stand.
"We could not confirm the stop. Try again." : the stop request did not reach the run. Click Stop replay again.
"This feature requires a Power subscription" : upgrade from Settings > Subscription.
Related
Was this article helpful?