Skip to main content

Fantasy tools

Lineup Optimizer

Set your league's slots, add your roster, and get the highest-projecting legal lineup — with the reason for every slot, a floor-to-ceiling range on every starter, and the number of alternative lineups checked to prove it.

Week
1
Roster limit
16 players
Pool
186 ranked

Build your lineup

League settings

Set the lineup your league actually uses. Superflex changes the calculus completely, so it is a first-class option rather than an afterthought.

Scoring
Starting spots7

Your roster

13/16
  • QBJosh Allen20.1
  • QBBo Nix16.0
  • RBBijan Robinson17.6
  • RBDe'Von Achane13.6
  • RBKenneth Walker III10.7
  • RBRico Dowdle9.0
  • WRJa'Marr Chase16.9
  • WRPuka Nacua16.1
  • WRDrake London13.5
  • WRJaxon Smith-Njigba15.6
  • WRKhalil Shakir8.0
  • TETrey McBride11.5
  • TETucker Kraft9.2

Optimal lineup

111.4 projected points

No other arrangement of this roster scores higher. Checked against 93 alternative lineups.

Floor
95.8
Ceiling
127.0
  1. QB
    Josh AllenQBA matchup grade

    vs MIA · QB1 · Bye 7

    20.1

    17.522.7

    Clear of Bo Nix by 4.1 projected points. The matchup agrees: A against C+.

  2. RB1
    Bijan RobinsonRBA matchup grade

    vs CAR · RB2 · Bye 11

    17.6

    15.220.0

    Clear of Kenneth Walker III by 6.9 projected points. The matchup agrees: A against B.

  3. RB2
    De'Von AchaneRBC+ matchup grade

    at BUF · RB7 · Bye 6

    13.6

    11.515.7

    Ahead of Kenneth Walker III by 2.9 points. C+ matchup at BUF.

  4. WR1
    Ja'Marr ChaseWRA matchup grade

    at PIT · WR1 · Bye 6

    16.9

    14.719.1

    Ahead of Drake London by 3.4 points. A matchup at PIT.

  5. WR2
    Puka NacuaWRB+ matchup grade

    at SF · WR2 · Bye 11

    16.1

    13.818.4

    Ahead of Drake London by 2.6 points. B+ matchup at SF.

  6. TE
    Trey McBrideTEB+ matchup grade

    vs SEA · TE1 · Bye 14

    11.5

    9.913.1

    Ahead of Tucker Kraft by 2.3 points. The matchup agrees: B+ against B.

  7. FLEX
    Jaxon Smith-NjigbaWRB matchup grade

    at ARI · WR3 · Bye 11

    15.6

    13.218.0

    Best flex-eligible player left, ahead of Drake London by 2.1. B matchup at ARI.

Bench

6 players
  • QBBo Nix16.0
  • WRDrake London13.5
  • RBKenneth Walker IIIQuestionable10.7
  • TETucker Kraft9.2
  • RBRico Dowdle9.0
  • WRKhalil Shakir8.0

Closest call: Drake London is 2.1 points short of the FLEX slot. That is the swap to revisit if the injury report moves.

How this lineup was chosen

  1. Dedicated slots are filled before the flex, because a dedicated slot is the more restrictive constraint. Taking the best flex-eligible player first can strand a position you are then forced to fill with a worse option.
  2. The result was then tested against 93 alternative lineups — every single substitution and every pair substitution between the lineup and the bench.
  3. A questionable tag trims a projection rather than zeroing it; an out or IR designation removes the player from consideration entirely.
  4. Ties break on matchup grade, then name, so the same roster always returns the same lineup.

About this result: the optimiser is real — it is exact for this slot structure and its result is checked against every single and paired substitution. What it optimises, though, is an illustrative local projection board, not a live or proprietary model. It also cannot see your league: no waiver context, no opponent, no playoff seeding.

Method

Why This Is An Optimiser And Not A Sort

Sorting your roster by projection and taking the top seven is not the same thing, and the difference shows up exactly when a flex slot is involved.

How it reached that answer

  1. Every rostered player is scored on the weekly board in your chosen format. A questionable tag trims the projection; an out or IR designation removes the player from consideration entirely.
  2. Slots are filled most-restrictive-first — dedicated positions before flex, flex before superflex. This ordering is what makes the answer exact rather than approximate.
  3. That ordering is provably optimal here because slot eligibility is laminar: any two slot types are either disjoint, like QB and RB, or fully nested, like RB inside FLEX inside SUPERFLEX.
  4. The result is then checked by exhaustive local search — every single substitution and every pair substitution between the lineup and the bench. The count of alternatives tested is reported with the result.
  5. Each slot reports the margin over the next eligible player, and flags the call as close when that margin falls under a point and a half.

What it does not do

  • Import your roster. Players are added by hand here, because no league connection exists in this build.
  • See your opponent, your record, or whether you should be chasing a ceiling rather than a floor. A one-point favourite and a fourteen-point underdog want different lineups, and this cannot tell the difference.
  • Handle kicker or defense slots — the demonstration pool carries only QB, RB, WR and TE, and inventing a kicker to fill a slot would be inventing data.
  • Guarantee the projections themselves. The optimisation is exact; what it optimises is an illustrative local board.

This initial build ships with demonstration data. Projections, rostered percentages and movement are illustrative and will be replaced when a live data provider and editorial backend are connected.

The failure a naive sort hits

Take a roster with two strong running backs, one tight end and a flex slot. Filling the flex first with the third-best player overall can consume the only tight end you own, leaving the dedicated tight end slot empty and forcing a zero. Filling dedicated slots first makes that impossible. It is a small structural point, and it is the whole reason the fill order in this tool is not simply “best available”.