Ranked Choice Voting App

A better way of voting

Register

Login

Create New Account

Thank you for signing in as {{user.name}}.

Always-free RCV!


For over 10 years, you've used ranked choice voting for movie nights, book clubs, Taco Tuesdays, and beyond. Whether voting for one position or multiple, RCV allows for the greatest representation of the voters.
Click "About" to learn more!

Create a Ballot

About

Create a professional RCV ballot in 15 seconds

Ranked Choices is the fastest way to create a ranked choice voting ballot. Name your ballot, add your options, and you have a shareable link — no account needed, no setup required. Advanced features like voting cutoffs, secure codes, and result visualizations are there when you need them, but they never get in the way.

Why Ranked Choice Voting?

  • Better representation
  • No "Settling"
  • No wasted votes
  • Vote by preference
  • Great for multi-seat elections
  • Easy to use

Ranked Choice Voting is about representing the people in the best way possible. The key is allowing the voter to choose more than just their favorite candidate. The problem with only voting for one choice is that if that choice does not come in first or second, it could be considered a "wasted vote." Therefore, people are more likely to vote for their second or third choice on the idea that it has a higher chance of winning and it's better than their last choice.

With Ranked Choice Voting, there is no issue with voting for your first choice first, second choice second, and third choice third. Because if your first choice doesn't win, then your vote automatically gets transferred to your second choice! And that is the beauty of the system.

RCV also works really well for multi-seat elections. Everyone's vote is still counted as one vote, but after their first choice is elected, the unused portion of their vote (equal to the amount not absolutely necessary to get their 1st choice elected) goes to their second choice candidate. This short video illustrates ranked choice voting in the Animal Kingdom:

STV explained with animals

Get more — for free

Creating a free account lets you edit entries, manage your ballots, and view results all from one place.
Already created a ballot as a guest? Log in and claim it from the results page.

Support

I built this free app to help raise awareness of ranked choice voting. Show your appreciation at paypal.me/rankedchoices. Thank you to my hall of fame!

Feedback

I welcome questions, concerns, suggestions, and accolades! davidmoritz@gmail.com

Secure Elections

Need a secure election with voter codes? Review the Secure Election Instructions.

Open Source

Ranked Choices is completely open source. Browse the code, report issues, or contribute on GitHub.

Terms of Service

Please view our Terms of Service to understand proper use of this site.

Hall of Fame!

Thank you to all those who have helped support this app!

Date Name Message
{{entry.date | date: "MMM d, y"}} {{entry.name.substr(0, entry.name.indexOf(' '))}} {{entry.message}}

Edit Ballot: {{ballot.name}}

{{errors.name}}
{{errors.key}}{{success.key}}

Popular

{{errors.positions}}
{{errors.createdBy}}
{{errors.secureCutoff}}
:
:

Voter Settings

Secure ballots use system-generated codes for verified voting.
more may be added at any time
Define prompts on the next screen.

Want a secure ballot using codes or custom voter prompts? Create a free account

Display

External website Integration

After creating the ballot, use "Custom Instructions" from your Profile to write your instructions.
Max votes per person
{{errorEntry}}

Current Entry List

{{$index + 1}} {{entry}}
 

Voter Prompts

These prompts appear to voters before they submit their ballot.

Voter Code — Required

Custom Voter Prompts

Thank you for creating a ballot!

Send this url or QR code to people for voting:

{{origin}}/{{ballot.key}}

Click here to vote yourself Click here to manage this secure ballot

Want to edit this ballot later? Create a free account to manage your ballots and unlock features like editing entries.

Please register before voting!

{{errors.uniqueCode}}
{{errors.zipCode}}








Ballot: {{ballot.name}}

Order by Preference (remove any undesired using )

(Drag & Drop)

{{ballot.positions}} positions available

Ballot: {{ballot.name}}

Thank you for voting!

RESET

Ballot: {{ballot.name}}

This device has already voted on this ballot.

Each device is limited to one vote. If you believe this is an error, please contact the ballot creator.

Vote!

{{errors.shortcode}}

Ballot: {{ballot.name}}

Enter your voter code to proceed

{{errors.secureCode}}

Ballot: {{ballot.name}}

{{errors.groupAnswers}}

Ballot: {{ballot.name}}

Voting closes in {{cutoffMinutes}}:{{cutoffSecondsPadded}}
Time is up. This vote is no longer valid.
Enter Your Name to View the Candidates.

