Dingus Analytics â€ĸ NFL DFS Optimizer Live

Professional NFL DFS Optimization with Mathematical Certainty

Engineered for high-stakes GPP tournament portfolio building. Solve 730-player FanDuel slates to verified global optimality in milliseconds using Google OR-Tools CP-SAT, with full exposure controls, stacking rules, team limits, and FanDuel CSV exports.

D
Dingus Analytics
Slate:
👑 Admin {{ currentUserEmail || adminEmail }} â€ĸ
👤 Member {{ currentUserEmail || adminEmail }} â€ĸ
Showing {{ filteredPlayers.length }} players
🔍
đŸšĢ {{ excludedPoolCount }} players excluded (including confirmed OUT / IR). These players are visually removed from the active pool and will not be drafted.
🎰 Vegas Lines & Implied Totals
Filter: {{ selectedGameFilter.away }} @ {{ selectedGameFilter.home }}
{{ g.away }} @ {{ g.home }} {{ g.time }}
{{ g.away }} {{ g.away_total }}
vs
{{ g.home }} {{ g.home_total }}
{{ g.spread }} O/U {{ g.ou }}
Action Gp Pos Player Matchup Salary Proj FP Floor Ceil Own% Value Min% Max%
{{ grp.name.length > 5 ? grp.name.substring(0, 4) + '..' : grp.name }}
{{ isSingleGame ? (p.position === 'MVP' ? 'MVP' : 'FLEX') : p.position }}
{{ p.name }} 📊 {{ p.injury_status }}
{{ p.team }} vs {{ p.opp }} ${{ p.salary.toLocaleString() }} {{ p.floor ? p.floor.toFixed(1) : '-' }} {{ p.ceiling ? p.ceiling.toFixed(1) : '-' }} {{ p.ownership.toFixed(1) }}% {{ p.value.toFixed(2) }}x

đŸ‘Ĩ Player Groups & Conditional Rules ("Gp") {{ playerGroups.length }} Groups

Configure linear inequalities: Min ≤ overlap in lineup ≤ Max across any custom subset of players. Solved to mathematical precision with CP-SAT.

⚡ 1-Click Rule Presets

Quickly instantiate proven DFS tournament inequality rules.

➕ Create Custom Player Group {{ newGroupForm.player_ids.length }} players selected
{{ getPlayerById(pid).name }} ({{ getPlayerById(pid).team }} ${{ getPlayerById(pid).salary }})

Active Groups in Portfolio ({{ playerGroups.length }})

đŸ‘Ĩ
No Custom Groups Active

Create a group above or click one of the 1-click rule presets (Backfield Limit, Elite WR Spend-Up, Value Punt) to apply conditional bounds.

{{ grp.name }}
{{ grp.min_players }} ≤ Overlap ≤ {{ grp.max_players }} â€ĸ {{ grp.player_ids.length }} players
{{ getPlayerById(pid).position }} {{ getPlayerById(pid).name }} ${{ getPlayerById(pid).salary }}

âš™ī¸ Build Settings LineupHQ Conventions

Configure portfolio size, projection tolerance, objective mode, and computational depth.

⚡ Strategy Presets 1-Click Load

Quickly configure build parameters based on contest type.

🎲 Projection Randomness {{ optParams.randomness_pct }}%
0% (Optimal) 10% (Low) 20% (Med) 35% (High) 50%
â„šī¸ Randomness Logic:

0% Deterministic Optimal: Mathematically highest-projected lineup. Identical output on every solve.

{{ optParams.randomness_pct }}% Gaussian Variance: Perturbs projections each iteration scaled by position volatility (WR/TE high variance, RB lower variance).

Max Projection Sacrifice (Cut Threshold) {{ optParams.max_proj_sacrifice }} pts
Guarantees that randomness never picks poor lineups: roster must remain within {{ optParams.max_proj_sacrifice }} pts of optimal.
Cumulative Ownership Cap {{ optParams.max_total_ownership }}%
{{ isSingleGame ? '120% (Contrarian)' : '70% (Contrarian)' }} {{ isSingleGame ? '250% (Balanced)' : '125% (GPP Target)' }} {{ isSingleGame ? '350% (High Exposure)' : '200% (No Cap)' }}
Number of Lineups {{ optParams.num_lineups }}
1 (Single) 20 (GPP) 50 150 (Max)
Min Lineup Uniqueness {{ optParams.uniqueness }} player(s)
Minimum Salary Used ${{ optParams.min_salary.toLocaleString() }}

