
NBA Lineup Optimizer: Build DFS Lineups From Your Salary CSV
Import. Set projections. Solve on your device.
Open the optimizer DFS toolsNo live injury or minutes enrichment. Supply current inputs before solving.
Build a constrained roster
21+ only. Availability depends on your state and the operator’s terms. No guaranteed results. Gambling problem? Call 1-800-MY-RESET (1-800-697-3738).
Your salary file stays here.
Recognized fields: ID, Name (or First Name + Last Name), Position, Salary, TeamAbbrev/Team, Projection/Projected Points and optional Status. Historical averages are not projections.
No file loaded.
PG · SG · SF · PF · C · G · F · UTIL. At least two teams. Verify settings against your contest.
| Player | Position | Salary | Projection | Status | Lock | Exclude |
|---|
Add a file or training slate to begin.
Import, review, then solve

Start with the salary file for the contest you intend to inspect. The importer searches for a header row containing Salary and a supported player-name field, which allows it to skip introductory rows in common exports. It accepts a full Name or a First Name and Last Name pair. Position values can contain multiple eligible basketball slots separated by slashes.
Every row needs a unique identifier or unique fallback name, a team, a positive salary and at least one recognized position. Duplicate players and malformed numeric values stop the import with an explanation. The tool does not silently drop an invalid player and proceed as if the pool were complete. Files are limited to two megabytes and one thousand player rows.
After import, review every supplied projection and status. A blank projection stays blank even if the file includes a historical average. Add a non-negative estimate before solving. The fictional training slate is clearly labeled and exists only to demonstrate the controls; its names, salaries and point values are not real player data or recommendations.
Choose the classic preset, then inspect the cap, team maximum and overlap limit. Locking a player requires that player to appear; excluding a player removes them. An Out player is removed from eligibility, so locking an Out player produces an explicit conflict. A pool can also be infeasible because no player is eligible for a required slot or because locked salaries exceed the budget.
Run the solver only after that review. It reports how many requested lineups it generated and allows cancellation. Each result lists its slot assignments, total salary and total supplied points. Changing an input clears the previous results so the page cannot leave an old roster looking current. Export downloads a review CSV on your device; it does not upload to an operator or enter a contest.
How the Optimizer Picks Players

The solver assigns eligible players to roster slots and maximizes the sum of the point estimates you supply. Each player can appear once, all slots must be filled, salary must fit under the cap and locked players must be included. Excluded and Out players are removed from the candidate set.
Classic presets provide a starting configuration for DraftKings and FanDuel-style slots. Verify the cap and team limits against the particular contest; special formats are not automatically detected. The output is a roster calculation, not a submitted contest entry.
Multiple outputs use overlap constraints so later rosters cannot repeat more players than the limit you choose. If the inputs cannot satisfy a requested lineup, the tool reports that fact rather than returning a partially filled roster.
Injury Status and Late Swaps

Status values come from your CSV or your own edits in this build. No live official injury feed is attached to uploaded players. An Out value excludes that player; missing status is unknown, not an assertion of health.
The tool does not know a contest’s live lock state and does not make late swaps for you. A saved result can become stale after a salary, eligibility, projection or availability change. Import and review the correct contest file before relying on a calculation.
Projected Minutes: Where They Come From
No automated projected-minutes model is running here. A salary file may contain a historical average, but that value is not interchangeable with a forecast for the upcoming matchup. The importer keeps supplied projections distinct from historical averages.
To solve a lineup, provide finite non-negative point estimates for the selected candidate pool. You can edit those inputs in the table. The objective total is the sum of your estimates; it is not a guarantee or a calibrated probability.
Privacy: Your File Stays in Your Browser
The file is read with the browser File API and passed to a local Web Worker. The solver code is served as a local asset. No upload endpoint, analytics event or third-party request sends the CSV rows away. Reloading the page clears the in-memory player list.
Export creates a local CSV download of the calculated slots, players, salaries and projections. It is a review file, not an operator-specific contest-entry upload, and it does not place an entry.
Your questions,
answered.

01Why does the tool say no feasible lineup?+
The salary cap, eligible positions, team limits, locks or overlap settings may conflict. An Out player cannot be locked, and a small pool may not cover all slots. The tool keeps the invalid result explicit instead of relaxing your constraints silently.
02Can I upload a file without projections?+
Yes, but solving requires you to add point estimates. Historical average points are not automatically used as a prediction. Enter the estimates in the table, then solve.
03Can I export twenty lineups?+
You can request up to twenty. The tool returns as many feasible distinct rosters as it can solve under the overlap settings and time limit, with a clear message if it stops early.
04Does the tool send data or enter contests?+
No. CSV processing and solving happen locally. Export downloads a review CSV. The site does not submit entries, accept payments or guarantee contest eligibility.
Read the timestamp.
Independent NBA-Lineups.com Data Desk. Sources and coverage dates are identified on this page.
This is a dated source snapshot. Automated live updates are not running in this preview.
Back to the game.
Explore the schedule, starting-lineup coverage and team pages. Keep the game date and source time in view when comparing information.
DFS tools