Warehouse proof
Every count below was read from Redshift when this page was generated, through the same read-only client the rest of the site uses. No fixtures, no seeds, no cached snapshot older than five minutes. All twelve curated asd_* schemas are listed — product-contract.yaml declares only four of them as product sports, so eight of these are deployed but unpromoted.
| Schema | competitors | events | competitions | results | event_results | seasons | Latency |
|---|---|---|---|---|---|---|---|
MASLasd_masl | The security token included in the request is invalid | ||||||
WSLasd_wsl | The security token included in the request is invalid | ||||||
SMXasd_smx | The security token included in the request is invalid | ||||||
HLRasd_hlr | The security token included in the request is invalid | ||||||
PBRasd_pbr | The security token included in the request is invalid | ||||||
AUSBasd_au_sb | The security token included in the request is invalid | ||||||
BKFCasd_bkfc | The security token included in the request is invalid | ||||||
SLSasd_sls | The security token included in the request is invalid | ||||||
XGasd_xg | The security token included in the request is invalid | ||||||
GSOCasd_gsoc | The security token included in the request is invalid | ||||||
DGasd_dg | The security token included in the request is invalid | ||||||
FDasd_fd | The security token included in the request is invalid | ||||||
The statement behind every league page
One parameterised statement serves all twelve leagues — the sport key selects the schema. The six-table spine holds across all twelve, with exactly two measured exceptions, below.
WITH recent AS (
SELECT event_id, event_name, start_date, status, venue_name, season_id
FROM asd_masl.events
ORDER BY start_date DESC, event_id
LIMIT 1
),
ranked AS (
SELECT
r.event_id, r.event_name, r.start_date, r.status AS event_status,
r.venue_name, r.season_id,
er.division, er.competitor_id, er.score, er.points, er.finish_position,
er.status AS result_status,
ROW_NUMBER() OVER (
PARTITION BY er.event_id, er.division
ORDER BY er.finish_position ASC NULLS LAST
) AS rn
FROM recent r
LEFT JOIN asd_masl.event_results er ON er.event_id = r.event_id
)
SELECT
ranked.event_id, ranked.event_name, ranked.start_date, ranked.event_status,
ranked.venue_name, ranked.season_id, ranked.division, ranked.competitor_id,
c.competitor_name, ranked.score, ranked.points, ranked.finish_position, ranked.result_status
FROM ranked
LEFT JOIN asd_masl.competitors c ON c.competitor_id = ranked.competitor_id
WHERE ranked.rn <= 2 OR ranked.competitor_id IS NULL
ORDER BY ranked.start_date DESC, ranked.event_id, ranked.division, ranked.finish_position ASC NULLS LASTCould not load the sample statement.
The security token included in the request is invalid
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.
What this site does not show
- No kickoff times.
events.start_dateis a DATE. There is no clock time to show, so none is shown. - No live games. Only three future events exist warehouse-wide, so every card reads FINAL rather than faking a live slate.
- No logos. The warehouse holds no image, colour or crest. Marks are initials plus a hue derived from the minted competitor id.
- Venues and cities are partial. Measured 2026-09-18: 1,136 of ~7,300 events carry a venue (au_sb 360/360, hlr 167/167, pbr 576/684, gsoc 20/25, bkfc 13/165) and 1,027 carry a city. The two largest leagues are the emptiest — wsl and masl populate neither, and
masl_game_details.facility_nameis null on all 2,077 rows. Shown where present, never inferred. - No MASL news. PressBox covers 15 series and MASL is not among them.
- HLR carries no scores. Measured against information_schema:
event_resultsandresultsholdscoreandpointsin ten of the twelve schemas, but asd_hlr carriesqualifierinstead and asd_bkfc carries neither. Both are ranked by finishing position only. These are the only two places the identical-spine claim does not hold.