Ballot Processing Election Night & Beyond
Boulder County Elections typically sees high turnout, including many voters waiting until Election Day to vote. In high turnout elections, it typically takes between 1-3 days after Election Day to process the volume of ballots received on Election Day.
Our office gets many questions in the immediate hours and days after the polls close about how many ballots are left to be counted and what is outstanding. We hope to shed some light on what happens on election night and beyond on this page and to provide you with the resources you need to figure out how many are left to be counted.
Nov 27 Update - 6:45 p.m.
The November General Election is now certified. Please see our press release for details. As noted below, we will be holding three recounts next week.
Nov 27 Update - 1 p.m.
Town of Erie – Council Member District 1 candidate Andrew Sawusch has requested a paid recount of that contest. Under Colorado statute, any “interested party” (typically defined as candidates, political parties, governing bodies, or ballot issue campaigns) may submit a request and pay for a recount. Because Town of Erie – Council Member District 1 falls entirely within House District 19, the cost for a recount is far less than it would be if Boulder County Elections were not already conducting a recount in that area. We anticipate with the addition of this contest to recount, the schedule may shift somewhat and potentially carry us into Thursday to conclude our work. We will continue to post updates to our schedule on this page.
Nov 26 Update - 5:10 p.m.
Boulder County Elections has updated the unofficial results with votes from 271 ballots countywide. After a review of the results, while some vote totals shifted slightly, no contests changed recount status.
Boulder County Elections will be providing the bipartisan Canvass Board with updated reconciliation reports for their review, and we will be holding our Canvass Board meeting tomorrow, Wednesday, November 27 at 2 p.m. (Meeting is 2 p.m. – 3:15 p.m.) virtually via Teams. If you would like to watch the presentation, email Vote@BoulderCounty.gov for the login link by 1 p.m. Wednesday.
As noted in our Nov 14 post, Boulder County had three contests within the automated recount range: State Representative – District 19, Town of Superior Trustee, and City of Boulder’s Ballot Question 2E. However, under Colorado election law an entity (city/special district) has the right to waive their right to a recount if a ballot measure fails to pass. City representatives made the decision to decline a recount after evaluating the cost to conduct the recount. Note that in the most recent recounts vote tallies only shifted by several votes; the vote spread between the Yes and No on this ballot measure is 65 votes: Yes 21,491 vs. No 21,556. There is no option to waive an automatic recount for candidates.
As posted below, here is our anticipated recount schedule for next week:
- Monday, Dec 2 – 12:30 – 4:30 p.m. Conduct Test of the Voting System
- Tuesday, Dec 3 – 9 a.m. – 6 p.m. Conduct the Recount
- Wednesday, Dec 4 – 9 a.m. – 6 p.m. Continuation of the Recount until completed
- TBD – Canvass meeting to certify the recount results (will update this page with date/time once scheduled and how to watch/join)
Boulder County Elections anticipates posting recount results as soon as the recount is completed, most likely end of day Wednesday, December 4. We will post to this page if the recount schedule needs to shift. By statute, we must complete the recount and certify the recount results by Friday, December 6.
Nov 26 Update - 1:30 p.m.
Boulder County Elections wants to be completely transparent about how we caught the error leading to us needing to process additional cure ballots today and what caused it. Ultimately, a combination of factors, including staff error, led to this happening. Here are the details:
- Friday’s Secretary of State’s “week-in-brief” (a weekly newsletter) included a line item about double-checking downloaded cures, as they will be removed from the Secretary of State’s secure FTP website at the end of the year.
- While it is not protocol, a staff member decided to double-check our cure affidavit count against what was in the FTP “processed” folder (where staff are directed to move affidavits after they have been downloaded locally). The numbers did not match.
- We immediately reported the issue to the Secretary of State’s (SOS) office and began reviewing our processes to see how and when the error occurred.
- Typically, the steps involved in pulling these cure affidavits is as follows:
- County staff member logs into secure FTP site.
- Cure files/affidavits come in labeled as PDFs with their voter ID as the file name (VoterIDnumber.PDF).
- Staff “selects all” files and downloads affidavits from “parent” Boulder County folder to our local drives to be processed.
- Staff then re-selects all and moves affidavit files into “processed” folder.
- When a voter has already submitted a cure affidavit (for instance the day prior), the FTP platform then recognizes that voter ID/file name and pops up an error message that the file can’t be moved. It is extremely common for voters to submit multiple cure affidavits multiple days in a row (see below for more context). And thus, a staff member typically sees multiple error messages every time this action is performed.
- The protocol is to then re-name the remaining duplicate affidavits that did not move as “VoterIdnumber(2)” and then move them to the processed folder.
Additional context and what we learned in our review of processes:
- The FTP site is typically accessed once daily.
- We learned during our review of processes that when there are more than 250 files/affidavits in the parent folder, it creates a page two and the “select all” button does not provide any message/warning that you are missing files in your select all or that there is a page two to review for additional files.
- The 2024 General Election saw a record number of rejections as both a percentage and gross number. The result of this is that overall there were more voters curing their ballot than in previous elections.
- Because the process on the county side involves several steps from when the cure affidavit is received to when the voter then gets an “accepted” BallotTrax message, many voters actually submit cure affidavits multiple times.
How the error ultimately occurred:
- We have determined there were several days that the platform had over 250 affidavits received.
- The staff member followed the normal protocol of selecting all, downloading the files locally, and then moving them to the SOS FTP “processed” folder.
- Like normal during this process, they received many error messages on the main parent page due to duplicates and proceeded to rename the remaining files “VoterIdnumber(2)” as protocol and move them to the “processed” folder.
- What they did not know was that not all the remaining files were duplicates. That instead, once the bulk of the files (the non-duplicates) were moved to the “processed” subfolder, it made room for the affidavit files on page two to move up to page one.
- Thus, on days when we had more than 250 files received, the remaining files after the initial move were actually a combination of both duplicate files/affidavits as well as files/affidavits that had moved up from page two. On a day with less than 250 files/affidavits, only duplicates would remain in the parent folder, hence following the normal protocol would not produce this same error.
- These files/affidavits were then inadvertently renamed “VoterIdnumber(2)” and moved along with whatever duplicates had come in that day as well.
While this is incredibly unfortunate, we are grateful this error was caught, and we were able to process these remaining valid ballots. We have already reviewed the immediate past elections and have no days that we had this many files/affidavits received in a single day (over 250) and thus no possibility of this error occurring. For future elections, we will certainly be changing our processes to verify and account for high volume cure days to make sure this error never occurs again.
Nov 25 Update - 8:20 p.m.
Boulder County Elections will be updating the unofficial results total again tomorrow, Tuesday Nov 26 after a staff member conducting a post-election record review discovered an error. Here is an overview of the situation and next steps:
- This afternoon (Monday, Nov 25) a team member was doing a post-election record review and discovered an error. They found approximately 250 unprocessed cures affidavits that we believe our staff inadvertently moved to the “processed” (done/completed) folder on the Secretary of State’s FTP website (that had not actually been processed).
- Because this error was caught prior to certifying the election results, Boulder County Elections can process these cures and count these ballots.
- Elections staff are in the process of reviewing these cures and scheduling bipartisan election judges to return tomorrow, Tues, Nov 26 to help process these ballots.
- Our Elections Director has notified the local Democratic and Republican party chairs and canvas board members.
- Boulder County Elections will be processing these remaining ballots and updating the unofficial results Tuesday afternoon.
- We will be notifying our participating entities (cities/candidates) in case this changes our recount plans (see below for anticipated recount contests). Other races in or near recount maybe impacted and we will know tomorrow once updated results are posted. As House District 19 is being closely watched, we did check for any voters in that area, and we have fewer than 20 ballots in that district to process.
- Boulder County Elections will provide the bipartisan canvas board with updated reconciliation reports shortly thereafter we finish processing ballots tomorrow and will now hold our canvass board meeting on Wednesday, November 27 (time is likely to be 2 p.m., but will confirm in another post tomorrow).
- For the recount, our current tentative schedule is as follows:
- Monday, Dec 2 – 12:30 p.m.- 4:30 p.m. Conduct Test of the Voting System*
- Tuesday, Dec 3 – 9 a.m. – 6 p.m. Conduct the Recount
- Wednesday, Dec 4 – 9 a.m. – Continuation of the Recount until completed
- TBD – Canvass meeting to certify the recount results (will update this page with date/time once scheduled)
- We will post another update tomorrow afternoon as needed.
*By statute, prior to conducting the recount, the county must retest the voting system. This is done with members of the Democratic and Republican parties just like the Logic & Accuracy test done prior to every election.
Nov 14 Update
Our final unofficial results posting was this evening. After evaluating the results, we expect the following contests are close enough to trigger an automatic recount:
- City of Boulder Ballot Question 2E
- Town of Superior – Trustee
- State Representative – District 19
The recount process does not begin until after the audit (Nov 19) and certification meeting (Nov 26). See this press release for audit and canvass schedule.
We will begin the recount planning process next week and will post a schedule and more details on this page when available. In general, we anticipate the recount to take place after Thanksgiving (week of Dec 2). Deadline to complete is December 6.
Nov 12 Update
Due to multiple close contests in Boulder County, we had our election judge teams return today to process some of our normal post-Election Day ballots that we typically process instead on the 9th day (see below for details on ballots processed in the days after the election). We anticipate finishing early evening and will do a posting tonight. We are still holding some ballots to preserve voter anonymity for the final 9th day posting, however, we wanted to get a batch of ballots done since we had election judge availability.