How the five data inputs wire into the scoring layer — including the composite score that is still to be defined — and where each one lands across the workbook's tabs. Grouped by source, with every column and its confidence state enumerated below.
flowchart TB
subgraph IN["DATA INPUTS · grouped by source"]
direction TB
pff["PFF premium reports
DOM-scrape · graded and charted metrics"]
cfbd["CFBD API
roster · stats · EPA · plays"]
rec["Recruiting (247 / On3)
Age · star rating"]
mock["Mock drafts (D. Jeremiah)
draft capital and its movement"]
film["Film study (Zach)
1-10 attribute grades"]
scout["Scouting judgment (Zach)
tiers · notes · watchlists"]
end
subgraph MID["STATS + SCORING"]
direction TB
stats["QB / RB / WR / TE Stats tabs
the mapped stat grids"]
deriv["Derived fields
TOT TCH · TAR · 1D"]
comp["COMPOSITE SCORING
formula not yet defined"]
dsm["Draft Slot Multiplier Model
backtested v2 · last-8-picks blend"]
l2l["L2L Report
normalized RB composite"]
end
subgraph OUT["OUTPUT TABS"]
direction TB
board["SFLX + 1QB Big Boards
ranked prospects · model columns"]
filmtab["QB / RB / WR / TE Film"]
notes["Scout Notes · My Guys · Returning to School"]
end
pff --> stats
cfbd --> stats
rec --> stats
stats --> deriv
stats --> comp
deriv --> comp
stats --> l2l
comp --> board
l2l --> board
mock --> dsm
dsm --> board
film --> filmtab
filmtab --> board
scout --> notes
notes --> board
classDef ok fill:#E9F3ED,stroke:#2E7D55,color:#16412c;
classDef gap fill:#FFF6E5,stroke:#C98A00,color:#8a6000;
classDef bad fill:#FBE9E7,stroke:#C5341A,color:#1C1C1A;
classDef man fill:#F5F5F3,stroke:#D4D4D0,color:#1C1C1A;
classDef accent fill:#FEF0EB,stroke:#E85D26,color:#1C1C1A;
class cfbd,rec,mock,film,dsm,l2l ok;
class pff,deriv gap;
class comp bad;
class stats,filmtab,notes,scout man;
class board accent;
| Column(s) | Source · pull method | State |
|---|---|---|
| Identity block — common to all four Stats tabs | ||
| Rank | Internal · Zach's own ordering | MANUAL |
| Name, School | PFF pinned PLAYER / TEAM, or CFBD /roster | CONF |
| Height, Weight, From | CFBD /roster (height · weight · homeCity/State) | CONF |
| Age, 24/7 | Recruiting (247 / On3) — option to move onto CFBD /recruiting/players | CONF |
| GP | PFF #G column (free on any pull) | CONF |
| PFF | PFF overall grade, 0-100 — the reason for the scrape | CONF |
| QB Stats tab | ||
| ATT, COM%, PA YDs, TDs, INTs, YPA | PFF passing report | CONF |
| ACMP%, BTT, BTT%, TWP, TWP%, SACKS | PFF passing report (renamed metrics) | CONF |
| R YDs | CFBD /games/players rushing — fixes a gap (QB rushing not in PFF passing pull) | CONF |
| BAT, DRP% | PFF passing report — likely a raw column, confirm on first pull | VERIFY |
| TTT, P2S% | New PFF pressure / time-to-throw report slug (5th URL) | VERIFY |
| SCR | No structured source — would need unreliable playText parsing | OPEN |
| NFL | Internal composite (confirm with Zach) | MANUAL |
| RB Stats tab | ||
| ATT, RU YDs, YPA, RU TDs, FUM | PFF rushing report | CONF |
| YACO/ATT, MTF, MTF/A, BAY%, ELU | PFF rushing report (renamed metrics) | CONF |
| REC, RE YDs, RE TDs | CFBD receiving — fixes a gap (PFF receiving pull skips RB) | CONF |
| TOT TCH | Derived · ATT + REC, computed downstream | CONF |
| TAR | Derived · reconstructed from CFBD /plays/stats — real engineering | VERIFY |
| RSNP | PFF rushing report — likely raw column, confirm live | VERIFY |
| ZONE, GAP | No source — O-line scheme charting | OPEN |
| WR Stats + TE Stats tabs (identical column sets) | ||
| REC, TAR, REC YD, REC TD, REC% | PFF receiving report — TAR available here (unlike RB) | CONF |
| YPR, YAC/REC, Y/RR, ADOT, DROP%, CTC%, CTC TAR | PFF receiving report — ADOT and DROP% are PFF-only | CONF |
| 1D | PFF receiving (likely) or CFBD /plays/stats fallback | VERIFY |
| TQB RAT, MTF (as receiver) | PFF receiving (verify) or CFBD-derived passer rating | VERIFY |
| SLOT%, WIDE% | New PFF alignment / snap-share report slug (5th URL) | VERIFY |
| QB / RB / WR / TE Film tabs | ||
| Attribute grades, Total Grade | Internal · Zach's film study, 1-10 per trait | MANUAL |
| RAS | External · Relative Athletic Score | CONF |
| L2L Report tab (RB level-to-level) | ||
| YACO/ATT, MTF, MTF/A + normalized + L2L | Derived from RB Stats — built in the workbook | CONF |
| SFLX Big Board + 1QB Big Board tabs | ||
| Rank, Pos, School, Height, Weight, 24/7 | Carried from the identity block | CONF |
| Tier | Internal · Zach's talent grade | MANUAL |
| DC (draft capital) | External · projected mock-draft slot — feeds the model | CONF |
| Round Base Star%, Star% interp, SuperStar% interp | Draft Slot Multiplier Model · v2 last-8-picks blend | CONF |
| Cliff Swing, Boundary Proximity Swing, Tier Rank, Tier-Capital Gap, Volatility Flag | Draft Slot Multiplier Model · backtested vs 882 draftees | CONF |
| Players to Monitor | Internal · watchlist sidecar | MANUAL |
| Scout Notes + supporting tabs | ||
| Talking Points, Summary, Good/Bad, Pro Comps, Role, Team Fits, Status | Internal · written scouting evaluation | MANUAL |
| My Guys, Players Returning To School | Internal · manual watchlists and eligibility tracking | MANUAL |
| Mock Draft Movement 2016-2025 | External · Daniel Jeremiah mock series, feeds DC stability | CONF |
| Draft Slot Multiplier Model, Historical Backtest | Internal · the model + its 882-player validation | CONF |
TAR, which has to be engineered from play-by-play. Only three columns are truly OPEN with no clean source — SCR, ZONE, GAP — and those are best left as scout-note fields. The manual (stone) rows are not gaps: they are Zach's judgment layer by design.