Elections
The Elections module handles district assembly voting — from building ballots and issuing voter codes to running the live vote and certifying results. It covers district assembly elections as well as NMI convention elections. Elections are associated with a specific assembly year. Voters access the ballot using a unique 4-character code on a public voting page — no NazTrack login is required to vote.
The Elections list shows all elections for the district. You can filter by assembly year using the dropdown at the top of the page. Elections are created automatically when an assembly is set up — one election is generated per assembly.
Each row shows the assembly year, the election name, its current status, and its results visibility setting. The possible statuses are:
- Draft — The election is being configured. Voters cannot access the public voting page yet.
- Open — The election is live. Voters can enter their codes and cast ballots on open ballots.
- Closed — The election has ended. No new votes can be cast. Results are being reviewed.
- Certified — Results have been certified. Final results are visible according to the results visibility setting.
Managing an election
Users with election management permission can take the following actions from the list:
- Ballots — Open the ballot management page for this election.
- Voters — Open the voter management page for this election.
- Edit — Edit the election name, description, associated assembly, and results visibility.
- Open / Close / Reopen — Advance or revert the election status. Draft elections can be opened; open elections can be closed; closed elections can be reopened if needed.
- Archive — Archive an election to remove it from the active list. Archived elections remain accessible but are read-only. An archived election can be unarchived.
Results visibility
The results visibility setting controls who can see certified results. You can change it at any time using the dropdown on each row:
- Admins — Only district staff with elections permission can see results.
- Voters — Seated voters can see results on the public voting page after certification.
- Public — Anyone with the voting page link can see results, including all ballot results regardless of voter type.
Who can view: District users with elections view permission.
Who can manage: District users with elections management permission.
The Ballots page lists every ballot configured for the election. Each row shows the ballot name, type, mode, status, the maximum number of selections a voter can make, the number of seats available, and how many ballots have been cast so far.
Ballot status
Each ballot has its own status, independent of the election status:
- Draft — Not yet open. Can still be edited freely.
- Open — Voters with matching voter types can cast their ballot.
- Closed — Voting is finished. Results are available to admins for review.
- Certified — Results are final. Visible to voters or the public per the election's results visibility setting.
Actions on each ballot
- Results — View the tally, vote counts, and outcome for this ballot.
- Edit — Edit ballot configuration. Disabled once votes have been cast or the ballot is no longer in Draft status.
- Duplicate — Create a copy of this ballot with "Copy of" prepended to the name. The copy starts in Draft status with all the same options, giving you a starting point for a similar ballot.
- Open / Close / Reopen — Transition the ballot between statuses. The election must also be Open for voters to cast votes.
- Certify — Locks the ballot as final. Requires elections run permission. Once certified, results become visible per the results visibility setting.
When a ballot is closed, the system checks whether there is a tie at the cutoff seat position. If a tie is detected, a runoff ballot is automatically created in Draft status. The runoff includes only the tied options so the district can run a tiebreaker vote.
Who can manage ballots: District users with elections management permission. Certifying requires elections run permission.
Click New Ballot from the ballot list to open the ballot creation form, or click Edit on an existing Draft ballot. Once votes have been cast, ballots become read-only and cannot be changed.
Ballot Settings
- Name — Required. The ballot title shown to voters, e.g., "District Advisory Board."
- Instructions — Optional text displayed to voters above the option list on the voting page. Use this to provide context or clarify rules.
- Ballot Type — Which convention this ballot is for. Assembly ballots are seen by assembly delegates; NMI ballots by NMI delegates. A voter only sees ballots that match their assigned voter type.
- Mode — How votes are counted. See mode descriptions below.
- Max Selections — How many options a voter can choose. For a 3-seat election, you would typically set this to 3. For a yes/no ballot this is forced to 1.
- Seats Available — How many candidates win. The top N vote-getters up to this number are declared winners.
- Allow Abstention — When checked, voters may submit a ballot with zero selections. When unchecked, voters must choose at least one option.
- Approval Threshold — Shown only for Resolution mode. Sets the required percentage to pass: 50%, two-thirds, or three-fifths.
Ballot Modes
Standard — Voters choose up to the max selection limit. Winners are determined by plurality: the top vote-getters up to the number of available seats are elected.
Yes/No — A two-option ballot (Yes and No). Voters choose exactly one. The outcome is determined by simple majority of those who voted yes or no, excluding abstentions. Use this for officer elections or single-candidate confirmations.
Resolution — Like Yes/No but with a configurable approval threshold. Use this for motions or constitutional matters that require a supermajority. The threshold applies only to yes and no votes; abstentions are excluded from the calculation.
Ballot options
The bottom of the form contains the list of ballot options (candidates or choices). Each option has a Label (required) and an optional Details field for additional context, such as a title or church affiliation.
To add a new option, click Add Option. A new row appears at the bottom of the list. To remove an option, click the remove button on that row and confirm.
To reorder options, drag any row by its handle to the desired position. The order you set here is the order voters will see on the voting page.
Click Save to create or update the ballot. If the ballot is already open or has votes cast, the form is read-only and the Save button is disabled.
The Voters page lists every voter registered for the election. Each row shows the voter's name, the church they are associated with (matched from the assembly delegate certificate), their voter type badges, their seating status, and the code they have been issued if one exists.
Click any column header to sort the list by that column. Click the same header again to reverse the sort order.
Adding a voter
Click Add Voter to open the voter creation form. Fill in the voter's name and optional contact info (email or phone, used only for reference). Select the voter types that apply to this person — a voter must have the matching type to see and cast a ballot of that type. For example, a voter with only the Assembly type will not see NMI ballots.
Check the Alternate box if this person is an alternate delegate rather than a seated delegate. Alternates start as Inactive and cannot vote until they are seated.
If marking someone as an alternate, enter their rank in the Alternate Rank field. This determines the order in which alternates are seated when a delegate is absent.
Seated vs. Inactive
Only Seated voters can cast ballots. Non-alternate voters are seated automatically when added. Alternate voters start as Inactive. To seat an alternate — for instance when their corresponding delegate is absent — edit the voter record, uncheck the Alternate box, and save. The system will update their status to Seated.
Who can manage voters: District users with elections management permission.
Each voter receives a unique 4-character code that they enter on the public voting page to identify themselves. The code is randomly generated and encrypted in the database — it cannot be recovered from the database directly, only revealed through the admin interface.
Codes use a reduced character set that avoids easily confused characters (no zeros, ones, lowercase L, or lowercase O), so they can be read aloud or hand-written without ambiguity. Codes are case-insensitive for voters.
Generating codes
From the Voters list, select the voters you want to issue codes to, or use the option to generate codes for all seated voters at once. Generated codes are tied to this specific election and cannot be reused across elections.
Viewing and printing codes
Click Codes / Print from the voter list to open the codes page. This page shows every voter with an issued code alongside the plaintext code. From here you can print the page for distribution at the assembly, or download a CSV export of all codes.
The CSV export includes each voter's name, code, and other identifying details. Use it to prepare physical code slips or a mail merge for distribution. The export only includes voters who have not yet completed all of their eligible ballots, making it easier to identify who still needs a code or has not yet voted.
Keep codes confidential. Each code grants voting access for that voter. Codes should be distributed individually — do not post a full code list publicly.
Who can view codes: District users with elections management permission.
Who can export the CSV: District users with elections results permission.
Delegates vote on a public page that does not require a NazTrack login. The page is accessed through the Assembly Check-In link from the assemblies dashboard, or by navigating directly to the election's voting URL. Delegates do not need an account — they only need their 4-character voter code.
Entering a voter code
The entry page asks for a 4-character code. The voter types their code and clicks Continue. If the code is valid and the voter is seated, they are taken to the ballot overview page. Codes are not case-sensitive.
If a session is already active on the device — for instance, a previous voter used the same device — the page shows the active session with options to continue as that voter or clear it and enter a new code.
Ballot overview
After entering a valid code, the voter sees the ballot overview page, which lists every ballot they are eligible to vote in. A voter only sees ballots whose type matches their own voter type — assembly delegates see assembly ballots, NMI delegates see NMI ballots, and so on.
Each ballot on the overview shows a status badge:
- Vote — This ballot is open and the voter has not yet cast their vote. Clicking opens the ballot.
- Voted — The voter has already cast their vote in this ballot. Clicking shows a confirmation message; votes cannot be changed after submission.
- Closed — Voting is no longer open. The ballot is available to view but cannot be voted.
- Results — The ballot has been certified and results are visible. Click to see the outcome.
Casting a vote
Clicking an open ballot shows the candidate or option list with checkboxes. For a Standard ballot, the voter selects up to the maximum number of allowed choices. For a Yes/No ballot, the voter selects exactly one option — selecting one automatically deselects the other. For a Resolution ballot, the voter selects Yes or No (or abstains if abstention is allowed).
After making selections, the voter clicks Submit Vote. The vote is immediately and permanently recorded. Votes cannot be changed or retracted once submitted. The voter is returned to the ballot overview page.
Switching voters on the same device
If multiple delegates are using the same device — for instance at an assisted voting station — each voter should click Switch Voter at the bottom of the ballot overview page after completing their vote. This clears the current session so the next delegate can enter their own code.
Who can access the public voting page: Anyone with the voting page URL who has a valid voter code. No NazTrack login is required.
District admins with elections view permission can click Results on any ballot to see the current tally at any time, even while voting is still in progress. Live results refresh every 30 seconds while the ballot is open.
The results page shows:
- Eligible — The number of seated voters whose type matches this ballot.
- Ballots Cast — How many voters have submitted a vote, including abstentions.
- Turnout — Percentage of eligible voters who have voted.
- Abstentions — Voters who submitted a ballot with no selections.
For Standard ballots, each option shows its vote count. The top N options by votes, up to the number of available seats, are highlighted as winners.
For Yes/No and Resolution ballots, the outcome section shows Passed or Failed based on the applicable threshold. Abstentions are excluded from the threshold calculation — it applies only to yes and no votes.
Voters and the public can see results on the voting page once a ballot is certified and the results visibility is set to Voters or Public.
Who can view results before certification: District users with elections view permission.
When a Standard ballot is closed and there is a tie at the boundary between elected and non-elected candidates — that is, multiple candidates tied for the last available seat — NazTrack automatically creates a runoff ballot in Draft status.
The runoff ballot contains only the tied candidates so the district can hold a tiebreaker vote. It is configured with one available seat and inherits the same ballot type as the original.
Open the runoff ballot when you are ready to proceed, run the vote as normal, and certify it when complete. Once the runoff is certified, its results page links back to the original ballot results for context.
Ties that do not affect the seat cutoff — for instance, two candidates tied for positions that are both above or both below the cut — do not generate runoffs. Only ties at the exact cutoff trigger a runoff.
Ties are highlighted in yellow on the results page so they are immediately visible to admins reviewing the outcome before certification.
The Assembly Check-In page is used at the start of the assembly session to record which delegates are present and to seat alternates in place of absent delegates. It is reached from the Elections section of the assembly card on the assemblies dashboard.
Select an assembly and a church from the dropdowns. The page shows two tables: one for that church's delegates and one for alternates. Each row shows the delegate's name, voter type, seating status, and their current voter code status.
If a delegate is absent, you can seat an alternate by editing the alternate voter record on the Voters page, unchecking Alternate, and saving. This changes their status from Inactive to Seated, making them eligible to receive a code and cast a ballot.
Who can access check-in: District users with elections management permission.
- Set up ballots. Navigate to the election and open the Ballots page. Create one ballot for each vote the assembly will take. Configure the name, type, mode, max selections, seats, and options for each ballot. Save each one in Draft status.
- Add voters. Navigate to the Voters page. Add each seated delegate with their name, contact info, and voter type(s). Mark alternates as alternates with their rank.
- Approve delegate certificates. If churches have submitted delegate certificates, review and approve them from the Delegate Certificates page on the assemblies dashboard. Approved certificates confirm which delegates are official.
- Generate voter codes. From the Voters page, generate codes for all seated voters. Navigate to Codes / Print to review the list. Print or distribute codes to delegates.
- Run check-in. As delegates arrive, use the Assembly Check-In page to confirm attendance. Seat any alternates whose delegates are absent.
- Open the election. Click Open on the election to activate the voting session. Then click Open on each ballot as its vote is called. Delegates can now enter their codes and vote.
- Monitor turnout. Use the Results page for each ballot to watch live vote counts and turnout as delegates vote. Results refresh automatically.
- Close ballots and check for ties. When voting time is up, click Close on the ballot. If a tie exists at the seat cutoff, a runoff ballot is automatically created. Open and run the runoff if needed.
- Certify results. Once satisfied with the outcome, click Certify on each ballot. This requires elections run permission. Certified results become visible per the election's results visibility setting.
- Set results visibility. If you want delegates to see certified results on the voting page, set results visibility to Voters or Public from the elections list. For full public transparency, choose Public — anyone with the voting URL can view the results.