feat(elections): results UI with round-by-round visualization
Open
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 33
- Forks
- 104
- Avg merge
- 12h 3m
- Merged PRs (30d)
- 10
Description
Summary
Display tabulation results to admins (preview) and to the public (after publish) with a round-by-round breakdown that makes ranked-choice results legible.
Part of #1933.
Requirements
- Admin-only results preview once election status is `closed`
- Public results page once status is `published`
- Per-race display: method (IRV/STV), winner(s), seats filled, quota (for STV)
- Round-by-round table showing counts, eliminations, transfers
- Visualization (stacked bar chart or Sankey) showing ballot flow across rounds
- Clear labeling of exhausted ballots in every round
- Shareable per-election URL
- Downloadable CSV of per-round counts for each race
- No raw ballots exposed in the UI — only aggregate round data
Context
- Epic: #1933
- Depends on IRV and STV tabulation issues
Implementation notes
- Sankey visualization library: `d3-sankey` directly, or `@nivo/sankey` if we want a pre-built React component
- Use design-system color tokens — results coloring must meet contrast requirements
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.