Before you start
- Open setup at
/setup. Setup code is validated via API/session storage, so it no longer needs to appear in URL query params. - If you use direct code-entry routing, legacy
/beta/setup/<your-code>is still supported. - Prepare your unit roster and identify ineligible or proxy units.
- Confirm quorum target and election duration.
- Decide your retention period (default 90 days, supports 0 for immediate purge after close).
1. Create election
- Set number of floors and validation mode (Unit, Legal Unit, or Both).
- Configure units per floor and numbering format.
- Mark excluded or ineligible units (including proxy-voted units), or enable inverse mode to mark eligible units instead.
- Enter vote settings: election name, quorum %, proxy count, voting minutes, retention days, seats.
- Add question and candidate/answer list, then create the election.
The setup result shows Election ID, Admin Secret, Progress URL, Audit URL, and all unit voting links.
2. Start election
- Click Start Election in setup after creation.
- Status changes from Not started to Open.
- Voting countdown begins and live progress tracking is enabled.
4. Voter experience
- Unit opens the secure one-time link.
- System validates unit identity based on configured mode.
- Unit submits one vote (or abstain, where allowed).
- Participation is tracked for quorum, while ballot choice is stored anonymously.
5. Monitor progress
- Open the Progress URL to view live turnout and quorum metrics.
- Review attendance including proxies and list of units that voted.
- Final tally is revealed when election closure conditions are met.
6. Recount and audit
- Open the Recount or Audit URL.
- Enter Admin Secret to unlock audit data.
- Review full link lifecycle table (Created, Sent, Opened, Cast), timing, and final tally.
7. Close election and retention handling
- Election closes when manually closed, time window expires, or all eligible units vote.
- Configured retention applies after closure.
- At retention expiry, election records are purged; routes then show Election Not Found.
For testing retention behavior, set retention days to 0 to purge immediately after close.
8. Scrutineer-ready AGM minutes text
The scrutineers confirmed that the voting system recorded which units cast a ballot for quorum and eligibility purposes. No information identifying how any unit voted was available or accessible.
The scrutineers verified that the list of units that voted matched the corporation eligibility list, each unit voted only once, and no duplicate or invalid ballots were counted.
All ballots were anonymous, and voter identity remained separate from ballot contents.
Troubleshooting
- Election not found: Election may be purged by retention policy, invalid ID, or stale URL.
- Cannot open audit data: Confirm correct Admin Secret for that election.
- Status mismatch: Refresh progress and audit pages after closure events.
- Immediate purge checks: Use retention days 0 and verify both API and page routes.