๐Ÿš€ Ballotis is in beta โ€” apply for free access for your next ballot.Apply now โ†’
Student gov ยท faculty ยท clubs

Online voting for student government, faculty senate, and university clubs.

.edu-domain allowlist + roster CSV from the registrar. Ranked-choice (STV) for at-large seats. Per-voter receipts on the public verification chain. Per-election pricing โ€” the Starter tier covers most undergrad clubs and dorm-floor reps outright.

Built for fast-turn campus votes

.edu domain allowlist + roster CSV

Two-layer gate: only emails on the registrar export AND ending in @yourschool.edu pass. Lets you scope to "currently-enrolled undergrads" or any specific cohort without touching SIS.

Ranked-choice (STV) for at-large seats

Filling N senate seats from a slate of M candidates? Multi-winner STV (Droop-quota) distributes surplus and eliminates the weakest until N seats are filled. Same algorithm Cambridge MA + Minneapolis use.

Sub-48-hour windows

Open + close at minute granularity. Mid-window "send reminder to non-voters" trigger from the producer dashboard for the last-day-before-close push.

Multi-question ballots

President + senate at-large + bylaw amendments in one vote. Each question independently tallied; a contested bylaw doesn't void the senate slate.

Public verification log

Per-voter receipt tokens. Voters re-confirm their vote was counted without revealing their ranked-choice ballot. Election Commission re-tallies the chain end-to-end.

Audit-ready out of the box

Every cast ballot writes an immutable row with hashed voter ID + timestamp + IP/device hashes + chain position. Export the full audit as a PDF for the Election Commission packet.

How it works

Step 1

Upload roster + set the allowlist

Registrar CSV. Lock the email allowlist to @yourschool.edu (or your specific subdomain). Per-row vote caps + disposable-email block.
Step 2

Build the ballot

President + senate (STV multi-winner) + referenda. Pick the High-Integrity Election preset for email-OTP defaults; bump to email+SMS if your charter requires it.
Step 3

Open + close + tally

Voters get a magic link to their @yourschool.edu inbox. Watch turnout live, send reminders mid-window. On close, the STV tally + audit log export goes straight to the Election Commission packet.

Frequently asked questions

How do you make sure only enrolled students can vote?

Two layers. First, a domain allowlist on the voter sign-in form โ€” only @yourschool.edu addresses get past the magic-link step. Second, a CSV roster import (from the registrar export) so the allowlist is restricted to the specific cohort eligible for the election (e.g. only currently-enrolled undergrads, or only students in a particular program). Combined, the gate is roster-driven AND domain-verified.

Can we run ranked-choice for student senate at-large seats?

Yes โ€” when filling N at-large seats from a slate of candidates, set the poll method to MULTI_WINNER_STV (Droop-quota single transferable vote). Voters rank as many candidates as they want; the algorithm distributes surplus quotas and eliminates the weakest until N seats are filled. Same algorithm Cambridge MA + Minneapolis use for city council.

Election runs 24-48 hours โ€” is that supported?

Yes; producer sets opensAt and closesAt at any granularity. The cron eventually-consistent voter reminder cadence won't fire on a window that short, but you can manually trigger "send reminder to non-voters" from the producer dashboard mid-window โ€” useful for the classic last-day-before-close push.

What if a candidate contests the result?

Every cast ballot writes an immutable audit row with hashed voter ID + timestamp + IP/device hashes + chain position. Producer exports the full audit log as a PDF for the Election Commission walkthrough. End-to-end verifiable mode adds public per-voter receipts so independent observers can re-tally the chain.

Can voters confirm their ballot was counted without revealing how they voted?

Yes โ€” when end-to-end verifiable mode is on, every voter gets a per-vote receipt token at cast time. They can re-look-up that token on a public verification page to confirm their vote is still in the chain, without exposing their ranked-choice ballot. The Election Commission can re-tally the entire chain and confirm the announced result matches.

Multi-question ballots โ€” president + senate at-large + bylaw amendments in one vote?

Yes. Mix Single Choice (president, one seat), Multi Choice (committee), Yes/No (bylaw amendment, referenda), and ranked-choice STV (at-large senate seats) on a single ballot. Each question is tallied independently โ€” a contested bylaw doesn't invalidate the senate slate.

How much does it cost?

Per-election pricing for one-off votes (Starter $49 covers up to 250 voters โ€” most undergrad club elections and dorm-floor reps fit here ยท Standard $149 โ‰ค1,000 ยท Pro $349 โ‰ค2,500 ยท Pro+ $649 โ‰ค5,000). Undergrad student governments at large universities, plus faculty senates running multiple votes per term, typically save with a Ballotis subscription ($39/mo Solo ยท $129/mo Team).

Is this used outside the US?

Ballotis works globally โ€” voter UI translates to any locale via the producer-controlled translation flow (PR #93). Some non-US universities have specific election rules (UK SU election regulations, AU NUS rules); those layer on top of Ballotis's mechanics rather than replacing them. Confirm with your registrar or election commission before switching from paper.

Confirm with your registrar or Election Commission before switching from paper. Ballotis is software, not legal advice.

Run your next campus election on Ballotis.

Free trial, no card required. Most undergrad elections fit the $49 Starter tier outright.

Student government online voting โ€” ranked-choice + .edu allowlist | Ballotis ยท Aclamos