🏈 Correlation & Stacking Rules

Enforce quarterback pass-catcher stacks, opposing bring-backs, and opposing DST negative correlation rules.

Include in QB Stack:
Include in Bring-Back:

đŸ›Ąī¸ Team Player Count Limits

Set global team roster caps or customize individual team minimums and maximums across the 24 teams on this slate.

Global Maximum Players Per Team

Enforces a roster-wide upper bound on players from any single NFL franchise.

{{ optParams.global_max_per_team }}
Team Opponent Available Players Min In Lineup Max In Lineup
{{ t.team }} vs {{ t.opp }} {{ t.player_count }}

📊 Generated Lineups & Portfolio Exposures {{ lineups.length }} Lineups

Solved in {{ solveTime }} ms. Validated 100% compliant with {{ isSingleGame ? 'FanDuel Single Game (1 MVP @ 1.5x + 4 AnyFLEX)' : 'FanDuel Classic' }} rules.

⚡

No Lineups Generated Yet

Click 'Run Build Now' or '⚡ OPTIMIZE' to generate your optimal DFS portfolio.

🎲

Monte Carlo Contest Simulation & EV Analytics 10,000 Trials

Simulated correlated field dynamics, duplication prize dilution, and GPP expected value in {{ simulationResults.sim_time_ms }} ms.

Sort Lineups:
Portfolio Win% {{ simulationResults.portfolio_metrics.portfolio_win_rate }}% at least 1 win
Top 1% Rate {{ simulationResults.portfolio_metrics.portfolio_top1_rate }}% portfolio top 1%
Avg Cash Rate {{ simulationResults.portfolio_metrics.avg_cash_rate }}% min-cash threshold
Expected ROI {{ simulationResults.portfolio_metrics.avg_sim_roi >= 0 ? '+' : '' }}{{ simulationResults.portfolio_metrics.avg_sim_roi }}% prize diluted EV
Avg Field Dups {{ simulationResults.portfolio_metrics.avg_duplicates }} est. duplicates
Max P95 Ceiling {{ simulationResults.portfolio_metrics.top_ceiling }} fantasy points
#{{ l.lineup_index }}
${{ l.total_salary.toLocaleString() }} â€ĸ {{ l.total_projection.toFixed(1) }} FP â€ĸ {{ l.total_ownership.toFixed(0) }}% Own
👑 MVP 1.5x {{ slot.slot }} {{ slot.name }} ({{ slot.team }})
${{ slot.salary }} {{ slot.projection.toFixed(1) }}

Portfolio Player Exposures ({{ exposures.length }} Players)

{{ e.name }} {{ e.exposure_pct }}%
{{ e.pos }} â€ĸ {{ e.team }} â€ĸ ${{ e.salary }} {{ e.count }}/{{ lineups.length }}
Active Slate: {{ slate ? slate.name : 'No Slate Active' }} â€ĸ {{ players.length }} Players
Admin Operations Hub

Weekly Slate Prep Wizard

Complete this 5-step operational workflow each week when new DFS contest slates are released. Prepare player salaries, sportsbook betting lines, starter depth charts, external feeds, and run the Dingus Quant Model.

Step 1
Slate & Salaries
{{ players.length > 0 ? '✓ Ready (' + players.length + ')' : 'âšĒ Awaiting Upload' }}
Step 2
Vegas Odds
{{ gamesList.length > 0 ? '✓ ' + gamesList.length + ' Games' : 'âšĒ Awaiting Sync' }}
Step 3
Depth Charts & News
{{ injuriesSummary ? '✓ ' + (injuriesSummary.out_count || 0) + ' Out' : 'âšĒ Awaiting Sync' }}
Step 4
External Feeds
{{ activeSourcesCount > 1 ? '✓ ' + activeSourcesCount + ' Sources' : 'âšĒ Optional' }}
Step 5
Dingus Quant Model
{{ isGeneratingModel ? 'âŗ Computing...' : '✓ Published' }}
1

