VxSuite TDP - v4
  • System Overview
    • Election Package
      • VxSuite Election Definition
      • Ballot Definition CDF
    • Hand Marked Ballots
    • Machine Marked Ballots
    • Cast Vote Records
    • VxScan Polls Reports
    • VxAdmin Results Exports
      • Tally Reports
      • Ballot Count Reports
      • CSV Exports
      • Write-In Adjudication Report
      • CDF ERR Export
    • Software Overview
    • User Roles
    • VxAdmin Function
    • VxCentralScan Function
    • VxAdmin & VxCentralScan Hardware
    • VxScan Function
    • VxScan Hardware
    • VxMark Function
    • VxMark Hardware
    • Ballot Interpretation
    • Diagnostics
    • Signed Hash Validation
  • System Performance & Specifications
    • Supported Voting Variations & Languages
    • System Limits
      • Maximum Tabulation Rate
    • Paper Ballot Specifications
    • Reliably Detectable Marks
    • Processing Capabilities
  • System Security, Auditing & Logging
    • System Security Architecture
      • Access Control
      • Artifact Authentication
        • Hashing of Continuously Exported Cast Vote Records
        • Preserving Voter Privacy
      • System Integrity
      • Networking
      • Password and Credential Policies
      • Defense-in-Depth and Least Privilege
      • Cryptography
    • Physical Security
    • Procedural and Operational Security
    • Audit Procedure
    • Logging
    • Vulnerability Management
    • Risk Assessment
    • Hardware Criticality and Supplier Analysis
  • Software Installation
    • Trusted Build
      • Build Machine Configuration
        • Installing Debian 12 on VxBuild
      • Online Phase
      • Offline Phase
      • Final Configuration
        • Secure Boot Signing
      • Hash/Checksum Verification of Dependencies
      • Virt Manager - Network Access & Troubleshooting
    • Imaging Machines
      • Preparing USB Drives for Imaging
      • Imaging
      • Basic Configuration Wizard
      • Verifying the Image Installed on a Machine
      • Software Installation Record Creation
  • System Operations & Training Manual
  • System Inspection & Logic and Accuracy Testing
  • System Maintenance Manual
  • Usability & Accessibility
  • Audio Visual & Display Screen Settings
  • Quality Assurance Manual
  • Warranty Model
  • Public Documents
Powered by GitBook
On this page
  • VxSuite CDF Implementation
  • Required Class Attributes
  • Restricted Enums
  • Ignored Classes and Enums
  • Ignored Class Attributes
  • VxSuite CDF Conversion
  • Attribute Mappings
  • Translations
  • Geographies
  • VxSuite CDF Limitations
Export as PDF
  1. System Overview
  2. Election Package

Ballot Definition CDF

PreviousVxSuite Election DefinitionNextHand Marked Ballots

Last updated 5 months ago

The election definition within the election package can be a JSON Ballot Definition CDF Version 1.0 file. The full specification is defined by NIST and can be .

VxSuite CDF Implementation

VxSuite accepts the Ballot Definition CDF Version 1.0 as defined by NIST without any data extensions. VxSuite requirements differ from the NIST CDF schema only in the following respects:

  • Some fields not required in the NIST CDF are required in VxSuite

  • Some enumeration values are more restricted in VxSuite than in the NIST CDF

  • Some classes and attributes are ignored in VxSuite

The exact VxSuite schema is defined as a which is derived from the . The differences between the two are documented in the below tables.

Required Class Attributes

CDF Class
VxSuite Attribute Requirements

BallotDefinition

  • BallotFormat, Election, GpUnit, and Party are required

  • BallotFormat and Election must have a length of 1

  • GpUnit must have a minimum of length 1

BallotMeasureContest

  • BallotTitle, ContestOption, and FullText are required

  • ContestOption must have a length of 2

BallotStyle

  • ExternalIdentifier is required and must have a length of 1

  • Language must have a minimum length of 1

CandidateContest

  • BallotTitle and ContestOption are required

  • ContestOption must have a minimum of length 1

  • PrimaryPartyIds must have a length of 1 if it exists

CandidateOption

CandidateIds must have a length of 1

Election

BallotStyle, Contest, and ExternalIdentifier are required and all must have a minimum length of 1

GpUnit

  • At least one GpUnit must be defined with the type "state"

  • At least one GpUnit must be defined with the type "county"

Office

Term is required

OptionPosition

Sheet is required

OrderedContest

Physical is required and must have a minimum length of 1

Party

Abbreviation is required

PhysicalContest

PhysicalContestOption is required and must have a minimum length of 1

PhysicalContestOption

ContestOptionId is required

ReportingUnit

Name is required

Term

Label is required

Restricted Enums

CDF Enum
Allowed Values

ElectionType

general, primary

ReportingUnitType

county, precinct, split-precinct, state, other

Ignored Classes and Enums

CDF Entity

ActivationContest

ActivationOption

AnnotatedString

AnnotatedUri

BallotMeasureType

CandidatePreElectionStatus

Coalition

ContactInformation

DayType

ElectionAdministration

GeoSpatialFormat

Hours

LatLng

OfficeGroup

OfficeTermType

OrderedHeader

PartyContest

PartyOption

PartyPreferenceContest

PartyRegistration

Person

RetentionContest

Schedule

ShortString

SpatialDimension

SpatialExtent

StraightPartyContest

StraightPartyRuleset

TimeWithZone

VoteVariation

Ignored Class Attributes

CDF Class
Ignored Attributes

BallotDefinition

IsTest, Notes, OfficeGroup, Person, TestType

BallotMeasureContest

Abbreviation, BallotSubTitle, ContStatement, EffectOfAbstain, ExternalIdentifier, HasRotation, InfoUri, OtherType, OtherVoteVariation, PassageThreshold, ProStatement, SequenceOrder, SummaryText, TotalSubUnits, Type, VoteVariation

