Candidate pool, then cut
V12 builds an oversized NBA pool (target ~1,000 candidates) and only then trims by rank, diversity, stack shape, and exposure caps. Lets you sweep slate space before committing.
Tell V12 your slate and contest. The NBA engine reads context, builds an oversized candidate pool, runs the configured simulation, ranks the portfolio with ownership and behavioral pattern signals, and ships a FanDuel-ready CSV — without you stitching projections by hand.
Most NBA DFS optimizers start from projections and stop there. V12 inverts the order: the slate context — game count, spreads, totals, blowout risk, rest days, late-swap windows, refined_ownership after lock — is the first input. The pool, the simulation, and the ranker all read that context before they make a single lineup. That's why a Lakers-Knicks slate gets shaped differently from a 12-game Wednesday: the engine sees the slate, not just the player list.
V12 builds an oversized NBA candidate pool (target ~1,000 candidates) before it commits to a portfolio. The pool is then cut by rank bands, diversity, exposure caps, stack shape, and ranker signals. You get more lineup space to search and a portfolio that's deliberately diverse — not 20 copies of the same chalk core.
When percentile or sim weights are turned on, V12 runs a configured multivariate-normal simulation that includes same-team correlations and opponent-pitcher-style negative correlations. The ranker reads percentile bands (P50, P85, P95) so you can build for ceiling on GPP or floor on cash without re-coding the optimizer.
Two ownership signals: a fast heuristic that runs pre-lock and refined_ownership that captures post-lock reality. The ranker exposes both. Leverage scoring is explicit — you weight chalk-cuts, contrarian plays, or balanced exposure by request, not by guessing what the optimizer is silently doing.
Every run ships with the same pillars: pool, projections, ownership, simulation, ranker, and warnings.
V12 builds an oversized NBA pool (target ~1,000 candidates) and only then trims by rank, diversity, stack shape, and exposure caps. Lets you sweep slate space before committing.
Same-team and opponent correlations move into a configured multivariate-normal sim. Percentile bands feed the ranker so you're not just optimizing on mean projection.
Ownership heuristic plus post-lock refined_ownership capture. The ranker exposes both, so you can weight chalk-cuts and leverage plays explicitly.
Confirmed OUT, NS, locked, and unavailable NBA players are blocked when the slate data verifies them. Missing data reports loudly instead of silently passing.
A pattern matcher trained on top-pro NBA lineup shapes (stack composition, cap utilization, salary bands) bumps lineups that match historical winners.
Every run is replayable: exposure, stacks, projections vs actuals, ranker signal weights. So you actually see why a lineup cashed (or didn't).
Yes. The slate context includes blowout protection — when the spread drifts past the configured threshold, V12 dials back exposure to the favored team's starters and lifts exposure to bench plays who pick up minutes in garbage time.
1 to 150 lineups per request. The portfolio optimizer is N-scalable and the candidate pool can hold roughly 1,000 candidates before V12 cuts the final portfolio by rank bands, diversity, and exposure caps.
Yes. V12 ships FanDuel-ready CSV artifacts using the official entry template format. The export includes FanDuel player IDs and entry IDs so the file uploads straight into the FanDuel contest without any manual matching.
Yes. The agent reads the selected slate, contest, platform, lineup count, locks, avoids, projection overlays, and recent generation context from the dashboard, then returns a ranked NBA portfolio with exposures, warnings, and the upload-ready CSV in the same workspace.
Most NBA optimizers stop at projection + cap math. V12 layers slate context, ownership and refined_ownership, candidate-pool generation, configured proprietary simulation with correlations, a behavioral ranker, a hard availability wall, and replayable postmortems — every run measurable, every signal auditable.