Wikipedia:Administrator elections/SecurePoll setup
From Wikipedia, the free encyclopedia
These are step-by-step instructions for election clerks creating a local SecurePoll for administrator elections. The steps include creating a poll, setting up messages, configuring voter eligibility, encrypting, decrypting, and tallying.
Instructions for election clerks
- Assign yourself and all other election clerks (including backups) the election clerk user group. This is necessary to add them as poll administrators in the next step.
Special:SecurePoll/create
IMPORTANT: Polls cannot be edited after the election starts, except the poll admins. Poll admins can no longer be edited after the election ends. Make sure everything in this section is programmed in perfectly before the poll start date.
Once the poll is set up, give the backup election clerk a copy of your four keys.
Special:SecurePoll/translate
Note: It is hard to blank fields once you have added text to them. If you need to blank a field, until phab:T397575 is solved, simply replace all the text with one space character.
Note: Diffs/logging/msgs for translate currently has a bug where it writes the old settings (phab:T411761). Be careful relying on diffs to see what you edited, to make sure your voter eligibility edits went through, etc.
Special:SecurePoll/votereligibility
Here are the official voter eligibility criteria: Wikipedia:Administrator elections/May 2026. Extended confirmed, not sitewide blocked, not a bot.
| Previous workflow, not needed anymore |
|---|
| The following discussion has been closed. Please do not modify it. |
|
Adding / deleting candidates before the election starts
- Adding - Shouldn't need to do any adding, since the call for candidates closed. If you did need to add someone, to do alphabetical order would be a pain. Would have to add an option with a placeholder ABC, then cut and paste a bunch of people around.
- Deleting - If someone withdraws: edit the poll, click "delete option", click save.
During the election
- If someone is unable to vote but through investigation you determine they are qualified, you can add them to the override list:
- votereligibility -> override list -> edit list -> type their name on a new line -> save list
- Note that scrutineers must be added as election admins (Special:SecurePoll/edit) before the end of the election. Ideally when you're creating the poll so you don't forget. After the election, the edit page becomes un-editable and scrutineers cannot be added.
- If someone wants to drop out during the election...
- Go to the Translation page and edit their candidate name to have a strikethrough, i.e.
<s>Name</s>. - Later, when tallying, when you're copy pasting the results from the SecurePoll tally page to the wiki page, delete the row that has their data, keeping their election results un-published.
- Go to the Translation page and edit their candidate name to have a strikethrough, i.e.
Post election
- Pause to let scrutineers look for votes to strike (see #Instructions for scrutineers below).
- Once scrutineers are done with their IP checking...
- Tally (and decrypt):
- Open these files in a text editor, and copy paste their values into the appropriate text box:
- encrypt-private.pem should be copy pasted into the "Decryption key" text box.
- sign-public.pem should be copy pasted into the "Verification key" text box.
- Click "Create tally".
- Copy paste the tally into Microsoft Excel.
- Delete the column "Average score".
- Add a column for Support / (Support + Oppose). Formula is
=D2/(D2+B2). - Format Support / (Support + Oppose) as percent, with 2 decimal points.
- Add a column for "Result". Anyone whose Support / (Support + Oppose) column is >=70%, and whose Support column is >= 20, is "Elected". Anyone else is "Not elected". Formula is
=IF(AND(E2>=0.7,D2>=20),"Elected","Not elected").- Recall candidates have a 55% support threshold, not 70%. Modify the formula for any recall candidates.
- Left align all.
- Bold italic underline header row.
- In cell A1, type "Candidate".
- Sort by Support / (Support + Oppose), highest to lowest.
- Change the column order for columns B, C, D to support, abstain, oppose.
- In a sandbox, copy paste from Microsoft Excel into the Visual Editor. Visual Editor will automatically format this as a table for you.
- Format the wikicode table:
- Replace the top of the table and the heading row with {{Administrator election result header row}}.
- Convert each candidate row to use {{Administrator election result candidate row}}.
- Replace the bottom of the table with {{End}}.
- Open these files in a text editor, and copy paste their values into the appropriate text box:
- Post the table onwiki (copy paste from your sandbox to the results page).
- Inform the scrutineers.
- The scrutineers each sign off on the results onwiki (confirming that the tally was copy pasted from SecurePoll accurately by the election clerk). See #Instructions for scrutineers below.
- If any candidates withdrew during the election, when you're copy pasting the results from the SecurePoll tally page to the wiki page, delete the row that has their data, keeping their election results un-published.
- Once all 3 scrutineers have signed off, an election clerk posts at WP:BN asking for the bureaucrats to promote the newly elected candidates to administrator.
Instructions for scrutineers
Check votes
Look for inappropriate votes to strike.
- Special:SecurePoll -> English Wikipedia administrator elections, May 2026 -> List
- Types of votes to look out for / strike:
- sockpuppets
- accidental double votes involving 1 main and 1 alt account (if it was a good faith mistake, just strike 1 vote)
- bots
- vanished accounts (note: votes from users who vote before vanishing are still eligible (see also Arbcom election rules); usernames in the voting list do not get updated after a rename)
- any other irregularities
- A script is available to supplement checks: https://checkuser.wikimedia.org/w/index.php?curid=12220
- If you find an irregularity but aren't sure if you should strike it, please ask the other scrutineers, or in the AELECT election officials Discord chat, or at WT:AELECT.
- All 3 scrutineers should make a pass through the list and investigate suspicious things and abnormalities.
- Sorting:
- One of the passes should sort the votes by IP address column (click on the table header to sort). This will group identical IP addresses together, which may reveal sockpuppets.
- One of the passes should sort the votes by username so you can look out for any obvious main account + alternate account pairs that voted.
- The system automatically discounts duplicate votes by the same user, by putting all but the most recent vote in gray and italics, so you don't need to worry about striking duplicate votes by the same user. Focus on main account + alternate account pairs.
- One of the passes should be to scrutinize more closely any row labeled with "dup cookies". SecurePoll sets a cookie when a voter first votes, and doesn't change this cookie even when logging out and back in with a different account. "Dup cookies" means the user voted, logged out and into a different account, then voted again. You can click on "Details" and scroll down to "Cookie duplicate users" to see their other accounts.
- Be sure to check (sorting may also help you here):
- 'CSRF' column. This may contain 'Failed'. See CSRF for background information.
- 'Duplicate' column. This may contain 'Dup cookies' indicating there's another account. Click on the vote details link to find out more.
- Optional: you can use checkuser tools such as Special:CheckUser or Special:Investigate to do more detailed investigations of abnormalities (keeping in mind CheckUser policies such as WP:NOTFISHING), or you can just use the data in SecurePoll; up to you.
- Please audit and keep an eye out for incorrect vote strikes. Any election administrator can strike a vote at any time, including election clerks. Pressing the "strike" button prompts the user to enter a reason. You can check who did the strike and the typed in reason by clicking on the vote.
- When all 3 have completed their pass, an election clerk should be informed so that they can decrypt and tally. You can inform at WT:AELECT for transparency, or user talk, or offwiki; whichever you prefer.
Verify tally
Verify that the tally posted onwiki matches the tally in the SecurePoll software, and that all calculations are correct.
- After a slight delay to decrypt and tally, an election clerk will copy paste the tally results onwiki.
- Special:SecurePoll -> English Wikipedia administrator elections, May 2026 -> Tallies -> row 1 (the newest one) -> click "View"
- This will display a tally (count of the totals of all the types of votes).
- Confirm...
- that the copy-pasted results onwiki match the tally in SecurePoll;
- that the math in the onwiki results for the column "Support / (Support + Oppose)" is correct;
- that the "Result" column is correct and follows the election criteria listed at Wikipedia:Administrator elections/May 2026.
- Then sign off on the results on the results wiki page.
- Example results page with sign-offs from a previous election: Wikipedia:Administrator elections/December 2025/Results.
- The tally instructions that the election clerks used are at #Post election.
Notes
- The scrutineering phase will start as soon as voting closes, which for this election is May 20, 00:00 UTC.
- Scrutineering took 4 days for AELECT1, 2 days for AELECT2, and 1 day for AELECT3. This is pretty good. WP:ACE often takes longer.
- There is no official deadline. Take as long as you need to provide accurate scrutineering.
- However, please also balance this with giving candidates a good experience by not taking unnecessarily long. Waiting for the results, and not having an exact day and time we will post the results, can be stressful for candidates.
- Please let us know as soon as possible if you will be busy during scrutineering time. We have alternate checkusers who can step in and take people's places, if needed.
- It is impossible to add scrutineers once a poll officially ends. Both the main and backup scrutineers will be pre-programmed into the poll.
- WMF only retains voter PII (such as IP addresses) until 60 days after the end of the poll. If for some reason scrutineering took a really long time, then it needs to be done within 60 days, or we lose the ability to check IP addresses.
What pages you can edit in SecurePoll and when
Before the poll starts
| Page | Enabled? |
|---|---|
| Special:SecurePoll/vote | |
| Special:SecurePoll/translate (msgs) | |
| Special:SecurePoll/list (view voters, strike votes, scrutineer) | |
| Special:SecurePoll/edit | |
| Special:SecurePoll/votereligibility | |
| Special:SecurePoll/dump | |
| Special:SecurePoll/tally | |
| Special:SecurePoll/logs | |
| Special:SecurePoll/archive |
After the poll starts but before it ends
| Page | Enabled? |
|---|---|
| Special:SecurePoll/vote | |
| Special:SecurePoll/translate (msgs) | |
| Special:SecurePoll/list (view voters, strike votes, scrutineer) | |
| Special:SecurePoll/edit | |
| Special:SecurePoll/votereligibility | |
| Special:SecurePoll/dump | |
| Special:SecurePoll/tally | |
| Special:SecurePoll/logs | |
| Special:SecurePoll/archive |
After the poll ends
Note that a poll can be re-tallied at any time. For example, maybe some socks are discovered after the first tally. Those votes can be striken, then the tally re-run.
| Page | Enabled? |
|---|---|
| Special:SecurePoll/vote | |
| Special:SecurePoll/translate (msgs) | |
| Special:SecurePoll/list (view voters, strike votes, scrutineer) | |
| Special:SecurePoll/edit | |
| Special:SecurePoll/votereligibility | |
| Special:SecurePoll/dump | |
| Special:SecurePoll/tally | |
| Special:SecurePoll/logs | |
| Special:SecurePoll/archive |
See also
- First administrator election settings