Upload Contest Slate & Player Salaries Primary Data Source

Upload official contest CSV exports from FanDuel or DraftKings, or LineupHQ format. Strict player identity deduplication ensures 0 duplicate entries.

Cap: ${{ slate && slate.salary_cap ? Math.round(slate.salary_cap / 1000) + 'k' : '60k' }} 0 Duplicates Verified
or paste raw CSV text below:
âš ī¸ {{ uploadSlateError }}
*Supports both Official DFS export files & LineupHQ CSV format
Currently Active Contest

{{ slate ? slate.name : 'No Active Slate Loaded' }}

ID: {{ selectedSlateId }}
Contest Salary Cap: ${{ slate && slate.salary_cap ? slate.salary_cap.toLocaleString() : '60,000' }}
Active Players in Pool: {{ players.length }}
Games in Slate: {{ gamesList.length }}
Teams Represented: {{ uniqueTeams.length }}
Duplicate Identities: 0 (Clean)
2

Sync Live Sportsbook Odds & Spreads Vegas Game Totals

Fetch real-time DraftKings Sportsbook game totals, spreads, and implied team totals. Implied totals directly scale player pace and touchdown equity.

Matchup Spread Game Total Away Implied Home Implied Actions
{{ g.away || g.away_team }} @ {{ g.home || g.home_team }} {{ typeof g.spread === 'number' ? (g.spread > 0 ? '+' + g.spread : g.spread) : g.spread }} {{ (g.ou || g.over_under) ? Number(g.ou || g.over_under).toFixed(1) : '-' }} {{ (g.away_total || g.away_implied) ? Number(g.away_total || g.away_implied).toFixed(1) : '-' }} {{ (g.home_total || g.home_implied) ? Number(g.home_total || g.home_implied).toFixed(1) : '-' }}
No games found for active slate. Click "Fetch Live DraftKings Odds" above to populate.
🎲

Live Vegas Player Props Engine Independent Benchmark Source

Fetches live sportsbook player props (Pass/Rush/Rec Yds, TDs, Receptions) and converts market medians into fantasy point baselines.

{{ propsLastUpdated }}
The Odds API Key (Optional) Leave blank to use DraftKings consensus & market-implied medians.
Props Provider Status
{{ propsSyncResult ? propsSyncResult.provider : 'DraftKings / Sportsbook Consensus' }}
Automatic TD pricing & yardage conversion active
Props Matched Count
{{ propsSyncResult ? propsSyncResult.matched_count + ' / ' + propsSyncResult.total_players + ' Players' : players.length + ' Available' }}
Accessible as source_vegas_props in Projections Hub
3

Refresh Starter Depth Charts & Injury Inactives Sleeper NFL API

Sync depth charts (QB1, RB1, WR1-3, TE1) and official game status declarations. Backups with 0 projected snaps will have their projections zeroed out.

Starter Depth Status
🏈 {{ activeStartersCount }} Starters

Starters verified with primary snap volume. Backup players without projected offensive snaps are preserved from receiving starter baseline points.

Active Inactives & Reports
{{ injuriesSummary ? injuriesSummary.out_count || 0 : 0 }} Out â€ĸ {{ injuriesSummary ? injuriesSummary.doubtful_count || 0 : 0 }} Doubtful â€ĸ {{ injuriesSummary ? injuriesSummary.questionable_count || 0 : 0 }} Quest

Live status tagged directly on player pool rows and player cards.

Inactives Optimizer Filter
{{ excludedPoolCount }} Excluded

Confirmed Out players are automatically excluded or locked from solver generation.

4

Ingest External Projection Feeds (Optional) Benchmark Models

Ingest third-party projections (Stokastic, ETR / RunTheSims, LineupHQ, FantasyPros, NumberFire, or Custom). Standardizes headers and matches player identities.

