How to use the builders — click by click

Every tool on the site, in the order you actually touch it, ending with a CSV that uploads to DraftKings. If you read one section, read Which "Rank by" to use.

Start here: there is really only one builder.

Lineup Builder handles every sport — MLB, PGA, MMA, NASCAR, WNBA, LoL — classic and showdown, on one page. Everything else in the menu is either a board (research, no lineups) or a shortcut into that same builder. If you are not sure where to go, go there.

On this page 1 · Lineup Builder — the full walkthrough 2 · Which "Rank by" to use for which contest 3 · Showdown Lab — single-game slates 4 · Hand-Builder & Late Swap 5 · The boards — Bomb, Fighter, Fight-Score 5b · Playbooks — how to apply one 6 · Getting the CSV into DraftKings 7 · When something looks wrong

1 · Lineup Builder builder

courtedge.net/lineup-builder — every sport, classic and showdown

Step 1 — Load the slate

Tonight's slate is already loaded when you open the page. The buttons across the top switch between slates when more than one is live (main, turbo, showdown, early). You only need + Upload CSV if you want to build off your own projections or a slate we do not carry — drop in a DraftKings salary export or a projection file with ownership and it parses either. The import report underneath tells you exactly how many rows came in, how many were dropped as OUT/IL, and whether anything is missing a salary or an ID.

Step 2 — Pick the contest. Do this before anything else.

The DK contest dropdown lists every contest we have loaded for that sport with its real payout ladder, read rung by rung off the DraftKings payout tab. Pick the one you are actually entering.

Selecting it sets, in one click: field size, entry fee, first prize, cash %, max entries per user, the full payout ladder, the build style, and the ranking metric. Everything downstream — ROI, win %, which lineups get chosen — is priced against that contest instead of a generic tournament shape.

Not in the list? Hit ✏️ Type in a contest myself and enter field size, entry fee and max entries. Then paste the contest's Payouts tab into the Exact payout ladder box and press Use these payouts. Each row needs a place and a prize — 1st  $50,000 or 500 - 1175  $30. With the real ladder the ROI is exact rather than modeled off first prize and cash rate. Saved custom contests stay in your dropdown.

Step 3 — Confirm the quick-build preset

The four buttons — 💵 Cash🎯 Single-Entry🎟️ 20-Max🚀 150-Max — set variance, ownership fade, exposure caps and stack rules as a group. Picking a contest in Step 2 already selects the right one. Only override it if you are deliberately playing a contest differently than its structure suggests.

Step 4 — Set how many to build

Lineups to build is the depth of the pool we simulate, not the number you enter. Build deep and enter your best: 500 built for a 150-max is normal, 150 built for a 150-max is not. The line underneath tells you what DraftKings will let you enter and how many the export will contain.

Step 5 — Fine-tune only if you have a read

Skipping all of this is fine. The defaults come from the contest's own ladder.

Step 6 — Build

The engine generates a deep candidate pool, runs a correlated Monte-Carlo simulation on every lineup (stacks boom and bust together, the way real baseball does), prices each result against the contest's actual payout ladder, applies your exposure caps, and returns them ranked. It takes 30–60 seconds and tells you which of the four stages it is in.

Step 7 — Read the cards, then export

Each lineup card shows expected ROI, chance to cash, chance to win, top-1% rate and expected duplicates. Change Rank by to re-sort instantly — no rebuild needed.

Export writes a DraftKings-format CSV containing the best N lineups where N is what this contest actually lets you enter. The rest stay on screen, ranked. Uploading 500 lineups to a single-entry contest is not a thing, so the export will not let you.

2 · Which "Rank by" to use for which contest

This is the question everybody asks. The short answer is that you do not have to choose — picking the contest in Step 2 now sets the metric off that contest's own payout ladder. The table is here so you know what it picked and why, and so you can override it on purpose.

ContestRank byWhy
Cash · Double-Up · 50/50🛡️ Chance to cashFlat ladder. You are paid for finishing above a line, not for finishing high. Nothing above that line pays more.
Satellite · Qualifier🛡️ Chance to cashEvery seat is worth the same. A seat is a seat — first place pays exactly what tenth pays.
Single-entry GPP💰 Expected ROIOne bullet against the whole ladder. ROI is the honest summary of a single entry's expected return.
Small-field GPP (3–20 max, first pays under ~110× the entry)💰 Expected ROIThe ladder is shallow enough that ROI is a stable read rather than a first-place lottery.
Top-heavy multi-entry GPP
first pays 110×+ the entry, field 400+
🎯 Top 1% finishWhere first pays hundreds of times the entry and cashing returns barely more than it, ROI becomes the noisiest column on the board. Top-1% is not.
150-max on a ceiling ladder🎯 Top 1% finishYou are buying the tail. Rank the set by how often it reaches the tail.

