CSV Elements & Enumerations (Single Page)

Elements

state

The State object includes state-wide election information. The ID attribute is recommended to be the state’s FIPS code, along with the prefix “st”.

Tag Data Type Required? Repeats? Description Error Handling
election_administration_id xs:IDREF Optional Single Links to the state’s election administration object. If the field is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Other identifier for the state that relates to another dataset (e.g. `OCD-ID`_). If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Required Single Specifiers the name of a state, such as Alabama. If the field is invalid, then the implementation is required to ignore the State element containing it.
polling_location_ids xs:IDREFS Optional Single Specifies a link to the state’s polling locations. If early vote centers or ballot drop locations are state-wide (e.g., anyone in the state can use them), they can be specified here, but you are encouraged to only use the precinct element. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
 id,election_administration_id,external_identifier_type,external_identifier_othertype,external_identifier_value,name,polling_location_ids
 st51,ea123,ocd-id,,ocd-division/country:us/state:va,Virginia,

term

Tag Data Type Required? Repeats? Description Error Handling
term_type office_term_type Optional Single Specifies the type of office term (see office_term_type for valid values). If the field is invalid or not present, the implementation is required to ignore the Office element containing it.
term_start_date xs:date Optional Single Specifies the start date for the current term of the office. If the field is invalid or not present, then the implementation is required to ignore it.
term_end_date xs:date Optional Single Specifies the end date for the current term of the office. If the field is invalid or not present, then the implementation is required to ignore it.

office

Office represents the office associated with a contest or district (e.g. Alderman, Mayor, School Board, et al).

Tag Data Type Required? Repeats? Description Error Handling
contact_information_id xs:IDREF Optional Repeats Links to the single-csv-contact-information element associated with the office. If the element is invalid or not present, then the implementation is required to ignore it.
description xs:string Optional Single A brief description of the office and its purpose. If the element is invalid or not present, then the implementation is required to ignore it.
electoral_district_id xs:IDREF Required Single Links to the electoral_district element associated with the office. If the field is invalid or not present, the implementation is required to ignore the Office element containing it.
external_identifiers xs:IDREF Optional Single Other identifiers that link this office to other related datasets (e.g. campaign finance systems, OCD IDs, et al.). If the element is invalid or not present, then the implementation is required to ignore it.
filing_deadline xs:date Optional Single Specifies the date and time when a candidate must have filed for the contest for the office. If the field is invalid or not present, then the implementation is required to ignore it.
is_partisan xs:boolean Optional Single Indicates whether the office is partisan. If the field is invalid or not present, then the implementation is required to ignore it.
name xs:string Required Single The name of the office. If the field is invalid or not present, the implementation is required to ignore the Office element containing it.
office_holder_person_ids xs:IDREFS Optional Single Links to the person element(s) that hold additional information about the current office holder(s). If the field is invalid or not present, then the implementation is required to ignore it.
term single-csv-term Optional Single Defines the term the office can be held. If the element is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,electoral_district_id,external_identifier_type,external_identifier_othertype,external_identifier_value,filing_deadline,is_partisan,name,office_holder_person_ids,term_type,term_start_date,term_end_date
 off001,ed001,,,,,true,Deputy Chief of Staff,per50003,full-term,2002-01-21,
 off002,ed001,,,,,true,Deputy Deputy Chief of Staff,per50001,unexpired-term,2002-01-21,
 off003,ed001,,,,,false,General Secretary of Secretaries,per50004,full-term,2002-01-21,

term

Tag Data Type Required? Repeats? Description Error Handling
term_type office_term_type Optional Single Specifies the type of office term (see office_term_type for valid values). If the field is invalid or not present, the implementation is required to ignore the Office element containing it.
term_start_date xs:date Optional Single Specifies the start date for the current term of the office. If the field is invalid or not present, then the implementation is required to ignore it.
term_end_date xs:date Optional Single Specifies the end date for the current term of the office. If the field is invalid or not present, then the implementation is required to ignore it.

contact_information

For defining contact information about objects such as persons, boards of authorities, organizations, etc. ContactInformation is always a sub-element of another object (e.g. election_administration, office, person, source). ContactInformation has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID).

