Latest Results
ASD

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.

Schemacompetitorseventscompetitionsresultsevent_resultsseasonsLatency
MASLasd_maslThe security token included in the request is invalid
WSLasd_wslThe security token included in the request is invalid
SMXasd_smxThe security token included in the request is invalid
HLRasd_hlrThe security token included in the request is invalid
PBRasd_pbrThe security token included in the request is invalid
AUSBasd_au_sbThe security token included in the request is invalid
BKFCasd_bkfcThe security token included in the request is invalid
SLSasd_slsThe security token included in the request is invalid
XGasd_xgThe security token included in the request is invalid
GSOCasd_gsocThe security token included in the request is invalid
DGasd_dgThe security token included in the request is invalid
FDasd_fdThe 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 LAST

Could 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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_date is 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_name is 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_results and results hold score and points in ten of the twelve schemas, but asd_hlr carries qualifier instead 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.