Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-Default Overvote Label in ES&S CVR Tabulation Causes Tabulation Failure #889

Open
nurse-the-code opened this issue Sep 27, 2024 · 0 comments

Comments

@nurse-the-code
Copy link
Collaborator

When using RCTab (pre-2.0 release version from the develop branch, late September 2024) to tabulate ES&S CVRs, the tabulation fails when a non-default overvote label is used. Although RCTab allows changing the overvote label for the ES&S CVR provider in the configuration, this causes the tabulation to fail. The issue does not occur when using the default overvote label.

While this issue was encountered specifically with the ES&S CVR provider, any solution should ensure compatibility with all CVR providers that support overvote labels.

Steps to Reproduce

  1. Set up RCTab using the pre-2.0 release version from the develop branch (late September).
  2. Configure an ES&S CVR to use a non-default overvote label (e.g., "ov") in the configuration file.
  3. Run the tabulation using the configuration file and CVR provided in the links below.

Configuration Files

CVR Files

Expected Behavior

RCTab should successfully tabulate the ES&S CVR with the non-default overvote label specified in the configuration file.

Actual Behavior

The tabulation fails with the following error messages:

2024-09-27 13:57:34 EDT SEVERE: Source file contains unrecognized candidate(s): /Users/malachi-at-rcvrc/undefined-behavior/test-rctab_cvr/ess/overvotes-with-non-default-label/cvr.xlsx
2024-09-27 13:57:34 EDT SEVERE: Unrecognized candidate "overvote" appears 3 time(s)!
2024-09-27 13:57:34 EDT INFO: Check config settings for candidate names, firstVoteRowIndex, firstVoteColumnIndex, and precinctColumnIndex to make sure they are correct!
2024-09-27 13:57:34 EDT INFO: See config_file_documentation.txt for more details.
2024-09-27 13:57:34 EDT SEVERE: Parsing cast vote records failed!
2024-09-27 13:57:34 EDT SEVERE: Failed to read CVRs: null

It appears that the non-default overvote label ("ov") is not being recognized correctly.

RCTab Log

Here is the complete RCTab Log starting from loading the config file:

2024-09-27 13:57:34 EDT INFO: Successfully loaded contest config: /Users/malachi-at-rcvrc/undefined-behavior/test-rctab_cvr/ess/overvotes-with-non-default-label/config.json
2024-09-27 13:57:34 EDT INFO: Parsing cast vote records...
2024-09-27 13:57:34 EDT INFO: Reading ES&S cast vote records from: /Users/malachi-at-rcvrc/undefined-behavior/test-rctab_cvr/ess/overvotes-with-non-default-label/cvr.xlsx...
2024-09-27 13:57:34 EDT WARNING: Unexpected XML data: &C&"Times New Roman,Regular"&12&A true oddHeader
2024-09-27 13:57:34 EDT WARNING: Unexpected XML data: &C&"Times New Roman,Regular"&12Page &P false oddFooter
2024-09-27 13:57:34 EDT SEVERE: Source file contains unrecognized candidate(s): /Users/malachi-at-rcvrc/undefined-behavior/test-rctab_cvr/ess/overvotes-with-non-default-label/cvr.xlsx
2024-09-27 13:57:34 EDT SEVERE: Unrecognized candidate "overvote" appears 3 time(s)!
2024-09-27 13:57:34 EDT INFO: Check config settings for candidate names, firstVoteRowIndex, firstVoteColumnIndex, and precinctColumnIndex to make sure they are correct!
2024-09-27 13:57:34 EDT INFO: See config_file_documentation.txt for more details.
2024-09-27 13:57:34 EDT SEVERE: Parsing cast vote records failed!
2024-09-27 13:57:34 EDT SEVERE: Failed to read CVRs: null

Configuration File Details

The configuration file specifies "ov" as the overvote label for a CVR filesource using the ES&S CVR provider:

{
  "cvrFileSources" : [ {
    "provider" : "ess",
    "overvoteLabel" : "ov",
  }],
}

The complete configuration file can be found here.

Potential Solutions

  1. Disable Overvote Label Customization: Gray out the overvote label input for ES&S CVRs in the UI to prevent users from changing it.
  2. Support Non-Default Labels: Modify the tabulation logic to correctly handle non-default overvote labels during ES&S CVR parsing.

Follow-up

After this issue is addressed we should circle back to make sure that all rctab_cvr.csv files use a single, constant overvote label, regardless of the overvote label in the original input CVR filesource and JSON configuration.

Attachments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant