Online Elections

An election is organized by an election manager (probably yourself). The manager provides information about the election (e.g., candidate names) and specifies the voter list (e.g., a list of email addresses). OpaVote ensures that only authorized voters can vote and that they only vote once.

Elections have three stages: EDITING, VOTING, and END. Please see below for the details of each stage.


During the EDITING stage, you provide all the details for the election. This includes all the information that will appear on the election web page, the information in emails sent to voters, and the email addresses of all voters.

Below is an explanation of the information that you can provide. Some information is optional. By default, one contest is included. You can use the Add Contest button to add more contests (up to 30 contests allowed).

  • Title of election — This title appears at the top of the voting page and also in emails to voters. Make sure to preview the voter email to make sure it is inserted in a grammatically correct way.
  • Description of election — This description appears on the voting page. If you do not specify the email text (see below), then the description is also used in emails to voters.
  • Email text (optional) — The emails sent to voters follow a specific format, but you can specify the second paragraph of the email message with any special instructions you would like to include. This field is optional, and if you leave it blank, then the description will be used.
  • Start date (optional) — If you do not specify a start date, voting will start (and voting emails sent) as soon as you click the Start Voting button. If you do specify a start date, voting emails will be sent out at 12:01 am on the start date.
  • Stop date (optional) — If you do not specify a stop date, voting will stop only when you click the Stop Voting button on the management console. If you do specify a stop date, voters will not be able to vote after 11:59 pm on the stop date.
  • Show results during voting — Whether to allow voters to see preliminary results while voting is ongoing. Note that the manager can only see preliminary results if the voters can also see preliminary results. At the end of the election, you have the option to publish results and send an email to voters to let them know.
  • Title of contest — Each contest has a title, and the contest title appears on the voting page.
  • Description of contest (optional) — If provided, the contest description appears on the voting page just below the contest title.
  • Method — The method used to count the votes for the contest. For more information about the available counting methods, see here.
  • Ballot type — Choose from two different ballot formats for ranked methods. You can see an example of each ballot format here.
    • ranked simple — A ranked ballot where the voter must rank all candidates.
    • ranked enhanced — A ranked ballot where the voter can rank any number of candidates (but see the "Require full vote" option below).
  • Require full vote — Whether to require voters to rank a minimum number of candidates. For the two plurality methods, the voter is required to select as many candidates as there are winners in the contest. For the ranked methods with a "ranked enhanced" ballot, the voter is required to rank all of the candidates. This option is not available for approval voting and for the ranked simple ballot (which already requires voters to rank all candidates).
  • Number of winners — The number of winners for the contest. When electing a president, there is typically one winner, but when electing a committee or council, there may be more than one winner.
  • Candidate names — The candidates competing in the contest. Only text is allowed (no images or HTML).
  • Shuffle candidate order — The default is to randomly shuffle the order of candidates on the ballot to prevent bias. You can change this if you prefer the candidates to always appear in the same order.

At any time, you can click the Save Information button. This allows you come back another day to finish. OpaVote limits certain aspects of the data you provide, such as limiting the election title to 50 characters. If you have not complied with any of these limits, you will see an error message. Use the preview buttons to see a preview of the election page and the email that gets sent to voters to make sure all information looks correct. Note, that you need to save before previewing.

During the EDITING stage, you also specify the voters. There are two types of voters: email voters and code voters. More information about email voters and code voters is provided below.

Once you are satisfied that all information is correct, click on Start Voting. Note that once you start voting, you can no longer edit any of the information on this page, so review carefully before proceeding.

If you have not set a start date, OpaVote will start sending the voting emails to the voters immediately after you click the button. If you have set a start date, the voting emails will be sent out at 12:01 am on the start date.

Email Voters

For email voters, you provide the email addresses and OpaVote sends an email to each voter. Note that the voters' email addresses are used only for the purpose of running the election and are not shared with anyone. For more information, see our privacy policy at the link below.

You have two options for providing the email addresses of the voters:

  • Upload file — You can upload a a plain text file (i.e., ASCII) with a list of voters. Be careful when using a program like Microsoft Word or Excel to make sure that you are saving as plain text. The file must have one email address per line.
  • Enter voters — You can also copy and paste the email addresses from another source. One email address per line.

You must use best efforts to ensure that voter lists have valid email addresses and are limited to people who are genuinely interested in the election. Elections with too many invalid email addresses or voter complaints may be terminated. See our Terms and Conditions below for more details.

You will be immediately informed if your list has improperly formatted emails (e.g., just "john" instead of "") or duplicate email addresses. You can click on the View Voter List button to make sure that you have set the voter list correctly and to see errors. Improperly formatted emails will have a prefix of "INVALID:" and duplicate emails will have a prefix of "DUPLICATE:". If you have invalid or duplicate email addresses, then you can use the "Clean Emails" button to remove them. You can't start the election if there are invalid or duplicate email addresses.

Code Voters

