NBA Sports Server Status

sports-new / backtest, multi-season game data, Pikkit, Kalshi, and live odds
Generated Aug 4, 2026
Backup: backtest.db.bak-20260804-020719
Sports data footprint
2.53 GB
NBA, odds, Pikkit, Kalshi, and model files
Multi-season betting rows
30.2K
Kaggle plus 2013-18 spread CSVs
Pikkit raw bets
7,336
2,684 NBA-tagged bets in export
Correlation checks
57
generated by the sports-only data map

Reproducible Sports Data Map

Sports files mapped
562
active and backup sports roots only
Mapped footprint
3.31 GB
includes duplicate backups and archives
Correlation checks
57
Kaggle, kyleskom, signals, Pikkit, and model features
Report artifact Generated What it proves
sports-data-map.json2026-08-04 03:26 UTCMachine-readable sports inventory, relationship tests, and correlation outputs
sports-data-map.md2026-08-04 03:26 UTCReadable summary of the same generated report
sports_data_map.pyread-only generatorServer-side script used to regenerate the map from current sports data

The generator excludes non-sports inventory and maps only sports roots: NBA, MLB package, odds, Pikkit, Kalshi, kyleskom, Kaggle, live sports captures, and sports model artifacts.

Sports Data Inventory

ladder-framework/data
1.87 GB
179 files, 157 sports data files
kalshi-data
654.6 MB
61 NBA market and candle files
sports workspace
0.05 MB
Manual sports snapshot DB and raw capture payloads
Largest sports files Size Use
backtest.db796.05 MBNBA games, PBP actions, box scores, historical odds
backtest.db.bak-20260804-020719697.27 MBPre-cleanup backup
kalshi_nba.db426.00 MBKalshi NBA games, markets, player props, candles
NBA_AI_dev.zip191.30 MBCompressed NBA SQLite archive; 3.36 GB uncompressed
TeamData.sqlite87.62 MBHistorical team-state tables from kyleskom NBA data
candles.parquet48.87 MBKalshi candle export
dataset.sqlite35.62 MBHistorical modeling dataset tables
nba_kxnbapts_raw.json28.04 MBRaw Kalshi NBA player-points market export
nba_kxnbareb_raw.json27.27 MBRaw Kalshi NBA player-rebounds market export
nba_spread_markets_raw.json22.28 MBRaw Kalshi NBA spread market export

This page is scoped to sports-related data only: NBA, odds, Pikkit, Kalshi, kyleskom, Kaggle, and sports model artifacts.

Multi-Season Game Data

Core NBA DB
7,041
games from 2018-10-16 to 2026-03-31
Kaggle game rows
23,118
2007-10-30 to 2025-06-22
kyleskom date tables
4,320
TeamData from 2007-10-30 to 2026-01-07
Source Rows or tables Season or date span What it adds
backtest.db / games7,041 games2018-10-16 to 2026-03-31Canonical IDs, teams, scores, PBP linkage, box-score linkage
backtest.db / pbp_actions4,536,527 actions2018-19 through partial 2025-26Action-level game state for model joins
kaggle_nba_betting/nba_2008-2025.csv23,118 rows2008 season through 2025 seasonGame scores plus spread, total, moneyline, second-half spread, and second-half total
nba_2013_2014.csv ... nba_2017_2018.csv7,058 rows2013-10-06 to 2018-06-09Older spread/AH and O/U scraper files; 7,049 AH fields and 7,044 O/U fields
kyleskom-nba/Data/TeamData.sqlite4,320 date tables2007-10-30 to 2026-01-07Daily team-level state tables, roughly 128,570 team rows
kyleskom-nba/Data/OddsData.sqlite45,284 rows2007-08 through partial 2025-26Season-level odds tables across 36 SQLite tables
kyleskom-nba/Data/dataset.sqlite60,031 rows2012-26 modeling tablesPrepared historical modeling datasets with 115+ columns
pikkit_nba_spreads_full.json1,632 bets2022-04-03 to 2026-02-25User wager history for NBA spread analysis
kalshi_nba.db / games1,061 games2025-04-15 to 2026-03-05Prediction-market event ticker mapping by NBA game
missing_games.json5,655 candidates2018-19 through 2025-26Backfill queue; 4,416 already present, 1,239 remaining candidates, 1,969 rows lack date/team fields

The server has multiple overlapping game-data layers. The safest path is to keep backtest.db as the canonical NBA game/PBP spine, then map Kaggle, kyleskom, Pikkit, and Kalshi records onto it with explicit crosswalk tables.

