> For the complete documentation index, see [llms.txt](https://docs.voting.works/vxsuite-tdp-v4/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voting.works/vxsuite-tdp-v4/readme/vxadmin-results-exports/cdf-err-export.md).

# CDF ERR Export

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:

<table><thead><tr><th width="312">CDF Attribute</th><th>Usage</th></tr></thead><tbody><tr><td>ElectionReport.Format</td><td>Fixed to "summary-contest"</td></tr><tr><td>ElectionReport.IsTest</td><td><code>true</code> or <code>false</code> depending on whether VxAdmin was in test ballot mode</td></tr><tr><td>ElectionReport.SequenceStart</td><td>Fixed to 1</td></tr><tr><td>ElectionReport.SequenceEnd</td><td>Fixed to 1</td></tr><tr><td>ElectionReport.GeneratedDate</td><td>The generated timestamp of the report</td></tr><tr><td>ElectionReport.Issuer</td><td>The county name</td></tr><tr><td>ElectionReport.IssuerAbbreviation</td><td>The county identifier formatted as an NCName ID</td></tr><tr><td>ElectionReport.VendorApplicationId</td><td>"VxAdmin, version &#x3C;code version>" where code version is the software version of the system e.g. "v4"</td></tr><tr><td>ElectionReport.Status</td><td>If the election has been marked as official in VxAdmin, "certified", otherwise "unofficial-complete"</td></tr><tr><td>Party.@id</td><td>The party identifier</td></tr><tr><td>Party.Name</td><td>The short name of the party e.g. "Libertarian"</td></tr><tr><td>Party.Abbreviation</td><td>The party abbreviation e.g. "L"</td></tr><tr><td>Election.StartDate</td><td>The date of the election</td></tr><tr><td>Election.EndDate</td><td>The date of the election</td></tr><tr><td>Election.Name</td><td>The title of the election</td></tr><tr><td>Election.ElectionScopeId</td><td>The state name formatted as an NCName ID</td></tr><tr><td>Election.Type</td><td>Either "general" or "primary"</td></tr><tr><td>BallotCounts.Type</td><td>Fixed to "total"</td></tr><tr><td>BallotCounts.GpUnitId</td><td>The county identifier formatted as an NCName ID</td></tr><tr><td>BallotCounts.BallotsCast</td><td>The total ballot count for the election</td></tr><tr><td>Candidate.@id</td><td>The candidate identifier formatted as an NCName ID</td></tr><tr><td>Candidate.PartyId</td><td>The candidate's party identifier formatted as an NCName ID</td></tr><tr><td>Candidate.BallotName</td><td>The candidate's name as it appears on the ballot in English</td></tr><tr><td>Contest.@id</td><td>The contest identifier formatted as an NCName ID</td></tr><tr><td>Contest.Name</td><td>The contest title</td></tr><tr><td>Contest.ElectionDistrictId</td><td>The district identifier of the contest's associated district formatted as an NCName ID</td></tr><tr><td>ContestSelection.@id</td><td>The option identifier formatted as an NCName ID</td></tr><tr><td>BallotMeasureSelection.Selection</td><td>The option label as it appears on the ballot in English</td></tr><tr><td>CandidateSelection.IsWriteIn</td><td><code>true</code> or <code>false</code> depending on whether the candidate is a write-in candidate</td></tr><tr><td>VoteCounts.Count</td><td>The vote count for the specific contest selection</td></tr><tr><td>VoteCounts.Type</td><td>Fixed to "total"</td></tr><tr><td>VoteCounts.GpUnitId</td><td>The district identifier of the contest's associated district formatted as an NCName ID</td></tr><tr><td>OtherCounts.Overvotes</td><td>The overvote count</td></tr><tr><td>OtherCounts.Undervotes</td><td>The undervote count</td></tr><tr><td>OtherCounts.GpUnitId</td><td>The district identifier of the contest's associated district formatted as an NCName ID</td></tr><tr><td>GpUnit.@id</td><td>The county, state, or district identifier formatted as an NCName ID</td></tr><tr><td>GpUnit.Name</td><td>The county, state, or district name</td></tr><tr><td>GpUnit.Type</td><td>"state", "county", or for districts, "other"</td></tr><tr><td>GpUnit.ComposingGpUnitIds</td><td><ul><li>State: only the county identifier</li><li>County: all district identifiers</li></ul></td></tr></tbody></table>

The Election Results Reporting CDF requires that identifiers be in [NCName ID format](https://www.w3.org/TR/xml-names/#NT-NCName), so all identifiers from the election definition are re-formatted to be compliant. For example, "Sample County" becomes "vx\_sample-county".


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.voting.works/vxsuite-tdp-v4/readme/vxadmin-results-exports/cdf-err-export.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