For code voters, you just specify the number of code voters, and OpaVote provides a list of unique, secret codes. You must provide these codes to voters on your own. OpaVote allows you to view the codes before you start voting, in case you need time to process them.

Code voters may be useful if you have two people who share the same email address. You can create an email voter and a code voter to allow both to vote.


During the VOTING stage, you can monitor the status of the voting, send reminders to voters, disable voters, and end the election.

The management console shows you the number of email voters and the number of code voters. You can click on these to see the corresponding lists of voters in a new tab of your browser. In the lists of voters, you can further click on a voter to see information about that voter and you can also take two actions:

  • Send Reminder — This resends the voting email to only this voter.
  • Disable Voter — This prevents the voter from voting. You can only disable a voter if they haven't voted yet. If you change your mind you can later enable the voter.

OpaVote allows you to track email delivery. Each voter has an email delivery status that is one of the following:

  • Pending — OpaVote hasn't yet sent an email to the voter. OpaVote sends emails at a rate of 2 per second (takes about 8 minutes to send 1000 emails). For larger elections, you will see this number decrease as emails are sent.
  • In Transit — OpaVote sent the email, but it hasn't yet been delivered (it has been "deferred" by the receiving email server). Email servers can be finicky about accepting emails, and sometimes will only accept an email after you have tried to deliver it a few times.
  • Rejected — The email bounced or the voter indicated that he or she didn't want to receive the email by marking it as spam or opting out. Note that voters have the option to opt out of only your election or to opt out of all OpaVote emails.
  • Delivered — The email has been delivered to the voter.

The management console tells you the number of each category and you can click on each category to see a list of voters corresponding to the category. Note that these numbers only apply to the initial sending of emails to voters and are not reset if you send out reminder emails to voters.

OpaVote also allows you to track voter activity. For email voters, you can track opens of voting emails, and for all voters, you can track visits to the voting page and whether they voted.

  • Opens — The total number of times a voting email was opened. If a single voter opens the email twice, then both of those are counted. Email opens are counted by use of a "tracking pixel" in the email. Many people set up their email to block tracking pixels so this number is generally under reported.
  • Unique Opens — The number of voters who have opened the voting email. If a single voter opens the email many times, this counts as only one unique open.
  • Visits — The total number of visits to a voting page (after clicking the voting link in the voting email).
  • Unique Visits — The number of voters who have visited the voting page.
  • Voted — The number of voters who have voted. There is no need for unique voted since a voter can only vote once!
  • Not Voted — The number of voters who have not voted.
  • Disabled — As noted above, you can disable individual voters, and this is the number of disabled voters.

Clicking on any of the above will give you a list of corresponding voters. The list of "Rejected" voters will also tell you the type of rejection (bounce, spam, or opt out) and may tell you why the voter bounced.

You can add more voters to the election by clicking the Add Voters button after entering the list of email addresses in the corresponding box. You can only do this in batches of 10 voters or less so you should provide most voters during the EDITING stage. You can also add more code voters using the Add Codes button.

You can use the Remind All button to remind all voters to vote once every 3 days. This will resend the voting email to all voters who have not yet voted (excluding disabled voters and rejected voters). You can also change the text of the reminder email before using the Remind All button.

When you would like to stop the election and see the final results, click on the Stop Voting button. If you have not set a stop date, then click the Stop Voting button whenever you want to end the election and it will be ended immediately. If you have set a stop date, click the Stop Voting button after the stop date. Clicking the Stop Voting button before the stop date will immediately end the election.

Kiosk Mode

If you are doing an onsite election (people voting in person at a meeting) with code voters, then you may find our kiosk mode of voting useful.

In the normal mode of voting (not kiosk mode), after voting, a voter is directed to a page that thanks them for voting. For another voter to vote, you would have to go back to the code entry page by clicking the back button a couple times or reentering the voting page address.

In kiosk mode, after a voter votes, a pop up is shown that thanks them for voting and the popup automatically disappears after 5 seconds. When the popup disappears, the code entry page is shown to make it easy for the next voter to vote. In this manner, you can set up one or more voting stations, and voters can easily vote one after the other.

To enable kiosk mode, simply add ?kiosk=1 to the end of the voting page address. For example, the voting pages address would look something like this:

For all subsequent pages (even when a voter inputs an incorrect code or tries to vote twice), OpaVote will remember that it is in kiosk mode and append ?kiosk=1 to all page addresses.


At the end of an election, you can see the results (using bar charts) and download the ballots so you can count them independently.

You have the option to publish the results so the voters (and anyone else) can see them. You do this by clicking the "Publish Results" button. The first time you click this button, an email will be sent to all voters who voted to let them know that results are available.

After publishing the results, you have the option to withdraw them by clicking on the button that says "Withdraw Results". Clicking this button will prevent voters from seeing results. You can publish and withdraw as many times as you like, but an email will only be sent to voters once.

The election manager can also view an updated voter list that includes additional information. For each voter, the voting list indicates whether the voter voted, opted out, bounced, or complained (marked an OpaVote email as spam). You can use this information to tailor your voting list for future elections.