W2 · Shipped · Awards workstream

One click. The awards ceremony writes itself.

Take a meet's standings, apply the meet's awards policy, get the full ledger in five seconds. Color-coded by place. IAAF inclusive ties handled automatically. Searchable across athletes, teams, and events.

SETUP

A reproducible sample meet

This walkthrough drives against a synthetic Sample Invitational meet that the app loads when launched with -test.seedFixtures YES. The fixture is identical across runs:

The DM Track Archive window just after launch with the fixture loaded.

The Mac archive just after launch. The synthetic meet is loaded; the relay browser shows the sample data.

STEP 1

Open the Window menu

The Winners window doesn't have a keyboard shortcut by design — it's a meet-end action, not a quick-access. Find it under the Window menu alongside the other meet-control surfaces.

The Window menu open, showing the Winners menu item among other windows.

The Window menu listing every scene the Mac archive registers. Click Winners.

STEP 2

Click "Generate Awards"

The Winners window opens already pointed at the Sample Invitational meet. Look in the header row, between the meet title and the Export CSV button on the right — the new Generate Awards button (medal icon) is gated behind the beta.awards.list flag.

Winners window with the Generate Awards medal button visible in the header.

The medal button sits between the meet title and Export CSV. Click it.

Under the hood: the button reads the meet's current standings + the awards policy, runs MeetAwardsGenerator.generate(...) (a pure function — never re-ranks; just folds policy into the existing places), persists the ledger to ~/Library/Containers/.../Application Support/Awards/<meetID>.json, and opens the Awards window.
STEP 3

The Awards window populates immediately

Header pills give you the four numbers you'll quote to anyone asking about the meet: 10 awards, 22 labels to print (the relay row counts as 5 — one team plaque plus four athlete medals), 3 events, and the policy summary.

Awards window showing 10 awards across 100m, 200m, and 4×100m Relay events with color-coded medals.

Per-event cards with 1st-gold, 2nd-silver, 3rd-bronze, and the tied-3rd duplicate row that IAAF rules require.

The tied 3rd-place rows: Sam Chen and Emma Davis both clocked 12.04s in the 100m. Under top-3 policy, both get medals — that's standard IAAF inclusive tie handling, and the generator does it automatically. No manual override needed.
STEP 4

Filter across the entire ledger

Type into the search field to narrow by athlete name, team, or event label. Type Williams and the list collapses to Alex Williams's awards across all events at the meet:

Awards window filtered to show only Alex Williams's awards: 1st in 100m, 2nd in 200m.

Filtered to Williams — 1st in the 100m, 2nd in the 200m. Headline pills still reflect the full ledger.

UNDER THE HOOD

Why this is faster than the spreadsheet you used last season

UP NEXT

The rest of the awards workstream

W3 — exports: PDF awards list for the announcer table, Avery 5160 / 5163 / 5167 label sheets for medal-back stickers, per-team CSV for parent share-outs, and a one-click push to the cloud-sync relay so spectators with the app subscribed to the meet's room can pull the awards bundle without operator email.

W4 — distribution tracking: a checkbox column on the awards list. Mark each medal as handed out, with timestamp + optional initials of the volunteer who distributed it. Useful for the "did Emma get her 100m medal?" lookups that happen at every meet.

W5 — athlete-page integration: the Athlete window gains a "Medals" section showing every award the athlete has earned across every archived meet. Parents see their kid's medal collection in one place.

← All walkthroughs Home