DFS Data Dictionary

Cross-sport betting and DFS rows point at an underlying event through a polymorphic (league_code, competition_id) pair, resolved through the main.competitions view — competition_id is a team-sport games.id or a golf.tournaments.id.

Main

dfs.slates9 fields· 1 refsendpoints →

DFS contest slate. A slate is one operator + one league + a fixed game pool + scoring rules; users build lineups against it.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
external_idbigint16775Operator-side slate identifier (e.g., DraftKings contest group ID).
league_idbigint2FK to the league this slate belongs to.
operator_idbigintmain.operators2FK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.).
slate_setting_idbigint33FK to slate_settings — the scoring format and roster constraints for this slate.
datedate2026-02-24T05:00:00.000ZCalendar day of the slate in US Eastern time (DB-generated from start_time — read-only).
mainbooleanfalseWhether this is the main slate for this operator/league. Currently never populated (always false) — identify main slates by name/start_time until the loader fills it.
namestringnullableMainHuman-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC").
start_timetimestamptz2026-02-25T00:00:00.000ZLock time — first scheduled tip/kickoff of any game in the pool.
dfs.slate_settings8 fields· 1 refsendpoints →

The scoring format and roster-construction ruleset a slate is built on — salary cap, position slots, and scoring rules per operator / league / game-type combination. A small reference table that many slates point at.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
league_idbigint2
operator_idbigintmain.operators2
contest_typeinteger0
game_stylestringnullableCLASSIC
ValuesCLASSICLATE_SWAPFULL_ROSTERNON_LATE_SWAPPICK_EMSHOW_DOWNSHOW_DOWN_CAPTAIN_MODESINGLE_GAMESTARTING_5SINGLE_GAME_BOOSTSINGLE_GAME_V3
game_typeinteger0
namestringSingle Game 1.0
ValuesSingle Game 1.0Classic 1.0Late Swap 1.0Full Roster 1.0Non Late Swap 1.0Pick'Em 1.0Showdown 1.0Showdown Captain Mode 1.0Full Roster 1.1Starting 5 1.0ClassicShowdown
settingsjsonb[object Object]Full ruleset as JSON: salary cap, roster slots, and the per-stat scoring rules (e.g. DK NBA: 1.25/rebound, 1.5/assist, double-double bonuses, CPT 1.5x). With this plus per-game box scores you can recompute any lineup's fantasy points exactly.
dfs.slate_games6 fields· 1 refsendpoints →

Many-to-many bridge between a DFS slate and the sport games included in its pool.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
external_idstringnullable6129804Operator-side game identifier.
game_idbigint81733Polymorphic reference to {nfl,nba,mlb}.games based on league_id
league_idbigint2League key disambiguating the polymorphic game_id (nfl/nba/mlb/nhl).
slate_idbigintdfs.slates756FK to dfs.slates.
datajsonbnullableOperator-provided game-level metadata (e.g., totals/spreads at slate snapshot).
dfs.slate_players17 fields· 1 refsendpoints →

Player pool for a DFS slate — one row per (slate, player, roster slot). Carries operator salary, positions, and any operator-side metadata.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
export_idstringnullableOperator player ID used for CSV export/import
external_idstringnullable108072-145319Operator player identifier in this slate.
league_idbigint2League key disambiguating player_id.
player_idbigint141Polymorphic FK to {nfl,nba,mlb,nhl}.players based on league_id.
slate_game_idbigint193FK to dfs.slate_games — the specific slate-game this player is rostered to.
slate_idbigintdfs.slates247FK to dfs.slates.
team_idbigintnullable17Polymorphic FK to {league}.teams. Null for golfers and other player-only sports.
avg_pointsfloatnullableAverage fantasy points from operator
display_namestringnullableJaden McDanielsFull display name from operator
first_namestringnullableJalenPlayer first name from operator
injury_detailsstringnullableInjury body part/details
injury_statusstringnullableInjury status (Q, D, O, IR)
last_namestringnullableWilliamsPlayer last name from operator
positionstringCPrimary position label per operator (e.g., RB, WR, PG, SP).
ValuesCPGSGSFPFSG/SFSF/PFPG/SGPF/CSF/SGPF/SFSG/PGC/PFPG/SFPG/PF
roster_positionstringRoster slot the player can fill (RB, FLEX, UTIL, CPT, etc.) — distinguishes multi-slot eligibility. Legacy showdown rows may carry an empty string for the non-captain slot.
ValuesCPTMVPPROSTAR
salaryinteger6000Operator-assigned DFS salary (whole dollars; e.g., 8400 = $8,400).

