VxAdmin supports a variety of results exports.
Tally reports contain contest results for the full election or a specific subset of ballots. They can be printed directly from VxAdmin, exported as PDFs, or exported in CSV format. In addition, full election results can be exported as an Election Results Reporting CDF JSON file.
Ballot count reports include only ballot counts, without contest results. They can also be printed directly from VxAdmin, exported as PDFs, or exported in CSV format.
The write-in adjudication report acts as a summary of all write-in adjudication activity or as a "scatter report." The tally reports consolidates write-in candidates whose vote totals are too small to affect the contest outcomes. The counts for those write-in candidates are available in the write-in adjudication report. The write-in adjudication report may be printed directly from VxAdmin or exported as a PDF.
For all VxAdmin reports, the report is either "Official" or "Unofficial." If the report is exported before the results are marked as official in the application, the results are "Unofficial." If the report is exported after the results are marked as official in the application, the results are "Official." All visual reports have "Official" or "Unofficial" included in the title and all exported files will have "official" or "unofficial" included in the filename.
The full election tally reports can be exported as JSON Election Results Reporting CDF results. The feature is only available for the full election results and not grouped or filtered results. The export follows the CDF specification without extensions. The CDF fields are used as follows:
ElectionReport.Format
Fixed to "summary-contest"
ElectionReport.IsTest
true
or false
depending on whether VxAdmin was in test ballot mode
ElectionReport.SequenceStart
Fixed to 1
ElectionReport.SequenceEnd
Fixed to 1
ElectionReport.GeneratedDate
The generated timestamp of the report
ElectionReport.Issuer
The county name
ElectionReport.IssuerAbbreviation
The county identifier formatted as an NCName ID
ElectionReport.VendorApplicationId
"VxAdmin, version <code version>" where code version is the software version of the system e.g. "v4"
ElectionReport.Status
If the election has been marked as official in VxAdmin, "certified", otherwise "unofficial-complete"
Party.@id
The party identifier
Party.Name
The short name of the party e.g. "Libertarian"
Party.Abbreviation
The party abbreviation e.g. "L"
Election.StartDate
The date of the election
Election.EndDate
The date of the election
Election.Name
The title of the election
Election.ElectionScopeId
The state name formatted as an NCName ID
Election.Type
Either "general" or "primary"
BallotCounts.Type
Fixed to "total"
BallotCounts.GpUnitId
The county identifier formatted as an NCName ID
BallotCounts.BallotsCast
The total ballot count for the election
Candidate.@id
The candidate identifier formatted as an NCName ID
Candidate.PartyId
The candidate's party identifier formatted as an NCName ID
Candidate.BallotName
The candidate's name as it appears on the ballot in English
Contest.@id
The contest identifier formatted as an NCName ID
Contest.Name
The contest title
Contest.ElectionDistrictId
The district identifier of the contest's associated district formatted as an NCName ID
ContestSelection.@id
The option identifier formatted as an NCName ID
BallotMeasureSelection.Selection
The option label as it appears on the ballot in English
CandidateSelection.IsWriteIn
true
or false
depending on whether the candidate is a write-in candidate
VoteCounts.Count
The vote count for the specific contest selection
VoteCounts.Type
Fixed to "total"
VoteCounts.GpUnitId
The district identifier of the contest's associated district formatted as an NCName ID
OtherCounts.Overvotes
The overvote count
OtherCounts.Undervotes
The undervote count
OtherCounts.GpUnitId
The district identifier of the contest's associated district formatted as an NCName ID
GpUnit.@id
The county, state, or district identifier formatted as an NCName ID
GpUnit.Name
The county, state, or district name
GpUnit.Type
"state", "county", or for districts, "other"
GpUnit.ComposingGpUnitIds
State: only the county identifier
County: all district identifiers
The Election Results Reporting CDF requires that identifiers be in NCName ID format, so all identifiers from the election definition are re-formatted to be compliant. For example, "Sample County" becomes "vx_sample-county".
The basic structure of the tally reports printed from VxAdmin is similar to the polls opened and closed reports printed from VxScan.
In addition to the full election report, VxAdmin exports reports filtered or grouped by the following dimensions:
Ballot Style
Precinct
Voting Method
Scanner
Batch
District (filtering only)
When a report is grouped, the report is broken up into multiple sections each with their own filter. For example, if you were to group by "Voting Method," the resulting report would have a section filtered for precinct ballots only and a section filtered for absentee ballots only:
The filter for a given report section is indicated in the title of the report. If the report has more than one filter applied to it, the full details of the filter will be specified in a box below the title:
Note that filters and groups can be combined.
If manual results have been added, they will be included in the tally report alongside the scanned results. For each contest, there will be three results columns: "scanned", "manual", and "total".
In order to prevent a long list of write-in candidates from making contest results difficult to read, VxAdmin tally reports consolidate write-in candidates if they're not relevant to the contest outcome. Relevant write-ins are included as "<Name> (Write-In)". Irrelevant write-ins are consolidated as "Write-In" or, if there are relevant write-ins in the list, "Other Write-In". Unadjudicated write-ins are always consolidated as "Unadjudicated Write-In."
A write-in is deemed relevant if it must be listed for the reader to determine the winner(s) of the contest. In the middle example below, the single adjudicated write-in is consolidated because Natalie Portman is the winner regardless of the identities of the write-ins. In the last example, however, there are 31 adjudicated write-ins so it's possible that a write-in got more votes than Natalie Portman. The report then enumerates the write-ins with the highest vote totals until the "Other Write-In" count is smaller than the counts for all winners.
The write-in adjudication report includes the results of all write-in adjudication organized by contest:
The values in the contest table above are as follows:
Before adjudication, write-ins are treated as votes for a generic write-in candidate and will appear in tally reports as "Unadjudicated Write-In." After adjudication, the new value will be reflected on tally reports:
When adjudicated for an official candidate, the write-in will be added to the official candidate count just as a regular vote for the candidate would be
When adjudicated for a write-in candidate, either:
The write-in will appear in the adjudicated write-in bucket if it is not relevant to the results
When invalid, the write-in becomes an undervote
Unmarked write-ins behave differently in relationship to the tally results because they cannot be considered a valid vote before adjudication. As a result, they are considered undervotes before adjudication. If an unmarked write-in is adjudicated as invalid, then tally results will not change. If an unmarked write-in is adjudicated for a candidate, the unmarked write-in is no longer an undervote and is added to the vote total for that candidate.
Also note that, because the write-in adjudication report includes unmarked write-ins, the "Unadjudicated Write-In" count on tally reports may be less than the "Not Adjudicated" count on the write-in adjudication report. The initial difference is the count of unmarked write-ins.
Ballot count reports contain ballot and ballot sheet counts, not contest results.
The ballot counts are broken down by ballot type - "HMPB" (for hand marked ballots), "BMD" (for machine marked ballots), and "manual" (for manually entered results, if applicable).
If there are multi-sheet ballots, the hand marked ballot counts may have sheet counts specified. The ballot count is determined by counting the first sheet of each ballot style.
When grouping is applied in a ballot count report, each group corresponds to a row in the table. In the following example, the ballot counts are grouped by both precinct and voting method:
The following metadata columns may appear in a ballot count report table in order to specify groupings:
Filters apply to the entire report. Simple filters are shown in the title, while complex filters are listed in a box below the title.
The write-in will be individually listed if it is
Total Write-Ins
The count of all write-ins. If unmarked write-ins are being adjudicated, they will be included in this count
Not Adjudicated
The count of all write-ins that have not been adjudicated in the write-in adjudication interface yet
Official Candidate Counts
The count of all write-ins that have been adjudicated for official candidates in the election definition
Write-In Candidate Counts
The count of all write-ins that have been adjudicated for write-in candidates added at VxAdmin
Invalid
The count of all write-ins that have been marked as invalid
Precinct
The name of the precinct
Ballot Style
The internal identifier of the ballot style
Party
The short name of the party, e.g. "Democrat". Included by default if the ballot style is included, in a primary
Voting Method
"Precinct", "Absentee", or "Provisional"
Scanner ID
The serial number of the scanner. Included by default if the batch is included
Batch
The label for the batch, or "Manual Tallies" for manually entered data
Both tally reports and ballot count reports can be exported in comma-separated values (CSV) format.
In the CSV tally report, the vote total for each candidate or contest option is listed in a single row. In addition, there are rows for overvote and undervote totals for a contest.
For example, here is an excerpt of a tally report including the results for one contest:
The "Precinct" and "Precinct ID" columns are metadata fields that are included because this example export groups results by precinct. The other fields are standard fields:
Contest
The title of the contest
Contest ID
The internal identifier of the contest in the election definition
Selection
The candidate name for candidate contests, the option label for yes-no contests, or "Overvotes" or "Undervotes"
Selection ID
The internal identifier of the contest option, or "overvotes" or "undervotes"
Total Votes
The vote count for the selection
If manual results were entered, two additional columns will be added - "Scanned Votes" and "Manual Votes." These columns denote which votes for each selection came from the scanners vs manual entry.
The results of write-in adjudication are always included in the CSV exports. All write-in candidates will appear with their adjudicated name and a UUID assigned by VxAdmin. Unadjudicated write-in candidates will appear as "Unadjudicated Write-In" with the ID "write-in". Unlike in the printed reports, write-in candidates are never consolidated.
The ballot count report CSV is the same as the table presented in the printed ballot count reports. For example:
The "Precinct", "Precinct ID" and "Voting Method" columns are metadata fields that are included because this example export groups results by precinct and voting method. The other fields are standard fields:
BMD
The count of machine marked ballots
HMPB
The count of hand marked paper ballots. In a multi-sheet election, this is just the count of the first sheet
HMPB Sheet {N}
The count of a particular ballot sheet. The count of the second sheet of all ballots would be "HMPB Sheet 2"
Manual
The count of manually entered ballots
Total
The total ballot count
Any filters or groupings which apply to each row will be indicated in the row itself by metadata columns. For example, in the example export above, the "Precinct" column lists which precinct group each row represents.
If a row is filtered by a single attribute value (e.g. represents one precinct rather than multiple precincts) then the following basic metadata fields are used:
Precinct
The name of the precinct
Precinct ID
The identifier of the precinct from the election definition
Party
The short name of the party e.g. "Republican". Included by default if the ballot style is included, in a primary.
Party ID
The identifier of the party from the election definition
Ballot Style ID
The identifier of the ballot style
Voting Method
"Absentee", "Precinct", or "Provisional"
Scanner ID
The serial number of the scanner. Included by default if the batch is included.
Batch
The label of the scanned batch
Batch ID
The scanner-assigned UUID of the scanned batch
If a row is filtered by multiple attribute values, the following columns may be used:
Included Precincts
The precinct identifiers separated by commas
Included Parties
The party identifiers separated by commas
Included Ballot Styles
The ballot style identifiers separated by commas
Included Voting Methods
The voting method labels ("Precinct", "Absentee", or "Provisional") separated by commas
Included Scanners
The scanner serial numbers separated by commas
Included Batches
The batch identifiers separated by commas
In cases as above, where a row value includes comma-separated values, those values will be wrapped in quotation marks per typical CSV formatting in order to allow consumers to properly differentiate columns.