BallotMeasureOption

ExternalIdentifier, SequenceOrder

BallotStyle

ImageUri, Purpose

Candidate

CampaignSlogan, ContactInformation, ExternalIdentifier, FileDate, IsIncumbent, IsTopTicket, PartyId, PersonId, PreElectionStatus, ReadName

CandidateContest

Abbreviation, BallotSubTitle, ExternalIdentifier, HasRotation, NumberElected, NumberRunoff, OtherVoteVariation, RanksAllowed, SequenceOrder, TotalSubUnits, VoteVariation

CandidateOption

ExternalIdentifier, SequenceOrder

Election

ContactInformation, OtherType

Office

ContactInformation, Description, ElectionDistrictId, ExternalIdentifier, FilingDeadline, IsPartisan, OfficeHolderPersonIds

OrderedContest

OrderedContestOptionIds

Party

Color, ContactInformation, ExternalIdentifier, IsRecognizedParty, LeaderPersonIds, LogoUri, PartyScopeGpUnitIds, Slogan

ReportingUnit

AuthorityIds, ContactInformation, ElectionAdministration, ExternalIdentifier, IsDistricted, IsMailOnly, Number, OtherType, PartyRegistration, SpatialDimension, TotalSubUnits, VotersRegistered

Term

EndDate, StartDate, Type

VxSuite CDF Conversion

Attribute Mappings

Ballot Definition CDF Attribute
VxSuite Election Definition Attribute

Election.ExternalIdentifier

Election.id

Election.Type

Election.type

Election.Name

Election.title

Election.StartDate

Election.date

GpUnit.id

County.id, Precinct.id, District.id

GpUnit.Name

Election.state, County.name, Precinct.name, District.name

Party.id

Party.id

Party.Name

Party.name

Party.Name

Party.fullName

Party.Abbreviation

Party.abbrev

Contest.id

Contest.id

Contest.BallotTitle

Contest.title

Contest.ElectionDistrictId

Contest.districtId

CandidateContest.VotesAllowed

CandidateContest.seats

CandidateContest.ContestOption.IsWriteIn

CandidateContest.allowWriteIns

CandidateContest.PrimaryPartyIds

CandidateContest.partyId

Office.Term.Label

CandidateContest.termDescription

Candidate.id

Candidate.id

Candidate.BallotName

Candidate.name

CandidateOption.EndorsementPartyIds

Candidate.partyIds

BallotMeasureContest.FullText

YesNoContest.description

BallotMeasureContestOption.id

YesNoContestOption.id

BallotMeasureContestOption.Selection

YesNoContestOption.label

BallotStyle.ExternalIdentifier.Value

BallotStyle.id

BallotStyle.GpUnitIds

BallotStyle.districts, BallotStyle.precincts

BallotStyle.PartyIds

BallotStyle.partyId

BallotStyle.Language

BallotStyle.languages

BallotFormat.ShortEdge

BallotLayout.width

BallotFormat.LongEdge

BallotLayout.height

OrderedContest.ContestId

GridPosition.contestId

PhysicalContestOption.OptionPosition.Sheet

GridPosition.sheet

PhysicalContestOption.OptionPosition.Side

GridPosition.side

PhysicalContestOption.OptionPosition.X

GridPosition.column

PhysicalContestOption.OptionPosition.Y

GridPosition.row

PhysicalContestOption.ContestOptionId

GridPositionOption.optionId

PhysicalContestOption.ContestOptionId

GridPositionWriteIn.writeInIndex

PhysicalContestOption.WriteInPosition.X

GridPositionWriteIn.writeInArea.x

PhysicalContestOption.WriteInPosition.Y

GridPositionWriteIn.writeInArea.y

PhysicalContestOption.WriteInPosition.W

GridPositionWriteIn.writeInArea.width

PhysicalContestOption.WriteInPosition.H

GridPositionWriteIn.writeInArea.height

Translations

Geographies

The Ballot Definition defines all geographies as GpUnits, whereas the VxSuite Election Definition defines various geographies.

VxSuite CDF Limitations

  • Contest term descriptions (e.g. “2 years”) will always show up in English because there is no field in the CDF for internationalized term descriptions

  • The full party name will be displayed for each candidate on VxMark (e.g. “Democratic Party” instead of “Democrat”) because the CDF only has one attribute for party name. In contrast, the VxSuite format supports two separate fields, one for the full name and one for showing on the ballot.

  • When adjudicating write-ins, the highlighted contest option area will be set to a default because there is no field in the CDF for this parameter.

  • Seal images are not supported in the CDF, so no seal will be shown in association with the election.

When importing a Ballot Definition CDF file, attributes will be mapped to the and used across the system in the exact same way.

Most attributes in the Ballot Definition CDF that could require translation are defined with the CDF InternationalizedText class which allows specifying variants for each language. InternationalizedText maps directly onto VxSuite's . When an InternationalizedText attribute is mapped to a ballot string, the English version is used as the default which will appear on reports and administrator interfaces while the translations are maintained in the election definition for multi-language experiences on voter devices.

Some geographies must exist in the Ballot Definition CDF file to be used in VxSuite. There must be one GpUnit of type state and one of type county to populate the relevant metadata on the .

Any GpUnit of type precinct is mapped to a .

Any GpUnit with an associated contest is mapped to a .

Because VxSuite does not utilize any data extensions to the Ballot Definition CDF, some information cannot be included when using the Ballot Definition CDF. The missing information creates some limitations when using the Ballot Definition CDF when compared to the format:

accessed on their website
JSON schema in the vxsuite repository
original NIST schema
VxSuite Election Definition
VxSuite Election Definition
ballot strings
Election
Precinct
District