Help Center

The manual. What every control does, what every number means, and what to do when something goes wrong.

Back to the lineup builder

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. (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.
  7. 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.
  8. 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?
Look at the Exposure tab and find the players you disagree with. That disagreement is the useful signal: turn it into a maximum, a minimum or an exclusion and build again. Most people's second build is better than their first not because the software changed, but because they told it something true about their opinion of the slate.
Do I have to set any rules at all?
No. Just Pick For Me exists precisely so the answer can be no. Rules are for the parts of the slate where you have a genuine opinion the software cannot know about — a late-news read, a player you refuse to roster, a stack you believe in.
What do the Advanced settings under the build button do?
Max shared players caps how many players any two lineups may have in common, which forces the portfolio to spread out; leave it blank unless you have a reason. Min salary used and Max salary used bound what every lineup spends — nothing forces near-maximum spend by default, and a floor above what the slate can reach fails the build with a message rather than being ignored. Seed is blank by default, which draws a fresh random seed each build; type the seed shown with an earlier result to rebuild it exactly.
What does the optimizer promise, and what does it not?
It promises that every lineup it returns is legal for the site and format, that every rule you set is honoured to the lineup, that no two lineups are duplicates, that the whole portfolio is re-checked independently before you see it, and that a build with a pinned seed can be reproduced exactly. It does not promise winnings or any particular result: the projections and ownership it works from are the numbers you imported, it has no live injury feed and no news, and a good portfolio is a good set of bets, not a certainty. Check late news before lock and use your own rules wherever you know something the file does 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

  1. Press Build again — with the seed left blank, that alone is enough.
  2. 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?
Two ordinary reasons. First, mathematics: on Classic slates the automatic build will not organically put an unruled player in more than a third of your lineups, however much it likes him — see Exposure. Second, spread: if it is buying several plausible versions of the slate, a player it likes in three of five versions lands near 60%, and one it likes in one version lands near 20%. If you disagree, say so with a minimum-exposure rule. That is what the control is for.
Why are there players in only one or two of my lineups?
Those are darts — cheap players with real upside or very low expected ownership, taken in a small number of lineups on purpose. In a 150-lineup tournament portfolio a 1-in-150 shot costs you almost nothing and pays enormously in the world where it hits. A long tail of these is intentional. What is not intentional is a player with no ceiling, no price advantage and no leverage appearing once for no reason, and the build actively discourages that. See the tail explained in Exposure.
My new build barely changed. Is the randomness broken?
Not necessarily. How much room the randomness has depends on the slate. A big Classic slate with hundreds of viable players gives it a lot of room, so two builds look genuinely different. A single-game slate with one usable game gives it very little: there are only so many legal six-player rosters worth building, so consecutive builds will share more. Small lineup counts also compress the difference — three lineups cannot differ in as many ways as 150 can.
When should I stop using Just Pick For Me?
When you know something it does not. Late injury news, a coaching change, a weather read, a strong personal opinion about a game script, or a contest structure you are targeting specifically. The right move then is usually not to abandon the automatic build — it is to keep it and add the two or three rules that encode what you know. See Player controls and the strategy article When to take control yourself.

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.

ConservativeBalancedAggressive
What it valuesProjection onlyProjection, with real weight on ceiling and on being different from the fieldCeiling and low ownership, weighted about equally with projection
Quality floor per lineupVery tight — lineups stay within a few percent of the best availableModerateLoosest of the three, but still a floor
Repeats its favouritesFreely — a top player can reach about 85% of your lineupsUp to about a third of your lineupsLeast of the three — deliberately spreads hardest
Typical useCash games, small fields, single-entryThe default. Large fields where you still want every lineup to stand upBig-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?
The moment you set any exposure percentage — Overall, Captain/MVP or FLEX, a floor, a ceiling or an exact figure — your numbers control how often players appear, and the strategies stand down: Conservative, Balanced and Aggressive no longer influence player frequency, so the optimizer never fights a percentage you typed. Overall exposure includes the Captain/MVP and FLEX seats; MVP and FLEX figures are subsets of it. An at-most is a ceiling, not a target; at-least and exactly are requirements. Locks, exclusions and Never Captain do not switch the mode on. Inside your limits the build still diversifies, and it picks the portfolio with quality-weighted randomness rather than simply the top N by projection. Clear every percentage and the build returns to Automatic mode.
A player was ruled out or made inactive after I built. What happens?
Martian Flow checks the public injury report and roster on a timer (every five minutes near kickoff) and again when you open a slate, build or export -- but those feeds do not carry game-day inactives. The reliable source for that is the site's own player list: download it again from FanDuel or DraftKings minutes before lock and drop it on 'Refresh availability' above the player pool. Nothing is republished; statuses update by the site's player id. The pool header shows when availability was last updated, an unavailable player reads 'INACTIVE -- confirmed for this game' or 'OUT -- source updated 7:02 PM ET', a build never uses him (a lock on him stops the build with his name), an export containing him is refused, and the results screen shows how many lineups are affected with a 'Rebuild affected lineups' button that keeps every other lineup and every rule.
Sleeper Finder has its own Conservative / Balanced / Aggressive buttons. Do they change my build?
No. That control is the Sleeper Finder lens: it changes only how Sleeper Finder ranks players (and which neutral view the Portfolio Review's analytical comparison uses). It never changes your lineup build, your chosen build strategy or your Custom Strategy exposures. The build strategy lives in Build settings.
Are the three strategies random like Just Pick For Me?
No. Conservative, Balanced and Aggressive are stable: the same slate, the same rules and the same seed give you the same portfolio every time. Just Pick For Me is the one that deliberately varies from build to build.
Which one does Just Pick For Me use?
The one you pick. Just Pick For Me requires a strategy — Conservative, Balanced or Aggressive — and anchors every automatic setting to it; the slate and the contest only fine-tune inside that philosophy. The panel above your results names your pick and the exact blend it produced.
Does a strategy ever refuse to build?
No. A strategy expresses preferences by making things expensive, not by forbidding them. Only a rule you typed can reject a lineup outright. If a build fails, the cause is a genuine conflict between your rules or a pool that cannot fill the roster — never the strategy being fussy.

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

  1. Find the player in the player-pool table.
  2. Press Lock in his Rules column to put him in every lineup, or Excl to keep him out of every lineup.
  3. 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.
  4. To undo either one, press the same button again.

Minimum, maximum and exact exposure

  1. Click the player’s name (or the set… button in his Exposure column) to open his panel on the right.
  2. Under Exposure → Overall, choose at least, at most or exactly.
  3. 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.
  4. Press Set exposure. Nothing is applied until you do; the panel says so while you have unsaved changes.

What each one means

RuleMeaningCan the optimizer go past it?
LockIn every lineupNo — it is every lineup, by definition
ExcludeIn no lineupsNo
At least (minimum)A floor. He appears in at least this many lineupsYes — upward. A minimum is not a target; if the build likes him more he goes higher
At most (maximum)A hard capNo
ExactlyThis many lineups, no more and no fewerNo, 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?
A minimum that cannot be reached is a conflict and fails the build with an explanation, so if the build succeeded the minimum was met — check the Exposure tab in lineups rather than percent, since your percentage was converted to a whole number of lineups (rounded up). If the build failed, the message names what blocked it: usually another rule, an excluded player the minimum needed, or too few legal lineups containing him at that salary.
Do my rules override the automatic build's own preferences?
Always, and exactly. Everything the optimizer prefers on its own is a preference that can be outbid. Everything you type is a constraint that cannot. That includes the one-third organic exposure ceiling: it applies only to players you have not ruled on.

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

  1. Click the player’s name to open his panel.
  2. 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.
  3. 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.
  4. 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.
  5. 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?
Because the premium seat is where single-game lineups actually differentiate. The same six players with a different Captain score very differently, so spreading the Captain seat is the main way a single-game portfolio covers more outcomes. If you want it concentrated, set a Captain exposure — that is your call to make and it will be honoured exactly.
Does the Captain's 1.5x salary come out of the same cap?
Yes. The premium seat is priced at 1.5x on both sites, and it comes out of the same salary cap as everything else — $50,000 on DraftKings, $60,000 on FanDuel. A $10,000 player consumes $15,000 in the premium seat, which is why an expensive Captain forces cheaper FLEX plays around him.
Are two lineups with the same six players but different Captains duplicates?
No. They cost different amounts and score differently, so they are two distinct legal lineups and you may genuinely want both. They are closely related, though, and the Diversity tab measures that — a portfolio built mostly of these is one roster wearing several hats, and we would rather tell you than flatter you.

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.

NameWhat 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-backA stacked quarterback plus at least one skill player from the opposing team — you are betting on the shootout, not just on one offence
Naked QBA 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

  1. 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.
  2. 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.
  3. 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?
Yes. The shape rule takes a quarterback plus up to five pass catchers, with Stack 1 / Stack 2 / Stack 3 offered as one-click presets, plus up to three bring-back players from the opposing team.
Does the automatic build stack without me asking?
Yes. Correlation is part of how it judges a lineup, so a Just Pick For Me or Balanced portfolio will contain stacks of various shapes without any rule from you. The Stacks tab shows exactly what it built. Add a rule when you want a particular mixture guaranteed rather than chosen.

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 dartRandom junk
Cheap, with real ceiling or genuinely low expected ownershipNeither cheap enough to matter nor high enough upside to justify the seat
Appears in a small, deliberate number of lineupsAppears once because something had to fill the slot
Clears the same quality bar as everything else in the portfolioWould 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?
Four legitimate reasons, in rough order of likelihood: a rule of yours puts him there (any lock, minimum, exact, batch, rotation or stack requirement exempts him entirely); you are on Conservative, which sits higher on purpose; you are on a single-game slate whose pool could not support a third, in which case the build notes say so explicitly; or he is a required part of a group rule you set on someone else. If none of those apply, that is a defect worth reporting.

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?
The build stops and names the rules that disagree, before it spends time searching — for example a minimum of 20% together against a 10% maximum on one of the two, or “never together” on two players your own minimums already force into the same lineups. Nothing is silently adjusted.
How do I see the exposures I actually got?
The Exposure tab under your results lists every player used, with the number of lineups and the percentage side by side, and a bar for quick scanning. Click the column headings to sort. On single-game slates there is an extra column for the Captain/MVP seat.

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.

ColumnWhere it comes fromWhat it means
SalaryThe site's own fileWhat the player costs. This is fact, not an estimate.
ProjMartian Flow, or your own uploadThe 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.
CeilingImported (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.
FloorImported (optional)A poor-but-plausible outcome. The safety side of the same range.
Own %Imported (optional), and you can override itThe 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.
ValueCalculated hereProjected points per $1,000 of salary. Purely arithmetic: projection divided by salary, times 1,000. Useful for spotting price, not for ranking players.
SleeperCalculated hereThe Sleeper Score — see below. Only appears once Sleeper Finder has run.
Where do Martian Flow projections come from?
Every published slate arrives with Martian Flow projections already attached, and the player pool shows when they were last updated. They are built from public NFL statistics and game lines (player statistics and lines from nflverse, CC-BY 4.0): recent usage, efficiency and the game environment, with a floor and ceiling from how players with a given projection have actually scored. Players without a supported active role — inactive, on reserve, on a practice squad, or with no realistic path to snaps — are left out of builds rather than given a made-up number. Your own projection file, uploaded in the player pool, replaces these numbers for you only. Ownership is projected for you: Martian Flow models what share of the field will roster each player, from this slate’s salaries, our projections and ceilings, player role, injury status and the game lines. It is a model of how fields behave, not a measurement of one, and it is labelled Martian Flow projected ownership wherever it appears. Supply your own ownership column and yours replaces it, player by player, labelled Customer supplied ownership. Where the model cannot defend a number, the cell reads unavailable rather than being filled in.

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?
Under the player pool, open Add projections or ownership and choose a CSV with a player name (ideally a team as well) plus any of projection, ceiling, floor and ownership. You get a report of how many rows matched. Ambiguous matches — two players whose names normalise the same — are reported and not applied, because applying the wrong player’s projection silently is worse than applying nothing.
Can I override one player's ownership without editing my file?
Yes. Open his panel and set your own ownership figure. It takes effect everywhere at once — Sleeper Finder, the leverage weighting and the build all read your number. The provider's original figure is kept alongside it, so nothing is destroyed.
What happens to a player with no projection?
He is left out of the optimization entirely — we cannot evaluate him, and inventing a number for him is exactly what this product refuses to do. If a rule of yours requires that player, the build stops before running and tells you to supply a projection for him.

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.

BadgeMeansUsed in your lineups?
QQuestionable — may playYes. The call is yours.
DDoubtful — unlikely to playNot on his own. Held out of automatic builds; lock him or set a minimum to use him.
OOut — will not playNo. Excluded automatically.
IRInjured reserveNo. Excluded automatically.
NAInactive / not availableNo. Excluded automatically.
(no badge)Active, or the file carried no statusYes.

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?
First check the file you imported: the badge is a direct translation of the status column in that file, so a stale download shows stale statuses. Re-download the player list from the site and import it again. If a freshly downloaded file disagrees with the badge shown, that is our bug — please report it with the file.
Can I use a Questionable player anyway?
Yes, and no rule stops you. If you want him out, exclude him; if you want him in regardless, lock him. If you would rather size him down than remove him, a maximum exposure is usually the better tool.

DraftKings vs FanDuel

The differences that actually change your lineups, as this product implements them.

DraftKingsFanDuel
Classic salary cap$50,000$60,000
Classic roster9: QB, RB, RB, WR, WR, WR, TE, FLEX, DST9: QB, RB, RB, WR, WR, WR, TE, FLEX, D
FLEX eligibilityRB, WR or TERB, WR or TE
Team spread requiredAt least 2 different teams, from at least 2 different gamesAt least 3 different teams
Maximum from one teamNo limitAt most 4 offensive players from any one team
Defence is calledDSTD in the player list, DEF in the upload file
Single-game nameShowdownSingle Game
Premium seatCaptain (CPT)MVP
Premium multipliers1.5x points and 1.5x salary1.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?
Scoring comes in through your projections — a projection for a DraftKings slate should already be a DraftKings-scoring projection. What the product implements per site is roster construction, salary caps, slot eligibility, team and game requirements, the premium-seat multipliers, and the exact upload file layout.
Can I use one set of projections for both sites?
You can import the same file, but be aware the two sites score differently (most obviously on receptions), so a projection built for one is approximate on the other. The salaries are always the site's own.

Classic vs Single Game

Why single-game portfolios look so much more concentrated, and what to look at instead.

Classic / Main SlateSingle Game
GamesThe whole slate — often a dozenExactly one
Roster9 players in fixed position slots6 players: one premium seat plus five FLEX
Position rulesQB, RB, WR, TE and defence each have their own seatsEvery position is eligible for every seat, including kickers and defences
Players to choose fromHundredsRoughly 60 to 130, of whom far fewer are genuinely playable
Where lineups differentiatePlayer selection and stack shapeMostly the Captain/MVP choice
Typical top exposureUp to about a third under the automatic buildMeaningfully 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?
Often, yes — though it depends on the contest you are entering rather than on the software. There are far fewer genuinely distinct six-player rosters worth building from one game than nine-player rosters from a full slate, so very large single-game portfolios inevitably repeat more.

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

  1. Open the contest you intend to enter on DraftKings and go to the draft screen.
  2. 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.
  3. 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

  1. Open the contest on FanDuel and go to the entry screen.
  2. Download the players list — the file is named something like FanDuel-NFL-…-players-list.csv.
  3. 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

  1. 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.
  2. Go to the site’s entry page for the contest and use its bulk-upload or edit-entries tool.
  3. 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

MessageWhat happenedWhat to do
Rows rejectedSome rows could not be read as players — usually blank lines, headers repeated mid-file, or a spreadsheet's own summary rowsUsually 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 listThe columns did not match either site's layoutCheck you downloaded the player/salary list and not an entries file, a results export or a contest list
Ambiguous match — not appliedA projections row matched two different players by nameAdd a team column to your projections file; the ambiguous rows are listed so you can see which
Unmatched rowsProjection rows whose player is not on this slateNormal 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?
Switch the site and format selectors back to what you meant, then import the correct file. The wrong slate stays in your list but you can simply not select it — importing never overwrites another slate, and nothing you have already built is affected.
Does my uploaded file go anywhere else?
No. It is stored against your account so that a slate you brought in is still there when you come back, and it is used for nothing else. We do not submit entries on your behalf, and we never ask for your DraftKings or FanDuel login.

DraftKings Classic — file in, lineups out

The DKSalaries.csv in, the site's entries-format CSV out, and back to DraftKings.

StepWhat you doWhere
1. Get the site's fileFrom 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 herePick 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 projectionsAdd projections or ownership (your CSV). Without projections the Build button explains why it is disabled.Martian Flow
4. Build and reviewSet rules if you want them, choose the lineup count, Build, read the results.Martian Flow
5. Download CSVTop 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 siteOpen 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 submittingCheck the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day.DraftKings
Editing entries you already holdDraftKings’ 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.

StepWhat you doWhere
1. Get the site's fileFrom 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 herePick 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 projectionsAdd projections or ownership (your CSV). Without projections the Build button explains why it is disabled.Martian Flow
4. Build and reviewSet rules if you want them, choose the lineup count, Build, read the results.Martian Flow
5. Download CSVTop 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 siteOpen 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 submittingCheck 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.

StepWhat you doWhere
1. Get the site's fileFrom the contest’s entry screen, download the players list (named like FanDuel-NFL-2026-09-13-…-players-list.csv).FanDuel
2. Upload it herePick 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 projectionsAdd projections or ownership (your CSV). Without projections the Build button explains why it is disabled.Martian Flow
4. Build and reviewSet rules if you want them, choose the lineup count, Build, read the results.Martian Flow
5. Download CSVTop 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 siteOpen 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 submittingCheck 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.

StepWhat you doWhere
1. Get the site's fileFrom 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 herePick 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 projectionsAdd projections or ownership (your CSV). Without projections the Build button explains why it is disabled.Martian Flow
4. Build and reviewSet rules if you want them, choose the lineup count, Build, read the results.Martian Flow
5. Download CSVTop 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 siteOpen 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 submittingCheck the entry count, spot-check lineups, and check injury news. The site’s status is authoritative on game day.FanDuel
FanDuel's own ruleFanDuel’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

StatWhat it isHow to read it
LineupsHow many lineups were builtShould equal what you asked for. It always does or the build fails
Avg salaryAverage salary spent per lineupWell under the cap across the whole portfolio is normal and often deliberate — leaving money unspent is a legitimate way to be different
Avg projectionAverage projected points per lineupUseful only against another build of the same slate. Comparing it across slates means nothing
Mean overlapShared players between two lineups picked at randomOn a 9-player roster, 4 means two random lineups share about four players. Lower is more diverse
Max overlapThe most any two lineups shareIn single game, all six with different Captains is fine; in Classic, all nine would be a duplicate and cannot happen
Players usedHow many distinct players appear anywhereA broad number here is what a tournament portfolio should look like
Captains/MVPs usedDistinct 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

StatMeaning
Mean / max pairwise overlapShared players between lineups, on average and at worst
Mean unintended overlapThe same figure with the repetition your own rules require subtracted. This is the honest measure of whether the build is being lazy
Distinct playersHow many different players appear anywhere in the portfolio
Top exposureThe most-used player's share
Concentration0 to 1. Near 0 means usage is spread evenly across many players; near 1 means a handful of players carry the portfolio
DuplicatesAlways 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?
No. Nothing forces near-maximum spend, and deliberately leaving a few hundred dollars unspent in some lineups is one of the cheapest ways to end up with a roster the field does not have. If you want a floor on spending, set Min salary used under Advanced settings.
Can I change one player in one lineup?
Yes. On the Lineups tab, click the player you want to replace. You are shown only the players who can legally take that seat, and the swap is re-validated against every rule before it is accepted — so a swap can be refused, and it will tell you why.

Saved builds, comparing, and rebuilding

Keeping a portfolio, comparing two of them, and the difference between freezing and locking.

Saving and comparing

  1. 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.
  2. Change something — an exposure, a strategy, a seed — and build again. Save that one too.
  3. Pick the two in the Compare selectors and press Compare. You get the biggest exposure changes, plus game, stack and sleeper differences.
  4. 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?
On the Lineups tab, tick the ones you want replaced and choose a direction — same, safer, more aggressive, or simply different. The rest of the portfolio is held fixed and the whole thing is re-solved around your selection, so portfolio-wide rules like exposures and overlap limits still hold afterwards.
Do saved builds expire?
No. They are stored against your account and outlive the session that made them. They are listed even before you build anything in a new session.

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 forRoughly how long
1 to 20 lineups on any slateSeconds
150 lineups, single gameUsually well under a minute
150 lineups, full Classic slateOne 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?
No — and the button disables itself while a build is running for that reason. A second press would queue a second build behind the first rather than speeding anything up. The stage message updates every couple of seconds; if it is moving, so is the build.
What makes a build slow?
Mostly the number of lineups and the size of the slate. A very large player pool and 150 lineups is the slow end. Tight rules also cost time, because there are fewer ways to satisfy them — a portfolio squeezed by many exact exposures takes longer than an unconstrained one.

Troubleshooting

The failures people actually hit, and what to change.

The build failed.
The message on screen names the cause. The three common ones are: your rules conflict (two requirements that cannot both be true — the message names both), the player pool cannot fill the roster (too many exclusions, or too few players with projections), or no legal lineup exists at your salary settings. Nothing partial is ever kept, so fixing the named rule and building again is always safe.
It says my rules conflict, but they look fine to me.
Read the two rules it names together rather than separately — conflicts are almost always a pair. The usual culprits: several players each required at a very high percentage in a position with one seat; a minimum on a player who is also excluded, or who is required by a group rule that excludes him elsewhere; minimums across a position that together need more seats than the roster has; a stack requirement in more lineups than the anchor’s own maximum allows. Open Advanced rules to see every active rule in one list.
A player I want is not in the pool at all.
Check, in order: is he marked Out, IR or inactive (those are excluded automatically); does he have a projection (players without one are left out, because we will not invent a number); is he actually on this slate (a Sunday-only slate does not contain Thursday or Monday players); and are your filters hiding him. Clearing the position and search filters at the top of the pool answers the last one immediately.
An injury badge looks wrong.
The badge comes straight from the status column in the slate's player list, so the first thing to check is how old that list is. For a slate you imported yourself, re-download the player list from the site and import it again. If a fresh list still disagrees with what you see, tell support.
My CSV was rejected.
Make sure it is the player list or salaries export, not an entries file, a contest list or a results download. Import the file as the site gave it to you — re-saving through a spreadsheet can change the delimiter or mangle the header row. And check the site and format selectors match the file you are giving it. See the import section for the exact files to download.
Why did my new random build change so much?
Because it is meant to. Just Pick For Me draws a new random seed every build and uses it to pick a different plausible reading of the slate. Neither portfolio is better; they are two bets on different versions of the same Sunday. If you want the same answer twice, pin the seed under Advanced settings. See Just Pick For Me.
Why did my new build barely change?
The randomness only has as much room as the slate gives it. One game, or a small number of lineups, or a heavily-ruled build where you have already decided most of it, all leave little for the seed to vary. On a big Classic slate with few rules, consecutive builds differ substantially.
Why isn't a player reaching my requested minimum?
If the build succeeded, he did reach it — check the Exposure tab in lineups rather than percent, because your percentage was converted to a whole number of lineups by rounding up. If the build failed, the message names what blocked the minimum. A minimum is never quietly missed.
Why is a player above the normal one-third ceiling?
Because a rule of yours put him there, or you are on Conservative (which sits higher deliberately), or you are on a single-game slate whose pool cannot support a third — in which case the build notes say so and give the number it used instead. See Exposure.
Why does Single Game sometimes need more exposure than a third?
Six roster seats per lineup, drawn from one game. When the genuinely playable pool is small, there are not enough different players to fill every seat while keeping everyone under a third. When that happens the cap is raised to the lowest number that actually works, and it is reported — it is never simply switched off.
What happens if no legal portfolio exists at all?
The build fails with an explanation. It does not return a shorter portfolio, an invalid one, or one that breaks a rule you set. That is the one guarantee everything else rests on: what appears on screen has passed an independent re-check of every constraint.
It says the optimizer is busy, or my build is waiting for another build.
Builds run one at a time per server core, so a second build waits its turn and the progress line says so, with your place in line. If the wait passes ten minutes the build stops with nothing changed — try again in a few minutes. It never means your request was wrong.
My results say refinement was cut short by the time budget. Is the portfolio bad?
No. Every lineup is legal, validated and honours every rule you set; what was skipped is optional polishing after a complete portfolio already existed. Building again with fewer lineups or fewer rules gives that polishing more room, but nothing about the portfolio you have is broken.
The import says player ids are missing, or the export warns about ids.
Our export uses the site's own player ids, which come from the file you imported. If you imported a file that is not the site's own export (a hand-made list, a spreadsheet re-saved with columns removed), the ids are not there to use. Re-download the salaries or players-list file from the site and import that.
I forgot my password.
Use Forgot password on the sign-in form. Where email delivery is set up you will get a single-use link that works for sixty minutes; where it is not, the form says so and tells you how to reach support, who can issue a link by hand.
Where do I contact support?
The support address is in the footer of every page. If it reads as not yet configured, this server has no support address set — that is a fact about the server, not something you did.
The page will not load, or looks out of date.
A hard refresh (Ctrl+Shift+R, or Cmd+Shift+R on a Mac) clears a cached page. If you see an error saying the service is unreachable, wait a moment and refresh — nothing you had saved is lost, because saved builds live on the server.

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.

TermMeaning
ProjectionExpected 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
CeilingA strong plausible outcome — the upside end of a player's range, not his maximum
FloorA poor-but-plausible outcome — the downside end of the same range
ValueProjected points per $1,000 of salary. Pure arithmetic
OwnershipThe share of the field expected to roster a player. An estimate about other people, not a fact
ChalkA heavily-owned player. Popular, usually for good reasons
LeverageOwning something the field does not, where you have a reason to believe it will pay
SleeperA player the mathematics wants noticeably more than the field is expected to
Sleeper ScoreOur measure of that gap. A leverage rating, not a ranking of who is best
DartA cheap, high-upside player taken in a small number of lineups on purpose
ExposureHow many of your lineups contain a player, usually shown as a percentage
Overall exposureEvery lineup a player appears in, in any seat
Captain / MVP exposureOnly the lineups where he holds the premium seat
FLEX exposureRostered, but not in the premium seat
CorrelationTwo players whose scoring moves together — a QB and his receiver, most obviously
StackA group of correlated players deliberately rostered together
Bring-backA player from the opposing team added to a stack, betting on the shootout
Naked QBA quarterback rostered with none of his own pass catchers
Captain (CPT)DraftKings Showdown's premium seat: 1.5x points, 1.5x salary
MVPFanDuel Single Game's premium seat. Same idea, different name
FLEXA roster seat that accepts more than one position. On Classic, RB, WR or TE
DST / D / DEFThe team defence. DraftKings says DST; FanDuel says D in its player list and DEF in its upload file
OverlapHow many players two lineups share
DiversityHow different your lineups are from one another
PortfolioAll your lineups considered as one set, which is what the software actually optimizes
SeedThe number that fixes every random choice in a build. Same seed, same portfolio
SlateThe set of games a contest draws from
LockA player in every lineup
ExcludeA player in no lineups
FreezeA lineup kept exactly as it is while others are rebuilt. Nothing to do with Lock
Batch lockA designated block of lineups that each contain a group of players
Together ruleA group that appears together in a set number of lineups
Stack quotaA portfolio-wide requirement that a stack shape appears in N lineups