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.
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
Clear of Bo Nix by 4.1 projected points. The matchup agrees: A against C+.
Clear of Kenneth Walker III by 6.9 projected points. The matchup agrees: A against B.
Ahead of Kenneth Walker III by 2.9 points. C+ matchup at BUF.
Ahead of Drake London by 3.4 points. A matchup at PIT.
Ahead of Drake London by 2.6 points. B+ matchup at SF.
Ahead of Tucker Kraft by 2.3 points. The matchup agrees: B+ against B.
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
- 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.
- The result was then tested against 93 alternative lineups — every single substitution and every pair substitution between the lineup and the bench.
- A questionable tag trims a projection rather than zeroing it; an out or IR designation removes the player from consideration entirely.
- 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
- 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.
- Slots are filled most-restrictive-first — dedicated positions before flex, flex before superflex. This ordering is what makes the answer exact rather than approximate.
- 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.
- 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.
- 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”.
Resolve one call
When a slot is genuinely close, the start/sit assistant weighs the two candidates factor by factor.
Fix a thin position
Tiered waiver targets with FAAB guidance, for when the optimiser cannot fill a slot.
Plan past this week
Strength of schedule by position, so an add is judged on more than one matchup.







