Data readiness
A live production adaptation of the assessment notebook’s completeness framework. Readiness is shown as separate measurements—not one subjective score—so structural coverage cannot hide stale data, broken relationships or missing likeness.
Schemas measured
0/12
live Redshift reads
L1 structural
0/0
populated spine slots
L2 rollup
—
events with mandatory rollup
L6 violations
0
orphans + status violations
Fleet readiness · live by league
| League | L1 structure | L2 relations | L3 live field coverage | L4 temporal | L6 consistency | Latency |
|---|---|---|---|---|---|---|
| MASL | Measurement failed: The security token included in the request is invalid | |||||
| WSL | Measurement failed: The security token included in the request is invalid | |||||
| SMX | Measurement failed: The security token included in the request is invalid | |||||
| HLR | Measurement failed: The security token included in the request is invalid | |||||
| PBR | Measurement failed: The security token included in the request is invalid | |||||
| AUSB | Measurement failed: The security token included in the request is invalid | |||||
| BKFC | Measurement failed: The security token included in the request is invalid | |||||
| SLS | Measurement failed: The security token included in the request is invalid | |||||
| XG | Measurement failed: The security token included in the request is invalid | |||||
| GSOC | Measurement failed: The security token included in the request is invalid | |||||
| DG | Measurement failed: The security token included in the request is invalid | |||||
| FD | Measurement failed: The security token included in the request is invalid | |||||
How completeness is measured
- L0 · Reachability. Can ingestion credentials reach every required source collection?
- L1 · Structural. Are all six spine tables populated?
- L2 · Relational. Do events carry contests, results and mandatory event rollups without orphan references?
- L3 · Cell-level. Are expected fields filled, excluding fields explicitly declared not applicable?
- L4 · Temporal. How deep, fresh and gap-free is event history?
- L5 · Reconciliation. Do independent vendor-declared totals equal landed totals?
- L6 · Consistency. Do statuses, identities and references obey the spine contract?
Measurement boundary
This route measures L1–L4 and L6 from production Redshift. L0 source reachability and L5 independent reconciliation live in the ingestion assessment store and are not reconstructed here. The L3 fleet table shows selected live fields; the notebook’s declared-NULL-adjusted headline remains the authoritative ingestion score.
“Impute” never means statistically filling a sports fact. A null is declared, recoverable, deterministically synthesizable by an approved rule, or recorded as a gap.
Data team requests · ESPN-level perspectives
Measured against live Redshift on 2026-09-18. The UI may use a neutral derived mark when likeness is unavailable, but it must never present that mark as an official logo or headshot.
P0 · Athlete, team and league likeness
- Observed
- No active asd_* schema has a headshot, photo, avatar, logo, crest, brand-colour or image column.
- Request
- Add rights-cleared competitor and league assets: headshot/action image, primary logo, dark/light logo variants, primary/secondary colours, source URL, attribution, licence, valid dates and last-updated timestamp.
- Complete when
- Every active competitor and league has a licensed primary asset or an explicit unavailable reason; coverage and freshness are measurable per league.
P0 · Canonical person and team identity
- Observed
- Identity detail exists only in sport-specific extensions. HLR names are 610/688 complete; MASL has 6,350 player rows but no player-name column.
- Request
- Publish a resolver view for people and teams with stable IDs, display/legal names, competitor type, nationality as ISO country code, hometown, birth date, gender where appropriate, and source provenance.
- Complete when
- All public profile rows resolve to a named person or team without a sport-specific frontend join, with field-level fill rates reported.
P0 · Event time, place and broadcast
- Observed
- Only 4 of 12 competition tables populate scheduled_start. Venue and city coverage is absent or partial for most leagues, and there is no broadcast/network field.
- Request
- Supply UTC start timestamp, source timezone, venue ID/name, city, region, country, event state, broadcast network, streaming URL and rights territory.
- Complete when
- Every scheduled event can render an honest local start time and location; unknown broadcast rights are explicit rather than null-shaped silence.
P1 · Rosters, roles and profile depth
- Observed
- Roster and biographical data is fragmented across MASL, GSOC, WSL, SMX, PBR, BKFC and DG extensions; no common player/profile surface exists.
- Request
- Normalize season-scoped roster membership, jersey/vehicle number, position or discipline, active status, height, weight, stance/handedness and social/profile links.
- Complete when
- League, team and athlete pages can use one resolver interface while preserving sport-specific extension fields.
P1 · Official standings, rankings and statistics
- Observed
- The site derives standings from finish_position. Rich depth tables exist for some sports, but the six-table spine exposes no official standings or leader-stat contract.
- Request
- Publish source-labelled official standings/rankings plus sport-specific stat definitions, rank movement, records, splits and season/career aggregates.
- Complete when
- Every displayed ranking states its governing source and calculation; derived rankings are visibly distinct from official ones.
P1 · Editorial and media coverage
- Observed
- PressBox coverage exists for only a subset of leagues. The warehouse has no story, video, highlight or editorial-to-event relationship.
- Request
- Provide rights-cleared stories, thumbnails, video/highlight URLs, captions, transcripts, publish/update timestamps and joins to leagues, events and competitors.
- Complete when
- Every article or clip has provenance and rights metadata, and unsupported leagues visibly report coverage gaps.
P2 · Live and transactional perspectives
- Observed
- Curated schemas have no uniform play-by-play, injuries, transactions, betting markets, lineups or fantasy projections.
- Request
- Define separate real-data contracts for live state/play-by-play, entries and lineups, injuries, transactions, odds and fantasy projections.
- Complete when
- Each perspective has a source, update SLA, correction policy and explicit league coverage matrix before a UI module is enabled.