Help Center
The manual. What every control does, what every number means, and what to do when something goes wrong.
New here?
Start with Quick start — eight steps from opening the app to a file you can upload to DraftKings or FanDuel. Then read Exposure, which answers most of the questions people write in about.
Start here — from the site's file to uploadable lineups
The whole loop in nine steps: pick your slate, build, download our CSV, upload it to the site.
Martian Flow Fantasy Sports sits between you and the contest site. The site gives you a player file; we turn it into a portfolio of legal lineups; you take our file back to the site. Nothing here enters contests for you, and nothing here needs your DraftKings or FanDuel password.
- Pick your slate. Choose DraftKings or FanDuel and the contest format, then the slate you are entering. Its official player list, salaries, teams and games are already loaded — you do not upload the site’s player file.
- Not listed yet? Slates are published as the sites post them, usually well before lock; check back later. If you already have the site’s player file (DraftKings
DKSalaries.csv, FanDuel…-players-list.csv), open Don’t see your slate? under Pick a slate to import it. - Review the player pool. Names, teams, salaries, injury badges and Martian Flow projections are loaded for every published slate. Prefer your own numbers? Upload them under Upload your own projections or ownership: a CSV in the columns the file guide lists.
- Choose your approach. Either leave the strategy on Just Pick For Me, or set the players, exposures and stack rules you have a real opinion about. Both are fine; most people start with Just Pick For Me and add two or three rules the second time.
- Build. Pick the number of lineups (1 to 200; the contest-type buttons fill in a typical number) and press Build. A 150-lineup Classic build takes a minute or three and reports its stage while it runs.
- Review the results. Read the summary numbers, the Exposure tab (who is in how many lineups) and the Stacks tab. Any warning that matters is shown at the top of the results in plain English.
- Download CSV. The file is written in your site’s own upload layout — the same columns the site’s template uses, with the site’s player ids — and named so you can find it: site, format, slate and date.
- Upload it on the contest site. Use the site’s lineup upload / import tool for that contest. The per-site guides below say exactly what to expect: DraftKings Classic, DraftKings Showdown, FanDuel Main Slate, FanDuel Single Game.
- Review the entries on the site before you submit. Confirm the lineup count, spot-check a few lineups against what you downloaded, and check late injury news — the site’s own status is authoritative on game day.
Stuck at any step? Every screen has a What does this mean? link, and Troubleshooting covers the errors you can hit.
Quick start — your first set of lineups
Eight steps from opening the app to a file you can upload to DraftKings or FanDuel.
If you do nothing else in this Help Center, do this. It takes about two minutes of clicking and one build.
- Pick your site. At the top of Pick a slate, choose DraftKings or FanDuel. This decides the roster shape, the salary cap and the format of the file you will download at the end, so get it right first.
- Pick the contest format. The two buttons read the same on both sites: Classic / Main Slate is the normal full-day contest with a nine-player roster, and Single Game is one game with a six-player roster. (DraftKings calls its single-game contests Showdown on their own site; it is the same thing.) See Classic vs Single Game.
- Pick a slate. Every slate tile shows how many games and how many players it holds. If the list is empty for that site and format, no slate has been loaded for it yet — see Getting a slate in.
- Choose how many lineups. Type any number from 1 to 200 in Number of lineups. The contest-type buttons (Single Entry, 3-Max, 20-Max, Large Field) are shortcuts that fill in 1, 3, 20 and 150 — the number stays yours to change afterwards.
- Choose a strategy, or let it choose. Press Just Pick For Me if you want a tournament portfolio without setting anything else, or pick Conservative, Balanced or Aggressive yourself. See Just Pick For Me and the three strategies.
- (Optional) Set any rules you actually care about. Click a player’s name to open his panel and lock him, exclude him, or set a minimum, maximum or exact exposure. Skip this entirely the first time — the point of the product is that you do not have to. See Player controls.
- Press Build. The big button reads Build my 150 lineups. While it works it reports what it is doing and how long it has been going. A large build normally takes a couple of minutes; see how long a build takes.
- Review the results, then download. Check the Exposure tab (who you ended up on), the Stacks tab (how your lineups are correlated) and the Diversity tab (how different they are from each other). When you are happy, press Download CSV and upload that file on the site’s own entry page.
Nothing you see is a draft. A portfolio only appears on screen after it has been independently re-checked against every rule — salary, roster legality, your locks and exposures, no duplicate lineups. If that check fails, the build fails and says so. You will never be handed lineups we could not verify.
What should I do differently the second time?
Do I have to set any rules at all?
What do the Advanced settings under the build button do?
What does the optimizer promise, and what does it not?
Just Pick For Me
What the automatic mode does, why two builds of the same slate differ, and when to take over yourself.
Just Pick For Me makes every decision you did not make. You give it a slate, a lineup count and any rules you insist on; it chooses the strategy blend, the exposure aims, the stacking mix, how much salary to leave on the table, and how far to lean away from the crowd.
It is deliberately random, and that is the feature
A tournament portfolio is not one answer. It is a purchase of many plausible ways the slate could break. So Just Pick For Me draws a fresh random seed on every build and uses it to pick one reading of the slate from a range of readings the evidence supports — how much to weight ceiling over median, how much to fade the chalk, which quarterbacks to spread across, how widely to spread the Captain or MVP seat.
What that means in practice
- Two builds of the same slate will differ, sometimes a lot. That is correct behaviour, not a bug and not instability.
- Neither build is “better”. They are two defensible portfolios. The second one is not an improvement on the first and the first was not wrong.
- Both passed the same quality bar. Randomness chooses among lineups that already cleared the legality and quality checks. It never lowers the bar.
- Your rules are untouched by it. Anything you decided — a lock, an exclusion, an exposure number — is not a decision left for the seed. The randomness only operates on what you left open.
The seed
The seed is just a number that fixes every random choice in the build. It is shown with your results. Two things follow: the same seed with the same slate and the same rules rebuilds the identical portfolio, and a different seed gives you a different one. You can pin a seed under Advanced settings if you want to reproduce a build exactly; leave it blank (the default) to get a fresh one each time.
How to get a fresh build
- Press Build again — with the seed left blank, that alone is enough.
- Or use New random build in the panel that appears above your results after a Just Pick For Me build. That button forces a new seed even if you have pinned one.
Why it does not just play the highest projections 150 times
Because that portfolio loses. If you build the highest-projected lineup 150 times you own one opinion of the slate, and 150 copies of a wrong opinion is worth exactly as much as one copy. Worse, the highest-projected players are the ones everybody else also rosters, so the lineups that do hit are shared with thousands of other entries. A portfolio’s job in a large field is to be right in more ways, not to be identical and confident.
Why is a player I love only in 20% of my lineups?
Why are there players in only one or two of my lineups?
My new build barely changed. Is the randomness broken?
When should I stop using Just Pick For Me?
Conservative, Balanced and Aggressive
What each strategy actually changes about the lineups you get. No marketing — the real differences.
The three named strategies change what the optimizer considers valuable. They never change the rules. Every strategy obeys your locks, exclusions and exposure numbers identically, and every strategy produces legal lineups. The difference is entirely in what it is trying to maximise and how much repetition it tolerates.
| Conservative | Balanced | Aggressive | |
|---|---|---|---|
| What it values | Projection only | Projection, with real weight on ceiling and on being different from the field | Ceiling and low ownership, weighted about equally with projection |
| Quality floor per lineup | Very tight — lineups stay within a few percent of the best available | Moderate | Loosest of the three, but still a floor |
| Repeats its favourites | Freely — a top player can reach about 85% of your lineups | Up to about a third of your lineups | Least of the three — deliberately spreads hardest |
| Typical use | Cash games, small fields, single-entry | The default. Large fields where you still want every lineup to stand up | Big-field tournaments where you are hunting a unique winner |
What the exposure difference looks like
The clearest way to tell them apart is the Exposure tab. On the same 150-lineup Classic slate with no rules of your own, the highest-used player can run up to about 85% under Conservative, sits at or below a third under Balanced, and lower still under Aggressive. Aggressive spreads across more distinct players; Conservative uses fewer players more heavily.
Aggressive is a different appetite for variance, never a licence to roster bad players. It will not surface someone simply because he is unpopular — quality is established first, from evidence that has nothing to do with ownership, and only then does low ownership count in a player’s favour.
What is Custom Exposure Mode?
A player was ruled out or made inactive after I built. What happens?
Sleeper Finder has its own Conservative / Balanced / Aggressive buttons. Do they change my build?
Are the three strategies random like Just Pick For Me?
Which one does Just Pick For Me use?
Does a strategy ever refuse to build?
Player controls — lock, exclude, min, max, exact
The five per-player rules, step by step, plus what happens when two rules disagree.
These are hard rules. Not preferences, not nudges — if the optimizer cannot satisfy one it fails the build and tells you which rules disagree. It will never quietly give you 68 lineups when you asked for exactly 70.
Lock and Exclude — the fast path
- Find the player in the player-pool table.
- Press Lock in his Rules column to put him in every lineup, or Excl to keep him out of every lineup.
- The button highlights and a coloured dot appears next to his name, so you can see at a glance which players you have ruled on.
- To undo either one, press the same button again.
Minimum, maximum and exact exposure
- Click the player’s name (or the set… button in his Exposure column) to open his panel on the right.
- Under Exposure → Overall, choose at least, at most or exactly.
- Type a number and choose the unit: % or lineups. The panel immediately shows what your percentage resolves to — “Exact 20% · 30/150” — because the lineup count is what actually gets built.
- Press Set exposure. Nothing is applied until you do; the panel says so while you have unsaved changes.
What each one means
| Rule | Meaning | Can the optimizer go past it? |
|---|---|---|
| Lock | In every lineup | No — it is every lineup, by definition |
| Exclude | In no lineups | No |
| At least (minimum) | A floor. He appears in at least this many lineups | Yes — upward. A minimum is not a target; if the build likes him more he goes higher |
| At most (maximum) | A hard cap | No |
| Exactly | This many lineups, no more and no fewer | No, in either direction |
How a percentage becomes a number of lineups
Percentages rarely divide evenly, so the conversion is fixed and stated rather than left to chance. A minimum rounds up, a maximum rounds down, and an exact percentage rounds to the nearest whole lineup (with a half rounding up). An explicit lineup count is used exactly as typed and overrides any percentage.
The same 20% in a 47-lineup build
At least 20% → 10 lineups (9.4 rounded up). At most 20% → 9 lineups (9.4 rounded down). Exactly 20% → 9 lineups (9.4 rounded to nearest). The app shows you the resolved count next to the control before you commit, so you are never guessing which way it went.
Editing and removing rules
- Change a number: reopen the player’s panel, type the new value, press Set exposure.
- Remove an exposure rule: the same panel has Remove exposure rule.
- Remove a lock or exclusion: press the highlighted Lock / Excl button again, or use the toggle in his panel.
- See everything at once: open Advanced rules under the player pool. Every rule you have set is listed there with a remove button, and the count on the summary line tells you how many are active even while it is collapsed.
- Undo: the Undo button at the top of the page steps back through rule changes and builds together, because they are one piece of work.
When rules conflict
Your rules are checked before any lineups are built. If two of them cannot both be true, the build refuses and the message names the players and the rules involved. Nothing is silently weakened, reinterpreted or dropped — the fix is always yours to choose.
Three impossible rule sets
Three quarterbacks each at 100%. A Classic lineup has one quarterback seat, so all three cannot be in every lineup.
A locked player who is also excluded. These say opposite things about the same player.
Minimums that add up to more than the roster. If you require ten different wide receivers at 60% each in a lineup that seats three or four, there is no arrangement of lineups that satisfies all of them.
An impossible rule set fails the build rather than producing a “best effort” portfolio that quietly breaks one of your rules. That is deliberate. A portfolio that violates a rule you set is worse than no portfolio, because you would have uploaded it believing it was right.
My minimum is not being reached. Why?
Do my rules override the automatic build's own preferences?
Salary — the cap, the floor, and why lineups leave money unspent
The site's cap is always enforced; Min and Max salary used are yours; leaving salary on the table is often deliberate.
- The site’s cap is a hard rule on every lineup, always. You cannot switch it off and the export cannot exceed it.
- Min salary used and Max salary used (Advanced settings under the build button) bound what every lineup spends. Leave them blank unless you have a reason. A minimum higher than the slate can reach fails the build with a message rather than being ignored; a maximum above the site’s cap is simply the cap.
- Why the build does not maximise spend. Points win contests, not dollars. The best 150 lineups on a slate often include some that leave a few hundred dollars unused because the cheaper player projects as well as the dearer one — and a portfolio that forces near-maximum spend on every lineup ends up with the same expensive core in all of them, which is the opposite of diversification.
Captain and MVP controls
The premium seat on DraftKings Showdown and FanDuel Single Game: locking it, capping it, and how it relates to overall exposure.
Single-game rosters have one special seat. DraftKings calls it the Captain (CPT); FanDuel calls it the MVP. The app always uses whichever word your site uses. On both sites that player scores 1.5× fantasy points and costs 1.5× salary.
The two exposures are different numbers
Overall exposure counts every lineup a player appears in, in any seat. Captain/MVP exposure counts only the lineups where he holds the premium seat. Captain appearances are part of overall exposure, not extra to it.
Reading the two numbers together
In 150 lineups, a player at 60% overall and 20% Captain appears in 90 lineups. In 30 of those 90 he is the Captain; in the other 60 he is in a FLEX seat. Set that way, the two rules produce three counts the optimizer honours separately: 90 overall, 30 Captain, 60 FLEX.
The one-line version people ask about
20% Captain in 100 lineups = 20 lineups in which he is Captain. Not 20 lineups total, and not 20% of the lineups he happens to be in.
Setting them
- Click the player’s name to open his panel.
- Lock at Captain / Lock at MVP puts him in the premium seat of every lineup. This is different from a plain Lock, which only guarantees he is somewhere in every lineup.
- Never Captain / Never MVP keeps him out of the premium seat while leaving him fully available at FLEX. There is also a No CPT / No MVP button directly in the player-pool row for this.
- Under Captain exposure (or MVP exposure) set at least, at most or exactly, in percent or lineups, exactly as you would for overall exposure. FLEX exposure — rostered but not in the premium seat — has its own row if you want to control that directly.
- Press Set exposure to apply.
Two players cannot both be locked at Captain. There is one premium seat per lineup, so “A is Captain in every lineup” and “B is Captain in every lineup” are contradictory. The build refuses and names both players. If you want to split the seat between them, give each a Captain exposure instead — for example 50% and 50%.
Why is my Captain exposure spread across so many players?
Does the Captain's 1.5x salary come out of the same cap?
Are two lineups with the same six players but different Captains duplicates?
Stacking
Correlated lineups: QB+1, QB+2, QB+3, bring-backs, and how stack rules interact with exposure rules.
A stack is a group of players whose scoring is connected. The classic one is a quarterback with his own pass catchers: when the quarterback throws a touchdown, one of his receivers caught it. One real play, points in two roster spots.
| Name | What it is |
|---|---|
| Stack 1 (QB+1) | A quarterback plus one pass catcher from his own team |
| Stack 2 (QB+2) | A quarterback plus two of his own pass catchers |
| Stack 3 (QB+3) | A quarterback plus three of his own pass catchers |
| Bring-back | A stacked quarterback plus at least one skill player from the opposing team — you are betting on the shootout, not just on one offence |
| Naked QB | A quarterback with none of his own pass catchers. Not illegal, just uncorrelated — the Stacks tab counts these so you can see them |
Why correlation matters in tournaments
In a large field you are not trying to score well on average, you are trying to finish first. Correlated lineups have fatter tails: when the game you stacked goes the way you bet, several of your roster spots go off together and the lineup lands near the top rather than merely above average. The cost is the other side of the same coin — when that game is a dud, more of your lineup is dead at once. That trade is the point, and it is why stacking is standard in tournaments and much less common in cash games.
The Stacking section
Right under the player pool. Pick QB + 1 pass catcher, QB + 2 pass catchers, QB + pass catcher + bring-back or Custom (smallest and largest stack, bring-back, one team), then the share of builds. On a single game the choices are the single-game ones — QB + same-team pass catcher, QB MVP + 2 pass catchers, the offense you expect to lead, and MVP rotation (the strongest core with one lineup per MVP that has a real ceiling). Anything Gus sets appears here too, marked set by Gus. After the build, the Stacks tab of Portfolio Review shows each rule next to what you got. Martian Flow pairs quarterbacks with their receivers on its own even with nothing set; these controls are for requiring more.
Every other stack rule
- Open Advanced rules under the player pool and press Add a stack quota… — or tick two or more players in the pool and choose Stack… from the bar that appears.
- Choose the kind of rule:
Any team’s shape — a portfolio-wide requirement like “QB plus 2 pass catchers and 1 bring-back, in at least 40% of lineups”. Any team qualifies.
These exact players — the selected players appear together, in a number of lineups you choose.
QB + some of these — whenever the chosen quarterback is rostered, the lineup also takes a set number from a pool of players you picked. Which ones varies lineup to lineup. - For a shape rule, set QB plus N pass catchers (0 to 5) and M bring-back (0 to 3), then at least / at most / exactly and a number, in percent or lineups. Ticking only stacks built around this player narrows a shape rule to one specific quarterback.
A stack quota counts lineups, not stacks. A lineup containing two qualifying stacks still counts once. So “at least 60 lineups” means 60 lineups have the shape, never “60 stacks spread over fewer lineups”.
How stack rules interact with exposure rules
- They stack up, and they can conflict. “80 lineups must be built around this quarterback” combined with “that quarterback at most 40 lineups” is impossible, and is caught before building.
- A stack requirement lifts the organic exposure ceiling for the players it needs. If a rule of yours forces a player into a lineup, that is concentration you asked for and it is honoured — the one-third ceiling only ever applied to players no rule of yours names.
- Repetition your rules require is never counted against you. The Diversity tab separates “repetition you asked for” from “repetition no rule explains” for exactly this reason.
Is a three-player stack supported?
Does the automatic build stack without me asking?
Exposure — the number people ask about most
What exposure means, why the automatic build caps itself around a third, and why not every good player can be at 30%.
Exposure is simply how many of your lineups contain a player, usually shown as a percentage. If a receiver is in 15 of your 150 lineups, his exposure is 10%. 50 of 150 is 33%. 150 of 150 is 100%, which is what a Lock does.
The organic ceiling: about one-third
On Classic slates, Balanced and Just Pick For Me will not organically put a player you have not ruled on into more than one third of your lineups — 50 of 150, 33 of 100, 6 of 20. Not “usually”, and not as a soft preference. It is a ceiling, and it exists because a portfolio that pours one player into 90% of its lineups is not a portfolio: it is one bet with 150 receipts, and it loses in exactly the way a portfolio is supposed to protect you from.
The ceiling is on the software, not on you. It applies only to players no rule of yours names. If you want someone in 120 of 150 lineups, set a minimum or an exact exposure and you will get exactly that. The cap is a limit on the optimizer’s own enthusiasm, never on your instructions.
Conservative deliberately sits above this — riding your best plays hard is that strategy’s whole identity and you choose it by name — and Aggressive deliberately sits below it.
Why single game is different
A single-game slate has one game in it. Six roster seats must be filled from two teams, so there are only so many players available, and high overall exposure is sometimes simply arithmetic rather than a preference. The build still aims for a third. When the usable pool genuinely cannot support that — there are not enough quality players to fill six seats per lineup with nobody above a third — it raises the cap to the lowest value that is actually achievable, and says so in the build notes. It never removes the cap. “We could not do a third” is never allowed to become “anything goes”.
Why a third is not always possible
150 single-game lineups need 900 filled roster seats. If no player may exceed a third (50 lineups), then filling 900 seats needs at least 18 different players carrying a full share each. On a slate where positional and salary realities cut the genuinely playable set to twelve or thirteen, 13 × 50 = 650 seats cannot fill 900. Something has to give, and the honest thing to give is the cap — by the smallest amount that works, stated openly.
Why not every good player can be at 30%
Because a lineup has a fixed number of seats. In 150 DraftKings Classic lineups there are 1,350 roster spots in total, and only 150 of them are quarterback seats. If you want ten quarterbacks in your portfolio they average 15% each, and no amount of liking all ten changes that. The same arithmetic applies at every position. Exposure is a budget, and the budget is set by the roster, not by the optimizer’s opinion.
The low-exposure tail
A large automatic build will show a long tail of players at 1–3%. That is intended. In 150 lineups, one lineup is two-thirds of one percent of your portfolio — a cheap shot at a big outcome that costs almost nothing and pays enormously if it lands. A portfolio with no tail at all has quietly become 150 versions of the same opinion.
An intentional dart versus random junk
| An intentional dart | Random junk |
|---|---|
| Cheap, with real ceiling or genuinely low expected ownership | Neither cheap enough to matter nor high enough upside to justify the seat |
| Appears in a small, deliberate number of lineups | Appears once because something had to fill the slot |
| Clears the same quality bar as everything else in the portfolio | Would not clear it — and so is not built |
The build charges itself for token exposure that has no justification, so a player with no price advantage, no ceiling and no leverage does not get a free single appearance. But it never adds a blanket minimum exposure to make the numbers look tidy: a player worth rostering gets a cluster, and one who is not gets zero.
If you strongly disagree with the exposures you got, say so with a rule. That is not a workaround, it is the intended workflow. A maximum on someone you distrust and a minimum on someone you love will be honoured to the lineup, and the rest of the portfolio will be rebuilt around them.
Why is a player above the ceiling I just read about?
Pair exposure: how often two players appear together
Exposure on a single player says nothing about who he appears with. Two backs from the same team can each sit at 40% and still never share a lineup, because the build had no reason to construct one that way and nothing asked it to. Pair exposure is where you ask. Under Advanced rules, pick two players and choose Never together, At most, At least or Exactly, then a percentage.
The percentage is a share of your whole portfolio, not of either player’s own lineups. On 147 lineups, “at least 5%” and “at most 12%” together mean between 8 and 17 lineups contain both of them — a minimum always rounds up and a maximum always rounds down, and the control shows you the whole number beside the percentage before you save it.
A pair rule outranks the optimizer’s own opinion of the combination. If the construction mathematics dislikes two players together and you require them in 5% of lineups, the build produces the best lineups it can find that contain both. The rule is checked again on the finished portfolio, and Portfolio Review shows what you asked for beside what you got.
What happens if a pair rule cannot be satisfied?
How do I see the exposures I actually got?
Projections, ownership, value and Sleeper Score
Every column in the player pool: where the number comes from and what it does not claim.
Some of these numbers come from the file you imported. Others are calculated here. The difference matters, so it is stated for each one, and nothing on this screen is ever invented to fill a gap — a missing number shows as —, not as a guess.
| Column | Where it comes from | What it means |
|---|---|---|
| Salary | The site's own file | What the player costs. This is fact, not an estimate. |
| Proj | Martian Flow, or your own upload | The expected fantasy points for this player. Martian Flow projections come from public NFL statistics and the game environment; upload your own file to use your numbers instead. |
| Ceiling | Imported (optional) | A strong outcome for this player, not his maximum. Used to judge tournament upside. If your file has no ceiling for some players, the ceiling is dropped for everyone rather than applied unevenly. |
| Floor | Imported (optional) | A poor-but-plausible outcome. The safety side of the same range. |
| Own % | Imported (optional), and you can override it | The share of the field expected to roster this player. An estimate about other people's behaviour, never a fact — which is why your own number wins when you set one. |
| Value | Calculated here | Projected points per $1,000 of salary. Purely arithmetic: projection divided by salary, times 1,000. Useful for spotting price, not for ranking players. |
| Sleeper | Calculated here | The Sleeper Score — see below. Only appears once Sleeper Finder has run. |
Where do Martian Flow projections come from?
Sleeper Score
The Sleeper Score measures leverage: how much more the lineup mathematics wants a player than the field is expected to. It is not a ranking of who is best. A superb, universally-rostered player can score low simply because everybody already has him.
It is a weighted sum of named components, and clicking any score opens the full breakdown with each component, its weight and its raw figures, so you can recompute it by hand if you want to. There is no black box and no “our model likes him”. Quality is established first, from evidence unrelated to ownership — low ownership only counts in a player’s favour after he has cleared that bar, so a bad player never becomes a sleeper by being unpopular.
Projections are a starting point, not a promise. The quality of a build also depends on the rules you set and on any numbers you bring yourself.
How do I add or replace projections and ownership?
Can I override one player's ownership without editing my file?
What happens to a player with no projection?
Ownership — an estimate of the field, not a fact
What projected ownership is, where it comes from, why it is never a known number, and how the build uses it.
Projection is an estimate of how many fantasy points a player scores. Ownership is an estimate of how much of the contest field will roster him. They are different questions, and a player can be high on one and low on the other — that gap is what tournament players call leverage.
- Where it comes from. The ownership column of a file you upload. Martian Flow does not estimate ownership for you; without an upload the ownership column stays blank and leverage views stay off.
- How the build uses it. Relatively: to prefer under-owned players of similar projection and to keep a portfolio from being a copy of the field. A number that ranks players roughly right is useful even when its level is off, which is why an estimate is shown at all.
- What it is not. Nobody knows the field’s ownership before lock, including us. Do not read an ownership figure as a fact, and do not read a low figure as a recommendation — it is one input among several.
- Your override wins. Set a player’s ownership yourself in his detail panel and every part of the build uses your number; the original figure is kept beside it so you can go back.
Injury status
What Q, D, O, IR and NA mean here, which players are excluded automatically, and the one thing you must still do yourself.
Injury designations come straight from the player list you imported. Nothing is scraped, guessed or filled in — where the file carries no status, no badge is shown.
| Badge | Means | Used in your lineups? |
|---|---|---|
| Q | Questionable — may play | Yes. The call is yours. |
| D | Doubtful — unlikely to play | Not on his own. Held out of automatic builds; lock him or set a minimum to use him. |
| O | Out — will not play | No. Excluded automatically. |
| IR | Injured reserve | No. Excluded automatically. |
| NA | Inactive / not available | No. Excluded automatically. |
| (no badge) | Active, or the file carried no status | Yes. |
Hover any badge to see the full word, plus the body-part detail where your file carries one — FanDuel player lists include an injury-details column, DraftKings salary files do not, so you will see detail on FanDuel slates and usually not on DraftKings ones. Opening a player’s panel shows the same detail inline next to his name.
Doubtful is not Out. They are kept apart deliberately. Doubtful means unlikely to play; Out means the team has ruled him out. A doubtful player is not ruled out, so a rule of yours can still use him — but the optimizer will not put “unlikely to play” into your lineups on its own, and every build says who it held out and which Questionable players it kept.
Check the news before contest lock. Injury badges are as fresh as the slate’s player list; there is no live injury feed in Martian Flow. NFL inactives land about 90 minutes before kickoff, well after most people build — a lineup that was perfect this morning can contain an inactive player by kickoff. Check the site before you submit.
A badge looks wrong. What now?
Can I use a Questionable player anyway?
DraftKings vs FanDuel
The differences that actually change your lineups, as this product implements them.
| DraftKings | FanDuel | |
|---|---|---|
| Classic salary cap | $50,000 | $60,000 |
| Classic roster | 9: QB, RB, RB, WR, WR, WR, TE, FLEX, DST | 9: QB, RB, RB, WR, WR, WR, TE, FLEX, D |
| FLEX eligibility | RB, WR or TE | RB, WR or TE |
| Team spread required | At least 2 different teams, from at least 2 different games | At least 3 different teams |
| Maximum from one team | No limit | At most 4 offensive players from any one team |
| Defence is called | DST | D in the player list, DEF in the upload file |
| Single-game name | Showdown | Single Game |
| Premium seat | Captain (CPT) | MVP |
| Premium multipliers | 1.5x points and 1.5x salary | 1.5x points and 1.5x salary |
| Single-game cap | $50,000 | $60,000 |
The consequences worth knowing: FanDuel’s higher cap and 4-per-team limit make heavy single-team stacks harder to fit, and its three-team minimum rules out two-game lineups entirely. DraftKings’ two-game minimum is the looser constraint, so DraftKings Classic portfolios can concentrate on fewer games.
Both single-game formats now price the premium seat at 1.5x salary as well as 1.5x points. FanDuel’s MVP used to cost normal salary; it does not any more, and building to the old rule would produce lineups the site rejects as over the cap.
Do you handle each site's scoring rules?
Can I use one set of projections for both sites?
Classic vs Single Game
Why single-game portfolios look so much more concentrated, and what to look at instead.
| Classic / Main Slate | Single Game | |
|---|---|---|
| Games | The whole slate — often a dozen | Exactly one |
| Roster | 9 players in fixed position slots | 6 players: one premium seat plus five FLEX |
| Position rules | QB, RB, WR, TE and defence each have their own seats | Every position is eligible for every seat, including kickers and defences |
| Players to choose from | Hundreds | Roughly 60 to 130, of whom far fewer are genuinely playable |
| Where lineups differentiate | Player selection and stack shape | Mostly the Captain/MVP choice |
| Typical top exposure | Up to about a third under the automatic build | Meaningfully higher — see below |
Why single game concentrates more
It is arithmetic, not a change of philosophy. Six seats × 150 lineups is 900 roster spots to fill from one game’s worth of players. When only a dozen or so are genuinely worth rostering, each of them has to carry a large share of those 900 spots — there is nowhere else for the seats to go. An elite player at 50–65% overall exposure in a single-game portfolio can be entirely correct, while the same figure on a Classic slate would be a red flag.
So on a single-game slate, judge the portfolio by the Captain/MVP spread rather than by overall exposure. That is the seat that actually differentiates your lineups, and it is where the build spends its diversification effort.
Should I build fewer lineups for single game?
Getting a slate in, and getting your lineups out
Which files to download from the site, how to import them, how to export, and what the errors mean.
Getting a slate in
If the slate you want is already listed under Pick a slate, you are done — select it and carry on. Otherwise you can bring one in yourself from the site’s own export.
DraftKings
- Open the contest you intend to enter on DraftKings and go to the draft screen.
- Download the salaries file — it is usually offered as
DKSalaries.csv. Take it from the same contest type you are building for: a Showdown file and a Classic file are different shapes. - In Pick a slate, open Don’t see your slate? and choose the file. The site and contest format are detected from the file’s own columns.
FanDuel
- Open the contest on FanDuel and go to the entry screen.
- Download the players list — the file is named something like
FanDuel-NFL-…-players-list.csv. - Import it the same way. Single Game and Main Slate lists are told apart automatically.
A player list gives us names, teams, positions, salaries and injury statuses. Published slates come with Martian Flow projections attached. For a slate you import yourself, upload projections under Upload your own projections or ownership in the player pool before building; the Build button says so until you do.
Step-by-step per site and format: DraftKings Classic, DraftKings Showdown, FanDuel Main Slate, FanDuel Single Game. The whole loop in one place: Start here.
Getting your lineups out
- Press Download CSV at the top of your results. The file is written in your site’s own upload format, including the Captain or MVP column on single-game slates.
- Go to the site’s entry page for the contest and use its bulk-upload or edit-entries tool.
- Upload the file. Check the entry count matches what you expected before you confirm.
Export the format you built. A DraftKings file will not upload to FanDuel and a Classic file will not upload to a Showdown contest. The download always matches the slate you built on, so the mistake to avoid is building on the wrong slate in the first place.
What the import messages mean
| Message | What happened | What to do |
|---|---|---|
| Rows rejected | Some rows could not be read as players — usually blank lines, headers repeated mid-file, or a spreadsheet's own summary rows | Usually harmless if the player count looks right. If a lot were rejected, re-download rather than re-saving through a spreadsheet |
| This file does not look like a DraftKings or FanDuel player list | The columns did not match either site's layout | Check you downloaded the player/salary list and not an entries file, a results export or a contest list |
| Ambiguous match — not applied | A projections row matched two different players by name | Add a team column to your projections file; the ambiguous rows are listed so you can see which |
| Unmatched rows | Projection rows whose player is not on this slate | Normal when your projections cover the whole week and the slate does not. Only worry if the matched count is low |
I imported the wrong contest format. How do I fix it?
Does my uploaded file go anywhere else?
DraftKings Classic — file in, lineups out
The DKSalaries.csv in, the site's entries-format CSV out, and back to DraftKings.
| Step | What you do | Where |
|---|---|---|
| 1. Get the site's file | From the contest’s draft screen, download the salaries CSV (usually DKSalaries.csv). Any Classic (main slate) contest on that slate uses the same file. | DraftKings |
| 2. Upload it here | Pick a slate → Import a player list from the site. Site and format are read from the file; a wrong-format file is refused with a message naming what was expected. | Martian Flow |
| 3. Add projections | Add projections or ownership (your CSV). Without projections the Build button explains why it is disabled. | Martian Flow |
| 4. Build and review | Set rules if you want them, choose the lineup count, Build, read the results. | Martian Flow |
| 5. Download CSV | Top of the results. The file carries the site’s own entry columns (Entry ID, Contest Name, Contest ID, Entry Fee) left blank, then QB, RB, RB, WR, WR, WR, TE, FLEX, DST with DraftKings’ numeric player ids — the layout DraftKings’ own upload template uses, verified against a real download. | Martian Flow |
| 6. Upload on the site | Open the contest on DraftKings and use its lineup upload / import function for that contest with the file you just downloaded. We do not reproduce the site’s exact button names here because they change; the function is the one that accepts a CSV of lineups. | DraftKings |
| 7. Review before submitting | Check the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day. | DraftKings |
| Editing entries you already hold | DraftKings’ edit workflow keys each row to an Entry ID. That is a different download (the entries file from your existing entries) and is not what the plain Download CSV produces; use it to create entries, not to edit them. | Note |
DraftKings Showdown (Single Game) — file in, lineups out
The Showdown salaries file in, a CPT + FLEX CSV out, and back to DraftKings.
Availability. DraftKings Showdown is offered only where it appears under DraftKings in the format selector. At launch it is switched off until a current Showdown salaries file has been checked end to end; a Showdown file uploaded before then is refused with a message saying so. DraftKings Classic, FanDuel Classic and FanDuel Single Game are on.
| Step | What you do | Where |
|---|---|---|
| 1. Get the site's file | From the Showdown contest’s draft screen, download its salaries CSV. A Showdown file lists every player twice (a Captain row and a FLEX row, different ids) — that is normal and how we tell it apart from a Classic file. | DraftKings |
| 2. Upload it here | Pick a slate → Import a player list from the site. Site and format are read from the file; a wrong-format file is refused with a message naming what was expected. | Martian Flow |
| 3. Add projections | Add projections or ownership (your CSV). Without projections the Build button explains why it is disabled. | Martian Flow |
| 4. Build and review | Set rules if you want them, choose the lineup count, Build, read the results. | Martian Flow |
| 5. Download CSV | Top of the results. Columns are the entry fields (blank), then CPT and five FLEX. The CPT cell carries the player’s Captain id and the FLEX cells the FLEX ids, exactly as DraftKings issues them, verified against a real Showdown entries file. | Martian Flow |
| 6. Upload on the site | Open the contest on DraftKings and use its lineup upload / import function for that contest with the file you just downloaded. We do not reproduce the site’s exact button names here because they change; the function is the one that accepts a CSV of lineups. | DraftKings |
| 7. Review before submitting | Check the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day. | DraftKings |
FanDuel Main Slate — file in, lineups out
The FanDuel players list in, the lineup-upload template layout out, and back to FanDuel.
| Step | What you do | Where |
|---|---|---|
| 1. Get the site's file | From the contest’s entry screen, download the players list (named like FanDuel-NFL-2026-09-13-…-players-list.csv). | FanDuel |
| 2. Upload it here | Pick a slate → Import a player list from the site. Site and format are read from the file; a wrong-format file is refused with a message naming what was expected. | Martian Flow |
| 3. Add projections | Add projections or ownership (your CSV). Without projections the Build button explains why it is disabled. | Martian Flow |
| 4. Build and review | Set rules if you want them, choose the lineup count, Build, read the results. | Martian Flow |
| 5. Download CSV | Top of the results. Header is exactly QB, RB, RB, WR, WR, WR, TE, FLEX, DEF — FanDuel’s own lineup-upload template layout, no entry-id column — with FanDuel’s compound player ids, verified against the real template for the same slate. | Martian Flow |
| 6. Upload on the site | Open the contest on FanDuel and use its lineup upload / import function for that contest with the file you just downloaded. We do not reproduce the site’s exact button names here because they change; the function is the one that accepts a CSV of lineups. | FanDuel |
| 7. Review before submitting | Check the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day. | FanDuel |
FanDuel Single Game — file in, lineups out
The Single Game players list in, an MVP + FLEX CSV out, and what FanDuel's own template says about it.
| Step | What you do | Where |
|---|---|---|
| 1. Get the site's file | From the Single Game contest’s entry screen, download its players list. It carries an MVP 1.5x Salary column, which is how we recognise it. | FanDuel |
| 2. Upload it here | Pick a slate → Import a player list from the site. Site and format are read from the file; a wrong-format file is refused with a message naming what was expected. | Martian Flow |
| 3. Add projections | Add projections or ownership (your CSV). Without projections the Build button explains why it is disabled. | Martian Flow |
| 4. Build and review | Set rules if you want them, choose the lineup count, Build, read the results. | Martian Flow |
| 5. Download CSV | Top of the results. Columns are FanDuel’s entry fields (blank), then MVP - 1.5X Points and five AnyFLEX, verified against a real Single Game entries template. | Martian Flow |
| 6. Upload on the site | Open the contest on FanDuel and use its lineup upload / import function for that contest with the file you just downloaded. We do not reproduce the site’s exact button names here because they change; the function is the one that accepts a CSV of lineups. | FanDuel |
| 7. Review before submitting | Check the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day. | FanDuel |
| FanDuel's own rule | FanDuel’s Single Game template says it edits existing entries and cannot create new ones. Enter the contest on FanDuel first, then use the upload to set those entries’ lineups. The download tells you this too. | Note |
Reading your build results
Every number and tab on the results screen, and which ones are worth acting on.
The summary numbers
| Stat | What it is | How to read it |
|---|---|---|
| Lineups | How many lineups were built | Should equal what you asked for. It always does or the build fails |
| Avg salary | Average salary spent per lineup | Well under the cap across the whole portfolio is normal and often deliberate — leaving money unspent is a legitimate way to be different |
| Avg projection | Average projected points per lineup | Useful only against another build of the same slate. Comparing it across slates means nothing |
| Mean overlap | Shared players between two lineups picked at random | On a 9-player roster, 4 means two random lineups share about four players. Lower is more diverse |
| Max overlap | The most any two lineups share | In single game, all six with different Captains is fine; in Classic, all nine would be a duplicate and cannot happen |
| Players used | How many distinct players appear anywhere | A broad number here is what a tournament portfolio should look like |
| Captains/MVPs used | Distinct players who held the premium seat (single game only) | The single most useful diversity number on a single-game slate |
The tabs
- Lineups — every lineup with its salary, projection and total ownership. Click any player to see who could legally replace him in that lineup. Tick lineups to freeze them or rebuild just those.
- Exposure — every player used, with lineup count and percentage. Sortable. On single-game slates there is an extra column for the premium seat. This is the tab to check first.
- Stacks — how many lineups are stacked and in what shape (Stack 1 / 2 / 3+), how many have a bring-back, how many quarterbacks are running naked, and which players your stacks were built around.
- Diversity — how different your lineups are from one another, plus a split between repetition your rules require and repetition nothing explains.
The diversity numbers
| Stat | Meaning |
|---|---|
| Mean / max pairwise overlap | Shared players between lineups, on average and at worst |
| Mean unintended overlap | The same figure with the repetition your own rules require subtracted. This is the honest measure of whether the build is being lazy |
| Distinct players | How many different players appear anywhere in the portfolio |
| Top exposure | The most-used player's share |
| Concentration | 0 to 1. Near 0 means usage is spread evenly across many players; near 1 means a handful of players carry the portfolio |
| Duplicates | Always 0. Two identical lineups can never be returned |
Repetition you asked for is not a defect. If you locked three players, every lineup shares those three and the raw overlap goes up. That is you getting what you asked for, so it is listed separately under “repetition you asked for” and subtracted from the unintended figure.
Portfolio Review
Below your results, Portfolio Review opens on a Summary of what you got: requested against generated lineups, every player's exposure with the Captain/MVP and FLEX seats split out, which of your ceilings were reached, whether every floor, lock and exclusion was met, how many players any two lineups share, where the salary went, how the portfolio stacks, and anything unusual. The review knows which mode built the portfolio: a Custom Strategy build is measured against your own rules, and Conservative, Balanced and Aggressive are never mentioned as the reason for a frequency they did not set. The other tabs are an analytical comparison with a neutral, projection-only read of the slate — worth a look, never a verdict, and a player sitting below an at-most ceiling is never flagged for it. It only reports — it never changes your lineups.
My average salary is well below the cap. Is that a bug?
Can I change one player in one lineup?
Saved builds, comparing, and rebuilding
Keeping a portfolio, comparing two of them, and the difference between freezing and locking.
Saving and comparing
- After a successful build, find Saved builds below your results, name the build and press Save. Names like “Build A” or “Allen heavy” are the point — you are going to compare them.
- Change something — an exposure, a strategy, a seed — and build again. Save that one too.
- Pick the two in the Compare selectors and press Compare. You get the biggest exposure changes, plus game, stack and sleeper differences.
- Click any row in the comparison to see exactly which lineups it is talking about.
The other buttons
- Load puts a saved build back on screen exactly as it was stored. Nothing is rebuilt. Its settings, including its seed, go back into the build form so you can re-run them if you want.
- Download exports that saved build’s stored lineups, not whatever is currently on screen.
- Delete removes it permanently.
- New random build (in the panel above your results after a Just Pick For Me build) runs the same settings with a brand-new seed.
A loaded saved build is a record. You can look at it and download it, but you cannot rebuild or swap inside it — its rules were saved as descriptions rather than as live rules, and offering to re-optimize against rules that are no longer attached would be quietly running a different build from the one you asked for.
Freeze is not lock
These two sit near each other and mean unrelated things. Freezing a lineup keeps that lineup exactly as it is while you rebuild others; it says nothing about where those players appear elsewhere. Locking a player puts that player in every lineup; it says nothing about any lineup staying put.
How do I rebuild just some of my lineups?
Do saved builds expire?
How long a build takes
Why 150 lineups is not 150 small problems, what the progress messages mean, and the time limits.
Building 150 lineups is not 150 separate jobs. The whole set is balanced at once — exposures kept sensible across the portfolio, lineups kept genuinely different from one another, every rule of yours satisfied by the set rather than by each lineup individually. That coordination is the product, and it is what takes the time.
| What you asked for | Roughly how long |
|---|---|
| 1 to 20 lineups on any slate | Seconds |
| 150 lineups, single game | Usually well under a minute |
| 150 lineups, full Classic slate | One to three minutes |
While it runs, the button reports the stage it is in and how long it has been going — preparing the player pool, generating lineups, choosing the portfolio, applying your rules, improving it, validating, finishing. Those are real stages, reported as they happen; there is no fake percentage bar counting up to a number nobody knows.
The time limit
Ordinary builds are held to about three minutes. When that budget runs out, the optional improvement work stops and you are given the best complete, fully-validated portfolio found so far — and a message at the top of your results says that refinement was cut short. What the clock can never do is hand you something partial: it cannot skip validation, break a rule of yours, produce duplicate lineups, or return fewer lineups than you asked for. If no complete legal portfolio has been found at all, the build fails and says so rather than inventing one.
My build is taking longer than usual. Should I press Build again?
What makes a build slow?
Troubleshooting
The failures people actually hit, and what to change.
The build failed.
It says my rules conflict, but they look fine to me.
A player I want is not in the pool at all.
An injury badge looks wrong.
My CSV was rejected.
Why did my new random build change so much?
Why did my new build barely change?
Why isn't a player reaching my requested minimum?
Why is a player above the normal one-third ceiling?
Why does Single Game sometimes need more exposure than a third?
What happens if no legal portfolio exists at all?
It says the optimizer is busy, or my build is waiting for another build.
My results say refinement was cut short by the time budget. Is the portfolio bad?
The import says player ids are missing, or the export warns about ids.
I forgot my password.
Where do I contact support?
The page will not load, or looks out of date.
Account, subscription and billing
Trial, payment, cancelling, password, and partner codes.
- Your account menu is at the top right and shows your email and current subscription status.
- Free trial. Every new customer gets seven days free, with or without a partner code. A payment method is required up front; billing starts automatically when the trial ends unless you cancel first, and the menu shows the exact date. The trial is offered once per account.
- Payment is handled entirely on Stripe’s secure checkout page. Card details never touch this application.
- Cancelling is self-service: Cancel subscription in the account menu. Cancel before the trial ends and you are not charged.
- Changing your password is in the same menu. Doing so signs out every other device.
- Forgotten password: use Forgot password on the sign-in form.
- Partner and referral codes. If you arrived through a partner link or typed a code, the account menu shows which. Partners get a dashboard link in the same menu.
We never ask for your DraftKings or FanDuel credentials, and the product does not enter contests on your behalf. You download a file and upload it yourself.
Responsible play, and what this product does not claim
Plain statements about risk, predictions, ownership and affiliation.
- Daily fantasy sports involve risk. Contests can be lost, including every entry in a large portfolio, and past results do not predict future ones.
- Nothing in this product is a prediction of what will happen in a game. Projections are estimates built from statistics and game lines; ownership figures are estimates of the field; a portfolio is a set of bets shaped by those estimates and your rules.
- Martian Flow Fantasy Sports is a product of Martian Flow Technologies. It is not affiliated with, endorsed by or sponsored by DraftKings or FanDuel, and it never asks for your credentials on either site.
- Player statistics and game lines come from nflverse (nflverse.com), used under the CC-BY 4.0 licence.
- Only play where daily fantasy contests are legal for you, and only with money you can afford to lose. If play stops being fun, stop.
Glossary
The vocabulary, in one place.
| Term | Meaning |
|---|---|
| Projection | Expected fantasy points for a player: an AVERAGE, from Martian Flow's own model or your imported file. Because a few big games pull an average up, most players score a little under their projection and a few score far over it |
| Ceiling | A strong plausible outcome — the upside end of a player's range, not his maximum |
| Floor | A poor-but-plausible outcome — the downside end of the same range |
| Value | Projected points per $1,000 of salary. Pure arithmetic |
| Ownership | The share of the field expected to roster a player. An estimate about other people, not a fact |
| Chalk | A heavily-owned player. Popular, usually for good reasons |
| Leverage | Owning something the field does not, where you have a reason to believe it will pay |
| Sleeper | A player the mathematics wants noticeably more than the field is expected to |
| Sleeper Score | Our measure of that gap. A leverage rating, not a ranking of who is best |
| Dart | A cheap, high-upside player taken in a small number of lineups on purpose |
| Exposure | How many of your lineups contain a player, usually shown as a percentage |
| Overall exposure | Every lineup a player appears in, in any seat |
| Captain / MVP exposure | Only the lineups where he holds the premium seat |
| FLEX exposure | Rostered, but not in the premium seat |
| Correlation | Two players whose scoring moves together — a QB and his receiver, most obviously |
| Stack | A group of correlated players deliberately rostered together |
| Bring-back | A player from the opposing team added to a stack, betting on the shootout |
| Naked QB | A quarterback rostered with none of his own pass catchers |
| Captain (CPT) | DraftKings Showdown's premium seat: 1.5x points, 1.5x salary |
| MVP | FanDuel Single Game's premium seat. Same idea, different name |
| FLEX | A roster seat that accepts more than one position. On Classic, RB, WR or TE |
| DST / D / DEF | The team defence. DraftKings says DST; FanDuel says D in its player list and DEF in its upload file |
| Overlap | How many players two lineups share |
| Diversity | How different your lineups are from one another |
| Portfolio | All your lineups considered as one set, which is what the software actually optimizes |
| Seed | The number that fixes every random choice in a build. Same seed, same portfolio |
| Slate | The set of games a contest draws from |
| Lock | A player in every lineup |
| Exclude | A player in no lineups |
| Freeze | A lineup kept exactly as it is while others are rebuilt. Nothing to do with Lock |
| Batch lock | A designated block of lineups that each contain a group of players |
| Together rule | A group that appears together in a set number of lineups |
| Stack quota | A portfolio-wide requirement that a stack shape appears in N lineups |