Charles Schwab Challenge — Colonial preset loaded. Click Reload slate if Players still shows —.
Chalk/flyers, course history, and Sim Round 2 are below. Schwab sim guide
· Share link
Weekend test mode — no Cloudflare.
DataGolf panel uses a baked snapshot (not live API). Pool loads from slate JSON only.
Re-deploy to courtedge when the tournament week resumes.
PGA · DraftKings
PGA DK lineup builder
1 Load slate · 2 Set contest field (how many DK entries — drives leverage sim), pick profile, and set entry limit (1 / 3 / 20 / 150 / 1000+) ·
3Build GPP → Sim all & rank → Export best CSV.
Showdown:1 Preset Round 4 (CPT + 5 FLEX) · 2Reload slate (pool must show ~70 made cut) ·
3 Set field tier + entry limit · 4Build GPP set → Sim all & rank → Export best CSV.
R4 strategy guide →
Contest field ≠ entry limit: field size (Small ≤1K · Medium 1K–10K · Large 10K–100K) tunes chalk vs leverage scoring and portfolio diversity.
Entry limit is only how many unique 6-golfer lineups this lab generates for your DK upload (SE = 1, 3-max = 3, 20-max = 20, 150-max = 150, Moklovin = 1000+).
CourtEdge is not affiliated with DraftKings. Salaries and projections are yours (JSON or CSV paste); we do not scrape DK’s proprietary pricing. Heuristic numbers appear only when a player is missing from the slate file.
Players—
Event—
AM wave—
Salaries—
Course—
Conditions—
Last build—
Build—
Loading builder status…
FTN vs CourtEdge · R2 Showdown
Load Schwab R2 Showdown preset to compare projections.
Live round SG total (TOT) from RickRunGood — Sunday R4 showdown field leaderboard for subscriber builds.
R4 Captain · field vs leverage
Loading captain construction…
Most common CPT (field)
Pivot CPTs Rick boost
Example 2-2 builds
Moklovin · field vs you
Differentiation checklist
Elite build pattern · Moklovin 150-max
Load pattern preset — enforces chalk + salary-band shape during MME pool build and 100→100 filter.
Rick data: FTN slate + play board (RickRunGood paste not loaded — see docs).
Friday R2 Grades — click any golferLoading…
GPP tiers: A+ core · A/A- strong · B playable · C pivot · D fade. Opens profile + facts below.
Missed cut (post-R2)
C / D tiers (fades & pivots)
Start here
Build my lineups now
R3 Showdown today: Reload slate → Moklovin MME · 500 → top 150 (150-max) or Moklovin SE · 200 → Top 1% → #1 (SE GPP).
R3 plan: full write-up ·
core plays.
If 0 lineups, clear locks (max 4 core) and retry.
Flagship · 150-max
Milly Maker / biggest R2 GPP — build path
DraftKings may not label every PGA slate “Milly Maker” — for R2 Showdown, the equivalent is the
largest 150-max GPP (highest prize pool / entry count in the Showdown lobby). That is what this section targets.
Do not use the “1,500 pool” button here — that is tuned for smaller-dollar 150-max (medium field).
Preset:★ Schwab R2 — Captain + 5 FLEX (you are on it if you see this box).
Reload slate — wait for 50 golfers and salaries (not “—”).
150 max entries:Milly / flagship · 1,000 → top 150 — full MME upload CSV.
Review ranked table + Top 5% cards — CPT mix, $6k levers — then DK Upload Lineups.
Winning path: wave-correlated stacks (PM Ghim/Kim + $6k levers, or AM Coody/Im + Smith/Higgo) · 2+ sub-8% names per lineup · diversify CPT (not 100% Jaeger/Hoge).
Sim is a modeled large field, not last year’s exact DK player pool — still the right lab profile for flagship MME.
Schwab R2 Showdown → DraftKings (150-max)
Open preset ★ Schwab R2 — Captain + 5 FLEX (or use the link below) → Reload slate (50 golfers).
Click Moklovin MME · 1,000 → top 150 — builds pool, Monte Carlo ranks by ROI, auto-downloads CSV.
DraftKings: Lobby → your Showdown contest → Upload Lineups → choose the downloaded pga-schwab-r2-showdown-150.csv.
Confirm captain rows show Name (CPT) in column G — DK expects CPT first at 1.5× points/salary.
For one DK entry: builds 100 unique Showdown lineups, ranks by
DK field top-1% (set contest size above first), then shows ranks #1–#10 so you can load or export the one you want.
4-max / small contest? Use SE · 500 → Win% rank below instead. Large showdown GPP → this button.
SE — contest win% (your contest)
Builds 500 Showdown lineups fast, simulates finish 1st vs random sharp opponents in a
4-max (or any max entries). Ranks by contest win %, exports #1 DK CSV.
Set the DK contest you are entering (e.g. 4-max · $250/entry).
Contest max entries
Entry fee $
Field tier
Example: 4-max $250 → 3 opponents per sim · ~72 MC trials/lineup for speed.
Sharp builder styles (one-click)
Tuned for DFS Sheets / whistlesgoeswoo-style MME ($88 · $55 · $33 150-max), Nerdy Tenor-style single-entry,
and Moklovin-style large-field leverage. Inspired by public portfolio theory — not a copy of any one person’s exact lineups.
Whistles-style · $88 150-max
1,500 pool · medium field · 50% max exposure · strong own fade · spread field · lock core + $6k levers → top 150.
Nerdy Tenor · SE
500 pool · small field · contest win% rank · tight salary · one contrarian lever → #1 CSV for 4-max / SE GPP.
Moklovin · large field
Flagship MME / Milly-style 150-max · large field · ROI · fades chalk bombs · 1,000 → top 150 (use gold Milly box for steps).
After build: check Top 5% for CPT diversity and $6k–$7k levers before DK upload.
R3 Showdown · Moklovin builds
MME 150-max: Moklovin profile · 500 Showdown lineups (worker, chunked) → MC sim → ROI rank → auto-download top 150 CSV.
SE GPP:200 bullets → sim vs large field → rank DK top-1% (Win %) → auto-download #1 + top 10 board below.
Preset: ★ Schwab R3 — Captain + 5 FLEX → Reload slate first.
MME ~45–90 sec · SE 200 ~30–60 sec (worker, no tab freeze). MME CSV: pga-schwab-r3-showdown-150.csv.
Link: ?preset=showdown-r3-cpt
Advanced / legacy Showdown builds
R4 Showdown · tonight's builds
150-max: Moklovin profile · 1,000 six-flex lineups (worker) → MC sim → ROI rank → auto-download top 150 CSV.
SE GPP:200 bullets → sim vs your DK contest size → rank field top-1% → auto-download #1 + top 10 board.
Preset: Round 4 — six flex (no Captain) or CPT slate → Reload slate first (~75 made cut). Set field entries above (e.g. 200 for SE · 88K for flagship MME).
R4 SE subscriber board
Rick Run Good · Live R4
3 core locks + top 20 Rick live TOT focus pool + best putters (from play board JSON).
Rick Run Good live field
3 core SE locks
Chalk vs not
Chalk ≥12%
Flyers <8%
Fades
Best putters
Top 20 focus pool
Subscriber build recipe · 6 FLEX (no Captain)
Single entry (6 FLEX): 2 chalk ≥12% · 2 mid 5–15% · 1 lever <5% · 1 flex spot (Rick live SG or second lever) · $49k+ salary · cumulative own 55–110% · 2+ under 10% own.
150-max MME: Every lineup: 2–4 chalk ≥12% · 2–3 flex $5800–6600 · ≥1 sub-8% lever · cum own 48–92%.
Rule
SE
MME
Chalk ≥12%
2
2–4
Mid 5–15% own
2
1–3
Lever <8%
1+
1+
$6k flex band
0–2
2–3
Cum own
55–110%
48–92%
Must locks on play board: Eric Cole · Russell Henley · Zach Bauchou. Buttons below run Moklovin with these rules when contest profile = Moklovin.
Site needs a fresh deploy for tonight's slate.
Bundled data/pga-dk-slate-showdown-r4-cpt.json ships with the repo — if Players shows — after Reload, production is stale.
Morning: import DK Round 4 Showdown CSV (scripts/import-pga-dk-showdown-paste.mjs --round 4), then bash deploy-now.sh and hard-refresh.
Deploy + salary checklist →
Pool empty — cannot build yet.Select Round 4 preset and Reload slate.
Estimated salaries — not official DK.
Replace with the Round 4 Showdown CSV before locking lineups:
node scripts/import-pga-dk-showdown-paste.mjs --csv /path/to/dk-r4.csv --round 4
then redeploy. See docs/PGA-SHOWDOWN-R4-SALARIES.md.
Sample placeholder — not tonight's DK field.
Classic preset uses an empty bundled pga-dk-slate.json on purpose.
For Showdown, pick Round 4 — Captain + 5 FLEX, then upload DK JSON (~70 made cut) or import CSV per
morning checklist.
Cumulative own guidance: Select a contest field tier to see target bands for your 6-man lineup (sum of golfer own%).
Colonial — course difficulty & history
Strong course history (in field)
3 to look into — Classic DK
Chalk vs leverage flyers — loaded field
Sorted from slate ownership_pct. Chalk = highest projected field own; Flyers = sub-8% with upside (proj ÷ salary). Pool: sort Own% in the table below.
Chalk (high own)
Flyers (low own · upside)
Top 20 low-owned leverage plays (GPP)
Weekly leverage board from your loaded pool. Ranks low-owned golfers by upside + value + ownership discount.
Load a slate to see top 20 low-owned leverage plays.
Top 5 in a good spot — course-fit anchors
Five best course-fit plays for the loaded venue (classic Thu–Sun or showdown post-cut). Set course_id on your slate JSON or pick it under Slate upload (e.g. tpc_craig_ranch, colonial, muirfield_village).
Load a slate to see top 5 course-fit plays.
Weekend preview (pre-cut) — top 10 course fits
Classic slate: best projection/ceiling plays for this venue from your loaded pool (Thu–Sun). Auto writeups use pga-course-profiles.json.
Load a classic slate to see top 10.
Post-cut showdown (70/75) — top 10 CPT / FLEX
Showdown after cut filter: weekend pool (~75) ranked for CPT leverage; role hint is CPT vs FLEX. Enable Post-cut weekend in Rules.
Load a showdown slate with post-cut filter to see top 10.
Contest setup — this drives every build
Scoring tier
Build style
Set DK field entries and pool size, then build. Field tier auto-maps from contest size when you enter a number above.
Rules engine
Slate upload & preset
Shipped data/pga-dk-slate*.json files are empty placeholders for classic — upload your DK export here (required before Build). Showdown R4 may already ship bundled (e.g. Byron Nelson). Include salaries, proj, ceiling, floor, ownership_pct; showdown: captain_salary, made_cut. Set tournament and course_id for auto writeups (lab will not default to Bay Hill). See docs/PGA-SHOWDOWN-STANDINGS.md.
Upload slate JSON
Replaces bundled placeholder with your tonight's field (classic or showdown).
Contest mode
Cash: one sharp lineup via Build SE lineup. GPP: set contest field + entry limit above, then Build GPP set, Sim all & rank, Export best CSV.
ROI score (after sim): (sim_mean ÷ salary) × own_leverage × 1000.
Showdown default sort uses 0.62×p99 + 0.38×p90 (top-1% proxy); switch to ROI in the rank table to pick highest-ROI single entry.
Max-entry GPP — lineup set
Captain + 5 FLEX (6 golfers): each lineup is 1 CPT (1.5× points & CPT salary on cap) + 5 FLEX. DK CSV is G,G,G,G,G,G with the captain first as Name (CPT). Enable Stack calm wave in Rules on windy slates.
×1.42 own penalty
Builds up to N unique 6-man sets under the cap. No player appears in more than max exposure × N lineups (floored to a whole number of lineups). Ordering uses projection × √projection (GPP upside proxy) minus an ownership penalty (when own% exists), random λ per lineup, shuffled candidate tops, and exposure pressure — v1 heuristic, not dup simulation.
Filter by rank
Top 5% of your pool (sim rank)
CE
Golfer profile
Click any golfer name for stats + verified fun & spicy facts.
Projection—
Ownership—
Salary—
Value / $1k—
Tee / Wave—
Wind—
SG profile—
Make-cut—
Round 2 signal—
Surface fit—
No player selected.
Fun fact · verified
Click a golfer in the pool.
Spicy fact · verified
Romance, personality heat, or off-course lore — all public record.
Sources: PGA Tour media, major outlets, player interviews (PG-13).
Player
Stand
Proj ★
Own% ★
Salary
CPT $
Value / $1k
Ceil
Tee
Rick Live
Wind wave
OWGR
CSV overlay (optional)
Updates salaries/projections on an existing pool (after JSON upload). For an empty pool, use Upload slate JSON first with the full DK field.
Headers: Name, flex Salary, optional Captain Salary, Projection. Tabs or commas.
Tournament standings (Showdown R3)
Paste JSON with score_to_par (number or E/+2), optional
position, thru, total_score per golfer — or add those fields on each object in your slate JSON / field API. SE builder adds a small under-par momentum nudge only when scores exist.
Sim Round 4 field — compare to actual
Sunday showdown · made cut
Monte Carlo the made-cut field (~70 golfers). After Round 4, paste DK r4_pts to score sim accuracy (MAE, bias, RMSE).
User guide
Other rounds (classic backtest)
Load slate → Play one round ranks everyone in a single simulated Round 2. Pick two names for H2H.
Sort table:
Load a slate, then pick a round above (highlighted = today’s slate).