The other options, and when they earn their place

3 · Showdown Lab builder

courtedge.net/mlb-showdown-lab — single-game slates

  1. Open the lab for tonight's single game. Captain pricing (1.5×) and the flex slots are already applied.
  2. Pick your contest from the dropdown, or paste the payout ladder — showdown ladders are usually far more top-heavy than main-slate ladders of the same size, which is exactly why pasting it matters here.
  3. Set how many lineups to build. Showdown pools are small, so build wide.
  4. Lock or exclude captains you have a read on. Everything else fills around them.
  5. Build, then check the captain distribution across your set before exporting.

The main Lineup Builder also handles showdown slates. The Lab exists for the captain-specific views.

4 · Hand-Builder & Late Swap builder

courtedge.net/mlb-hand-builder

Hand-Builder is for when you already know part of the lineup. Click the players you want, slot by slot, and it fills the blanks with the best cap-legal completion. Use it when you have a read the model does not — a weather angle, a lineup-card leak, a stack you are committed to.

Late Swap is the one to remember. About 30 minutes before first pitch, check confirmed lineups and scratches. If somebody is out: upload your DraftKings entries CSV, it locks every player whose game has started and re-optimizes only the open slots, then you re-upload to DK. This saves more money over a season than most build settings do.

5 · The boards research

These do not build lineups. They rank players so you can form a read before you build.

Read a board, then take what you learned to the Lineup Builder as locks, excludes or exposure caps.

5b · Playbooks — and how to actually apply one

A Playbook is the written read for a slate: the stacks we like, the arms we trust, the chalk we are fading and why. It is the opinion. The builder is the machine. Most people read the playbook, nod, and then click Build without ever connecting the two — and get a set of lineups that has nothing to do with what they just read.

The five-minute version

  1. Open the playbook for tonight's slate from Today's Board, or the Playbook button next to the slate.
  2. Open the Lineup Builder in a second tab. You are going to move four things across.
  3. Pick your contest in the builder first — before touching anything the playbook told you. The contest decides how aggressively everything else should be applied. A read that is right for a 150-max is often wrong for a double-up.
  4. Move the cores across as locks. The playbook's cash core becomes locked players. Its leverage plays become players you raise exposure on rather than lock — a leverage play you lock into every lineup is no longer leverage, it is your new chalk.
  5. Move the fades across as excludes, or as a lowered max exposure if you only want to be underweight rather than out.
  6. Move the stack read into the stack panel. If the playbook says a team is the top stack, give that shape the larger share. Leave the rest for the optimizer.
  7. Build. Then read the cards against the playbook: if the top lineups do not contain the playbook's core, one of the two is wrong, and it is worth knowing which before you upload.

The part people get backwards. The playbook is a read on players. The contest is a read on how much risk that read should carry. Same playbook, same slate: in a double-up you take its safest core and stop; in a 150-max top-heavy GPP you take its leverage plays and its stack read and let the ownership rails do the rest. The playbook does not change. What you do with it does.

What NOT to do

6 · Getting the CSV into DraftKings

  1. Enter the contest on DraftKings first. Reserve your entries — any quick lineup works as a placeholder. You cannot upload into entries you do not hold.
  2. Go to DraftKings → Lineups → Bulk Lineup Edit (draftkings.com/lineup/upload).
  3. Upload the CourtEdge CSV. It is already in DK's format — each cell is Player Name (ID), which is what their importer expects.
  4. Confirm every row shows a full, valid lineup before you submit. If a row comes back empty, the salary file you built from was missing DK IDs — re-export from the current slate rather than an old file.
  5. Save your entries CSV. You will want it for Late Swap, and we grade ourselves against it later.

7 · When something looks wrong

What you seeWhat it means
"No usable players found"The CSV has no projection column, or every projection is zero. Check the import report — it names the columns it found.
Lineups leave $2,000+ of cap unspentYour Min unique or Max exposure is set tight enough that the engine cannot afford the pool. Loosen one.
Every lineup looks the sameMin unique is at 0 and exposure caps are off. On a 150-max, set Min unique to 2–3.
ROI looks implausibleYou are on a modeled curve, not a real ladder. Paste the contest's Payouts tab.
Ownership column is emptyThe slate file has no ownership. Leverage and duplicate estimates need it — use a projection export that includes it.

Questions, or something behaving differently than this page describes — tell us. A page that describes a tool that no longer works that way is worse than no page.