Season Coverage

Season Games PBP games PBP actions Stats games Odds games
2018-19239239114,8142390
2019-20236236111,0882360
2020-211,0801,080605,1986170
2021-221,2301,230691,8757640
2022-231,2301,230679,7327680
2023-24647647359,7013210
2024-251,2301,230686,0081,230846
2025-261,061973562,9329730
Playoffs 2021-2024888847,60800

The regular-season base spans 2018-19 through partial 2025-26, with 4,536,527 PBP actions in the raw table. 2024-25 remains the clean complete season for games, PBP, and stats.

Database Tables

Database or tableRowsTablesSize
backtest.db4,579,5575796.05 MB
  pbp_actions4,536,527--
  games7,041--
  box_scores12,770--
  historical_odds22,048--
kalshi_nba.db2,826,7244426.00 MB
TeamData.sqlite128,5704,32087.62 MB
dataset.sqlite60,031435.62 MB
OddsData.sqlite45,284364.42 MB
arb_log.db14,03431.82 MB
signals.db7,23091.57 MB
live_spreads.db87310.20 MB
odds_snapshots.db17110.06 MB
sports/game_snapshots.db1130.03 MB
nuclear_players.db15830.04 MB

Duplicate PBP rows removed: 58,419. A unique game/action guard is now in place on pbp_actions(game_id, action_number).

2024-25 Odds Detail

Matched games
846
69% of 2024-25 regular season
Archived rows
15,838
spreads, totals, and h2h
Books
3
FanDuel, DraftKings, BetMGM
Book Market Rows Games
BetMGMh2h1,742845
BetMGMspreads1,718834
BetMGMtotals1,742845
DraftKingsh2h1,772846
DraftKingsspreads1,772846
DraftKingstotals1,772846
FanDuelh2h1,766841
FanDuelspreads1,788841
FanDueltotals1,766841

Current 2024-25 historical odds window: 2024-10-21T17:55:39Z through 2025-04-13T11:55:38Z. This table is archived The Odds API market data; the live/in-play rows are stored separately in the live inventory below.

Live Odds Inventory

Source Rows Games or keys Window Status
arb_log.db / odds_snapshots 9,655 28 game keys 2026-02-24 to 2026-03-01 3,201 in-play rows
arb_log.db / pbp_snapshots 4,343 16 games 2026-02-24 to 2026-03-01 Live game state snapshots
arb_log.db / run_events 36 8 games 2026-02-24 Run detection context
live_spreads.db / spread_snapshots 873 13 games 2026-03-06 to 2026-03-16 FanDuel spread present on 645 rows
odds_snapshots.db / snapshots 171 9 game keys 2026-03-07 20:38 to 20:58 UTC Short capture window
sports/game_snapshots.db / game_snapshots 7 manual snapshots 2026-06 capture DB Small manual sports capture, not normalized
sports/screenshot_snapshots_raw.json 14 raw snapshots 2026-06 support file Raw capture payloads for manual review
Live odds exist on server Not yet joined action-by-action FanDuel strongest coverage DK/MGM live spread columns currently empty in live_spreads

The live capture is real, but it is siloed from the historical odds table. The next database step is to create a canonical in-game odds snapshot table keyed by game and timestamp, then attach each PBP state to the latest prior odds row.

Pikkit Betting Data

Raw export
7,336
all Pikkit bets from 2022-03-27 to 2026-03-01
NBA tagged
2,684
NBA-tagged rows in pikkit_bets.csv
PBP enriched
203
matched to 133 game IDs with action context
Pikkit asset Rows Window or coverage Notes
pikkit_bets.csv7,3362022-03-27 to 2026-03-01Raw Pikkit export; 5,960 straight bets and 1,257 parlays
pikkit_bets.csv / NBA rows2,6842022-03-27 to 2026-02-28NBA-tagged rows; BetMGM 1,576, FanDuel 932, DraftKings 175
pikkit_nba_spreads_full.json1,6322022-04-03 to 2026-02-25Full NBA spread extraction; 1,590 standard lines and 42 alt lines
pikkit_matched_v6.json197135 distinct game IDsMatched spread bets with game state, fair spread, edge, and model agreement fields
pikkit_full_pbp_enriched.json203133 distinct game IDsMatched wager rows with period, clock, action index, score, margin, and rolling stat context
pikkit_historical_ev.json122Periods 2-4Historical expected-win and edge checks for filtered in-game states
mlb-package/pikkit_all_sports.csv7,3362022-03-27 to 2026-03-01Backup all-sports export with same row count as the active raw Pikkit file
mlb-package/pikkit_mlb_raw.csv3852022-05-01 to 2025-10-28MLB-tagged raw Pikkit rows: BetMGM 374, DraftKings 7, FanDuel 4
mlb-package/pikkit_mlb_enriched.csv/json6452022-05-01 to 2025-10-29MLB wager context: 321 moneyline, 318 run line, 6 spread rows
43 Pikkit files including backups 17 deduped Pikkit groups 2,684 NBA-tagged raw rows 203 PBP-enriched rows 385 MLB raw rows

