How to Run a Board Election Online Without Getting Sued
Run a board election online with a verifiable tally. Directors face personal liability, so a convenient vote is not enough. Here is what the count must prove.
If you run a board election online, the tally has to be verifiable, not just convenient. That is the whole job. A board seat carries fiduciary duty, and a contested result can end up in front of a judge or a state regulator. When it does, "the software said this person won" is not an answer. You need to prove who was eligible, that each of them voted at most once, and that the published count matches the ballots actually cast. Most online board votes fail on the third point, and nobody notices until someone loses by four votes and asks to see the math.
Why board votes carry more risk than a poll
A poll asking your team where to order lunch can be sloppy. A board election cannot. Directors approve budgets, hire and fire executives, and sign off on things they can be sued over personally. If the election that seated them was flawed, every decision they made is exposed. That is why the standard here is not turnout or ease of use. It is defensibility. A losing candidate, a disgruntled member, or opposing counsel should be able to challenge the result and lose the challenge because the record holds.
The failure mode is almost never dramatic fraud. It is opacity. The organizer exports a spreadsheet, announces winners, and deletes nothing but also proves nothing. When the count is questioned, there is no way to reconstruct it. I wrote about why opacity is the default failure of voting, and board elections are where that failure gets expensive.
What the count has to prove
Three things, in order:
- Eligibility. Only current directors or members entitled to vote were issued a ballot. This means locking the roll before the vote opens and recording the version you used.
- One ballot per voter. No double voting, no ballots issued to people who left the board last year. This is where a stale membership list quietly rigs an election in favor of whoever added the extra names.
- Tally integrity. The published result matches the ballots cast, and anyone with standing can confirm it. End-to-end verifiable systems let each voter check that their own ballot was counted without revealing how they voted. That is the property that survives a challenge.
If your process cannot produce all three after the fact, you do not have a board election. You have an announcement. Read what makes an online vote verifiable before you pick a tool, because most tools stop at "we counted them for you."
How to actually run it
Freeze the eligible roster first, with a timestamp and a named person who approved it. Set the quorum and the winning threshold in writing before ballots open, not after you see the numbers. If your bylaws are silent on quorum, fix that before the election, not during the dispute. I laid out how to think about that in setting quorum thresholds for governance votes.
Use a platform that issues each voter a verifiable receipt and publishes the encrypted ballot box so the tally can be recomputed independently. This is exactly the problem MintVote is built for: a vote where the result has to hold up to a hostile audit, not just look official in an email. Keep the audit trail. Do not delete the ballot records the day after you announce, because the challenge window is longer than the excitement window.
The mistake I see most
Organizers treat the board election like a survey and pick a tool by how pretty the results dashboard is. Then a close race happens and there is no way to audit it. Decide up front that this vote might be contested, and build for that day. If you want the full checklist of ways these votes go wrong, I collected them in common mistakes running online votes.
A board election is one of the few votes where a good outcome is not enough. The record behind the outcome is the product. Build it so a skeptic could reconstruct the count and still lose the argument. That is the difference between a decision that stands and a lawsuit waiting for a trigger.