Stats

dfs.game_stats4 fieldsendpoints →

Per-game results for the games in a slate's pool (coming soon).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
game_idbigint
league_idbigint
datajsonb
dfs.player_stats6 fieldsendpoints →

Per-player fantasy scoring results for a slate's games (coming soon — populated after the DFS stat loader ships).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
game_idbigint
league_idbigint
player_idbigint
team_idbigint
datajsonb
dfs.slate_player_projections8 fieldsendpoints →

Fantasy-points projection for one player in one slate from one source. Multiple sources produce multiple rows per (slate_player).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
slate_player_idbigint2562315FK to dfs.slate_players — which slate-player this projection covers.
slate_projection_source_idbigint28FK to dfs.slate_projection_sources — which provider produced this projection.
ceilingdecimalnullable85th percentile projection (upside)
floordecimalnullable15th percentile projection (conservative)
projectiondecimal0.0000Median (P50) projected fantasy points.
statsjsonbnullable[object Object]Component stat projections by sport. NFL example: {"pass_yds": 275.5, "pass_tds": 1.5, "pass_ints": 0.5, "rush_yds": 22.5, "rush_tds": 0.3, "rec": 4.5, "rec_yds": 45.0, "rec_tds": 0.4}
std_devdecimalnullableStandard deviation for simulation/distribution
dfs.slate_projection_sources7 fieldsendpoints →

A registered projection provider for a slate (e.g., RotoGrinders consensus, an in-house model, a user upload).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
slate_setting_idbigint6FK to dfs.slate_settings — which slate format this source provides projections for.
descriptionstringnullableActual fantasy scores (perfect hindsight)Free-text description of the source methodology.
ValuesActual fantasy scores (perfect hindsight)State-of-the-art NBA player projections
display_orderinteger999Sort order for UI display.
enabledbooleantrueFalse hides this source from lineup-builder dropdowns.
namestringperfectDisplay name of the projection source.
ValuesperfectNBA SOTA projections
source_typeinteger0Source-type enum (0=manual upload, 1=consensus, 2=model, etc.).
dfs.team_stats5 fieldsendpoints →

Per-team fantasy-relevant results for a slate's games (coming soon).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
game_idbigint
league_idbigint
team_idbigint
datajsonb

Contests

dfs.contest_user_lineup_player_entries6 fieldsendpoints →

A single roster slot within a submitted contest lineup — one slate player in one position, with the fantasy points they scored.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
contest_user_lineup_idbigint1022519FK to the submitted lineup this roster slot belongs to.
slate_player_idbigint3317055References slate_player (player_id, salary, position)
display_orderinteger7
pointsdecimalnullable50.5000Fantasy points scored by this player
roster_positionstringFPosition slot: PG, SG, SF, PF, C, UTIL, etc.
ValuesFPFCSFUTILGPGSG
dfs.contest_users4 fields· 1 refsendpoints →

A contest entrant — one operator-side user who submitted at least one lineup. Identified by the operator's user id, not a statview account.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
external_idstringyounghoeOperator user ID
operator_idbigintmain.operators1
namestringnullableyounghoe
dfs.contests11 fields· 1 refsendpoints →

A DFS contest run on a slate — its entry fee, prize pool, entry caps, and type (GPP vs cash). One slate hosts many contests.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
external_idbigint188369206Operator contest ID
slate_idbigintdfs.slates32347FK to the slate this contest runs on.
contest_typeinteger00=GPP, 1=Cash
entry_countinteger0Entries submitted at load time.
entry_feeinteger100Entry fee in cents
guaranteedbooleantrueWhether the prize pool is guaranteed regardless of entries filled.
Valuestruefalse
max_entriesinteger100Maximum total entries the contest accepts.
max_entries_per_userinteger1Maximum lineups a single entrant may submit.
namestring50/50 Contest ($1 - Top 50% Win)Operator-facing contest name (e.g. "$5 NBA Mini-MAX").
prize_poolinteger2500Total prize pool in cents
dfs.contest_user_lineups7 fields· 1 refsendpoints →

A single lineup submitted to a contest by an entrant, with its finishing rank, total fantasy points, and winnings where the contest has settled.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
contest_idbigintdfs.contests17783
contest_user_idbigint24912
external_idbigint321546844415722049Operator entry ID
pointsdecimalnullable254.5000Total fantasy points scored
rankintegernullable716
winningsintegernullable0Prize won in cents