Pikkit is wager-history data, so it should be joined after the canonical game/PBP spine is stable. The model-ready layer is the matched/enriched JSON, not the raw CSV by itself.

Sports Relationship Tests

Pikkit to NBA spine
0 missing
203 PBP-enriched rows map to canonical game IDs
Live snapshots
26 / 26
live_spreads and arb PBP game IDs match backtest.db
Kalshi parsed crosswalk
905
of 1,061 games map by date + team ticker
Relationship Rows or games checked Result Next action
Pikkit full PBP enriched to backtest.db203 rows / 133 game IDsAll game IDs matched; 0 action numbers out of bounds vs PBPUse as current model-ready Pikkit layer
Pikkit matched v6 to backtest.db197 rows / 135 game IDsAll game IDs matchedKeep for fair-spread and edge checks
live_spreads.db to backtest.db13 game IDsAll game IDs matchedNormalize into canonical live odds snapshots
arb_log.db / pbp_snapshots to backtest.db16 game IDsAll game IDs matchedJoin to odds snapshots by game/time
Historical odds events to backtest.db846 matched odds games1 odds/event game ID does not matchInspect unmatched ID before final odds backfill
Kalshi games to backtest.db1,061 Kalshi game IDs905 parsed ticker matches; 156 missingBackfill missing canonical games or keep Kalshi-only rows flagged
Kaggle NBA betting rows to backtest.db8,909 rows inside canonical date range6,345 rows on canonical dates; 3,275 exact score matches; 17 team/date-only matchesUse as historical odds layer where canonical game exists
2013-18 spread CSVs to backtest.db7,058 older betting rowsMostly pre-canonical; requires historical game spine expansionMap after canonical games are extended before 2018-19
kyleskom OddsData to backtest.db45,284 rows across 36 tables4,138 exact score matches; 20 team/date-only matchesResolve missing tournament/playoff/date gaps before production joins
kyleskom TeamData dates to backtest.db4,320 date tables979 dates overlap canonical games; sample dates cover all teams checkedUse as team-state feature layer by date/team
Generated sports map artifacts562 files / 57 correlationsSports-only JSON and Markdown reports are hostedUse sports_data_map.py as the repeatable audit gate
Correlation check Dataset N r Readout
Edge vs profitpikkit_matched_v6.json1150.044Very weak positive relationship
Edge vs winpikkit_matched_v6.json1150.057Very weak positive relationship
Margin at bet vs winpikkit_full_pbp_enriched.json1910.037No meaningful linear signal yet
Period vs winpikkit_full_pbp_enriched.json203-0.008No linear period signal in this slice
Closing total vs actual pointskaggle_nba_betting23,1180.654Strong sanity-check relationship
Second-half total vs actual pointskaggle_nba_betting19,8170.622Strong secondary odds sanity check
Q3 margin vs dog coveredlive_line_correlation_data.json5,498-0.611Large game-state relationship in generated report
Q3 margin vs dog coveredsignals.db / backtest_games5,8290.593Strong signal-table relationship; sign follows that table's margin convention
Chase gap vs dog covereduniversal_game_state.json22,104-0.565Strong in-game state relationship
FG% diff vs home coveredpregame_features.json3,8440.553Pregame feature signal requiring leakage review before modeling
kyleskom O/U vs pointsOddsData.sqlite24,8070.466Historical odds sanity check across normalized tables
Spread vs home marginkaggle_nba_betting23,1150.216Positive but noisy spread relationship
Outcome slice Dataset N Win % Profit
NBA Pikkit period 3pikkit_matched_v6.json5552.7%+3,284.69
NBA Pikkit period 4pikkit_matched_v6.json4654.3%+5,229.99
NBA Pikkit model agreespikkit_matched_v6.json4151.2%-735.62
MLB Pikkit run linepikkit_mlb_enriched31853.1%+7,499.90
MLB Pikkit moneylinepikkit_mlb_enriched32143.3%-39,888.64