Tag Data Type Required? Repeats? Description Error Handling
address_line xs:string Optional Repeats The “location” portion of a mailing address. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
directions xs:string Optional Single Specifies further instructions for locating this entity. If the element is invalid or not present, then the implementation is required to ignore it.
email xs:string Optional Repeats An email address for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
fax xs:string Optional Repeats A fax line for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the location is open (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single References an hours_open element, which lists the hours of operation for a location. If the field is invalid or not present, then the implementation is required to ignore it.
lat_long single-csv-lat-lng Optional Single Specifies the latitude and longitude of this entity. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the location or contact. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
phone xs:string Optional Repeats A phone number for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
uri xs:anyURI Optional Repeats An informational URI for the contact or location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,address_line_1,address_line_2,address_line_3,directions,email,fax,hours,hours_open_id,latitude,longitude,latlng_source,name,phone,uri,parent_id
 ci0827,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,off001
 ci0828,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,vs01

election

The Election object represents an Election Day, which usually consists of many individual contests and/or referenda. A feed must contain exactly one Election object. All relationships in the feed (e.g., street segment to precinct to polling location) are assumed to relate only to the Election specified by this object. It is permissible, and recommended, to combine unrelated contests (e.g., a special election and a general election) that occur on the same day into one feed with one Election object.

Tag Data Type Required? Repeats? Description Error Handling
date xs:date Required Single Specifies when the election is being held. The Date is considered to be in the timezone local to the state holding the election. If the field is invalid, then the implementation is required to ignore the Election element containing it.
election_type xs:string Optional Single Specifies the highest controlling authority for election (e.g., federal, state, county, city, town, etc.) If the element is invalid or not present, then the implementation is required to ignore it.
state_id xs:IDREF Required Single Specifies a link to the State element where the election is being held. If the field is invalid, then the implementation is required to ignore the Election element containing it.
is_statewide xs:boolean Optional Single Indicates whether the election is statewide. If the field is not present or invalid, the implementation is required to default to “yes”.
name xs:string Optional Single The name for the election (NB: while optional, this element is highly recommended). If the element is invalid or not present, then the implementation is required to ignore it.
registration_info xs:string Optional Single Specifies information about registration for this election either as text or a URI. If the element is invalid or not present, then the implementation is required to ignore it.
absentee_ballot_info xs:string Optional Single Specifies information about requesting absentee ballots either as text or a URI If the element is invalid or not present, then the implementation is required to ignore it.
results_uri xs:anyURI Optional Single Contains a URI where results for the election may be found If the field is invalid or not present, then the implementation is required to ignore it.
polling_hours xs:string Optional Single Contains the hours (in local time) that Election Day polling locations are open. If polling hours differ in specific polling locations, alternative hours may be specified in the polling_location object (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_ids xs:IDREF Optional Single References the hours_open element, which lists the hours of operation for polling locations. If the field is invalid or not present, then the implementation is required to ignore it.
has_election_day_registration xs:boolean Optional Single Specifies if a voter can register on the same day of the election (i.e., the last day of the election). Valid items are “yes” and “no”. If the field is invalid or not present, then the implementation is required to ignore it.
registration_deadline xs:date Optional Single Specifies the last day to register for the election with the possible exception of Election Day registration. If the field is invalid or not present, then the implementation is required to ignore it.
absentee_request_deadline xs:date Optional Single Specifies the last day to request an absentee ballot. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
 id,date,name,election_type,state_id,is_statewide,registration_info,absentee_ballot_info,results_uri,polling_hours,has_election_day_registration,registration_deadline,absentee_request_deadline,hours_open_id
 e001,10-08-2016,Best Hot Dog,State,st51,true,www.registrationinfo.com,You can vote absentee,http://hotdogcontest.gov/results,Noon to 3p.m.,true,10/08/2016,,ho002

ballot_selection_base

A base model for all ballot selection types: ballot_measure_selection, candiate_selection, and party_selection.

Tag Data Type Required? Repeats? Description Error Handling
sequence_order xs:integer Optional Single The order in which a selection can be listed on the ballot or in results. This is the default ordering, and can be overridden by OrderedBallotSlectionIds in ordered_contest. If the field is invalid or not present, then the implementation is required to ignore it.

source

The Source object represents the organization that is publishing the information. This object is the only required object in the feed file, and only one source object is allowed to be present.

Tag Data Type Required? Repeats? Description Error Handling
name xs:string Required Single Specifies the name of the organization that is providing the information. If the field is invalid, then the implementation is required to ignore the Source element containing it.
vip_id xs:string Required Single Specifies the ID of the organization. VIP uses FIPS_ codes for this ID. If the field is invalid, then the implementation is required to ignore the Source element containing it.
date_time xs:dateTime Required Single Specifies the date and time of the feed production. The date/time is considered to be in the timezone local to the organization. If the field is invalid, then the implementation is required to ignore the Source element containing it.
description xs:string Optional Single Specifies both the nature of the organization providing the data and what data is in the feed. If the element is invalid or not present, then the implementation is required to ignore it.
organization_uri xs:string Optional Single Specifies a URI to the home page of the organization publishing the data. If the field is invalid or not present, then the implementation is required to ignore it.
feed_contact_information_id xs:IDREF Optional Single Reference to the person who will respond to inquiries about the information contained within the file. If the element is invalid or not present, then the implementation is required to ignore it.
terms_of_use_uri xs:anyURI Optional Single Specifies the website where the Terms of Use for the information in this file can be found. If the field is invalid or not present, then the implementation is required to ignore it.
version xs:string Required Single Specifies the version of the data If the field is invalid, then the implementation is required to ignore the Source element containing it.
1
2
 id,date_time,description,name,organization_uri,terms_of_use_uri,vip_id,version
 source01,2016-06-02T10:24:08,SBE is the official source for Virginia data,"State Board of Elections, Commonwealth of Virginia",http://www.sbe.virginia.gov/,http://example.com/terms,51,5.1

ballot_measure_contest

The BallotMeasureContest provides information about a ballot measure before the voters, including summary statements on each side. Extends single-csv-contest-base.

Tag Data Type Required? Repeats? Description Error Handling
con_statement xs:string Optional Single Specifies a statement in opposition to the referendum. It does not necessarily appear on the ballot. If the element is invalid or not present, then the implementation is required to ignore it.
effect_of_abstain xs:string Optional Single Specifies what effect abstaining (i.e. not voting) on this proposition will have (i.e. whether abstaining is considered a vote against it). If the element is invalid or not present, then the implementation is required to ignore it.
full_text xs:string Optional Single Specifies the full text of the referendum as it appears on the ballot. If the element is invalid or not present, then the implementation is required to ignore it.
info_uri xs:anyURI Optional Single Specifies a URI that links to additional information about the referendum. If the field is invalid or not present, then the implementation is required to ignore it.
passage_threshold xs:string Optional Single Specifies the threshold of votes that the referendum needs in order to pass. The default is a simple majority (i.e. 50% plus one vote). Other common thresholds are “three-fifths” and “two-thirds”. If there are `competing initiatives`_, information about their effect on the passage of the BallotMeasureContest would go here. If the element is invalid or not present, then the implementation is required to ignore it.
pro_statement xs:string Optional Single Specifies a statement in favor of the referendum. It does not necessarily appear on the ballot. If the element is invalid or not present, then the implementation is required to ignore it.
summary_text xs:string Optional Single Specifies a short summary of the referendum that is on the ballot, below the title, but above the text. If the element is invalid or not present, then the implementation is required to ignore it.
type xs:string Optional Single Specifies the particular type of ballot measure. Must be one of the valid ballot_measure_type options. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single Allows for cataloging a new ballot_measure_type option, when Type is specified as “other.” If the field is invalid or not present, then the implementation is required to ignore it.
1
2
 id,abbreviation,ballot_selection_ids,ballot_sub_title,ballot_title,elecoral_district_id,electorate_specification,external_identifier_type,external_identifier_othertype,external_identifier_value,has_rotation,name,sequence_order,vote_variation,other_vote_variation,con_statement,effect_of_abstain,full_text,info_uri,passage_threshold,pro_statement,summary_text,type,other_type
 bmc0001,HB2,bs001 bs002 bs003,Raising levy for School Bond,School Bond Issue,ed001,all registered voters,,54,false,School Bond,42,majority,,This is no good.,No effect,A measure to do raise funds for etc etc,www.ballotmeasure.com,two-thirds,Everything will be great.,It’s a referendum about school funding,referendum,

contest_base

A base model for all Contest types: ballot_measure_contest, candidate_contest, party_contest, and retention_contest (NB: the latter because it extends ballot_measure_contest).

Tag Data Type Required? Repeats? Description Error Handling
abbreviation xs:string Optional Single An abbreviation for the contest. If the field is invalid or not present, then the implementation should ignore it.
ballot_selection_ids xs:IDREFS Optional Single References a set of BallotSelections, which could be of any selection type that extends single-csv-ballot-selection-base. If the field is invalid or not present, then the implementation should ignore it.
ballot_sub_title xs:string Optional Single Subtitle of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
ballot_title xs:string Optional Single Title of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
electoral_district_id xs:IDREF Required Single References an electoral_district element that represents the geographical scope of the contest. If the field is invalid, then the implementation should ignore it.
electorate_specification xs:string Optional Single Specifies any changes to the eligible electorate for this contest past the usual, “all registered voters” electorate. This subtag will most often be used for primaries and local elections. In primaries, voters may have to be registered as a specific party to vote, or there may be special rules for which ballot a voter can pull. In some local elections, non-citizens can vote. If the element is invalid or not present, then the implementation should ignore it.
external_identifiers xs:string Optional Single Other identifiers for a contest that links to another source of information. If the element is invalid or not present, then the implementation should ignore it.
has_rotation xs:boolean Optional Single Indicates whether the selections in the contest are rotated. If the field is invalid or not present, then the implementation should ignore it.
name xs:string Required Single Name of the contest, not necessarily how it appears on the ballot (NB: BallotTitle should be used for this purpose). If the field is invalid, then the implementation should ignore it.
sequence_order xs:integer Optional Single Order in which the contests are listed on the ballot. This is the default ordering, and can be overrides by data in a ballot_style element. If the field is invalid or not present, then the implementation should ignore it.
vote_variation vote_variation Optional Single Vote variation associated with the contest (e.g. n-of-m, majority, et al). If the field is invalid or not present, then the implementation should ignore it.
other_vote_variation other_vote_variation Optional Single If “other” is selected as the VoteVariation, the name of the variation can be specified here. If the field is invalid or not present, then the implementation should ignore it.

contest_base

A base model for all Contest types: ballot_measure_contest, candidate_contest, party_contest, and retention_contest (NB: the latter because it extends ballot_measure_contest).

Tag Data Type Required? Repeats? Description Error Handling
abbreviation xs:string Optional Single An abbreviation for the contest. If the field is invalid or not present, then the implementation should ignore it.
ballot_selection_ids xs:IDREFS Optional Single References a set of BallotSelections, which could be of any selection type that extends single-csv-ballot-selection-base. If the field is invalid or not present, then the implementation should ignore it.
ballot_sub_title xs:string Optional Single Subtitle of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
ballot_title xs:string Optional Single Title of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
electoral_district_id xs:IDREF Required Single References an electoral_district element that represents the geographical scope of the contest. If the field is invalid, then the implementation should ignore it.
electorate_specification xs:string Optional Single Specifies any changes to the eligible electorate for this contest past the usual, “all registered voters” electorate. This subtag will most often be used for primaries and local elections. In primaries, voters may have to be registered as a specific party to vote, or there may be special rules for which ballot a voter can pull. In some local elections, non-citizens can vote. If the element is invalid or not present, then the implementation should ignore it.
external_identifiers xs:string Optional Single Other identifiers for a contest that links to another source of information. If the element is invalid or not present, then the implementation should ignore it.
has_rotation xs:boolean Optional Single Indicates whether the selections in the contest are rotated. If the field is invalid or not present, then the implementation should ignore it.
name xs:string Required Single Name of the contest, not necessarily how it appears on the ballot (NB: BallotTitle should be used for this purpose). If the field is invalid, then the implementation should ignore it.
sequence_order xs:integer Optional Single Order in which the contests are listed on the ballot. This is the default ordering, and can be overrides by data in a ballot_style element. If the field is invalid or not present, then the implementation should ignore it.
vote_variation vote_variation Optional Single Vote variation associated with the contest (e.g. n-of-m, majority, et al). If the field is invalid or not present, then the implementation should ignore it.
other_vote_variation other_vote_variation Optional Single If “other” is selected as the VoteVariation, the name of the variation can be specified here. If the field is invalid or not present, then the implementation should ignore it.

time_with_zone

A string pattern restricting the value to a time with an included offset from UTC. The pattern is

(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|(24:00:00))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<HoursOpen id="hours0001">
  <Schedule>
    <Hours>
      <StartTime>06:00:00-05:00</StartTime>
      <EndTime>12:00:00-05:00</EndTime>
    </Hours>
    <Hours>
      <StartTime>13:00:00-05:00</StartTime>
      <EndTime>19:00:00-05:00</EndTime>
    </Hours>
    <StartDate>2013-11-05</StartDate>
    <EndDate>2013-11-05</EndDate>
  </Schedule>
</HoursOpen>

language_string

LanguageString extends xs:string and can contain text from any language. LanguageString has one required attribute, language, that must contain the 2-character language code for the type of language LanguageString contains.

1
2
3
4
<BallotTitle>
   <Text language="en">Retention of Supreme Court Justice</Text>
   <Text language="es">La retención de juez de la Corte Suprema</Text>
</BallotTitle>

ballot_style

A container for the contests/measures on the ballot.

Tag Data Type Required? Repeats? Description Error Handling
image_uri xs:anyURI Optional Single Specifies a URI that returns an image of the sample ballot. If the field is invalid or not present, then the implementation is required to ignore it.
ordered_contests_ids xs:IDREFS Optional Single Reference to a set of ordered_contest If the field is invalid or not present, then the implementation is required to ignore it.
party_ids xs:IDREFS Optional Single Reference to a set of :ref:`single-csv-party`s. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,image_uri,ordered_contest_ids,party_ids
 bs00010,http://i.giphy.com/26BoCh3PgT8ai45ji.gif,oc2025,par02
 bs00011,http://i.giphy.com/3oEjHYDWEICgEpAOjK.gif,oc3000 oc2025,par01

external_identifier

Tag Data Type Required? Repeats? Description Error Handling
type identifier_type Required Single Specifies the type of identifier. Must be one of the valid types as defined by identifier_type. If the field is invalid or not present, the implementation is required to ignore the ElectionIdentifier containing it.
other_type xs:string Optional Single Allows for cataloging an ExternalIdentifier type that falls outside the options listed in identifier_type. Type should be set to “other” when using this field. If the field is invalid or not present, then the implementation is required to ignore it.
value xs:string Required Single Specifies the identifier. If the field is invalid or not present, the implementation is required to ignore the ElectionIdentifier containing it.

person

Person defines information about a person. The person may be a candidate, election administrator, or elected official. These elements reference Person:

Tag Data Type Required? Repeats? Description Error Handling
contact_information_id xs:IDREF Optional Repeats Refers to the associated single-csv-contact-information. If the element is invalid or not present, then the implementation is required to ignore it.
date_of_birth xs:date Optional Single Represents the individual’s date of birth. If the field is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Identifiers for this person. If the element is invalid or not present, then the implementation is required to ignore it.
first_name xs:string Optional Single Represents an individual’s first name. If the field is invalid or not present, then the implementation is required to ignore it.
full_name xs:string Optional Single Specifies a person’s full name (NB: this information is internationalized_text because it sometimes appears on ballots in multiple languages). If the element is invalid or not present, then the implementation is required to ignore it.
gender xs:string Optional Single Specifies a person’s gender. If the field is invalid or not present, then the implementation is required to ignore it.
last_name xs:string Optional Single Represents an individual’s last name. If the field is invalid or not present, then the implementation is required to ignore it.
middle_name xs:string Optional Repeats Represents any number of names between an individual’s first and last names (e.g. John Ronald Reuel Tolkien). If the field is invalid or not present, then the implementation is required to ignore it.
nickname xs:string Optional Single Represents an individual’s nickname. If the field is invalid or not present, then the implementation is required to ignore it.
party_id xs:IDREF Optional Single Refers to the associated party. This information is intended to be used by feed consumers to help them disambiguate the person’s identity, but not to be presented as part of any ballot information. For that see candidate PartyId. If the field is invalid or not present, then the implementation is required to ignore it.
prefix xs:string Optional Single Specifies a prefix associated with a person (e.g. Dr.). If the field is invalid or not present, then the implementation is required to ignore it.
profession xs:string Optional Single Specifies a person’s profession (NB: this information is internationalized_text because it sometimes appears on ballots in multiple languages). If the element is invalid or not present, then the implementation is required to ignore it.
suffix xs:string Optional Single Specifies a suffix associated with a person (e.g. Jr.). If the field is invalid or not present, then the implementation is required to ignore it.
title xs:string Optional Single A title associated with a person (NB: this information is internationalized_text because it sometimes appears on ballots in multiple languages). If the element is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
 id,date_of_birth,first_name,gender,last_name,middle_name,nickname,party_id,prefix,profession,suffix,title
 per50001,1961-08-04,Barack,male,Obama,Hussein,,par02,,President,II,Mr. President
 per50002,1985-11-21,Carly,female,Jepsen,Rae,,par01,,Recording Artist,,
 per50003,1926-09-23,John,male,Coltrane,William,Trane,par02,,Recording Artist,Saint,
 per50004,1926-05-26,Miles,male,Davis,Dewey,,par01,,Recording Artist,III,

contact_information

For defining contact information about objects such as persons, boards of authorities, organizations, etc. ContactInformation is always a sub-element of another object (e.g. election_administration, office, person, source). ContactInformation has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID).

Tag Data Type Required? Repeats? Description Error Handling
address_line xs:string Optional Repeats The “location” portion of a mailing address. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
directions xs:string Optional Single Specifies further instructions for locating this entity. If the element is invalid or not present, then the implementation is required to ignore it.
email xs:string Optional Repeats An email address for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
fax xs:string Optional Repeats A fax line for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the location is open (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single References an hours_open element, which lists the hours of operation for a location. If the field is invalid or not present, then the implementation is required to ignore it.
lat_long single-csv-lat-lng Optional Single Specifies the latitude and longitude of this entity. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the location or contact. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
phone xs:string Optional Repeats A phone number for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
uri xs:anyURI Optional Repeats An informational URI for the contact or location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,address_line_1,address_line_2,address_line_3,directions,email,fax,hours,hours_open_id,latitude,longitude,latlng_source,name,phone,uri,parent_id
 ci0827,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,off001
 ci0828,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,vs01

external_identifiers

The ExternalIdentifiers element allows VIP data to connect with external datasets (e.g. candidates with campaign finance datasets, electoral geographies with OCD-IDs that allow for greater connectivity with additional datasets, etc…). Examples for ExternalIdentifiers can be found on the objects that support them:

Tag Data Type Required? Repeats? Description Error Handling
external_identifier external_identifier Required Repeats Defines the identifier and the type of identifier it is (see `ExternalIdentifier`_ for complete information). At least one valid `ExternalIdentifier`_ must be present for ExternalIdentifiers to be valid. If no valid `ExternalIdentifier`_ is present, the implementation is required to ignore the ExternalIdentifiers element.

voter_service

Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single The contact for a particular voter service. If the element is invalid or not present, then the implementation is required to ignore it.
description xs:string Optional Single Long description of the services available. If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The authority for a particular voter service. If the field is invalid or not present, then the implementation is required to ignore it.
type voter_service_type Optional Single The type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single If Type is “other”, OtherType allows for cataloging another type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
6
 id,description,election_official_person_id,type,other_type,department_id
 vs01,A service we provide,per50002,other,overseas-voting,dep01
 vs00,Elections notifications,per50002,other,voter-registration,dep02
 vs02,Pencil sharpening,per50002,other,office-help,dep03
 vs03,Guided hike to polling place,per50002,other,polling-places,dep03
 vs04,Bike messenger ballot delivery,per50002,other,absentee-ballots,dep03

contact_information

For defining contact information about objects such as persons, boards of authorities, organizations, etc. ContactInformation is always a sub-element of another object (e.g. election_administration, office, person, source). ContactInformation has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID).

Tag Data Type Required? Repeats? Description Error Handling
address_line xs:string Optional Repeats The “location” portion of a mailing address. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
directions xs:string Optional Single Specifies further instructions for locating this entity. If the element is invalid or not present, then the implementation is required to ignore it.
email xs:string Optional Repeats An email address for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
fax xs:string Optional Repeats A fax line for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the location is open (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single References an hours_open element, which lists the hours of operation for a location. If the field is invalid or not present, then the implementation is required to ignore it.
lat_long single-csv-lat-lng Optional Single Specifies the latitude and longitude of this entity. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the location or contact. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
phone xs:string Optional Repeats A phone number for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
uri xs:anyURI Optional Repeats An informational URI for the contact or location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,address_line_1,address_line_2,address_line_3,directions,email,fax,hours,hours_open_id,latitude,longitude,latlng_source,name,phone,uri,parent_id
 ci0827,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,off001
 ci0828,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,vs01

candiate_selection

CandidateSelection extends single-csv-ballot-selection-base and represents a ballot selection for a candidate contest.

Tag Data Type Required? Repeats? Description Error Handling
candidate_ids xs:IDREFS Optional Single References a set of candidate elements. The number of candidates that can be references is unbounded in cases where the ballot selection is for a ticket (e.g. “President/Vice President”, “Governor/Lt Governor”). If the field is invalid or not present, then the implementation is required to ignore it.
endorsement_party_ids xs:IDREFS Optional Single References a set of party elements, which signifies one or more endorsing parties for the candidate(s). If the field is invalid or not present, then the implementation is required to ignore it.
is_write_in xs:boolean Optional Single Signifies if the particular ballot selection allows for write-in candidates. If true, one or more write-in candidates are allowed for this contest. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,sequence_order,candidate_ids,endorsement_party_ids,is_write_in
 cs001,3,can004,par01,false
 cs002,2,can001 can002,par03 par02,false
 cs003,1,can003,par02 par03,true

ballot_selection_base

A base model for all ballot selection types: ballot_measure_selection, candiate_selection, and party_selection.

Tag Data Type Required? Repeats? Description Error Handling
sequence_order xs:integer Optional Single The order in which a selection can be listed on the ballot or in results. This is the default ordering, and can be overridden by OrderedBallotSlectionIds in ordered_contest. If the field is invalid or not present, then the implementation is required to ignore it.

lat_long

The latitude and longitude of a polling location in `WGS 84`_ format. Both latitude and longitude values are measured in decimal degrees.

Tag Data Type Required? Repeats? Description Error Handling
latitude xs:double Required Single The latitude of the polling location. If the field is invalid, then the implementation is required to ignore it.
longitude xs:double Required Single The longitude of the polling location. If the field is invalid, then the implementation is required to ignore it.
latlng_source xs:string Optional Single The system used to perform the lookup from location name to lat/lng. For example, this could be the name of a geocoding service. If the field is invalid or not present, then the implementation is required to ignore it.

candidate

The Candidate object represents a candidate in a contest. If a candidate is running in multiple contests, each contest must have its own Candidate object. Candidate objects may not be reused between Contests.

Tag Data Type Required? Repeats? Description Error Handling
ballot_name xs:string Required Single The candidate’s name as it will be displayed on the official ballot (e.g. “Ken T. Cuccinelli II”). If the element is invalid, then the implementation is required to ignore the Candidate element containing it.
contact_information xs:string Optional Single Contact and physical address information for this Candidate and/or their campaign (see single-csv-contact-information). If the element is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Another identifier for a candidate that links to another source of information (e.g. a campaign committee ID that links to a campaign finance system). If the element is invalid or not present, then the implementation is required to ignore it.
file_date xs:date Optional Single Date when the candidate filed for the contest. If the field is invalid or not present, then the implementation is required to ignore it.
is_incumbent xs:boolean Optional Single Indicates whether the candidate is the incumbent for the office associated with the contest. If the field is invalid or not present, then the implementation is required to ignore it.
is_top_ticket xs:boolean Optional Single Indicates whether the candidate is the top of a ticket that includes multiple candidates. If the field is invalid or not present, then the implementation is required to ignore it.
party_id xs:IDREF Optional Single Reference to a party element with additional information about the candidate’s affiliated party. This is the party affiliation that is intended to be presented as part of ballot information. If the field is invalid or not present, then the implementation is required to ignore it.
person_id xs:IDREF Optional Single Reference to a person element with additional information about the candidate. If the field is invalid or not present, then the implementation is required to ignore it.
post_election_status candidate_post_election_status Optional Single Final status of the candidate (e.g. winner, withdrawn, etc…). If the field is invalid or not present, then the implementation is required to ignore it.
pre_election_status candidate_pre_election_status Optional Single Registration status of the candidate (e.g. filed, qualified, etc…). If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
 id,ballot_name,external_identifier_type,external_identifier_othertype,external_identifier_value,file_date,is_incumbent,is_top_ticket,party_id,person_id,post_election_status,pre_election_status
 can001,Jude Fawley,,,,2016-12-01,true,false,par01,per50001,,filed
 can002,Arabella Donn,,,,2016-12-01,false,false,par02,per50002,,qualified
 can003,John Coltrane,,,,2016-09-23,false,false,par02,per50003,,qualified
 can004,Miles Davis,,,,2016-05-26,false,false,par01,per50004,,qualified

polling_location

The PollingLocation object represents a site where voters cast or drop off ballots.

Tag Data Type Required? Repeats? Description Error Handling
single-csv-simple-address-type simple-address-type Optional Single Represents the various structured parts of an address to a polling location. One of AddressStructured and AddressLine should be present for a given Polling Location. If none is present, the implementation is required to ignore the PollingLocation element containing it.
address_line xs:string Optional Repeats Represents the various parts of an address to a polling location. One of AddressStructured and AddressLine should be present for a given Polling Location. If none is present, the implementation is required to ignore the PollingLocation element containing it.
directions xs:string Optional Single Specifies further instructions for locating the polling location. If the element is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the polling location is open (NB: this element is deprecated in favor of the more structured hours_open element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single Links to an hours_open element, which is a schedule of dates and hours during which the polling location is available. If the field is invalid or not present, then the implementation is required to ignore it.
is_drop_box xs:boolean Optional Single Indicates if this polling location is a drop box. If the field is invalid or not present, then the implementation is required to ignore it.
is_early_voting xs:boolean Optional Single Indicates if this polling location is an early vote site. If the field is invalid or not present, then the implementation is required to ignore it.
lat_lng single-csv-lat-lng Optional Single Specifies the latitude and longitude of this polling location. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single Name of the polling location. If the field is invalid or not present, then the implementation is required to ignore it.
photo_uri xs:string Optional Single Contains a link to an image of the polling location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,name,address_line,structured_line_1,structured_city,structured_state,structured_zip,directions,hours,photo_uri,hours_open_id,is_drop_box,is_early_voting,latitude,longitude,latlng_source
 poll001,ALBERMARLE HIGH SCHOOL,,2775 Hydraulic Rd,Charlottesville,VA,22901,Use back door,7am-8pm,www.picture.com,ho001,false,true,38.0754627,78.5014875,Google Maps
 poll002,Public Library,Main St Denver CO,,,,,,next to the checkout counter,7am-8pm,www.picture.com,,false,true,38.0754627,78.5014875,Google Maps

lat_long

The latitude and longitude of a polling location in `WGS 84`_ format. Both latitude and longitude values are measured in decimal degrees.

Tag Data Type Required? Repeats? Description Error Handling
latitude xs:double Required Single The latitude of the polling location. If the field is invalid, then the implementation is required to ignore it.
longitude xs:double Required Single The longitude of the polling location. If the field is invalid, then the implementation is required to ignore it.
latlng_source xs:string Optional Single The system used to perform the lookup from location name to lat/lng. For example, this could be the name of a geocoding service. If the field is invalid or not present, then the implementation is required to ignore it.

simple_address_type

A SimpleAddressType represents a structured address.

Tag Data Type Required? Repeats? Description Error Handling
structured_line_1 xs:string Required Single The address line for a structured address. Should include the street number, street name, and any prefix and suffix. If no Line1 is provided, the implementation should ignore the SimpleAddressType.
structured_line_2 xs:string Optional Single Additional field for an address If no Line2 is provided, the implementation should ignore it.
structured_line_3 xs:string Optional Single Additional field for an address If no Line3 is provided, the implementation should ignore it.
structured_city xs:string Required Single The City value of a structured address. If City is not provided, the implementation should ignore the SimpleAddressType.
structured_state xs:string Required Single The State value of a structured address. If State is not provided, the implementation should ignore the SimpleAddressType.
structured_zip xs:string Optional Single The ZIP code of a structured address. If Zip is not provided, the implementation should ignore the SimpleAddressType.

locality

The Locality object represents the jurisdiction below the state (e.g. county).

Tag Data Type Required? Repeats? Description Error Handling
election_administration_id xs:IDREF Optional Single Links to the locality’s election_administration object. If the field is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Another identifier for a locality that links to another dataset (e.g. `OCD-ID`_) If the element is invalid or not present, then the implementation is required to ignore it.
is_mail_only xs:boolean Optional Single Determines if the locality runs mail-only elections. If this is true, then all precincts a part of the locality will also run mail-only elections. Drop boxes may be used in addition to this flag using a polling location record configured as a Drop Box. If the field is missing or invalid, the implementation is required to assume IsMailOnly is false.
name xs:string Required Single Specifies the name of a locality. If the field is invalid, then the implementation is required to ignore the Locality element containing it.
polling_location_ids xs:IDREFS Optional Single Specifies a link to a set of the locality’s :ref:`polling locations <single-csv-polling-location>`s. If early vote centers or ballot drop locations are locality-wide, they should be specified here. If the field is invalid or not present, the implementation is required to ignore it. However, the implementation should still check to see if there are any polling locations associated with this locality’s state.
state_id xs:IDREF Required Single References the locality’s state. If the field is invalid, then the implementation is required to ignore the Locality element containing it.
type district_type Optional Single Defines the kind of locality (e.g. county, town, et al.), which is one of the various DistrictType enumerations. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single Allows for defining a type of locality that falls outside the options listed in DistrictType. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,election_administration_id,external_identifier_type,external_identifier_othertype,external_identifier_value,is_mail_only,name,polling_location_ids,state_id,type,other_type
 loc001,ea123,ocd-id,,ocd-division/country:us/state:co/county:denver,true,Locality #1,poll001 poll002,st51,city,
 loc002,ea345,,,,,Locality #2,,st51,other,unique type

department

Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single Contact and physical address information for the election administration body (see single-csv-contact-information). If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The individual to contact at the election administration office. The specified person should be the election official. If the field is invalid or not present, then the implementation is required to ignore it.
voter_service single-csv-voter-service Optional Repeats The types of services and appropriate contact individual available to voters. If the element is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
 id,election_official_person_id,election_administration_id
 dep01,per50002,ea123
 dep02,per50002,ea345
 dep03,per50002,ea625
 dep04,per50002,ea625

voter_service

Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single The contact for a particular voter service. If the element is invalid or not present, then the implementation is required to ignore it.
description xs:string Optional Single Long description of the services available. If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The authority for a particular voter service. If the field is invalid or not present, then the implementation is required to ignore it.
type voter_service_type Optional Single The type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single If Type is “other”, OtherType allows for cataloging another type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
6
 id,description,election_official_person_id,type,other_type,department_id
 vs01,A service we provide,per50002,other,overseas-voting,dep01
 vs00,Elections notifications,per50002,other,voter-registration,dep02
 vs02,Pencil sharpening,per50002,other,office-help,dep03
 vs03,Guided hike to polling place,per50002,other,polling-places,dep03
 vs04,Bike messenger ballot delivery,per50002,other,absentee-ballots,dep03

contact_information

For defining contact information about objects such as persons, boards of authorities, organizations, etc. ContactInformation is always a sub-element of another object (e.g. election_administration, office, person, source). ContactInformation has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID).

Tag Data Type Required? Repeats? Description Error Handling
address_line xs:string Optional Repeats The “location” portion of a mailing address. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
directions xs:string Optional Single Specifies further instructions for locating this entity. If the element is invalid or not present, then the implementation is required to ignore it.
email xs:string Optional Repeats An email address for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
fax xs:string Optional Repeats A fax line for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the location is open (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single References an hours_open element, which lists the hours of operation for a location. If the field is invalid or not present, then the implementation is required to ignore it.
lat_long single-csv-lat-lng Optional Single Specifies the latitude and longitude of this entity. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the location or contact. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
phone xs:string Optional Repeats A phone number for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
uri xs:anyURI Optional Repeats An informational URI for the contact or location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,address_line_1,address_line_2,address_line_3,directions,email,fax,hours,hours_open_id,latitude,longitude,latlng_source,name,phone,uri,parent_id
 ci0827,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,off001
 ci0828,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,vs01

html_color_string

A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:

[0-9a-f]{6}

schedule

A sub-portion of the schedule. This describes a range of days, along with one or more set of open and close times for those days, as well as the options describing whether or not appointments are necessary or possible.

Tag Data Type Required? Repeats? Description Error Handling
hours single-csv-hours Optional Repeats Blocks of hours in the date range in which the place is open. If the element is invalid or not present, then the implementation is required to ignore it.
is_only_by_appointment xs:boolean Optional Single If true, the place is only open during the specified time window with an appointment. If the field is invalid or not present, then the implementation is required to ignore it.
is_or_by_appointment xs:boolean Optional Single If true, the place is open during the hours specified time window and may also be open with an appointment. If the field is invalid or not present, then the implementation is required to ignore it.
is_subject_to_change xs:boolean Optional Single If true, the place should be open during the specified time window, but may be subject to change. People should contact prior to arrival to confirm hours are still accurate. If the field is invalid or not present, then the implementation is required to ignore it.
start_date xs:date Optional Single The date at which this collection of start and end times and options begin. If the field is invalid or not present, then the implementation is required to ignore it.
end_date xs:date Optional Single The date at which this collection of start and end times and options end. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,start_time,end_time,is_only_by_appointment,is_or_by_appointment,is_subject_to_change,start_date,end_date,hours_open_id
 sch001,07:00:00-06:00,22:00:00-06:00,,true,,2016-10-10,2016-10-12,ho001
 sch002,09:00:00-06:00,20:00:00-06:00,true,,,2016-10-13,2016-10-15,ho001
 sch003,08:00:00-06:00,14:00:00-06:00,,,true,2016-10-10,2016-10-15,ho002

hours

The open and close time for this place. All times must be fully specified, including a timezone offset from UTC.

Tag Data Type Required? Repeats? Description Error Handling
start_time single-csv-time-with-zone Optional Single The time at which this place opens. If the element is invalid or not present, then the implementation is required to ignore it.
end_time single-csv-time-with-zone Optional Single The time at which this place closes. If the element is invalid or not present, then the implementation is required to ignore it.
time_with_zone

A string pattern restricting the value to a time with an included offset from UTC. The pattern is

(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|(24:00:00))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<HoursOpen id="hours0001">
  <Schedule>
    <Hours>
      <StartTime>06:00:00-05:00</StartTime>
      <EndTime>12:00:00-05:00</EndTime>
    </Hours>
    <Hours>
      <StartTime>13:00:00-05:00</StartTime>
      <EndTime>19:00:00-05:00</EndTime>
    </Hours>
    <StartDate>2013-11-05</StartDate>
    <EndDate>2013-11-05</EndDate>
  </Schedule>
</HoursOpen>

precinct

The Precinct object represents a precinct, which is contained within a Locality. While the id attribute does not have to be static across feeds for one election, the combination of Source.VipId, Locality.Name, Precinct.Ward, Precinct.Name, and Precinct.Number should remain constant across feeds for one election (NB: not all of the fields just mentioned are required – omitting those non-required fields is fine).

Tag Data Type Required? Repeats? Description Error Handling
ballot_style_id xs:IDREF Optional Single Links to the ballot_style, which a person who lives in this precinct will vote. If the field is invalid or not present, then the implementation is required to ignore it.
electoral_district_ids xs:IDREFS Optional Single Links to the :ref:`single-csv-electoral-district`s (e.g., congressional district, state house district, school board district) to which the entire precinct/precinct split belongs. Highly Recommended if candidate information is to be provided. If the field is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Other identifier for the precinct that relates to another dataset (e.g. `OCD-ID`_). If the element is invalid or not present, then the implementation is required to ignore it.
is_mail_only xs:boolean Optional Single Determines if the precinct runs mail-only elections. If the field is missing or invalid, the implementation is required to assume IsMailOnly is false.
locality_id xs:IDREF Required Single Links to the locality that comprises the precinct. If the field is invalid, then the implementation is required to ignore the Precinct element containing it.
name xs:string Required Single Specifies the precinct’s name (or number if no name exists). If the field is invalid, then the implementation is required to ignore the Precinct element containing it.
number xs:string Optional Single Specifies the precinct’s number (e.g., 32 or 32A – alpha characters are legal). Should be used if the Name field is populated by a name and not a number. If the field is invalid or not present, then the implementation is required to ignore it.
polling_location_ids xs:IDREFS Optional Single Specifies a link to the precinct’s polling_location object(s). If the field is invalid or not present, then the implementation is required to ignore it.
precinct_split_name xs:string Optional Single If this field is empty, then this Precinct object represents a full precinct. If this field is present, then this Precinct object represents one portion of a split precinct. Each Precinct object that represents one portion of a split precinct must have the same Name value, but different PrecinctSplitName values. See the sample_feed.xml file for examples. If the field is invalid or not present, then the implementation is required to ignore it.
ward xs:string Optional Single Specifies the ward the precinct is contained within. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,ballot_style_id,electoral_district_ids,external_identifier_type,external_identifier_othertype,external_identifier_value,is_mail_only,locality_id,name,number,polling_location_ids,precinct_split_name,ward
 pre90111,bs00010,ed001,ocd-id,,ocd-division/country:us,false,loc001,203 - GEORGETOWN,0203,poll001 poll002,split13,5
 pre90112,bs00011,ed002,fips,,42,false,loc001,203 - GEORGETOWN,0203,poll003,split26,6
 pre90113,bs00010,ed003,,,,false,loc002,203 - GEORGETOWN,0203,poll004,split54,7

ordered_contest

OrderedContest encapsulates links to the information that comprises a contest and potential ballot selections. OrderedContest elements can be collected within a ballot_style to accurate depict exactly what will show up on a particular ballot in the proper order.

Tag Data Type Required? Repeats? Description Error Handling
contest_id xs:IDREF Required Single Links to elements that extend single-csv-contest-base. If the field is invalid or not present, the implementation is required to ignore the OrderedContest element containing it.
ordered_ballot_selection_ids IDREFS Optional Single Links to elements that extend single-csv-ballot-selection-base. If the field is invalid or not present, the implementation is required to ignore it. If an OrderedBallotSelectionIds element is not present, the presumed order of the selection will be the order of single-csv-ballot-selection-base-extended elements referenced by the underlying single-csv-contest-base-extended elements.
1
2
3
 id,contest_id,ordered_ballot_selection_ids
 oc2025,con001,bs001 bs002 bs003
 oc3000,con002,bs001

party_contest

An extension of single-csv-contest-base which describes a contest in which the possible ballot selections are of type party_selection. These could include contests in which straight-party selections are allowed, or party-list contests (although these are more common outside of the United States).

1
2
 id,abbreviation,ballot_selection_ids,ballot_sub_title,ballot_title,electoral_district_id,electorate_specification,external_identifier_type,external_identifier_othertype,external_identifier_value,has_rotation,name,sequence_order,vote_variation,other_vote_variation
 pcon001,PC1071,bs001 bs002,,Party Election,ed001,all registered voters,,,,false,Straight Party Vote,3,,

contest_base

A base model for all Contest types: ballot_measure_contest, candidate_contest, party_contest, and retention_contest (NB: the latter because it extends ballot_measure_contest).

Tag Data Type Required? Repeats? Description Error Handling
abbreviation xs:string Optional Single An abbreviation for the contest. If the field is invalid or not present, then the implementation should ignore it.
ballot_selection_ids xs:IDREFS Optional Single References a set of BallotSelections, which could be of any selection type that extends single-csv-ballot-selection-base. If the field is invalid or not present, then the implementation should ignore it.
ballot_sub_title xs:string Optional Single Subtitle of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
ballot_title xs:string Optional Single Title of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
electoral_district_id xs:IDREF Required Single References an electoral_district element that represents the geographical scope of the contest. If the field is invalid, then the implementation should ignore it.
electorate_specification xs:string Optional Single Specifies any changes to the eligible electorate for this contest past the usual, “all registered voters” electorate. This subtag will most often be used for primaries and local elections. In primaries, voters may have to be registered as a specific party to vote, or there may be special rules for which ballot a voter can pull. In some local elections, non-citizens can vote. If the element is invalid or not present, then the implementation should ignore it.
external_identifiers xs:string Optional Single Other identifiers for a contest that links to another source of information. If the element is invalid or not present, then the implementation should ignore it.
has_rotation xs:boolean Optional Single Indicates whether the selections in the contest are rotated. If the field is invalid or not present, then the implementation should ignore it.
name xs:string Required Single Name of the contest, not necessarily how it appears on the ballot (NB: BallotTitle should be used for this purpose). If the field is invalid, then the implementation should ignore it.
sequence_order xs:integer Optional Single Order in which the contests are listed on the ballot. This is the default ordering, and can be overrides by data in a ballot_style element. If the field is invalid or not present, then the implementation should ignore it.
vote_variation vote_variation Optional Single Vote variation associated with the contest (e.g. n-of-m, majority, et al). If the field is invalid or not present, then the implementation should ignore it.
other_vote_variation other_vote_variation Optional Single If “other” is selected as the VoteVariation, the name of the variation can be specified here. If the field is invalid or not present, then the implementation should ignore it.

election_administration

The Election Administration represents an institution for serving a locality’s (or state’s) election functions.

Tag Data Type Required? Repeats? Description Error Handling
absentee_uri xs:anyURI Optional Single Specifies the web address for information on absentee voting. If the field is invalid or not present, then the implementation is required to ignore it.
am_i_registered_uri xs:anyURI Optional Single Specifies the web address for information on whether an individual is registered. If the field is invalid or not present, then the implementation is required to ignore it.
ballot_tracking_uri xs:anyURI Optional Single Specifies the web address for tracking information for a ballot cast by mail If the field is invalid or not present, then the implementation is required to ignore it.
ballot_tracking_provisional_uri xs:anyURI Optional Single Specifies the web address for tracking information for a provisional ballot. To support EAC guidelines for “Processing Provisional Ballots” (https://www.eac.gov/research-and-data/provisional-voting/) If the field is invalid or not present, then the implementation is required to ignore it.
department single-csv-department Required Repeats Describes the administrative body for a particular voter service. There must be at least one valid Department in each ElectionAdministration element. If no valid Department objects are present, the implementation is required to ignore the ElectionAdministration object that contains it/them.
election_notice single-csv-election-notice Optional Single A place for election administrators to post last minute and emergency notifications pertaining to the election. If the element is invalid or not present, then the implementation is required to ignore it.
elections_uri xs:anyURI Optional Single Specifies web address the administration’s website. If the field is invalid or not present, then the implementation is required to ignore it.
registration_uri xs:anyURI Optional Single Specifies web address for information on registering to vote. If the field is invalid or not present, then the implementation is required to ignore it.
rules_uri xs:anyURI Optional Single Specifies a URI for the election rules and laws (if any) for the jurisdiction of the administration. If the field is invalid or not present, then the implementation is required to ignore it.
what_is_on_my_ballot xs:anyURI Optional Single Specifies web address for information on what is on an individual’s ballot. If the field is invalid or not present, then the implementation is required to ignore it.
where_do_i_vote_uri xs:anyURI Optional Single The Specifies web address for information on where an individual votes based on their address. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,absentee_uri,am_i_registered_uri,ballot_tracking_uri,ballot_tracking_provisional_uri,election_notice_text,election_notice_uri,elections_uri,registration_uri,rules_uri,what_is_on_my_ballot_uri,where_do_i_vote_uri
 ea123,https://example.com/absentee,https://example.com/am-i-registered,https://www.vote.virginia.gov/,https://www.vote.virginia.gov/,This is an emergency notification for this election.,https://www.yadayada.gov,https://example.com/elections,https://example.com/registration,https://example.com/rules,https://example.com/what-is-on-my-ballot,https://example.com/where-do-i-vote
 ea345,https://example.com/absentee2,https://example.com/am-i-registered2,https://example.com/elections2,https://example.com/registration2,,,https://example.com/rules2,https://example.com/what-is-on-my-ballot2,https://example.com/where-do-i-vote2
 ea625,https://example.com/absentee3,https://example.com/am-i-registered3,https://example.com/elections3,https://example.com/registration3,This is an emergency notification for this election.,,https://example.com/rules3,https://example.com/what-is-on-my-ballot3,https://example.com/where-do-i-vote3

department

Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single Contact and physical address information for the election administration body (see single-csv-contact-information). If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The individual to contact at the election administration office. The specified person should be the election official. If the field is invalid or not present, then the implementation is required to ignore it.
voter_service single-csv-voter-service Optional Repeats The types of services and appropriate contact individual available to voters. If the element is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
 id,election_official_person_id,election_administration_id
 dep01,per50002,ea123
 dep02,per50002,ea345
 dep03,per50002,ea625
 dep04,per50002,ea625
voter_service
Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single The contact for a particular voter service. If the element is invalid or not present, then the implementation is required to ignore it.
description xs:string Optional Single Long description of the services available. If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The authority for a particular voter service. If the field is invalid or not present, then the implementation is required to ignore it.
type voter_service_type Optional Single The type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single If Type is “other”, OtherType allows for cataloging another type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
6
 id,description,election_official_person_id,type,other_type,department_id
 vs01,A service we provide,per50002,other,overseas-voting,dep01
 vs00,Elections notifications,per50002,other,voter-registration,dep02
 vs02,Pencil sharpening,per50002,other,office-help,dep03
 vs03,Guided hike to polling place,per50002,other,polling-places,dep03
 vs04,Bike messenger ballot delivery,per50002,other,absentee-ballots,dep03
contact_information

For defining contact information about objects such as persons, boards of authorities, organizations, etc. ContactInformation is always a sub-element of another object (e.g. election_administration, office, person, source). ContactInformation has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID).

Tag Data Type Required? Repeats? Description Error Handling
address_line xs:string Optional Repeats The “location” portion of a mailing address. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
directions xs:string Optional Single Specifies further instructions for locating this entity. If the element is invalid or not present, then the implementation is required to ignore it.
email xs:string Optional Repeats An email address for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
fax xs:string Optional Repeats A fax line for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
hours xs:string Optional Single Contains the hours (in local time) that the location is open (NB: this element is deprecated in favor of the more structured :ref:`single-csv-hours-open` element. It is strongly encouraged that data providers move toward contributing hours in this format). If the element is invalid or not present, then the implementation is required to ignore it.
hours_open_id xs:IDREF Optional Single References an hours_open element, which lists the hours of operation for a location. If the field is invalid or not present, then the implementation is required to ignore it.
lat_long single-csv-lat-lng Optional Single Specifies the latitude and longitude of this entity. If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the location or contact. See usage note. If the field is invalid or not present, then the implementation is required to ignore it.
phone xs:string Optional Repeats A phone number for the contact. If the field is invalid or not present, then the implementation is required to ignore it.
uri xs:anyURI Optional Repeats An informational URI for the contact or location. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,address_line_1,address_line_2,address_line_3,directions,email,fax,hours,hours_open_id,latitude,longitude,latlng_source,name,phone,uri,parent_id
 ci0827,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,off001
 ci0828,The White House,1600 Pennsylvania Ave,,,josh@example.com,,Early to very late,,,,,Josh Lyman,555-111-2222,http://lemonlyman.example.com,vs01

election_notice

Tag Data Type Required? Repeats? Description Error Handling
election_notice_text xs:string Required Single The last minute or emergency notification text should be placed here. If the element is invalid, then the implementation is required to ignore the ElectionNotice element containing it.
election_notice_uri xs:string Optional Single Optional URL for additional information related to the last minute or emergency notification. If the field is invalid or not present, then the implementation is required to ignore it.

voter_service

Tag Data Type Required? Repeats? Description Error Handling
contact_information single-csv-contact-information Optional Single The contact for a particular voter service. If the element is invalid or not present, then the implementation is required to ignore it.
description xs:string Optional Single Long description of the services available. If the element is invalid or not present, then the implementation is required to ignore it.
election_official_person_id xs:IDREF Optional Single The authority for a particular voter service. If the field is invalid or not present, then the implementation is required to ignore it.
type voter_service_type Optional Single The type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
other_type xs:string Optional Single If Type is “other”, OtherType allows for cataloging another type of voter service. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
6
 id,description,election_official_person_id,type,other_type,department_id
 vs01,A service we provide,per50002,other,overseas-voting,dep01
 vs00,Elections notifications,per50002,other,voter-registration,dep02
 vs02,Pencil sharpening,per50002,other,office-help,dep03
 vs03,Guided hike to polling place,per50002,other,polling-places,dep03
 vs04,Bike messenger ballot delivery,per50002,other,absentee-ballots,dep03

hours

The open and close time for this place. All times must be fully specified, including a timezone offset from UTC.

Tag Data Type Required? Repeats? Description Error Handling
start_time single-csv-time-with-zone Optional Single The time at which this place opens. If the element is invalid or not present, then the implementation is required to ignore it.
end_time single-csv-time-with-zone Optional Single The time at which this place closes. If the element is invalid or not present, then the implementation is required to ignore it.

time_with_zone

A string pattern restricting the value to a time with an included offset from UTC. The pattern is

(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|(24:00:00))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<HoursOpen id="hours0001">
  <Schedule>
    <Hours>
      <StartTime>06:00:00-05:00</StartTime>
      <EndTime>12:00:00-05:00</EndTime>
    </Hours>
    <Hours>
      <StartTime>13:00:00-05:00</StartTime>
      <EndTime>19:00:00-05:00</EndTime>
    </Hours>
    <StartDate>2013-11-05</StartDate>
    <EndDate>2013-11-05</EndDate>
  </Schedule>
</HoursOpen>

election_notice

Tag Data Type Required? Repeats? Description Error Handling
election_notice_text xs:string Required Single The last minute or emergency notification text should be placed here. If the element is invalid, then the implementation is required to ignore the ElectionNotice element containing it.
election_notice_uri xs:string Optional Single Optional URL for additional information related to the last minute or emergency notification. If the field is invalid or not present, then the implementation is required to ignore it.

retention_contest

RetentionContest extends ballot_measure_contest and represents a contest where a candidate is retained in a position (e.g. a judge).

Tag Data Type Required? Repeats? Description Error Handling
candidate_id xs:IDREF Required Single Links to the candidate being retained. If the field is invalid or not present, the implementation is required to ignore the RetentionContest element containing it.
office_id xs:IDREF Optional Single Links to the information about the office. If the field is invalid or not present, then the implementation is required to ignore it.

street_segment

A Street Segment objection represents a portion of a street and the links to the precinct that this geography (i.e., segment) is contained within. The start address house number must be less than the end address house number unless the segment consists of only one address, in which case these values are equal.

Tag Data Type Required? Repeats? Description Error Handling
address_direction xs:string Optional Single Specifies the (inter-)cardinal direction of the entire address. An example is “NE” for the address “100 E Capitol St NE.” If the field is invalid or not present, then the implementation is required to ignore it.
city xs:string Required Single The city specifies the city or town of the address. If the field is invalid, then the implementation is required to ignore the StreetSegment element containing it.
includes_all_addresses xs:boolean Optional Single Specifies if the segment covers every address on this street. If this is true, then the values of StartHouseNumber and EndHouseNumber should be ignored. The value of OddEvenBoth must be both. If the field is invalid or not present, then the implementation is required to ignore it.
includes_all_streets xs:boolean Optional Single Specifies if the segment covers every street in this city. If this is true, then the values of OddEvenBoth, StartHouseNumber, EndHouseNumber, StreetName, and Zip should be ignored. If the field is invalid or not present, then the implementation is required to ignore it.
odd_even_both oeb_enum Optional Single Specifies whether the odd side of the street (in terms of house numbers), the even side, or both are in included in the street segment. If the field is not present or invalid, the implementation is required to ignore the StreetSegment containing it.
precinct_id xs:IDREF Required Single References the precinct that contains the entire street segment. If the field is invalid, then the implementation is required to ignore the StreetSegment element containing it.
start_house_number xs:integer Optional Single The house number at which the street segment starts. This value is necessary for the street segment to make any sense. Unless IncludesAllAddresses or IncludesAllStreets are true, this value must be less than or equal to EndHouseNumber. If IncludesAllAddresses or IncludesAllStreets are true, this value is ignored. Unless IncludesAllAddresses or IncludesAllStreets are true, if the field is not present or invalid, the implementation is required to ignore the StreetSegment element containing it. If the StartHouseNumber is greater than the EndHouseNumber, the implementation should ignore the element containing them.
end_house_number xs:integer Optional Single The house number at which the street segment ends. This value is necessary for the street segment to make any sense. Unless IncludesAllAddresses or IncludesAllStreets are true, it must be greater than or equal to StartHouseNumber. If IncludesAllAddresses or IncludesAllStreets are true, this value is ignored. Unless IncludesAllAddresses or IncludesAllStreets are true, if the field is not present or invalid, the implementation is required to ignore the StreetSegment element containing it. If the EndHouseNumber is less than the StartHouseNumber, the implementation should ignore the element containing it.
house_number_prefix xs:string Optional Single Part of a street address. It may contain letters or slashes (e.g., ‘B’ in ‘B22 Main St’). If this value is present then StartHouseNumber must be equal to EndHouseNumber. This field cannot be used if IncludesAllAddresses or IncludesAllStreets are true. If the field is invalid or not present, then the implementation is required to ignore it.
house_number_suffix xs:string Optional Single Part of a street address. It may contain letters or slashes (e.g., 1/2 in ‘22 1/2 Main St’). If this value is present then StartHouseNumber must be equal to EndHouseNumber. This field cannot be used if IncludesAllAddresses or IncludesAllStreets are true. If the field is invalid or not present, then the implementation is required to ignore it.
state xs:string Required Single Specifies the two-letter state abbreviation of the address. If the field is invalid, then the implementation is required to ignore the StreetSegment element containing it.
street_direction xs:string Optional Single Specifies the (inter-)cardinal direction of the street address (e.g., the “E” in “100 E Capitol St NE”). If the field is invalid or not present, then the implementation is required to ignore it.
street_name xs:string Optional Single Represents the name of the street for the address. A special wildcard, “*”, denotes every street in the given city/town. It optionally may contain street direction, street suffix or address direction (e.g., both “Capitol” and “E Capitol St NE” are acceptable for the address “100 E Capitol St NE”), however this is not preferred. Preferred is street name alone (e.g. “Capitol”). If the field is invalid or not present, then the implementation is required to ignore it.
street_suffix xs:string Optional Single Represents the abbreviated, non-directional suffix to the street name. An example is “St” for the address “100 E Capitol St NE.” If the field is invalid or not present, then the implementation is required to ignore it.
unit_number xs:string Optional Repeats The apartment/unit number for a street segment. If this value is present then StartHouseNumber must be equal to EndHouseNumber. This field cannot be used if IncludesAllAddresses or IncludesAllStreets are true. If the field is invalid or not present, then the implementation is required to ignore it.
zip xs:string Optional Single Specifies the zip code of the address. It may be 5 or 9 digits, and it may include a hyphen (‘-‘). It is required as it helps with geocoding, which is crucial for distributors. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,address_direction,city,includes_all_addresses,includes_all_streets,odd_even_both,precinct_id,start_house_number,end_house_number,house_number_prefix,house_number_suffix,state,street_direction,street_name,street_suffix,unit_number,zip
 ss000001,N,Washington,false,false,odd,pre90113,101,199,,,DC,NW,Delaware,St,,20001
 ss000002,S,Washington,true,false,both,pre90112,,,,,DC,SE,Wisconsin,Ave,,20002
 ss000003,N,Washington,false,false,even,pre90113,100,100,A,1/2,DC,NW,Delaware,St,,20001

candidate_contest

CandidateContest extends single-csv-contest-base and represents a contest among candidates.

Tag Data Type Required? Repeats? Description Error Handling
number_elected xs:integer Optional Single Number of candidates that are elected in the contest (i.e. “N” of N-of-M). If the field is invalid or not present, then the implementation is required to ignore it.
office_ids xs:IDREFS Optional Single References a set of office elements, if available, which give additional information about the offices. Note: the order of the office IDs must be in the same order as the candidates listed in BallotSelectionIds. E.g., if the various BallotSelectionIds reference candiate_selection elements which reference the candidate for President first and Vice-President second, the OfficeIds should reference the office of President first and the office of Vice-President second. If the field is invalid or not present, then the implementation is required to ignore it.
primary_party_ids xs:IDREFS Optional Single References party elements, if the contest is related to a particular party. If the field is invalid or not present, then the implementation is required to ignore it.
votes_allowed xs:integer Optional Single Maximum number of votes/write-ins per voter in this contest. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,abbreviation,ballot_selection_ids,ballot_sub_title,ballot_title,electoral_district_id,electorate_specification,external_identifier_type,external_identifier_othertype,external_identifier_value,has_rotation,name,sequence_order,vote_variation,other_vote_variation,number_elected,office_ids,primary_party_ids,votes_allowed
 cancon001,SE-1,bs001 bs002,,Governor of Virginia,ed001,all registered voters,fips,,49,true,Governor,1,,,1,off001,par01,1
 cancon002,SE-2,bs003 bs004,,Lieutenant Governor of Virginia,ed001,all registered voters,fips,,49,true,Lt Governor,2,,,1,off002,par01,1

contest_base

A base model for all Contest types: ballot_measure_contest, candidate_contest, party_contest, and retention_contest (NB: the latter because it extends ballot_measure_contest).

Tag Data Type Required? Repeats? Description Error Handling
abbreviation xs:string Optional Single An abbreviation for the contest. If the field is invalid or not present, then the implementation should ignore it.
ballot_selection_ids xs:IDREFS Optional Single References a set of BallotSelections, which could be of any selection type that extends single-csv-ballot-selection-base. If the field is invalid or not present, then the implementation should ignore it.
ballot_sub_title xs:string Optional Single Subtitle of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
ballot_title xs:string Optional Single Title of the contest as it appears on the ballot. If the element is invalid or not present, then the implementation should ignore it.
electoral_district_id xs:IDREF Required Single References an electoral_district element that represents the geographical scope of the contest. If the field is invalid, then the implementation should ignore it.
electorate_specification xs:string Optional Single Specifies any changes to the eligible electorate for this contest past the usual, “all registered voters” electorate. This subtag will most often be used for primaries and local elections. In primaries, voters may have to be registered as a specific party to vote, or there may be special rules for which ballot a voter can pull. In some local elections, non-citizens can vote. If the element is invalid or not present, then the implementation should ignore it.
external_identifiers xs:string Optional Single Other identifiers for a contest that links to another source of information. If the element is invalid or not present, then the implementation should ignore it.
has_rotation xs:boolean Optional Single Indicates whether the selections in the contest are rotated. If the field is invalid or not present, then the implementation should ignore it.
name xs:string Required Single Name of the contest, not necessarily how it appears on the ballot (NB: BallotTitle should be used for this purpose). If the field is invalid, then the implementation should ignore it.
sequence_order xs:integer Optional Single Order in which the contests are listed on the ballot. This is the default ordering, and can be overrides by data in a ballot_style element. If the field is invalid or not present, then the implementation should ignore it.
vote_variation vote_variation Optional Single Vote variation associated with the contest (e.g. n-of-m, majority, et al). If the field is invalid or not present, then the implementation should ignore it.
other_vote_variation other_vote_variation Optional Single If “other” is selected as the VoteVariation, the name of the variation can be specified here. If the field is invalid or not present, then the implementation should ignore it.

party

This element describes a political party and the metadata associated with them. These can also include “dummy” parties to indicate a type of contest (e.g., a Voter Nominated candidate_contest can use the PrimaryPartyIds field and a dummy Party object to indicate that the contest is a “Top-Two” primary).

Tag Data Type Required? Repeats? Description Error Handling
abbreviation xs:string Optional Single An abbreviation for the party name. If the field is invalid or not present, then the implementation is required to ignore it.
color single-csv-html-color-string Optional Single The preferred display color for the party, for use in maps and other displays. If the element is invalid or not present, then the implementation is required to ignore it.
external_identifiers external_identifiers Optional Single Other identifiers that link this party to other related data sets (e.g. a campaign finance system, etc). If the element is invalid or not present, then the implementation is required to ignore it.
is_write_in xs:boolean Optional Single Signals if this political party is one that is officially recognized by a local, state, or federal organization, or is a “write-in” in jurisdictions which allow candidates to free-form enter their political affiliation. If this field is not present then it is assumed to be false. If the field is invalid or not present, then the implementation is required to ignore it.
logo_uri xs:anyURI Optional Single Web address of a logo to use in displays. If the field is invalid or not present, then the implementation is required to ignore it.
name xs:string Optional Single The name of the party. If the element is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
5
 id,abbreviation,color,external_identifier_type,external_identifier_othertype,external_identifier_value,logo_uri,name
 par01,REP,ff0000,,,,http://example.com/elephant.png,Republican
 par02,DEM,0000ff,,,,http://example.com/donkey.png,Democrat
 par03,GRN,efefef,,,,http://example.com/tree.png,Green
 par04,WFP,ee99aa,,,,http://example.com/worker.png,Working Families Party

html_color_string

A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:

[0-9a-f]{6}

internationalized_text

InternationalizedText allows for support of multiple languages for a string. InternationalizedText has an optional attribute label, which allows the feed to refer back to the original label for the information (e.g. if the contact information came from a CSV, label may refer to a row ID). Examples of InternationalizedText can be seen in: * Any element that extends single-csv-contest-base * Any element that extends single-csv-ballot-selection-base * candidate * single-csv-contact-information * election * election_administration * office * party * person * polling_location * source NOTE: Internationalized Text is not currently supported for CSV submissions. “

Tag Data Type Required? Repeats? Description Error Handling
text xs:string Required Repeats Contains the translations of a particular string of text. At least one valid Text must be present for InternationalizedText to be valid. If no valid Text is present, the implementation is required to ignore the InternationalizedText element.

ballot_measure_selection

Represents the possible selection (e.g. yes/no, recall/do not recall, et al) for a ballot_measure_contest that would appear on the ballot. BallotMeasureSelection extends single-csv-ballot-selection-base.

Tag Data Type Required? Repeats? Description Error Handling
selection xs:string Required Single Selection text for a ballot_measure_contest If the element is invalid or not present, the implementation is required to ignore the BallotMeasureSelection containing it.
1
2
3
 id,sequence_order,selection
 bms001,1,Proposition A
 bms002,2,Proposition B

ballot_selection_base

A base model for all ballot selection types: ballot_measure_selection, candiate_selection, and party_selection.

Tag Data Type Required? Repeats? Description Error Handling
sequence_order xs:integer Optional Single The order in which a selection can be listed on the ballot or in results. This is the default ordering, and can be overridden by OrderedBallotSlectionIds in ordered_contest. If the field is invalid or not present, then the implementation is required to ignore it.

hours_open

A structured way of describing the days and hours that a place such as a office or polling_location is open, or that an event such as an election is happening. The range of days indicated by the StartDate and EndDate in each `Schedule`_ element should not overlap with peer `Schedule`_ elements. For example, it is invalid to specify a schedule from 10/01/2016 to 10/31/2016 and also specify a schedule from 10/10/2016 to 10/11/2016 within the same HoursOpen element.

Tag Data Type Required? Repeats? Description Error Handling
schedule single-csv-schedule Required Repeats Defines a block of days and hours that a place will be open. At least one valid `Schedule`_ must be present for HoursOpen to be valid. If no valid `Schedule`_ is present, the implementation is required to ignore the HoursOpen element.

schedule

A sub-portion of the schedule. This describes a range of days, along with one or more set of open and close times for those days, as well as the options describing whether or not appointments are necessary or possible.

Tag Data Type Required? Repeats? Description Error Handling
hours single-csv-hours Optional Repeats Blocks of hours in the date range in which the place is open. If the element is invalid or not present, then the implementation is required to ignore it.
is_only_by_appointment xs:boolean Optional Single If true, the place is only open during the specified time window with an appointment. If the field is invalid or not present, then the implementation is required to ignore it.
is_or_by_appointment xs:boolean Optional Single If true, the place is open during the hours specified time window and may also be open with an appointment. If the field is invalid or not present, then the implementation is required to ignore it.
is_subject_to_change xs:boolean Optional Single If true, the place should be open during the specified time window, but may be subject to change. People should contact prior to arrival to confirm hours are still accurate. If the field is invalid or not present, then the implementation is required to ignore it.
start_date xs:date Optional Single The date at which this collection of start and end times and options begin. If the field is invalid or not present, then the implementation is required to ignore it.
end_date xs:date Optional Single The date at which this collection of start and end times and options end. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
4
 id,start_time,end_time,is_only_by_appointment,is_or_by_appointment,is_subject_to_change,start_date,end_date,hours_open_id
 sch001,07:00:00-06:00,22:00:00-06:00,,true,,2016-10-10,2016-10-12,ho001
 sch002,09:00:00-06:00,20:00:00-06:00,true,,,2016-10-13,2016-10-15,ho001
 sch003,08:00:00-06:00,14:00:00-06:00,,,true,2016-10-10,2016-10-15,ho002
hours

The open and close time for this place. All times must be fully specified, including a timezone offset from UTC.

Tag Data Type Required? Repeats? Description Error Handling
start_time single-csv-time-with-zone Optional Single The time at which this place opens. If the element is invalid or not present, then the implementation is required to ignore it.
end_time single-csv-time-with-zone Optional Single The time at which this place closes. If the element is invalid or not present, then the implementation is required to ignore it.

time_with_zone

A string pattern restricting the value to a time with an included offset from UTC. The pattern is

(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|(24:00:00))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<HoursOpen id="hours0001">
  <Schedule>
    <Hours>
      <StartTime>06:00:00-05:00</StartTime>
      <EndTime>12:00:00-05:00</EndTime>
    </Hours>
    <Hours>
      <StartTime>13:00:00-05:00</StartTime>
      <EndTime>19:00:00-05:00</EndTime>
    </Hours>
    <StartDate>2013-11-05</StartDate>
    <EndDate>2013-11-05</EndDate>
  </Schedule>
</HoursOpen>

electoral_district

The ElectoralDistrict object represents the geographic area in which contests are held. Examples of ElectoralDistrict include: “the state of Maryland”, “Virginia’s 5th Congressional District”, or “Union School District”. The geographic area that comprises a ElectoralDistrict is defined by which precincts link to the ElectoralDistrict.

Tag Data Type Required? Repeats? Description Error Handling
external_identifiers external_identifiers Optional Single Other identifiers that link to external datasets (e.g. OCD-IDs) If the element is invalid or not present, then the implementation is required to ignore it.
name xs:string Required Single Specifies the electoral area’s name. If the field is invalid or not present, then the implementation is required to ignore the ElectoralDistrict object containing it.
number xs:integer Optional Single Specifies the district number of the district (e.g. 34, in the case of the 34th State Senate District). If a number is not applicable, instead of leaving the field blank, leave this field out of the object; empty strings are not valid for xs:integer fields. If the field is invalid or not present, then the implementation is required to ignore it.
type district_type Required Single Specifies the type of electoral area. If the field is invalid or not present, then the implementation is required to ignore the ElectoralDistrict object containing it.
other_type xs:string Optional Single Allows for cataloging a new district_type option when Type is specified as “other”. If the field is invalid or not present, then the implementation is required to ignore it.
1
2
3
 id,external_identifier_type,external_identifier_othertype,external_identifier_value,name,number,type,other_type
 ed001,ocd-id,,ocd-division/country:us/state:ny/borough:brooklyn,Brooklyn,1,borough,
 ed002,other,community-board,4,CB 4,2,other,community-board

party_selection

This element extends single-csv-ballot-selection-base to support contests in which the selections can be groups of one or more parties.

Tag Data Type Required? Repeats? Description Error Handling
party_ids xs:IDREFS Required Single One or more party IDs which collectively represent a ballot selection. If one or more parties referenced are invalid or not present, the implementation is required to ignore the PartySelection containing it.
1
2
3
4
 id,sequence_order,party_ids
 ps001,1,par01 par04
 ps002,2,par02
 ps003,3,par03

ballot_selection_base

A base model for all ballot selection types: ballot_measure_selection, candiate_selection, and party_selection.

Tag Data Type Required? Repeats? Description Error Handling
sequence_order xs:integer Optional Single The order in which a selection can be listed on the ballot or in results. This is the default ordering, and can be overridden by OrderedBallotSlectionIds in ordered_contest. If the field is invalid or not present, then the implementation is required to ignore it.

simple_address_type

A SimpleAddressType represents a structured address.

Tag Data Type Required? Repeats? Description Error Handling
structured_line_1 xs:string Required Single The address line for a structured address. Should include the street number, street name, and any prefix and suffix. If no Line1 is provided, the implementation should ignore the SimpleAddressType.
structured_line_2 xs:string Optional Single Additional field for an address If no Line2 is provided, the implementation should ignore it.
structured_line_3 xs:string Optional Single Additional field for an address If no Line3 is provided, the implementation should ignore it.
structured_city xs:string Required Single The City value of a structured address. If City is not provided, the implementation should ignore the SimpleAddressType.
structured_state xs:string Required Single The State value of a structured address. If State is not provided, the implementation should ignore the SimpleAddressType.
structured_zip xs:string Optional Single The ZIP code of a structured address. If Zip is not provided, the implementation should ignore the SimpleAddressType.

Enumerations

identifier_type

Tag Description
fips Federal Information Processing Standards codes for states_, counties_, and cities_.
local-level An identifier generated or used by local governments or organizations.
national-level An identifier generated or used by national organizations.
ocd-id An `Open Civic Data Division Identifier`_.
state-level An identifier generated or used by state governments or organizations.
other Any identifier which doesn’t fall into any of the above categories.

candidate_post_election_status

Tag Description
advanced-to-runoff For contests in which the top N candidates advance to the next round.
projected-winner A candidate is expected to win, but official results are not yet complete.
winner The candidate has officially won.
withdrawn The candidate has withdrawn from the contest.

candidate_pre_election_status

Tag Description
filed The candidate has filed for office but not yet been qualified.
qualified The candidate has qualified for the contest.
withdrawn The candidate has withdrawn from the contest (but may still be on the ballot).
write-in  

voter_service_type

Tag Description
absentee-ballots This department handles the dispatch, tracking, and return of absentee ballots.
overseas-voting The department for overseas, military, and other outside-the-U.S. voters.
polling-places This deparment handles the selection and management of polling places.
voter-registration The deparment that manages voter registration.
other Any other service not covered by the above descriptions.

district_type

Enumeration describing the set of possible jurisdiction and district types. Please use the enumeration value which most accurately reflects the type of district or jurisdiction in your state or county. For example, “town” and “township” may mean different things – or not be defined at all – in your state, so please use the definition which best matches your local meaning.

Tag Description
borough A borough
city A city.
city-council A specific seat/jurisdiction for a city, town, or village council.
congressional A United States congressional district.
county A county.
county-council A county council district, either in its entirety or for a specific seat.
judicial A judicial district.
municipality A civil division which is not a town, city, village, or county.
national The United States.
school A school district.
special A `special-purpose district`_ that exist separate from general-purpose districts.
state A state, district, commonwealth, or U.S. territory.
state-house The lower house of a state legislature.
state-senate The upper house of a state legislature.
town A town_.
township A township, which may be different than a town. See the `Wikipedia article`_.
utility A non-water public or municipal utility district.
village A village district.
ward A ward.
water A water district.
other Any district not described above. Use the OtherType field to describe it.

office_term_type

Tag Description
full-term This election is for an office for which the existing term has been completed.
unexpired-term This election is for an office for which the original term is not yet complete.

oeb_enum

Tag Description
both Both even and odd addresses within the range.
even Only even-numbered addresses within the range.
odd Only odd-numbered addresses within the range.

ballot_measure_type

A list of the various types of ballot measures. States may have different legal definitions of each type; Wikipedia_ has more details about each type. These values are to help states with multiple types of non-candidate-based contests distinguish between each type; as such, the definitions in this table are simple guidelines. Ultimately it is up to the state or local election official to choose the value which best describes the ballot measure(s) in their jurisdiction.

Tag Description
ballot-measure A catch-all for generic types of non-candidate-based contests.
initiative These are usually citizen-driven measures to be placed on the ballot. These could include both statutory changes and constitutional amendments.
referendum These could include measures to repeal existing acts of legislation, legislative referrals, and legislatively-referred state constitutional amendments.
other Anything that does not fall into the above categories.

vote_variation

Note that the descriptions below describe what the enumeration names stand for in the context of the VIP spec, rather than provide general definitions of the election terms that the names correspond to. For example, even though there are majority voting methods that are not “1-of-m” (e.g. ranked choice voting), we constrain “majority” to 1-of-m. We do this to eliminate any source of ambiguity when a single enumeration value needs to be assigned to a contest.

Tag Description
1-of-m A method where each voter can select up to one option.
approval `Approval voting`_, where each voter can select as many options as desired.
borda `Borda count`_, where each voter can rank the options, and the rankings are assigned point values.
cumulative `Cumulative voting`_, where each voter can distribute their vote to up to N options.
majority A 1-of-m method where the winner needs more than 50% of the vote to be elected.
n-of-m A method where each voter can select up to N options.
plurality A 1-of-m method where the option with the most votes is elected, regardless of whether the option has more than 50% of the vote.
proportional A `proportional representation`_ method (other than STV), which is any system that elects winners in proportion to the total vote.
range `Range voting`_, where each voter can select a score for each option.
rcv `Ranked choice voting`_ (RCV), where each voter can rank the options, and the ballots are counted in rounds. Also known as instant-runoff voting (IRV) and the single transferable vote (STV).
super-majority A 1-of-m method where the winner needs more than some predetermined fraction of the vote to be elected, where the fraction is more than 50% (e.g. three-fifths or two-thirds).
other Used when the vote variation type is not included in this enumeration.