Order by Preference (remove any undesired using )

(Drag & Drop)

{{ballot.positions}} positions available

Voting URL: {{origin}}/{{ballot.key}}

Ballot: {{ballot.name}}

Thank you for voting!

Click here to see the results

Visit {{origin}}/results#{{ballot.key}} after {{resultsReleaseFormatted}} to see the results
Voting URL: {{origin}}/{{ballot.key}}

This ballot was created as "guest". Click here to take ownership and unlock editing.

Ballot claimed! You can now edit it from your Profile tab.

Ballot: {{ballot.name}}

This device has already voted on this ballot.

Each device is limited to one vote. If you believe this is an error, please contact the ballot creator.

Results

{{errors.shortcode}}

This ballot was created as "guest". Click here to take ownership and unlock editing.

Ballot claimed! You can now edit it from your Profile tab.

Results

The winner (so far): {{elected[0].name}}

The winners, in order of most votes (so far):

  1. {{result.name}}

Borda tie-break winner (so far): {{bordaResults.winner.name}}

The winners, in order of most points (so far):

  1. {{result.name}}

A graph of the results will be made available after voting has been cut off.

{{rcvisError}}

Graph last updated {{graphUpdatedLocal}}

{{displayTitle(field.title)}}

  • {{opt.label}} ({{groupResults[field.id][opt.id].count || 0}})
No votes in this group.

Winner: {{groupResults[field.id][opt.id].elected[0]}} ({{groupResults[field.id][opt.id].count}} votes)

Winners: {{groupResults[field.id][opt.id].elected.join(', ')}} ({{groupResults[field.id][opt.id].count}} votes)

{{row.name}}
{{row.votes}} ({{row.percent}}%)

Voting URL: {{origin}}/{{shortcode}}

This ballot was created as "guest". Click here to take ownership and unlock editing.

Ballot claimed! You can now edit it from your Profile tab.

{{errors.shortcode}}

Profile

Sign out

Name: {{user.name}}

Created a ballot before signing up? You can claim your previous "guest" ballots by entering the shortcode on the Results page while logged in.

  • Standard Ballots
  • Managed Ballots
Shortcode Name Vote Cutoff ({{moment.tz(moment.tz.guess()).format('z')}}) Total votes Admin Tools
Transferring... {{ballot.key}} {{ballot.name}} {{!ballot.voteCutoff ? 'never' : ballot.voteCutoff.tz(moment.tz.guess()).format('MMM Do YYYY, h:mm a')}} {{ballot.totalVotes}}
Shortcode Name Vote Cutoff ({{moment.tz(moment.tz.guess()).format('z')}}) Total votes Type
{{ballot.key}} {{ballot.name}} {{!ballot.voteCutoff ? 'never' : ballot.voteCutoff.tz(moment.tz.guess()).format('MMM Do YYYY, h:mm a')}} {{ballot.totalVotes}} Secure Prompts MANAGE Custom Instructions

No secure ballots or custom voter prompts. Create one

Manage RCVis

« Back to Profile

{{manageBallot.name}}

Shortcode: {{manageBallot.key}}   Voting URL: {{origin}}/{{manageBallot.key}}

Vote Cutoff: {{!manageBallot.voteCutoff ? 'never' : manageBallot.voteCutoff.tz(moment.tz.guess()).format('MMM Do YYYY, h:mm a z')}}


Voter Prompts

Custom Voter Prompts

No voter prompts defined.
{{displayTitle(field.title)}} ({{field.type === 'checkbox' ? 'Checkbox' : field.type === 'text' ? 'Text Input' : 'Dropdown'}}): {{field.question_text}}
{{opt.label}}

Voter Codes ({{manageCodes.length}})

Code Label Voted At
{{code.code}} {{code.votedAt}} available unused

Quick Stats

Total codes: {{manageCodes.length}}

Voted: {{manageCodes.length - manageCodesAvailable}}

Available: {{manageCodesAvailable}}

Unused: {{manageCodesAvailable}}

Voter Prompts:

{{displayTitle(field.title)}}: {{field.options.length}} choices


View Results
« Back to Profile

Custom Instructions: {{customHtmlBallot.name}}

Shortcode: {{customHtmlBallot.key}}   Voting URL: {{origin}}/{{customHtmlBallot.key}}


Saved! {{customHtmlError}}

Detailed Results