Supports CSVs (DFF, FantasyPros, NumberFire) or saved LineupHQ screenshots (.png, .jpg, or Ctrl+V)!
📸 Screenshots Loaded ({{ screenshotImages.length }}) — Ready to extract to {{ ingestionSlot === 'AUTO' ? 'LineupHQ' : ingestionSlot }}
Image #{{ idx + 1 }}
âš ī¸ {{ ingestionError }}
✅ Ingested {{ ingestionResult.matched_count || ingestionResult.matched_players }} players into {{ ingestionResult.source_slot || ingestionResult.source_name }}
*Auto-matches names, replicates MVP for single-game slates, and normalizes positions
Registered External Feeds

Projection Slots

{{ s.name }}
({{ s.matched_count }} pts) {{ s.platform === 'DRAFTKINGS' ? 'DK' : 'FD' }}
5

Calculate & Publish Dingus Quant Model Final Step

Executes the full quantitative projection engine incorporating Vegas totals, offensive pace, depth chart volume, and advanced analytics. Sets the default consensus projections for all users.

Dingus Quant v2.5 Engine Multi-Factor Baseline + Vegas Integration

Publish Fresh Model Projections to Player Pool

When you calculate and publish, the model runs across all active players in the slate. Backups without projected snaps remain zeroed out, while offensive starters receive Vegas-scaled volume projections.

