G

Archetype Lens

Race / Match / Judged — depth tables per shape.

completeness · by shape
3 grains cover the whole warehouse

Archetype Lens

Every sport in the warehouse is one of three shapes. Group by shape, not by sport, and completeness becomes a single question per column: which sports already carry this grain's depth tables (curated, complete on the six-table spine), and which raw schemas of the same shape are still candidates for promotion?

Archetypes

3

data shapes

Curated

4

asd_* · 6/6 spine

Pipeline

14

raw · not promoted

Backbone

6

tables every shape shares

race

Race (finish-position grain)

One row per competitor per event, ranked by where they finished.

Depth tables
sessions
entry_list
lineups
tracks
series
Pipeline (8)
usacusac_livef1wooworldracingmoamsmx_livehlr_live

match

Match (two-sided score grain)

Two sides, one score line — home vs away, resolved per game.

Depth tables
standings
schedule
scores_period
period_scores
player_match_stats
team_match_stats
Pipeline (2)
nllpll

judged

Judged (scored-attempt grain)

Each attempt scored on its own — a wave, a ride, a heat.

Depth tables
session_fight
attempts
heats
wave_scores
Pipeline (4)
pbrbkfcrawmotionwsl_live

Curated vs pipeline

Curated sports live under an asd_* schema and are complete on the six-table backbone (6/6) — the solid dots you can query today.

Pipeline sports are raw warehouse schemas of the same shape, typically stuck near 2/6. They are the promotion candidates — a race pipeline promotes on the same pattern that got SMX and HLR to 6/6.

Pulled with AWS_PROFILE=asd against Redshift Serverless (us-west-1 / default-workgroup / dev).

Why shape, not sport

A query written for one race sport translates to every other race sport — the grain is identical. Grouping by shape is how you reason about coverage without memorizing 14 schema names.

See each curated sport up close