Skip to content

feat(results): time-trial standings detail + full-field tournament placement (points→seed)#316

Merged
ryan-johnson2 merged 1 commit into
develfrom
standings-detail-and-placement
Jun 29, 2026
Merged

feat(results): time-trial standings detail + full-field tournament placement (points→seed)#316
ryan-johnson2 merged 1 commit into
develfrom
standings-detail-and-placement

Conversation

@ryan-johnson2

Copy link
Copy Markdown
Contributor

Time-trial round standings now show Best lap + the win-condition metric (Best-N-consec / Laps) — new RoundStanding backend projection + /rounds/{id}/standings endpoint, positions matching the existing ranking.

Tournament view ranks the full field by bracket placement tier, tie-broken within a tier by points (desc) then seed — points order multi-pilot (4–8) heats; 2-up ties fall back to seed (higher seed → higher place). Champion first.

cargo xtask ci green (no binding drift) + /standings contract; frontend check 0 errors, 529 + 35 tests.

🤖 Generated with Claude Code

…acement

Time-trial (timed_qual) round standings now show each pilot's **best lap** plus the win-condition
metric they're ranked on:
- new `RoundStanding` / `RoundMetric` projection + `GET /events/{id}/rounds/{id}/standings`
  (best_lap_micros always computed; metric = BestLap / BestConsecutive{n} / MostLaps, mirroring the
  round's win condition; positions match the existing round ranking exactly).
- Results round view renders Pos | Pilot | Best lap | ‹Best N consec | Laps›, the metric column
  adapting to the win condition. Non-time-trial rounds keep the ranking table.

Tournament view now ranks the **full field** (not just finalists) by bracket placement:
- placement tier (champion → finalists → semi losers → …), tie-broken **within a tier by points
  (descending), then seed**. Points (default table [10,6,4,3,2,1]) order multiple pilots eliminated
  from the same 4–8-pilot heat; for 2-up heats the tied finishers fall back to seed (higher seed takes
  the higher place). Champion first; partial brackets render gracefully.

Backend: cargo xtask ci green (no binding drift) + /standings contract. Frontend: check 0 errors,
529 rd-console + 35 component tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ryan-johnson2 ryan-johnson2 merged commit 3c9ec92 into devel Jun 29, 2026
3 checks passed
@ryan-johnson2 ryan-johnson2 deleted the standings-detail-and-placement branch June 29, 2026 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant