Live results API

GET /api/live-results is public and returns schema version 1. Black Rod uses these results to overlay provisional APDA points without importing final results. The payload is cached for up to 60 seconds; consumers may cache it further.

Top-ten varsity and novice speaker results become available when the first outround in either division is released using the pairing release control (var_teams_visible / nov_teams_visible). Pairing an unreleased round or entering its result does not release speakers. APDA publication is automatic; there are no separate manual publication switches. If no outrounds are released, speakers become available three hours after all final-inround outcomes have timestamps. No speaker scores or ballots are included.

Team results include one entry per team with its best guaranteed placement from released rounds, even before any elimination result is entered. Quarterfinalists have place: 5, semifinalists place: 3, finalists place: 2, and the champion place: 1. A win improves the placement immediately; an opening partial-round bye receives the next round’s placement even before that round is paired. Unreleased later pairings/results do not affect the response. Varsity and novice releases are independent for team results.

Once a stage is released, its team IDs and placements are persisted in TabSettings (live_results_published_stages_0 / _1). Preparing challenge picks, pairing another round, hiding pairings, or clearing caches does not erase these already-public results or re-embargo speakers. Releasing the same stage again replaces its published placements, so corrected outcomes can be reflected. Snapshots contain no judge data or unpublished opponents. Team identities and APDA IDs are serialized from current records so later identity corrections apply. There is no database migration. Existing tournaments begin recording snapshots when a public stage is next read or a release/pairing control is used; data hidden before this version was deployed cannot be reconstructed from a snapshot.

The placement is a current points floor, not a prediction or a confirmed final finish. Black Rod already converts each placement into the corresponding points and recomputes its overlay on refresh, so advancing replaces a team’s previous provisional contribution rather than adding another contribution.