Home
All projects

Draft Blitz

Draft real NFL prospects without hindsight.

The Draft Blitz post-draft overview, reading "Job Safe" at 267.2 against a target of 124, with the scoring breakdown and position-by-position grades for the roster the draft produced.
Status
LiveShipped and publicly available.
Started
Role
Game Design, Data Architecture, Research, Development Orchestration, QA
Built with
  • Python
  • SQLite
  • SQL
  • NFL.com Draft Tracker data
  • React Server Component parsing
  • Headless Chrome

Overview

Draft Blitz is a historical NFL mystery-draft game built around one question: how well could you draft if you did not know the player’s name?

The game gives the player a randomized draft slot and an anonymous board of real historical prospects. Instead of names, colleges, and career outcomes, the player sees the information that existed before the draft: position, measurements, combine results, NFL.com scouting scores, strengths, weaknesses, and scouting notes.

After a pick, the identity is revealed — along with the players left on the board.

The intended loop is intentionally fast: draft seven rounds, respond to randomized ownership priorities, stay above the firing threshold, export the result, and immediately play again.

Hindsight Is the Enemy

A historical draft game becomes trivial if the board says “Patrick Mahomes.” The player’s memory of the career contaminates the scouting decision.

Draft Blitz therefore treats anonymity as part of the data architecture rather than a visual blur applied at the end.

Names and draft positions are obvious leaks, but subtler metadata can give the answer away too. During development, missing-headshot patterns in some classes perfectly predicted whether a prospect went undrafted.

That meant the game needed an explicit boundary between information that is safe before the pick and information that belongs only in the reveal.

Building the Historical Dataset

The data foundation became the hardest part of the project.

I standardized pre-draft truth on NFL.com rather than mixing incompatible grading systems from multiple sources. The original assumption was that hundreds of prospect pages would need to be scraped individually.

Investigation found something much more efficient: NFL.com’s yearly Draft Tracker embeds the complete class inside React Server Component flight data, including a dehydrated TanStack Query cache.

One yearly request can recover an entire draft class.

A Python importer caches the raw tracker payload, extracts the structured records, validates the class, and writes the canonical SQLite database. The supported historical range is 2008–2026.

Quiet Data Bugs

Cross-era validation uncovered failures that would have produced believable but wrong game data:

  • long scouting reports appearing as unresolved React flight references;
  • the same NFL person UUID appearing in more than one draft class;
  • zero values used as missing-data markers;
  • historical team-name inconsistencies;
  • impossible measurements mixed with legitimate athletic outliers;
  • scouting prose that included the player’s own name.

The final database preserves raw source material while exposing a separate v_mystery_prospect view containing only fields approved for anonymous gameplay. A matching reveal surface holds the hidden answer side.

Name-bearing scouting text is redacted deterministically for play without destroying the raw NFL.com record.

Validation Instead of Over-Cleaning

One useful data-quality lesson came from measurements.

A genuine 84-inch broad jump and an impossible 2.92-second 40-yard dash showed why simple hard-coded validation ranges were insufficient. The importer now uses consistency checks, warnings, and quarantine behavior rather than rejecting an entire draft class because one source record looks strange.

After the full historical backfill, the offline validation suite reached 227 passing tests.

Current State

The pre-draft database is substantially complete. It covers 19 draft classes from 2008 through 2026, with 1,541 drafted QB/RB/WR/TE prospects already available in the target offensive-skill pool.

The browser game is live. A run is seven rounds plus three of undrafted free agency, against owner priorities that have to be satisfied: the identity reveal after each pick, career-value scoring measured both against the pick you spent and against who else was still on the board, a final grade, and a shareable result card.

That sequencing was intentional: before building the dopamine loop, I wanted the hidden-information foundation to be trustworthy enough that the game could not accidentally spoil itself.

Milestones

  1. Mystery-draft concept defined

    Shifted from sports trivia toward an anonymous historical drafting loop.

  2. NFL.com data architecture discovered

    Found that one Draft Tracker response can contain a complete historical prospect class.

  3. Historical pre-draft backfill completed

    Built a validated 2008–2026 prospect foundation with separate mystery and reveal surfaces.