Total Players Projected: {{ players.filter(p => p.projection > 0).length }}
Model Consensus Status: Published & Live
User Blend Customization: Open in Projections Hub
Weekly slate preparation complete! Users can now build lineups or customize weights.
Showing {{ filteredMatrixRows.length }} of {{ matrixData.total_players || 0 }} players â€ĸ {{ matrixData.sources ? matrixData.sources.length : 0 }} Registered Sources
Show Source Columns:
💡 Click any player row to view the pure numeric derivation scorecard
Player Pos Team Salary Consensus & Variance
Name {{ matrixSortKey === 'name' ? (matrixSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Pos Team
Sal {{ matrixSortKey === 'salary' ? (matrixSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Avg Proj {{ matrixSortKey === 'consensus_proj' ? (matrixSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Avg Own% {{ matrixSortKey === 'consensus_own' ? (matrixSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Spread {{ matrixSortKey === 'spread' ? (matrixSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
# Rpt
{{ r.name }}
{{ r.pos }} {{ r.team }} ${{ r.salary.toLocaleString() }} {{ r.consensus_proj.toFixed(1) }} {{ r.consensus_own.toFixed(1) }}% {{ r.spread.toFixed(1) }} {{ r.reporting_count }}
Showing {{ filteredStatsRows.length }} of {{ statsMatrixData.total_players || 0 }} players â€ĸ {{ statsMatrixData.games_count || 0 }} Vegas Games Active â€ĸ External: {{ statsMatrixData.external_source_name || 'LineupHQ' }} {{ statsMatrixData.has_lineuphq ? '✓' : '(Not Imported)' }}
▲ OVER = Model Projection > Sportsbook Line â–ŧ UNDER = Model Projection < Sportsbook Line | Cells format: Model Proj / Vegas Line | Pure Prop Betting View (Fantasy Points Excluded)
Player Pos Team Salary Game Environment đŸ”Ĩ Best Prop Value Bet
Name {{ statsSortKey === 'name' ? (statsSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Pos Team
Sal {{ statsSortKey === 'salary' ? (statsSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
Spread O/U Team Tot Market Bet Recommendation
Edge (Δ) {{ statsSortKey === 'best_bet.diff' ? (statsSortAsc ? '▲' : 'â–ŧ') : '⇅' }}
💎 {{ r.name }} {{ r.injury_status || 'OUT' }}
Scorecard
{{ r.pos }} {{ r.team }} ${{ r.salary.toLocaleString() }} {{ r.game_lines.spread }} {{ r.game_lines.ou.toFixed(1) }} {{ r.game_lines.implied_total.toFixed(1) }} {{ r.best_bet ? r.best_bet.market : '-' }} ⛔ Inactive ({{ r.injury_status || 'OUT' }}) No Line ▲ OVER {{ r.best_bet.line }} â–ŧ UNDER {{ r.best_bet.line }} Neutral {{ r.best_bet.diff > 0 ? '+' : '' }}{{ r.best_bet.diff }} ({{ r.best_bet.edge_pct }}%) -
{{ selectedPlayerStats.position }}

{{ selectedPlayerStats.name }} ({{ selectedPlayerStats.team }} vs {{ selectedPlayerStats.opp }})

Sal: ${{ selectedPlayerStats.salary }} â€ĸ Proj: {{ selectedPlayerStats.projection }} â€ĸ Floor: {{ selectedPlayerStats.floor }} â€ĸ Ceil: {{ selectedPlayerStats.ceiling }} â€ĸ Own: {{ selectedPlayerStats.ownership }}%
{{ selectedPlayerStats.injury_status }}
{{ selectedPlayerStats.injury_body_part ? selectedPlayerStats.injury_body_part + ' Issue' : 'Listed on Injury Report' }}
{{ selectedPlayerStats.injury_notes || 'Designated on official NFL practice/game participation report. Live synced via Sleeper API.' }}
{{ currentSeasonData.summary.games_played }} Games Logged No Games Logged
{{ selectedStatsSeason }} Season Major Performance
Real Ingested Stats (SQLite)
FP / Game
{{ currentSeasonData.summary.fpg }}
Snap Share
{{ currentSeasonData.summary.snap_pct }}%
Production Volume
{{ currentSeasonData.summary.main_volume }}
Red Zone Ops
{{ currentSeasonData.summary.red_zone_display }}
Advanced Metrics: WOPR: {{ currentSeasonData.summary.wopr }} Target Share: {{ currentSeasonData.summary.target_share_pct }}% Air Yards Share: {{ currentSeasonData.summary.air_yards_share_pct }}% YPRR: {{ currentSeasonData.summary.yprr }} Air Yds: {{ currentSeasonData.summary.air_yds_total }} YAC: {{ currentSeasonData.summary.yac_total }} yds Broken Tackles: {{ currentSeasonData.summary.broken_tackles_total }} Contact Yds: {{ currentSeasonData.summary.contact_yds_total }}
No {{ selectedStatsSeason }} Box Scores Logged
Player had no regular season appearances recorded in the database for {{ selectedStatsSeason }}.
{{ selectedStatsSeason }} Traditional Game Logs ({{ selectedPlayerStats.position }})
{{ currentSeasonData.logs.length }} Games Logged
Wk Opp Cmp Att Cmp% Yds TD Int Car Rush Yds Rush TD Snaps FP
Wk {{ g.week }} {{ g.opp }} {{ g.pass_cmp }} {{ g.pass_att }} {{ g.pass_pct }}% {{ g.pass_yds }} {{ g.pass_td }} {{ g.pass_int }} {{ g.rush_att }} {{ g.rush_yds }} {{ g.rush_td }} {{ g.snaps }} {{ g.fp }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.pass_cmp }} {{ currentSeasonData.totals.pass_att }} {{ currentSeasonData.totals.pass_pct }}% {{ currentSeasonData.totals.pass_yds }} {{ currentSeasonData.totals.pass_td }} {{ currentSeasonData.totals.pass_int }} {{ currentSeasonData.totals.rush_att }} {{ currentSeasonData.totals.rush_yds }} {{ currentSeasonData.totals.rush_td }} - {{ currentSeasonData.totals.fp }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.pass_cmp }} {{ currentSeasonData.averages.pass_att }} {{ currentSeasonData.averages.pass_pct }}% {{ currentSeasonData.averages.pass_yds }} {{ currentSeasonData.averages.pass_td }} {{ currentSeasonData.averages.pass_int }} {{ currentSeasonData.averages.rush_att }} {{ currentSeasonData.averages.rush_yds }} {{ currentSeasonData.averages.rush_td }} {{ currentSeasonData.averages.snaps }} {{ currentSeasonData.averages.fp }}
Wk Opp Car Rush Yds YPC Rush TD Tgt Rec Rec Yds Rec TD Touches Snaps FP
Wk {{ g.week }} {{ g.opp }} {{ g.rush_att }} {{ g.rush_yds }} {{ g.rush_ypc }} {{ g.rush_td }} {{ g.targets }} {{ g.rec }} {{ g.rec_yds }} {{ g.rec_td }} {{ g.touches }} {{ g.snaps }} {{ g.fp }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.rush_att }} {{ currentSeasonData.totals.rush_yds }} {{ currentSeasonData.totals.rush_ypc }} {{ currentSeasonData.totals.rush_td }} {{ currentSeasonData.totals.targets }} {{ currentSeasonData.totals.rec }} {{ currentSeasonData.totals.rec_yds }} {{ currentSeasonData.totals.rec_td }} {{ currentSeasonData.totals.touches }} - {{ currentSeasonData.totals.fp }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.rush_att }} {{ currentSeasonData.averages.rush_yds }} {{ currentSeasonData.averages.rush_ypc }} {{ currentSeasonData.averages.rush_td }} {{ currentSeasonData.averages.targets }} {{ currentSeasonData.averages.rec }} {{ currentSeasonData.averages.rec_yds }} {{ currentSeasonData.averages.rec_td }} {{ currentSeasonData.averages.touches }} {{ currentSeasonData.averages.snaps }} {{ currentSeasonData.averages.fp }}
Wk Opp Tgt Rec Catch% Yds YPR TD Air Yds WOPR Snaps FP
Wk {{ g.week }} {{ g.opp }} {{ g.targets }} {{ g.rec }} {{ g.catch_pct }}% {{ g.rec_yds }} {{ g.rec_ypr }} {{ g.rec_td }} {{ g.air_yds }} {{ g.wopr }} {{ g.snaps }} {{ g.fp }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.targets }} {{ currentSeasonData.totals.rec }} {{ currentSeasonData.totals.catch_pct }}% {{ currentSeasonData.totals.rec_yds }} {{ currentSeasonData.totals.rec_ypr }} {{ currentSeasonData.totals.rec_td }} {{ currentSeasonData.totals.air_yds }} {{ currentSeasonData.totals.wopr }} - {{ currentSeasonData.totals.fp }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.targets }} {{ currentSeasonData.averages.rec }} {{ currentSeasonData.averages.catch_pct }}% {{ currentSeasonData.averages.rec_yds }} {{ currentSeasonData.averages.rec_ypr }} {{ currentSeasonData.averages.rec_td }} {{ currentSeasonData.averages.air_yds }} {{ currentSeasonData.averages.wopr }} {{ currentSeasonData.averages.snaps }} {{ currentSeasonData.averages.fp }}
Wk Opp FGM FGA FG% 1-39 40-49 50+ XPM XPA FP
Wk {{ g.week }} {{ g.opp }} {{ g.fgm }} {{ g.fga }} {{ g.fg_pct }}% {{ g.fgm_1_39 }} {{ g.fgm_40_49 }} {{ g.fgm_50p }} {{ g.xpm }} {{ g.xpa }} {{ g.fp }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.fgm }} {{ currentSeasonData.totals.fga }} {{ currentSeasonData.totals.fg_pct }}% - - - {{ currentSeasonData.totals.xpm }} {{ currentSeasonData.totals.xpa }} {{ currentSeasonData.totals.fp }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.fgm }} {{ currentSeasonData.averages.fga }} {{ currentSeasonData.averages.fg_pct }}% - - - {{ currentSeasonData.averages.xpm }} {{ currentSeasonData.averages.xpa }} {{ currentSeasonData.averages.fp }}
Wk Opp Pts All Sack Int FR Def TD Safety Blk FP
Wk {{ g.week }} {{ g.opp }} {{ g.pts_allow }} {{ g.sack }} {{ g.def_int }} {{ g.fum_rec }} {{ g.def_td }} {{ g.safety }} {{ g.blk_kick }} {{ g.fp }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.pts_allow }} avg {{ currentSeasonData.totals.sack }} {{ currentSeasonData.totals.def_int }} {{ currentSeasonData.totals.fum_rec }} {{ currentSeasonData.totals.def_td }} - - {{ currentSeasonData.totals.fp }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.pts_allow }} {{ currentSeasonData.averages.sack }} {{ currentSeasonData.averages.def_int }} {{ currentSeasonData.averages.fum_rec }} {{ currentSeasonData.averages.def_td }} - - {{ currentSeasonData.averages.fp }}
Week Opponent FP Major Stat Line Snaps
Wk {{ g.week }} {{ g.opp }} {{ g.fp }} {{ g.stat_line }} {{ g.snaps }}
{{ currentSeasonData.totals.label }} - {{ currentSeasonData.totals.fp }} - {{ currentSeasonData.totals.snaps }}
{{ currentSeasonData.averages.label }} - {{ currentSeasonData.averages.fp }} - {{ currentSeasonData.averages.snaps }}
{{ assignModalPlayer.name }}
{{ assignModalPlayer.position }} â€ĸ {{ assignModalPlayer.team }} vs {{ assignModalPlayer.opp }} â€ĸ ${{ assignModalPlayer.salary.toLocaleString() }}
Assign to Group:
No player groups created yet. Create one below or in the "Player Groups" tab!
Quick New Group with {{ assignModalPlayer.name }}
âŗ
Loading quantitative scorecard...
{{ selectedDerivation.position }}

{{ selectedDerivation.name }} ({{ selectedDerivation.team }} vs {{ selectedDerivation.opp }}) {{ selectedDerivation.role_label }}

FanDuel Salary: ${{ selectedDerivation.salary.toLocaleString() }} â€ĸ Implied Value: {{ selectedDerivation.implied_value }}x
Dingus Quant Engine
1. Vegas Scoring & Tempo Environment Pace, PROE & Funnel Context
Team Total
{{ selectedDerivation.vegas_team_total }} pts
Opp Total
{{ selectedDerivation.vegas_opp_total }} pts
Game Spread
{{ selectedDerivation.vegas_spread > 0 ? '+' : '' }}{{ selectedDerivation.vegas_spread }}
Vegas Multiplier
{{ selectedDerivation.vegas_multiplier }}x
Team Pace
{{ selectedDerivation.pace_sec_per_play }}s / play
Pass Rate Over Exp (PROE)
{{ selectedDerivation.proe }}
Opponent Defense Funnel
{{ selectedDerivation.funnel_matchup }}
2. Advanced Opportunity Share Metrics Volume Distribution
{{ selectedDerivation.opportunity_summary }}
3. Efficiency & Defensive EPA Matchup Adjustment Per-Play Impact
{{ selectedDerivation.efficiency_summary }}
Matchup Defense EPA Shift: {{ selectedDerivation.matchup_epa }} pts/play
4. Final Derived Quant Output Metrics Dingus In-House Formula
Median Proj
{{ selectedDerivation.median_projection }}
P90 Ceiling
{{ selectedDerivation.p90_ceiling }}
P10 Floor
{{ selectedDerivation.p10_floor }}
Projected Own%
{{ selectedDerivation.projected_ownership }}%

📂 Universal CSV Projections Ingestion

Auto-detects column signatures for Daily Fantasy Fuel (DFF), FantasyPros, NumberFire, LineupHQ, and Stokastic.

📄 / 📸
Drag & drop CSV or Screenshot file(s) here, or click to browse
Supports CSV/TSV exports or LineupHQ screenshots (.png, .jpg)
📸 Screenshots Ready for OCR ({{ screenshotImages.length }})
#{{ idx + 1 }}
Ingestion Error: {{ ingestionError }}
✅ Successfully Ingested to {{ ingestionResult.source_name || ingestionResult.source_slot }} {{ ingestionResult.detected_format }}
Matched: {{ ingestionResult.matched_count }} players | Unmatched: {{ ingestionResult.unmatched_count }}
Unmatched sample: {{ ingestionResult.unmatched_sample.join(', ') }}
{{ authMode === 'login' ? '🔐' : '✨' }}

{{ authMode === 'login' ? 'Welcome Back' : 'Create Free Account' }}

{{ authMode === 'login' ? 'Sign in with your Admin or Member account' : 'Register to build and export custom NFL lineups' }}

{{ loginError }}
🏈

Official FanDuel Scoring System Verified

Strictly calibrated to official FanDuel NFL contest rules. All stats, gamelogs, and projections reflect these exact point allocations.

Offense (0.5 Half-PPR)
Passing Yds: 0.04 / yd (25 yds = 1 pt)
Passing TD: 4 pts
Interception: -1 pt (FD rule)
Rushing Yds: 0.10 / yd (10 yds = 1 pt)
Rushing TD: 6 pts
Reception: 0.5 pts (Half-PPR)
Receiving Yds: 0.10 / yd (10 yds = 1 pt)
Receiving TD: 6 pts
Fumble Lost: -2 pts
2-Pt Conversion: 2 pts
Kicker (K) Scoring
PAT Made: 1 pt
FG 1 - 39 yds: 3 pts
FG 40 - 49 yds: 4 pts
FG 50+ yds: 5 pts
Missed FG: -1 pt (any distance)
Defense / Special Teams (DEF / DST)
Yards Allowed = 0 pts on FD
Sack: 1 pt
Interception: 2 pts
Fumble Recovery: 2 pts
Def / ST TD: 6 pts
Safety: 2 pts
Blocked Kick: 2 pts
2-Pt Return: 2 pts
Official Points Allowed Tiers:
0 PA (Shutout)
+10 pts
1 - 6 PA
+7 pts
7 - 13 PA
+4 pts
14 - 20 PA
+1 pt
21 - 27 PA
0 pts
28 - 34 PA
-1 pt
35+ PA
-4 pts
īŧ‹

Universal Slate Ingestion FD & DK Supported

Drop or paste any official FanDuel or DraftKings contest salary CSV. The optimizer will automatically resolve player identities and link live DraftKings sportsbook odds.

{{ uploadSlateError }}
🎰

Matchup Line Override {{ editingGame.away }} @ {{ editingGame.home }}

Adjust Game Total (O/U), Spread, or Implied Team Totals. Modifying lines automatically rescales Dingus Quant projections for both teams.

âš–ī¸

Projections & Ownership Hub Multi-Source & In-House Engine

Generate in-house proprietary projections, import third-party CSV/spreadsheets, or toggle and weight any combination of sources.

Adjust blend weights below to customize player projections
Active Blend Formula:
{{ activeFormulaSummary }}
Available Projection Sources ({{ projectionSources.length }}) {{ activeSourcesCount }} sources included in active build
{{ s.name }} {{ s.id === 'source_dingus' ? 'DEFAULT â€ĸ IN-HOUSE' : (s.source_type === 'IN_HOUSE_MODEL' ? 'IN-HOUSE' : ((s.source_type === 'BASELINE' || s.source_type === 'BASELINE_EXTERNAL') ? 'FEED' : 'IMPORT')) }} {{ s.platform === 'DRAFTKINGS' ? 'DK' : 'FD' }}
{{ s.matched_count }} players â€ĸ {{ s.created_at }}
Weight: {{ s.weight }}
Effective Share: {{ s.is_active ? s.effective_share_pct : 0 }}%
📸

LineupHQ Screenshot OCR & Ingestion Showdown & Single Game

Press Ctrl+V to paste screenshots of LineupHQ MVP and AnyFLEX tables. Extracts Player Projections, pOwn%, Floor, and Ceil directly.

📋
Click to Browse or Press Ctrl + V to Paste Screenshot
Supports uploading both MVP pool (100% cap) and AnyFLEX pool (400% cap) screenshots together.
Loaded Screenshots ({{ screenshotImages.length }})
Image #{{ idx + 1 }}
{{ ocrResults ? '✅' : 'â„šī¸' }} {{ ocrStatusMessage }}
Extracted Players ({{ ocrResults.matched_count }})
Slot Player Team Salary Proj FPTS pOwn% Floor Ceil
{{ p.is_mvp ? 'MVP (1.5x)' : 'FLEX' }} {{ p.name }} {{ p.team }} ${{ p.salary }} {{ p.projection.toFixed(2) }} {{ p.ownership.toFixed(2) }}% {{ p.floor.toFixed(1) }} {{ p.ceiling.toFixed(1) }}