Union · local · international
Online voting for union officers, ratifications, and member polls.
Secret ballot by default. Member-roster CSV. Email + SMS verification at cast time. Public verification log. Per-election pricing so a one-off ratification vote doesn't require an annual contract.
Built for internal union activities
Scope note: Ballotis runs internal + voluntary union votes — officer elections, contract ratifications, committee allocations, strike-authorization advisory polls. NLRB-supervised representation elections (the formal certification / decertification kind) have procedural requirements only the NLRB's own process can satisfy. Consult counsel before using any platform for those.
Secret ballot by default
Identity is verified at cast time but the audit log never co-locates voter and choice in a single row. End-to-end verifiable mode adds receipt tokens so members can confirm their vote was counted without revealing what they voted.
Member-roster CSV
Upload from MemberPlanet, Aptify, NationBuilder, or a plain spreadsheet. One row per eligible member; per-row vote caps; disposable-email + TOR/VPN block.
Email + SMS 2FA at cast time
High-Integrity Election preset enables email + SMS OTP defaults, IP rate-limiting, and device fingerprinting. Critical for ratification votes that may be contested.
Multi-question ballots
Officer slate + dues amendment + contract ratification, all on one ballot. Each question tallied independently — a contested measure doesn't void the others.
Public verification log
Every cast ballot writes an immutable audit row. Members re-verify their own vote via per-voter receipt token; observers re-tally the chain end-to-end.
Mail-in + online combined tally
Import paper-ballot subtotals as bulk rows by precinct. Final result combines online + mail-in. The audit log preserves the import as a separate signed event.
How it works
Step 1
Upload your member roster
CSV from your management software. Per-row vote caps + email/SMS verification at cast time.
Step 2
Build the ballot
Officer slate (single or ranked-choice) + ratification yes/no + committee multi-select. Pick the High-Integrity Election preset.
Step 3
Open + monitor + close
Members get a magic link; cast ballots in 30 seconds. Watch participation against your roster live. On close, export the audit log + tally PDF for your minutes.
Frequently asked questions
Can we run an NLRB-supervised representation election on Ballotis?
No — NLRB-supervised representation elections (the formal certification / decertification kind) have specific procedural requirements that only an NLRB-administered process can meet. Ballotis is built for the internal + voluntary union activities that don't carry the NLRB's procedural overhead: officer elections, contract ratification polls, committee allocations, strike-authorization advisory votes, dues-related polls. For anything NLRB-supervised, consult your union's counsel and use the NLRB's own process.
Is the ballot secret?
Yes. Voter identity (email or SMS) is verified at cast time but the cast ballot is unlinkable from the verified identity at tally time. The audit log records hashed identifiers + timestamps + chain position; the actual choice + voter pair is never co-located in any single row. End-to-end verifiable mode adds per-voter receipt tokens so members can confirm their vote was counted without revealing their choice.
How do we manage the voter roster?
CSV upload from your member-management system (MemberPlanet, Aptify, NationBuilder, plain spreadsheet). One row per eligible voter. The system enforces one-voter-per-row and per-row vote caps, blocks disposable email and TOR/VPN exits, and lets you set a state-of-residence filter when state-specific by-laws require it.
Can we require both email AND SMS verification (2FA at cast time)?
Yes — the High-Integrity Election preset enables email + SMS OTP defaults, plus IP rate-limiting and device fingerprinting. Important for ratification votes where contested outcomes can drag on for weeks: the audit chain has to survive every challenge.
What if a member contests the result?
Every cast ballot writes an immutable row with hashed voter ID, cast timestamp, IP/device hashes, chain position. On a contested vote, the producer exports the full audit log as a PDF, walks it row-by-row with counsel, and (when end-to-end verifiable mode was on) can re-tally from the public chain to confirm the announcement matches. We never delete or amend cast ballots.
Can we run multi-question ballots (officer slate + dues amendment + contract ratification)?
Yes. A single ballot can mix Single Choice (one officer seat), Multi Choice (committee at-large seats), Yes/No (dues amendment, ratification), and ranked-choice when filling multiple at-large seats with one ballot. Each question is voted independently; a contested measure on one doesn't void the rest.
How much does it cost?
Per-election pricing for one-off votes (Starter $49 ≤250 voters · Standard $149 ≤1,000 · Pro $349 ≤2,500 · Pro+ $649 ≤5,000). Locals and Internationals running multiple votes a year typically save with a Ballotis subscription ($39/mo Solo · $129/mo Team · $399/mo Org). 0% per-vote fee on every plan — your dues stay your dues.
Do you support voting by mail + online in parallel?
Yes — the producer dashboard lets you import a paper-ballot tally as a single bulk row (or N bulk rows by precinct) so the final result combines online + mail-in counts. The audit log records the import as a separate signed event so observers can trace the paper subtotals back to a poll-watcher's signed sheet.
Compliance varies by union charter, NLRA / LMRDA scope, and state law. Confirm with counsel before switching from paper. Ballotis is software, not legal advice.
Run your next union vote on Ballotis.
Free trial, no card required for the Starter tier. 0% per-vote fee on every plan — dues stay where they belong.