More Information Surfaces About ES&S “Counting Backwards” Feature/Bug

More information has surfaced in a letter from ES&S to Guilford County, NC, Board of Elections (provided by Joyce McCloy, PDF here and text here):

We would like to explain in further technical detail what caused this issue, should you or others at the county have questions. the 32,767 capacity limitation at a singled precinct level is a function of the design and definition of the results database used by ERM. The data storage element used to record votes at the precinct level is a two byte binary field. 32,767 is 2 to the 15th power, which is the maximum number held by a two byte word (16 bits) in memory, where the most significant bit is reserved as the sign bit (a plus or minus indicator). Additionally, ERM precinct count level data is stored in a binary computer format known as two’s complement. Data on ERM results reports are printed as the absolute value of the two’s complement of the associated data in the ERM database. This means that once the 32,767 limitation is reached, additional incremental tallies of vote results would not be printed correctly (32,768 through 65,536 would actually be represented as 65,536 to 32, 768).

While this value, 32,767 is certainly higher than any practical value that could be tabulated in a single election day precinct, the consideration of reporting all absentee ballots or early voting into a single absentee or “One Stop” precinct does hold the possibility of yielding much higher totals than what may be possible in single election day precincts.

This appears to be a case where a local jurisdiction used voting equipment out of the context of the vendor’s design. If they had used an unsigned 16-bit integer variable, they could have reported 65,536 votes.


The URI to TrackBack this entry is:

  1. 2 to the 15 th power is 32,768. Whoever wrote this didn’t understand digital numbering systems very well. If the MSB bit is the sign bit, then the 16 bits can represent numbers from -32,768 to +32,768.

Comment by Donald Dodson — Tuesday December 14, 2004 @ 5:43 pm PST

  1. Correction: should have been -32,767 to +32,767.

Comment by Donald Dodson — Tuesday December 14, 2004 @ 5:50 pm PST

  1. Actually, the largest number representable in a 16-bit, twos-complement system is 32,767, which is 2 to the 15th power, minus one. (The values range from -32768 to +32767. The asymmetry occurs because the bit pattern1000000000000000 represents -32768, but 0000000000000000 represents zero.)

Comment by Ed Felten — Tuesday December 14, 2004 @ 5:51 pm PST

  1. The horrible part of this is that Guilford County reported the Presidential totals incorrectly by 22,000 votes, but the press and everyone else is ok with that since the results were later corrected.

Also, I believe this to be the problem that occurred in Broward County.

Emphasis that this is the Unity Election Management software.Guilford uses version 2.2 and bought it in the year 2003.
Guilford had about 200,000 voters to turn out