These are first-pass relationship tests on verified sports joins only. Correlation checks are generated by sports_data_map.py and should be treated as screening statistics until no-lookahead joins and leakage checks are complete.

Kalshi NBA Market Data

Candles
2.75M
11,580 market tickers
Markets
28,860
28,093 finalized, 767 active
Player props
47,976
NBA prop markets by player/stat
Raw market exports
76,836
non-empty rows across NBA KX raw JSON files
Kalshi asset Rows or size Coverage Notes
kalshi_nba.db / games1,061 rows2025-04-15 to 2026-03-05Game IDs mapped to moneyline, spread, total event tickers
kalshi_nba.db / candles2,748,827 rows2025-04 to 2026-03Open, close, high, low, bid, ask, volume, and open interest
nba_spread_markets_raw.json11,062 rows / 22.28 MBRaw spread market payloadsLargest raw Kalshi team-market file
nba_kxnbagame_raw.json2,120 rows / 4.15 MBRaw game winner marketsMoneyline-like Kalshi market source
nba_kxnbatotal_raw.json10,155 rows / 19.73 MBRaw game total marketsTotal market source file
nba_kxnbapts_raw.json11,609 rows / 28.04 MBRaw player points propsPlayer prop source file
nba_kxnbareb_raw.json11,286 rows / 27.27 MBRaw player rebounds propsPlayer prop source file
nba_kxnbaast_raw.json8,635 rows / 20.82 MBRaw player assists propsPlayer prop source file
nba_events.json3,156 rows / 0.74 MBKalshi NBA event recordsEvent metadata source
nba_kalshi_season.csv1,060 rows2025-04-15 to 2026-03-05Season CSV with home/away, ML volume, last prices, and winner side
Kalshi backup spread traces67,804 spread ticks / 2,026 score ticksGSW-PHI and CHI-MIA samplesBackup per-game Kalshi market and score traces

This is separate prediction-market data, not sportsbook odds. It can be joined later by NBA game ID, event ticker, market close time, or game date depending on the model target.

Feature Artifacts and Model Inputs

Artifact Rows or records Size Use
universal_game_state.json22,104 records17.21 MBUniversal game-state features
dynamic_game_states.json5,862 records12.33 MBDynamic in-game states
live_line_correlation_data.json5,725 records2.22 MBSpread/total states with half and Q3 context
pregame_features.json3,844 records3.48 MBPregame model features
signals.db / backtest_games5,829 rows1.57 MB DBSignal backtests from 2019-02-04 to 2026-03-14
signals.db / team_playbook818 rows-Team profile and playbook text inputs
kaggle_nba_betting/nba_2008-2025.csv23,119 lines2.26 MBHistorical betting CSV
missing_games.json5,655 candidates0.73 MBBackfill candidate list; 4,416 already present, 1,239 remaining, 1,969 rows need date/team repair
sports_data_map.py562 mapped files / 57 correlations36 KBRead-only generator for the hosted JSON and Markdown sports map
nuclear_players.db140 players / 8 signals0.04 MBPlayer-tier and signal reference database
NBA_AI_dev.zip1 archived SQLite191.30 MBContains NBA_AI_dev.sqlite, 3.36 GB uncompressed

These files are useful model inputs, but they should be versioned and joined through explicit keys before being treated as production-ready training tables.

Next Backfill Steps

  • Keep the 2024-25 game/PBP/stat backfill as the current base. It is complete.
  • Create source crosswalk tables from backtest.db game IDs to Kaggle rows, kyleskom season/date tables, Pikkit wager rows, and Kalshi event tickers.
  • Inventory the 2013-18 spread CSVs and the compressed NBA_AI_dev.sqlite archive separately from the active DB until their game IDs are mapped.
  • Use sports_data_map.py as the repeatable audit gate; current generated map shows 1,239 remaining missing_games.json candidates after 4,416 are already present.
  • Promote the existing live captures from arb_log.db, live_spreads.db, and odds_snapshots.db into one normalized in-game odds snapshot table.
  • Create a no-lookahead join table that maps each PBP state to the latest odds snapshot at or before that game-clock timestamp.
  • Backfill missing 2024-25 pregame odds for the 384 games not currently matched, then extend the same process to 2025-26.
  • Do not treat PBP rows as betting-ready until a corresponding odds snapshot is attached or the row is explicitly flagged as missing live odds.

Current practical status: game data is solved for 2024-25; pregame odds are partially matched; live odds exist on the server but need normalization and action-level joins.