s1m31/2026_nfl_draft_prospects
2026 NFL Draft — Talent vs. Market
A pre-draft prospect board that measures the 2026 class against itself — our model on one axis, the industry consensus on the other, with the delta as the story.
Live app: click through three tabs at the top.
- Board · Hero scatter of every skill-position prospect. Our Talent score (x) vs. Market score (y), with the quadrants telling the narrative: Consensus Studs, Our Sleepers, Market Reaches, Agreed Questions. Position filter refreshes a data-driven paragraph comparing the 2026 class to the 2015-2025 historical distribution.
- Prospect · Per-player detail: ESPN headshot + college logo, an archetype-aware analytical writeup, six-bucket radar, nearest historical athletic comps with career AV, and potential landing spots side-by-side (team-need fit vs. the latest PFN mock).
- Big Board · All seven rounds of the 2026 draft. Round 1-3 pairs PFN's mock prediction with our model's best-fit pick given team needs. Rounds 4-7 run our model-only projection over the reverse-standings draft order.
What's under the hood
Talent score (0-100) · Position-weighted composite of six buckets:
- Speed / Size / Quickness — percentile vs. 2015-2025 drafted peers at the same archetype (e.g. Move-TE Kenyon Sadiq benchmarked against other move TEs, not all TEs).
- Production / Efficiency — within-2026-class percentile on position-specific composites (adj passing yards for QB, scrimmage for RB, receiving for WR/TE, plus CFBD PPA/play).
- Youth — derived from class year, calibrated to the JJ Zachariason framework where younger prospects with equal production carry more NFL upside.
Market score (0-100) · Linear rescaling of the Wide Left Consensus Big Board (Arif Hasan, 103+ analyst aggregation) so the two axes are directly comparable.
Archetype-aware scoring · Rule-based within-position archetypes (QB: Pocket / Mobile · RB: Power / Scatback / All-Purpose · WR: Outside / Slot / Power Outside / Power Slot · TE: Move / Inline) applied identically to historical draftees so athletic benchmarks speak apples-to-apples. Rules validated by an LLM audit over PFN + Wikipedia scouting prose: Claude classifies each prospect from text alone; agreement with the rule-based labels is 100% after iterative refinement (81% before — the rules were tuned from what the LLM saw in the prose).
Projected career AV · Gradient-boosted regressor (scikit-learn HistGradientBoostingRegressor) trained on 2015-2025 draftees with 2022 held out for retrospective evaluation. Spearman ρ = 0.36 on held-out w-AV three years after the draft. Features: combine measurables + age at draft + position — no college production as input, so the errors read as "what scheme / tape / coaching add on top of tools." Methodology expander on every prospect page carries the eval stats and permutation importances.
Data sources (all free / public)
- nflverse / nflreadpy — historical NFL draft picks + combine, NFL team logos
- CollegeFootballData.com — 2025 college production + PPA, class year via rosters, college team logos
- Wide Left Consensus Big Board — industry-aggregated market rankings
- Pro Football Network — 2026 mock draft (rounds 1-3) + scouting prose
- NFL.com — team-by-team 2026 draft needs
- ESPN CDN — headshots + college logos (lookup by CFBD player ID)
- Wikipedia — prospect biographies (secondary LLM validation input)
Design / editorial
Visual bar set to NYT Upshot / 538 / WSJ: muted palette, serif typography, quadrant fills instead of a diagonal, direct labels on named stories, annotation-driven narrative. College logos render as scatter markers at 55% opacity so the plot reads as a team landscape rather than a scatter of dots.
Stack
- Data pipeline · Python 3.11, polars, scikit-learn, httpx
- LLM audit · Anthropic SDK (
client.messages.parsewith Pydantic structured output, adaptive thinking, Claude Opus 4.7) - Runtime · Streamlit 1.56, Plotly, pandas. Free CPU HF Space tier, no live API calls on the request path — all data artifacts pre-baked into parquet files at build time.
Built as a pre-draft portfolio piece for the 2026 NFL Draft (April 23-25, 2026).
