Welcome to the VIP Specification documentation¶
Welcome to the Voting Information Project’s (VIP) open XML and CSV format specification. This data format provides an easy way to produce data that lets developers take a voter’s address, compare it to street segments, and determine that voter’s precinct (or precinct split). Knowing a voter’s precinct allows information disseminators (such as Google) to provide voters with their official polling locations (and early voting sites), ballots (including both candidates and referenda), local election administrations, and election officials.
To see a changelog of all of the updates, please see the GitHub repository.
XML Documentation¶
XML Specification¶
Getting Started¶
The actual election information specifies collections of elements, some containing links between each other. The entire set of tags must be encapsulated in a root object named vip_object. See the sample xml file and xsd file for more details.
Each top-level tag is a container for other fields, described in their own section. The only required top-level tags are the source object and the election object, each of which must be present exactly once. All other top-level tags can be repeated an unlimited number of times, or not included at all; order of top-level tags does not matter. Each top-level tag is required to have a single attribute, “id”, which is required to be unique in a data file. The id attribute for the state object should be the state’s FIPS number and this is strongly recommended. The id attributes are not required to remain constant for the same piece of semantic data across multiple productions of the feed (e.g. candidate Michael Smith, running for dogcatcher in Iowa, is not required to have the same candidate id attribute each time the state of Iowa publishes data).
In general, subtag data can appear a maximum of one time within each top-level tag object and in any order. Exceptions are noted below.
For the data itself, the special characters &, <, and > need to be encoded as &, <, and >, respectively.
Elements & Enumerations¶
Single-page Format¶
XML Elements & Enumerations (Single Page)¶
- Elements
- State
- Term
- Office
- Election
- BallotSelectionBase
- Source
- BallotMeasureContest
- ContestBase
- TimeWithZone
- LanguageString
- BallotStyle
- ExternalIdentifier
- Person
- ExternalIdentifiers
- VoterService
- ContactInformation
- CandidateSelection
- LatLng
- Candidate
- PollingLocation
- Locality
- Department
- HtmlColorString
- Schedule
- Precinct
- OrderedContest
- PartyContest
- ElectionAdministration
- Hours
- ElectionNotice
- RetentionContest
- StreetSegment
- CandidateContest
- Party
- InternationalizedText
- BallotMeasureSelection
- HoursOpen
- ElectoralDistrict
- PartySelection
- SimpleAddressType
- Enumerations
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 |
---|---|---|---|---|---|
ElectionAdministrationId | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
PollingLocationIds | 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 3 4 5 6 7 8 9 10 | <State id="st51">
<ElectionAdministrationId>ea40133</ElectionAdministrationId>
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<Name>Virginia</Name>
</State>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Type | OfficeTermType | Optional | Single | Specifies the type of office term (see OfficeTermType for valid values). | If the field is invalid or not present,
the implementation is required to ignore
the Office element containing it. |
StartDate | 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. |
EndDate | 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. |
1 2 3 4 5 6 7 8 9 10 11 | <Office id="off0000">
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<FilingDeadline>2013-01-01</FilingDeadline>
<IsPartisan>false</IsPartisan>
<Name>
<Text language="en">Governor</Text>
</Name>
<Term>
<Type>full-term</Type>
</Term>
</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 |
---|---|---|---|---|---|
ContactInformation | single-xml-contact-information | Optional | Repeats | Links to the single-xml-contact-information element associated with the office. | If the element is invalid or not present, then the implementation is required to ignore it. |
Description | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | Links to the ElectoralDistrict element associated with the office. | If the field is invalid or not present,
the implementation is required to ignore
the Office element containing it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
FilingDeadline | 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. |
IsPartisan | 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 | InternationalizedText | 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. |
OfficeHolderPersonIds | 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-xml-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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Type | OfficeTermType | Optional | Single | Specifies the type of office term (see OfficeTermType for valid values). | If the field is invalid or not present,
the implementation is required to ignore
the Office element containing it. |
StartDate | 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. |
EndDate | 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. |
1 2 3 4 5 6 7 8 9 10 11 | <Office id="off0000">
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<FilingDeadline>2013-01-01</FilingDeadline>
<IsPartisan>false</IsPartisan>
<Name>
<Text language="en">Governor</Text>
</Name>
<Term>
<Type>full-term</Type>
</Term>
</Office>
|
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | single-xml-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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
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. |
ElectionType | InternationalizedText | 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. |
StateId | 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. |
IsStatewide | 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 | InternationalizedText | 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. |
RegistrationInfo | InternationalizedText | 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. |
AbsenteeBallotInfo | InternationalizedText | 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. |
ResultsUri | 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. |
PollingHours [deprecated] | InternationalizedText | 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 PollingLocation object (NB: this element is deprecated in favor of the more structured :ref:`single-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References the HoursOpen 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. |
HasElectionDayRegistration | 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. |
RegistrationDeadline | 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. |
AbsenteeRequestDeadline | 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 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <Election id="ele30000">
<AbsenteeRequestDeadline>2013-10-30</AbsenteeRequestDeadline>
<Date>2013-11-05</Date>
<ElectionType>
<Text language="en">General</Text>
<Text language="es">Generales</Text>
</ElectionType>
<HasElectionDayRegistration>false</HasElectionDayRegistration>
<HoursOpenId>hours0001</HoursOpenId>
<IsStatewide>true</IsStatewide>
<Name>
<Text language="en">2013 Statewide General</Text>
</Name>
<RegistrationDeadline>2013-10-15</RegistrationDeadline>
<ResultsUri>http://www.sbe.virginia.gov/ElectionResults.html</ResultsUri>
<StateId>st51</StateId>
</Election>
|
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
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. |
VipId | 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. |
DateTime | 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 | InternationalizedText | 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. |
OrganizationUri | 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. |
FeedContactInformation | single-xml-contact-information | 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. |
TouUri | 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 3 4 5 6 7 8 9 10 | <Source id="src1">
<DateTime>2013-10-24T14:25:28</DateTime>
<Description>
<Text language="en">SBE is the official source for Virginia data</Text>
</Description>
<Name>State Board of Elections, Commonwealth of Virginia</Name>
<OrganizationUri>http://www.sbe.virginia.gov/</OrganizationUri>
<VipId>51</VipId>
<Version>5.0</Version>
</Source>
|
The BallotMeasureContest provides information about a ballot measure before the voters, including summary statements on each side. Extends single-xml-contest-base.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ConStatement | InternationalizedText | 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. |
EffectOfAbstain | InternationalizedText | 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. |
FullText | InternationalizedText | 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. |
InfoUri | 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. |
PassageThreshold | InternationalizedText | 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. |
ProStatement | InternationalizedText | 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. |
SummaryText | InternationalizedText | 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 | BallotMeasureType | Optional | Single | Specifies the particular type of ballot measure. Must be one of the valid BallotMeasureType options. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | xs:string |
Optional | Single | Allows for cataloging a new BallotMeasureType 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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <BallotMeasureContest id="bmc30001">
<BallotSelectionIds>bms30001a bms30001b</BallotSelectionIds>
<BallotTitle>
<Text language="en">State of the State</Text>
<Text language="es">Estado del Estado.</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Referendum on Virginia</Name>
<ConStatement label="bmc30001con">
<Text language="en">This is no good.</Text>
<Text language="es">Esto no es bueno.</Text>
</ConStatement>
<EffectOfAbstain label="bmc30001abs">
<Text language="en">Nothing will happen.</Text>
<Text language="es">Nada pasará.</Text>
</EffectOfAbstain>
<ProStatement label="bmc30001pro">
<Text language="en">Everything will be great.</Text>
<Text language="es">Todo va a estar bien.</Text>
</ProStatement>
<Type>referendum</Type>
</BallotMeasureContest>
|
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends single-xml-ballot-selection-base. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends single-xml-ballot-selection-base. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
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>
|
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>
|
A container for the contests/measures on the ballot.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ImageUri | 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. |
OrderedContestIds | xs:IDREFS |
Optional | Single | Reference to a set of OrderedContest | If the field is invalid or not present, then the implementation is required to ignore it. |
PartyIds | xs:IDREFS |
Optional | Single | Reference to a set of :ref:`single-xml-party`s. | If the field is invalid or not present, then the implementation is required to ignore it. |
1 2 3 | <BallotStyle id="bs00000">
<OrderedContestIds>oc20003 oc20004 oc20005 oc20025 oc20355 oc20449</OrderedContestIds>
</BallotStyle>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Type | IdentifierType | Required | Single | Specifies the type of identifier. Must be one of the valid types as defined by IdentifierType. | If the field is invalid or not present,
the implementation is required to ignore
the ElectionIdentifier containing
it. |
OtherType | xs:string |
Optional | Single | Allows for cataloging an
ExternalIdentifier type that falls
outside the options listed in
IdentifierType.
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. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:nc/county:durham</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>FIPS</Type>
<Value>37063</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>OTHER</Type>
<OtherType>GNIS</OtherType>
<Value>1008550</Value>
</ExternalIdentifier>
<external_identifer>
<Type>OTHER</Type>
<OtherType>census</OtherType>
<Value>99063</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
|
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 |
---|---|---|---|---|---|
ContactInformation | single-xml-contact-information | Optional | Repeats | Refers to the associated single-xml-contact-information. | If the element is invalid or not present, then the implementation is required to ignore it. |
DateOfBirth | 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. |
ExternalIdentifiers | ExternalIdentifiers | Optional | Single | Identifiers for this person. | If the element is invalid or not present, then the implementation is required to ignore it. |
FirstName | 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. |
FullName | InternationalizedText | Optional | Single | Specifies a person’s full name (NB: this information is InternationalizedText 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. |
LastName | 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. |
MiddleName | 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. |
PartyId | 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 | InternationalizedText | Optional | Single | Specifies a person’s profession (NB: this information is InternationalizedText 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 | InternationalizedText | Optional | Single | A title associated with a person (NB: this information is InternationalizedText 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 6 7 8 9 10 11 12 13 | <Person id="per50001">
<ContactInformation label="ci60002">
<Email>rwashburne@albemarle.org</Email>
<Phone>4349724173</Phone>
</ContactInformation>
<FirstName>RICHARD</FirstName>
<LastName>WASHBURNE</LastName>
<MiddleName>J.</MiddleName>
<Nickname>JAKE</Nickname>
<Title>
<Text language="en">General Registrar Physical</Text>
</Title>
</Person>
|
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | single-xml-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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
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:
- Candidate
- Any element that extends single-xml-contest-base
- ElectoralDistrict
- Locality
- Office
- Party
- Precinct
- State
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ExternalIdentifier | ExternalIdentifier | 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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | single-xml-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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
CandidateSelection extends single-xml-ballot-selection-base and represents a ballot selection for a candidate contest.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
CandidateIds | 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. |
EndorsementPartyIds | 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. |
IsWriteIn | 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 | <CandidateSelection id="cs10861">
<CandidateIds>can10861a can10861b</CandidateIds>
<EndorsementPartyIds>par0001</EndorsementPartyIds>
</CandidateSelection>
|
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
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. |
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. |
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 |
---|---|---|---|---|---|
BallotName | InternationalizedText | 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. |
ContactInformation | single-xml-contact-information | Optional | Single | Contact and physical address information for this Candidate and/or their campaign (see single-xml-contact-information). | If the element is invalid or not present, then the implementation is required to ignore it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
FileDate | 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. |
IsIncumbent | 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. |
IsTopTicket | 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. |
PartyId | 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. |
PersonId | 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. |
PostElectionStatus | CandidatePostElectionStatus | 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. |
PreElectionStatus | CandidatePreElectionStatus | 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 6 7 | <Candidate id="can10961">
<BallotName>
<Text language="en">Ken T. Cuccinelli II</Text>
</BallotName>
<PartyId>par0001</PartyId>
<PersonId>per10961</PersonId>
</Candidate>
|
The PollingLocation object represents a site where voters cast or drop off ballots.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
AddressStructured | single-xml-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. |
AddressLine | 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 | InternationalizedText | 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 [deprecated] | InternationalizedText | 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 HoursOpen 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. |
HoursOpenId | xs:IDREF |
Optional | Single | Links to an HoursOpen 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. |
IsDropBox | 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. |
IsEarlyVoting | 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. |
LatLng | single-xml-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. |
PhotoUri | xs:anyURI |
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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <PollingLocation id="pl00000">
<AddressLine>2775 Hydraulic Rd Charlottesville, VA 22901</AddressLine>
<HoursOpenId>hours0002</HoursOpenId>
<IsDropBox>true</IsDropBox>
<IsEarlyVoting>true</IsEarlyVoting>
<LatLng>
<Latitude>38.009939</Latitude>
<Longitude>-78.506204</Longitude>
</LatLng>
<Name>ALBERMARLE HIGH SCHOOL</Name>
</PollingLocation>
<!-- Or: -->
<PollingLocation id="pl00000">
<AddressStructured>
<Line1>2775 Hydraulic Rd</Line1>
<City>CHARLOTTESVILLE</City>
<State>VA</State>
<Zip>22901</Zip>
</AddressStructured>
<HoursOpenId>hours0002</HoursOpenId>
<IsDropBox>true</IsDropBox>
<IsEarlyVoting>true</IsEarlyVoting>
<LatLng>
<Latitude>38.009939</Latitude>
<Longitude>-78.506204</Longitude>
</LatLng>
<Name>ALBERMARLE HIGH SCHOOL</Name>
</PollingLocation>
|
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. |
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. |
A SimpleAddressType
represents a structured address.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Line1 | 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 . |
Line2 | xs:string |
Optional | Single | Additional field for an address | If no Line2 is provided, the
implementation should ignore it. |
Line3 | xs:string |
Optional | Single | Additional field for an address | If no Line3 is provided, the
implementation should ignore it. |
City | xs:string |
Required | Single | The City value of a structured address. | If City is not provided, the
implementation should ignore the
SimpleAddressType . |
State | xs:string |
Required | Single | The State value of a structured address. | If State is not provided, the
implementation should ignore the
SimpleAddressType . |
Zip | xs:string |
Optional | Single | The ZIP code of a structured address. | If Zip is not provided, the
implementation should ignore the
SimpleAddressType . |
The Locality object represents the jurisdiction below the State (e.g. county).
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ElectionAdministrationId | xs:IDREF |
Optional | Single | Links to the locality’s ElectionAdministration object. | If the field is invalid or not present, then the implementation is required to ignore it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsMailOnly | 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. |
PollingLocationIds | xs:IDREFS |
Optional | Single | Specifies a link to a set of the locality’s :ref:`polling locations <single-xml-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. |
StateId | 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 | DistrictType | 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. |
OtherType | 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 4 5 6 7 8 9 10 11 12 13 | <Locality id="loc70001">
<ElectionAdministrationId>ea40001</ElectionAdministrationId>
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va/county:albemarle</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<IsMailOnly>true</IsMailOnly>
<Name>ALBEMARLE COUNTY</Name>
<StateId>st51</StateId>
<Type>county</Type>
</Locality>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-contact-information | Optional | Single | Contact and physical address information for the election administration body (see single-xml-contact-information). | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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. |
VoterService | single-xml-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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | single-xml-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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
1 2 3 4 5 6 7 | <Party id="par0001">
<Abbreviation>REP</Abbreviation>
<Color>e91d0e</Color>
<Name>
<Text language="en">Republican</Text>
</Name>
</Party>
|
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-xml-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. |
IsOnlyByAppointment | 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. |
IsOrByAppointment | 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. |
IsSubjectToChange | 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. |
StartDate | 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. |
EndDate | 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. |
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 |
---|---|---|---|---|---|
StartTime | single-xml-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. |
EndTime | single-xml-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. |
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>
|
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 |
---|---|---|---|---|---|
BallotStyleId | xs:IDREF |
Optional | Single | Links to the BallotStyle, 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. |
ElectoralDistrictIds | xs:IDREFS |
Optional | Single | Links to the :ref:`single-xml-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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsMailOnly | 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. |
LocalityId | 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. |
PollingLocationIds | xs:IDREFS |
Optional | Single | Specifies a link to the precinct’s PollingLocation object(s). | If the field is invalid or not present, then the implementation is required to ignore it. |
PrecinctSplitName | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <Precinct id="pre90111">
<BallotStyleId>bs00010</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60311 ed60054</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>203 - GEORGETOWN</Name>
<Number>0203</Number>
<PollingLocationIds>pl81274</PollingLocationIds>
</Precinct>
<!--
Precinct split. Name and PollingLocationIds are the same but
PrecinctSplitName is present, the ElectoralDistrictIds are different,
and the BallotStyleId is different.
-->
<Precinct id="pre90348sp0000">
<BallotStyleId>bs00002</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60054 ed60150</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>201 - JACK JOUETT</Name>
<Number>0201</Number>
<PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
<PrecinctSplitName>0000</PrecinctSplitName>
</Precinct>
<Precinct id="pre90348sp0001">
<BallotStyleId>bs00015</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60054 ed60267</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>201 - JACK JOUETT</Name>
<Number>0201</Number>
<PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
<PrecinctSplitName>0001</PrecinctSplitName>
</Precinct>
|
OrderedContest
encapsulates links to the information that comprises a contest and potential
ballot selections. OrderedContest
elements can be collected within a
BallotStyle to accurate depict exactly what will show up on a particular
ballot in the proper order.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContestId | xs:IDREF |
Required | Single | Links to elements that extend single-xml-contest-base. | If the field is invalid or not present, the
implementation is required to ignore the
OrderedContest element containing it. |
OrderedBallotSelectionIds | xs:IDREFS |
Optional | Single | Links to elements that extend single-xml-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-xml-ballot-selection-base-extended
elements referenced by the underlying
single-xml-contest-base-extended
elements. |
1 2 3 4 | <OrderedContest id="oc20003abc">
<ContestId>cc20003</ContestId>
<OrderedBallotSelectionIds>cs10961 cs10962 cs10963</OrderedBallotSelectionIds>
</OrderedContest>
|
An extension of single-xml-contest-base which describes a contest in which the possible ballot selections are of type PartySelection. 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).
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends single-xml-ballot-selection-base. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
The Election Administration represents an institution for serving a locality’s (or state’s) election functions.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
AbsenteeUri | 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. |
AmIRegisteredUri | 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. |
BallotTrackingUri | 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. |
BallotProvisionalTrackingUri | 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-xml-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. |
ElectionNotice | single-xml-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. |
ElectionsUri | 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. |
RegistrationUri | 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. |
RulesUri | 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. |
WhatIsOnMyBallotUri | 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. |
WhereDoIVoteUri | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <ElectionAdministration id="ea40133">
<AbsenteeUri>http://www.sbe.virginia.gov/absenteevoting.html</AbsenteeUri>
<AmIRegisteredUri>https://www.vote.virginia.gov/</AmIRegisteredUri>
<BallotTrackingUri>https://www.vote.virginia.gov/</BallotTrackingUri>
<BallotProvisionalTrackingUri>https://www.vote.virginia.gov/</BallotProvisionalTrackingUri>
<Department>
<ContactInformation label="ci60000">
<AddressLine>Washington Building First Floor</AddressLine>
<AddressLine>1100 Bank Street</AddressLine>
<AddressLine>Richmond, VA 23219</AddressLine>
<Name>State Board of Elections</Name>
</ContactInformation>
</Department>
<ElectionNotice>
<NoticeText>
<Text language="en">This is an emergency notification for this election.</Text>
</NoticeText>
<NoticeURI>https://www.yadayada.gov</NoticeURI>
</ElectionNotice>
<ElectionsUri>http://www.sbe.virginia.gov/</ElectionsUri>
<RegistrationUri>https://www.vote.virginia.gov/</RegistrationUri>
<RulesUri>http://www.sbe.virginia.gov/</RulesUri>
<WhatIsOnMyBallotUri>https://www.vote.virginia.gov/</WhatIsOnMyBallotUri>
<WhereDoIVoteUri>https://www.vote.virginia.gov/</WhereDoIVoteUri>
</ElectionAdministration>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-contact-information | Optional | Single | Contact and physical address information for the election administration body (see single-xml-contact-information). | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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. |
VoterService | single-xml-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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | single-xml-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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
NoticeText | InternationalizedText | 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. |
NoticeUri | xs:anyURI |
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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | single-xml-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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
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 |
---|---|---|---|---|---|
StartTime | single-xml-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. |
EndTime | single-xml-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. |
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>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
NoticeText | InternationalizedText | 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. |
NoticeUri | xs:anyURI |
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. |
RetentionContest
extends BallotMeasureContest and represents a
contest where a candidate is retained in a position (e.g. a judge).
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
CandidateId | 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. |
OfficeId | 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. |
1 2 3 4 5 6 7 8 9 10 11 | <RetentionContest id="rc40001">
<BallotSelectionIds>rc40001a rc40001b</BallotSelectionIds>
<BallotTitle>
<Text language="en">Retention of Supreme Court Justice</Text>
<Text language="es">La retención de juez de la Corte Suprema</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Judicial Retention, Supreme Court</Name>
<CandidateId>can14444</CandidateId>
<OfficeId>off20006</OfficeId>
</RetentionContest>
|
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 |
---|---|---|---|---|---|
AddressDirection | 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. |
IncludesAllAddresses | 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. |
IncludesAllStreets | 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. |
OddEvenBoth | OebEnum | 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. |
PrecinctId | 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. |
StartHouseNumber | 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. |
EndHouseNumber | 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. |
HouseNumberPrefix | 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. |
HouseNumberSuffix | 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. |
StreetDirection | 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. |
StreetName | 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. |
StreetSuffix | 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. |
UnitNumber | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <StreetSegment id="ss999999">
<City>Charlottesville</City>
<IncludesAllAddresses>true</IncludesAllAddresses>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre99999</PrecinctId>
<State>VA</State>
<StreetName>CHAPEL HILL</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22901</Zip>
</StreetSegment>
<StreetSegment id="ss309904">
<City>GREENWOOD</City>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre92145</PrecinctId>
<StartHouseNumber>1</StartHouseNumber>
<EndHouseNumber>201</EndHouseNumber>
<State>VA</State>
<StreetName>MISTY MOUNTAIN</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22943</Zip>
</StreetSegment>
<StreetSegment id = "ss1"
<City>GREENWOOD</City>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre92145</PrecinctId>
<StartHouseNumber>1</StartHouseNumber>
<EndHouseNumber>1</EndHouseNumber>
<HouseNumberPrefix>B</HouseNumberPrefix>
<HouseNumberSuffix>1/2</HouseNumberSuffix>
<State>VA</State>
<StreetName>MISTY MOUNTAIN</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22943</Zip>
</StreetSegment>
|
CandidateContest extends single-xml-contest-base and represents a contest among candidates.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
NumberElected | 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. |
OfficeIds | 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 CandidateSelection 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. |
PrimaryPartyIds | 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. |
VotesAllowed | 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 4 5 6 7 8 9 10 11 | <CandidateContest id="cc20003">
<BallotSelectionIds>cs10961 cs10962 cs10963</BallotSelectionIds>
<BallotTitle>
<Text language="en">Governor of Virginia</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Governor</Name>
<NumberElected>1</NumberElected>
<OfficeId>off0000</OfficeId>
<VotesAllowed>1</VotesAllowed>
</CandidateContest>
|
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends single-xml-ballot-selection-base. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
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 CandidateContest 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-xml-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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsWriteIn | 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. |
LogoUri | 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 | InternationalizedText | Optional | Single | The name of the party. | If the element is invalid or not present, then the implementation is required to ignore it. |
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
1 2 3 4 5 6 7 | <Party id="par0001">
<Abbreviation>REP</Abbreviation>
<Color>e91d0e</Color>
<Name>
<Text language="en">Republican</Text>
</Name>
</Party>
|
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-xml-contest-base
* Any element that extends single-xml-ballot-selection-base
* Candidate
* single-xml-contact-information
* Election
* ElectionAdministration
* Office
* Party
* Person
* PollingLocation
* Source
NOTE: Internationalized Text is not currently supported for CSV submissions. “
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Text | LanguageString | 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. |
Represents the possible selection (e.g. yes/no, recall/do not recall, et al) for a BallotMeasureContest that would appear on the ballot. BallotMeasureSelection extends single-xml-ballot-selection-base.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Selection | InternationalizedText | Required | Single | Selection text for a BallotMeasureContest | If the element is invalid or not present, the implementation is required to ignore the BallotMeasureSelection containing it. |
1 2 3 4 5 6 7 8 9 10 11 12 | <BallotMeasureSelection id="bms30001a">
<Selection label="bms30001at">
<Text language="en">Yes</Text>
<Text language="es">Sí</Text>
</Selection>
</BallotMeasureSelection>
<BallotMeasureSelection id="bms30001b">
<Selection label="bms30001bt">
<Text language="en">No</Text>
<Text language="es">No</Text>
</Selection>
</BallotMeasureSelection>
|
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
A structured way of describing the days and hours that a place such as a Office or PollingLocation 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-xml-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. |
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-xml-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. |
IsOnlyByAppointment | 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. |
IsOrByAppointment | 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. |
IsSubjectToChange | 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. |
StartDate | 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. |
EndDate | 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. |
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 |
---|---|---|---|---|---|
StartTime | single-xml-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. |
EndTime | single-xml-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. |
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>
|
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 |
---|---|---|---|---|---|
ExternalIdentifiers | ExternalIdentifiers | 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 | DistrictType | 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. |
OtherType | xs:string |
Optional | Single | Allows for cataloging a new
DistrictType 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 4 5 6 7 8 9 10 11 12 13 14 | <ElectoralDistrict id="ed60129">
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>fips</Type>
<Value>51</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<Name>Commonwealth of Virginia</Name>
<Type>state</Type>
</ElectoralDistrict>
|
This element extends single-xml-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 |
---|---|---|---|---|---|
PartyIds | 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. |
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
A SimpleAddressType
represents a structured address.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Line1 | 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 . |
Line2 | xs:string |
Optional | Single | Additional field for an address | If no Line2 is provided, the
implementation should ignore it. |
Line3 | xs:string |
Optional | Single | Additional field for an address | If no Line3 is provided, the
implementation should ignore it. |
City | xs:string |
Required | Single | The City value of a structured address. | If City is not provided, the
implementation should ignore the
SimpleAddressType . |
State | xs:string |
Required | Single | The State value of a structured address. | If State is not provided, the
implementation should ignore the
SimpleAddressType . |
Zip | xs:string |
Optional | Single | The ZIP code of a structured address. | If Zip is not provided, the
implementation should ignore the
SimpleAddressType . |
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. |
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. |
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 |
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. |
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. |
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. |
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. |
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. |
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. |
Elements (Separate Pages)¶
BallotMeasureContest¶
The BallotMeasureContest provides information about a ballot measure before the voters, including summary statements on each side. Extends ContestBase.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ConStatement | InternationalizedText | 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. |
EffectOfAbstain | InternationalizedText | 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. |
FullText | InternationalizedText | 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. |
InfoUri | 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. |
PassageThreshold | InternationalizedText | 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. |
ProStatement | InternationalizedText | 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. |
SummaryText | InternationalizedText | 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 | BallotMeasureType | Optional | Single | Specifies the particular type of ballot measure. Must be one of the valid BallotMeasureType options. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | xs:string |
Optional | Single | Allows for cataloging a new BallotMeasureType 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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <BallotMeasureContest id="bmc30001">
<BallotSelectionIds>bms30001a bms30001b</BallotSelectionIds>
<BallotTitle>
<Text language="en">State of the State</Text>
<Text language="es">Estado del Estado.</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Referendum on Virginia</Name>
<ConStatement label="bmc30001con">
<Text language="en">This is no good.</Text>
<Text language="es">Esto no es bueno.</Text>
</ConStatement>
<EffectOfAbstain label="bmc30001abs">
<Text language="en">Nothing will happen.</Text>
<Text language="es">Nada pasará.</Text>
</EffectOfAbstain>
<ProStatement label="bmc30001pro">
<Text language="en">Everything will be great.</Text>
<Text language="es">Todo va a estar bien.</Text>
</ProStatement>
<Type>referendum</Type>
</BallotMeasureContest>
|
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends BallotSelectionBase. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
BallotMeasureSelection¶
Represents the possible selection (e.g. yes/no, recall/do not recall, et al) for a BallotMeasureContest that would appear on the ballot. BallotMeasureSelection extends BallotSelectionBase.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Selection | InternationalizedText | Required | Single | Selection text for a BallotMeasureContest | If the element is invalid or not present, the implementation is required to ignore the BallotMeasureSelection containing it. |
1 2 3 4 5 6 7 8 9 10 11 12 | <BallotMeasureSelection id="bms30001a">
<Selection label="bms30001at">
<Text language="en">Yes</Text>
<Text language="es">Sí</Text>
</Selection>
</BallotMeasureSelection>
<BallotMeasureSelection id="bms30001b">
<Selection label="bms30001bt">
<Text language="en">No</Text>
<Text language="es">No</Text>
</Selection>
</BallotMeasureSelection>
|
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
BallotStyle¶
A container for the contests/measures on the ballot.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ImageUri | 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. |
OrderedContestIds | xs:IDREFS |
Optional | Single | Reference to a set of OrderedContest | If the field is invalid or not present, then the implementation is required to ignore it. |
PartyIds | xs:IDREFS |
Optional | Single | Reference to a set of :ref:`multi-xml-party`s. | If the field is invalid or not present, then the implementation is required to ignore it. |
1 2 3 | <BallotStyle id="bs00000">
<OrderedContestIds>oc20003 oc20004 oc20005 oc20025 oc20355 oc20449</OrderedContestIds>
</BallotStyle>
|
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 |
---|---|---|---|---|---|
BallotName | InternationalizedText | 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. |
ContactInformation | ContactInformation | Optional | Single | Contact and physical address information for this Candidate and/or their campaign (see ContactInformation). | If the element is invalid or not present, then the implementation is required to ignore it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
FileDate | 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. |
IsIncumbent | 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. |
IsTopTicket | 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. |
PartyId | 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. |
PersonId | 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. |
PostElectionStatus | CandidatePostElectionStatus | 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. |
PreElectionStatus | CandidatePreElectionStatus | 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 6 7 | <Candidate id="can10961">
<BallotName>
<Text language="en">Ken T. Cuccinelli II</Text>
</BallotName>
<PartyId>par0001</PartyId>
<PersonId>per10961</PersonId>
</Candidate>
|
CandidateContest¶
CandidateContest extends ContestBase and represents a contest among candidates.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
NumberElected | 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. |
OfficeIds | 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 CandidateSelection 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. |
PrimaryPartyIds | 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. |
VotesAllowed | 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 4 5 6 7 8 9 10 11 | <CandidateContest id="cc20003">
<BallotSelectionIds>cs10961 cs10962 cs10963</BallotSelectionIds>
<BallotTitle>
<Text language="en">Governor of Virginia</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Governor</Name>
<NumberElected>1</NumberElected>
<OfficeId>off0000</OfficeId>
<VotesAllowed>1</VotesAllowed>
</CandidateContest>
|
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends BallotSelectionBase. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
CandidateSelection¶
CandidateSelection extends BallotSelectionBase and represents a ballot selection for a candidate contest.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
CandidateIds | 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. |
EndorsementPartyIds | 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. |
IsWriteIn | 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 | <CandidateSelection id="cs10861">
<CandidateIds>can10861a can10861b</CandidateIds>
<EndorsementPartyIds>par0001</EndorsementPartyIds>
</CandidateSelection>
|
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore it. |
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. |
ElectionType | InternationalizedText | 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. |
StateId | 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. |
IsStatewide | 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 | InternationalizedText | 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. |
RegistrationInfo | InternationalizedText | 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. |
AbsenteeBallotInfo | InternationalizedText | 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. |
ResultsUri | 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. |
PollingHours [deprecated] | InternationalizedText | 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 PollingLocation object (NB: this element is deprecated in favor of the more structured :ref:`multi-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References the HoursOpen 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. |
HasElectionDayRegistration | 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. |
RegistrationDeadline | 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. |
AbsenteeRequestDeadline | 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 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <Election id="ele30000">
<AbsenteeRequestDeadline>2013-10-30</AbsenteeRequestDeadline>
<Date>2013-11-05</Date>
<ElectionType>
<Text language="en">General</Text>
<Text language="es">Generales</Text>
</ElectionType>
<HasElectionDayRegistration>false</HasElectionDayRegistration>
<HoursOpenId>hours0001</HoursOpenId>
<IsStatewide>true</IsStatewide>
<Name>
<Text language="en">2013 Statewide General</Text>
</Name>
<RegistrationDeadline>2013-10-15</RegistrationDeadline>
<ResultsUri>http://www.sbe.virginia.gov/ElectionResults.html</ResultsUri>
<StateId>st51</StateId>
</Election>
|
ElectionAdministration¶
The Election Administration represents an institution for serving a locality’s (or state’s) election functions.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
AbsenteeUri | 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. |
AmIRegisteredUri | 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. |
BallotTrackingUri | 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. |
BallotProvisionalTrackingUri | 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 | 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. |
ElectionNotice | ElectionNotice | 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. |
ElectionsUri | 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. |
RegistrationUri | 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. |
RulesUri | 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. |
WhatIsOnMyBallotUri | 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. |
WhereDoIVoteUri | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <ElectionAdministration id="ea40133">
<AbsenteeUri>http://www.sbe.virginia.gov/absenteevoting.html</AbsenteeUri>
<AmIRegisteredUri>https://www.vote.virginia.gov/</AmIRegisteredUri>
<BallotTrackingUri>https://www.vote.virginia.gov/</BallotTrackingUri>
<BallotProvisionalTrackingUri>https://www.vote.virginia.gov/</BallotProvisionalTrackingUri>
<Department>
<ContactInformation label="ci60000">
<AddressLine>Washington Building First Floor</AddressLine>
<AddressLine>1100 Bank Street</AddressLine>
<AddressLine>Richmond, VA 23219</AddressLine>
<Name>State Board of Elections</Name>
</ContactInformation>
</Department>
<ElectionNotice>
<NoticeText>
<Text language="en">This is an emergency notification for this election.</Text>
</NoticeText>
<NoticeURI>https://www.yadayada.gov</NoticeURI>
</ElectionNotice>
<ElectionsUri>http://www.sbe.virginia.gov/</ElectionsUri>
<RegistrationUri>https://www.vote.virginia.gov/</RegistrationUri>
<RulesUri>http://www.sbe.virginia.gov/</RulesUri>
<WhatIsOnMyBallotUri>https://www.vote.virginia.gov/</WhatIsOnMyBallotUri>
<WhereDoIVoteUri>https://www.vote.virginia.gov/</WhereDoIVoteUri>
</ElectionAdministration>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | ContactInformation | Optional | Single | Contact and physical address information for the election administration body (see ContactInformation). | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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. |
VoterService | multi-xml-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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | ContactInformation | 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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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:`multi-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | LatLng | 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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
NoticeText | InternationalizedText | 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. |
NoticeUri | xs:anyURI |
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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContactInformation | ContactInformation | 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 | InternationalizedText | Optional | Single | Long description of the services available. | If the element is invalid or not present, then the implementation is required to ignore it. |
ElectionOfficialPersonId | 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 | VoterServiceType | Optional | Single | The type of voter service. | If the field is invalid or not present, then the implementation is required to ignore it. |
OtherType | 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. |
ElectoralDistrict¶
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 |
---|---|---|---|---|---|
ExternalIdentifiers | ExternalIdentifiers | 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 | DistrictType | 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. |
OtherType | xs:string |
Optional | Single | Allows for cataloging a new
DistrictType 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 4 5 6 7 8 9 10 11 12 13 14 | <ElectoralDistrict id="ed60129">
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>fips</Type>
<Value>51</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<Name>Commonwealth of Virginia</Name>
<Type>state</Type>
</ElectoralDistrict>
|
ExternalIdentifier¶
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Type | IdentifierType | Required | Single | Specifies the type of identifier. Must be one of the valid types as defined by IdentifierType. | If the field is invalid or not present,
the implementation is required to ignore
the ElectionIdentifier containing
it. |
OtherType | xs:string |
Optional | Single | Allows for cataloging an
ExternalIdentifier type that falls
outside the options listed in
IdentifierType.
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. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:nc/county:durham</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>FIPS</Type>
<Value>37063</Value>
</ExternalIdentifier>
<ExternalIdentifier>
<Type>OTHER</Type>
<OtherType>GNIS</OtherType>
<Value>1008550</Value>
</ExternalIdentifier>
<external_identifer>
<Type>OTHER</Type>
<OtherType>census</OtherType>
<Value>99063</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
|
ExternalIdentifiers¶
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:
- Candidate
- Any element that extends ContestBase
- ElectoralDistrict
- Locality
- Office
- Party
- Precinct
- State
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ExternalIdentifier | ExternalIdentifier | 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. |
HoursOpen¶
A structured way of describing the days and hours that a place such as a Office or PollingLocation 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 | 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. |
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 | 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. |
IsOnlyByAppointment | 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. |
IsOrByAppointment | 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. |
IsSubjectToChange | 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. |
StartDate | 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. |
EndDate | 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. |
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 |
---|---|---|---|---|---|
StartTime | TimeWithZone | 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. |
EndTime | TimeWithZone | 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. |
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>
|
InternationalizedText¶
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 ContestBase
- Any element that extends BallotSelectionBase
- Candidate
- ContactInformation
- Election
- ElectionAdministration
- Office
- Party
- Person
- PollingLocation
- Source
NOTE: Internationalized Text is not currently supported for CSV submissions. “
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Text | LanguageString | 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. |
LanguageString¶
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>
|
Locality¶
The Locality object represents the jurisdiction below the State (e.g. county).
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ElectionAdministrationId | xs:IDREF |
Optional | Single | Links to the locality’s ElectionAdministration object. | If the field is invalid or not present, then the implementation is required to ignore it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsMailOnly | 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. |
PollingLocationIds | xs:IDREFS |
Optional | Single | Specifies a link to a set of the locality’s :ref:`polling locations <multi-xml-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. |
StateId | 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 | DistrictType | 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. |
OtherType | 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 4 5 6 7 8 9 10 11 12 13 | <Locality id="loc70001">
<ElectionAdministrationId>ea40001</ElectionAdministrationId>
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va/county:albemarle</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<IsMailOnly>true</IsMailOnly>
<Name>ALBEMARLE COUNTY</Name>
<StateId>st51</StateId>
<Type>county</Type>
</Locality>
|
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 |
---|---|---|---|---|---|
ContactInformation | ContactInformation | Optional | Repeats | Links to the ContactInformation element associated with the office. | If the element is invalid or not present, then the implementation is required to ignore it. |
Description | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | Links to the ElectoralDistrict element associated with the office. | If the field is invalid or not present,
the implementation is required to ignore
the Office element containing it. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
FilingDeadline | 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. |
IsPartisan | 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 | InternationalizedText | 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. |
OfficeHolderPersonIds | 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 | 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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Type | OfficeTermType | Optional | Single | Specifies the type of office term (see OfficeTermType for valid values). | If the field is invalid or not present,
the implementation is required to ignore
the Office element containing it. |
StartDate | 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. |
EndDate | 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. |
1 2 3 4 5 6 7 8 9 10 11 | <Office id="off0000">
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<FilingDeadline>2013-01-01</FilingDeadline>
<IsPartisan>false</IsPartisan>
<Name>
<Text language="en">Governor</Text>
</Name>
<Term>
<Type>full-term</Type>
</Term>
</Office>
|
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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:`multi-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | LatLng | 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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
OrderedContest¶
OrderedContest
encapsulates links to the information that comprises a contest and potential
ballot selections. OrderedContest
elements can be collected within a
BallotStyle to accurate depict exactly what will show up on a particular
ballot in the proper order.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
ContestId | xs:IDREF |
Required | Single | Links to elements that extend ContestBase. | If the field is invalid or not present, the
implementation is required to ignore the
OrderedContest element containing it. |
OrderedBallotSelectionIds | xs:IDREFS |
Optional | Single | Links to elements that extend BallotSelectionBase. | 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
BallotSelectionBase-extended
elements referenced by the underlying
ContestBase-extended
elements. |
1 2 3 4 | <OrderedContest id="oc20003abc">
<ContestId>cc20003</ContestId>
<OrderedBallotSelectionIds>cs10961 cs10962 cs10963</OrderedBallotSelectionIds>
</OrderedContest>
|
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 CandidateContest 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 | HtmlColorString | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsWriteIn | 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. |
LogoUri | 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 | InternationalizedText | Optional | Single | The name of the party. | If the element is invalid or not present, then the implementation is required to ignore it. |
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
1 2 3 4 5 6 7 | <Party id="par0001">
<Abbreviation>REP</Abbreviation>
<Color>e91d0e</Color>
<Name>
<Text language="en">Republican</Text>
</Name>
</Party>
|
PartyContest¶
An extension of ContestBase which describes a contest in which the possible ballot selections are of type PartySelection. 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).
A base model for all Contest types: BallotMeasureContest, CandidateContest, PartyContest, and RetentionContest (NB: the latter because it extends BallotMeasureContest).
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. |
BallotSelectionIds | xs:IDREFS |
Optional | Single | References a set of BallotSelections, which could be of any selection type that extends BallotSelectionBase. | If the field is invalid or not present, then the implementation should ignore it. |
BallotSubTitle | InternationalizedText | 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. |
BallotTitle | InternationalizedText | 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. |
ElectoralDistrictId | xs:IDREF |
Required | Single | References an ElectoralDistrict element that represents the geographical scope of the contest. | If the field is invalid, then the implementation should ignore it. |
ElectorateSpecification | InternationalizedText | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
HasRotation | 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. |
SequenceOrder | 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 BallotStyle element. | If the field is invalid or not present, then the implementation should ignore it. |
VoteVariation | VoteVariation | 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. |
OtherVoteVariation | xs:string |
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. |
PartySelection¶
This element extends BallotSelectionBase to support contests in which the selections can be groups of one or more parties.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
PartyIds | 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. |
A base model for all ballot selection types: BallotMeasureSelection, CandidateSelection, and PartySelection.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
SequenceOrder | 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 OrderedContest. | If the field is invalid or not present, then the implementation is required to ignore 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 |
---|---|---|---|---|---|
ContactInformation | ContactInformation | Optional | Repeats | Refers to the associated ContactInformation. | If the element is invalid or not present, then the implementation is required to ignore it. |
DateOfBirth | 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. |
ExternalIdentifiers | ExternalIdentifiers | Optional | Single | Identifiers for this person. | If the element is invalid or not present, then the implementation is required to ignore it. |
FirstName | 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. |
FullName | InternationalizedText | Optional | Single | Specifies a person’s full name (NB: this information is InternationalizedText 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. |
LastName | 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. |
MiddleName | 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. |
PartyId | 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 | InternationalizedText | Optional | Single | Specifies a person’s profession (NB: this information is InternationalizedText 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 | InternationalizedText | Optional | Single | A title associated with a person (NB: this information is InternationalizedText 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 6 7 8 9 10 11 12 13 | <Person id="per50001">
<ContactInformation label="ci60002">
<Email>rwashburne@albemarle.org</Email>
<Phone>4349724173</Phone>
</ContactInformation>
<FirstName>RICHARD</FirstName>
<LastName>WASHBURNE</LastName>
<MiddleName>J.</MiddleName>
<Nickname>JAKE</Nickname>
<Title>
<Text language="en">General Registrar Physical</Text>
</Title>
</Person>
|
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.
ElectionAdministration, 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 |
---|---|---|---|---|---|
AddressLine | 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 | InternationalizedText | 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. |
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 [deprecated] | InternationalizedText | 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:`multi-xml-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. |
HoursOpenId | xs:IDREF |
Optional | Single | References an HoursOpen 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. |
LatLng | LatLng | 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. |
Name
and AddressLine
Usage Note¶The Name
and AddressLine
fields should be chosen so that a display
or mailing address can be constructed programmatically by joining the
Name
and AddressLine
fields together. For example, for the
following address:
Department of Elections
1 Dr. Carlton B. Goodlett Place, Room 48
San Francisco, CA 94102
The name could be “Department of Elections” and the first address line could be “1 Dr. Carlton B. Goodlett Place, Room 48.”
However, VIP does not yet support the representation of mailing addresses whose “name” portion spans more than one line, for example:
California Secretary of State
Elections Division
1500 11th Street
Sacramento, CA 95814
For addresses like the above, we recommend choosing a name like, “California Secretary of State, Elections Division” with “1500 11th Street” as the first address line. This would result in a programmatically constructed address like the following:
California Secretary of State, Elections Division
1500 11th Street
Sacramento, CA 95814
1 2 3 4 5 6 7 8 | <ContactInformation label="ci10861a">
<AddressLine>1600 Pennsylvania Ave</AddressLine>
<AddressLine>Washington, DC 20006</AddressLine>
<Email>president@whitehouse.gov</Email>
<Phone>202-456-1111</Phone>
<Phone annotation="TDD">202-456-6213</Phone>
<Uri>http://www.whitehouse.gov</Uri>
</ContactInformation>
|
PollingLocation¶
The PollingLocation object represents a site where voters cast or drop off ballots.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
AddressStructured | SimpleAddressType | 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. |
AddressLine | 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 | InternationalizedText | 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 [deprecated] | InternationalizedText | 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 HoursOpen 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. |
HoursOpenId | xs:IDREF |
Optional | Single | Links to an HoursOpen 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. |
IsDropBox | 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. |
IsEarlyVoting | 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. |
LatLng | LatLng | 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. |
PhotoUri | xs:anyURI |
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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <PollingLocation id="pl00000">
<AddressLine>2775 Hydraulic Rd Charlottesville, VA 22901</AddressLine>
<HoursOpenId>hours0002</HoursOpenId>
<IsDropBox>true</IsDropBox>
<IsEarlyVoting>true</IsEarlyVoting>
<LatLng>
<Latitude>38.009939</Latitude>
<Longitude>-78.506204</Longitude>
</LatLng>
<Name>ALBERMARLE HIGH SCHOOL</Name>
</PollingLocation>
<!-- Or: -->
<PollingLocation id="pl00000">
<AddressStructured>
<Line1>2775 Hydraulic Rd</Line1>
<City>CHARLOTTESVILLE</City>
<State>VA</State>
<Zip>22901</Zip>
</AddressStructured>
<HoursOpenId>hours0002</HoursOpenId>
<IsDropBox>true</IsDropBox>
<IsEarlyVoting>true</IsEarlyVoting>
<LatLng>
<Latitude>38.009939</Latitude>
<Longitude>-78.506204</Longitude>
</LatLng>
<Name>ALBERMARLE HIGH SCHOOL</Name>
</PollingLocation>
|
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. |
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. |
A SimpleAddressType
represents a structured address.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
Line1 | 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 . |
Line2 | xs:string |
Optional | Single | Additional field for an address | If no Line2 is provided, the
implementation should ignore it. |
Line3 | xs:string |
Optional | Single | Additional field for an address | If no Line3 is provided, the
implementation should ignore it. |
City | xs:string |
Required | Single | The City value of a structured address. | If City is not provided, the
implementation should ignore the
SimpleAddressType . |
State | xs:string |
Required | Single | The State value of a structured address. | If State is not provided, the
implementation should ignore the
SimpleAddressType . |
Zip | xs:string |
Optional | Single | The ZIP code of a structured address. | If Zip is not provided, the
implementation should ignore the
SimpleAddressType . |
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 |
---|---|---|---|---|---|
BallotStyleId | xs:IDREF |
Optional | Single | Links to the BallotStyle, 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. |
ElectoralDistrictIds | xs:IDREFS |
Optional | Single | Links to the :ref:`multi-xml-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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
IsMailOnly | 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. |
LocalityId | 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. |
PollingLocationIds | xs:IDREFS |
Optional | Single | Specifies a link to the precinct’s PollingLocation object(s). | If the field is invalid or not present, then the implementation is required to ignore it. |
PrecinctSplitName | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <Precinct id="pre90111">
<BallotStyleId>bs00010</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60311 ed60054</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>203 - GEORGETOWN</Name>
<Number>0203</Number>
<PollingLocationIds>pl81274</PollingLocationIds>
</Precinct>
<!--
Precinct split. Name and PollingLocationIds are the same but
PrecinctSplitName is present, the ElectoralDistrictIds are different,
and the BallotStyleId is different.
-->
<Precinct id="pre90348sp0000">
<BallotStyleId>bs00002</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60054 ed60150</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>201 - JACK JOUETT</Name>
<Number>0201</Number>
<PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
<PrecinctSplitName>0000</PrecinctSplitName>
</Precinct>
<Precinct id="pre90348sp0001">
<BallotStyleId>bs00015</BallotStyleId>
<ElectoralDistrictIds>ed60129 ed60054 ed60267</ElectoralDistrictIds>
<IsMailOnly>false</IsMailOnly>
<LocalityId>loc70001</LocalityId>
<Name>201 - JACK JOUETT</Name>
<Number>0201</Number>
<PollingLocationIds>pl00000 pl81273 pl81662</PollingLocationIds>
<PrecinctSplitName>0001</PrecinctSplitName>
</Precinct>
|
RetentionContest¶
RetentionContest
extends BallotMeasureContest and represents a
contest where a candidate is retained in a position (e.g. a judge).
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
CandidateId | 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. |
OfficeId | 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. |
1 2 3 4 5 6 7 8 9 10 11 | <RetentionContest id="rc40001">
<BallotSelectionIds>rc40001a rc40001b</BallotSelectionIds>
<BallotTitle>
<Text language="en">Retention of Supreme Court Justice</Text>
<Text language="es">La retención de juez de la Corte Suprema</Text>
</BallotTitle>
<ElectoralDistrictId>ed60129</ElectoralDistrictId>
<Name>Judicial Retention, Supreme Court</Name>
<CandidateId>can14444</CandidateId>
<OfficeId>off20006</OfficeId>
</RetentionContest>
|
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. |
VipId | 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. |
DateTime | 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 | InternationalizedText | 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. |
OrganizationUri | 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. |
FeedContactInformation | ContactInformation | 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. |
TouUri | 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 3 4 5 6 7 8 9 10 | <Source id="src1">
<DateTime>2013-10-24T14:25:28</DateTime>
<Description>
<Text language="en">SBE is the official source for Virginia data</Text>
</Description>
<Name>State Board of Elections, Commonwealth of Virginia</Name>
<OrganizationUri>http://www.sbe.virginia.gov/</OrganizationUri>
<VipId>51</VipId>
<Version>5.0</Version>
</Source>
|
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 |
---|---|---|---|---|---|
ElectionAdministrationId | 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. |
ExternalIdentifiers | ExternalIdentifiers | 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. |
PollingLocationIds | 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 3 4 5 6 7 8 9 10 | <State id="st51">
<ElectionAdministrationId>ea40133</ElectionAdministrationId>
<ExternalIdentifiers>
<ExternalIdentifier>
<Type>ocd-id</Type>
<Value>ocd-division/country:us/state:va</Value>
</ExternalIdentifier>
</ExternalIdentifiers>
<Name>Virginia</Name>
</State>
|
StreetSegment¶
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 |
---|---|---|---|---|---|
AddressDirection | 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. |
IncludesAllAddresses | 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. |
IncludesAllStreets | 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. |
OddEvenBoth | OebEnum | 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. |
PrecinctId | 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. |
StartHouseNumber | 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. |
EndHouseNumber | 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. |
HouseNumberPrefix | 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. |
HouseNumberSuffix | 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. |
StreetDirection | 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. |
StreetName | 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. |
StreetSuffix | 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. |
UnitNumber | 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 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <StreetSegment id="ss999999">
<City>Charlottesville</City>
<IncludesAllAddresses>true</IncludesAllAddresses>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre99999</PrecinctId>
<State>VA</State>
<StreetName>CHAPEL HILL</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22901</Zip>
</StreetSegment>
<StreetSegment id="ss309904">
<City>GREENWOOD</City>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre92145</PrecinctId>
<StartHouseNumber>1</StartHouseNumber>
<EndHouseNumber>201</EndHouseNumber>
<State>VA</State>
<StreetName>MISTY MOUNTAIN</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22943</Zip>
</StreetSegment>
<StreetSegment id = "ss1"
<City>GREENWOOD</City>
<OddEvenBoth>both</OddEvenBoth>
<PrecinctId>pre92145</PrecinctId>
<StartHouseNumber>1</StartHouseNumber>
<EndHouseNumber>1</EndHouseNumber>
<HouseNumberPrefix>B</HouseNumberPrefix>
<HouseNumberSuffix>1/2</HouseNumberSuffix>
<State>VA</State>
<StreetName>MISTY MOUNTAIN</StreetName>
<StreetSuffix>RD</StreetSuffix>
<Zip>22943</Zip>
</StreetSegment>
|
Enumerations (Separate Pages)¶
BallotMeasureType¶
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. |
CandidatePostElectionStatus¶
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. |
CandidatePreElectionStatus¶
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 |
DistrictType¶
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. |
IdentifierType¶
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. |
OebEnum¶
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. |
OfficeTermType¶
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. |
VoteVariation¶
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. |
VoterServiceType¶
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. |
CSV Documentation¶
CSV Specification¶
Getting Started¶
The CSV files contain election information, with files containing links between each other, that is compiled into an XML feed that represents the data according to the XML specification. See the `sample xml file`_ and `xsd file`_ for more details.
Certain files are required to serve different types of information. Below is a listing of which files are required for different VIP data sets.
- Required files:
- election.txt
- source.txt
- state.txt
- department.txt
- Files to serve polling locations:
- election_administration.txt
- department.txt
- locality.txt
- polling_location.txt
- precinct.txt
- street_segment.txt
- Files to serve candidate contests:
- candidate.txt
- candidate_contest.txt
- candidate_selection.txt
- office.txt
- Files to serve referenda and ballot measures:
- ballot_measure_contest.txt
- ballot_measure_selection.txt
- Files to serve retention contests:
- retention_contest.txt
CSV files must be comma-delimited, UTF-8 .txt files, named according to the specification. The id attribute for the state object should be the state’s FIPS number. The id attributes are not required to remain constant for the same piece of semantic data across multiple productions of the feed (e.g. candidate Michael Smith, running for dogcatcher in Iowa, is not required to have the same candidate id attribute each time the state of Iowa publishes data).
Elements & Enumerations¶
Single-page Format¶
CSV Elements & Enumerations (Single Page)¶
- Elements
- state
- term
- office
- election
- ballot_selection_base
- source
- ballot_measure_contest
- contest_base
- time_with_zone
- language_string
- ballot_style
- external_identifier
- person
- external_identifiers
- voter_service
- contact_information
- candiate_selection
- lat_long
- candidate
- polling_location
- locality
- department
- html_color_string
- schedule
- precinct
- ordered_contest
- party_contest
- election_administration
- hours
- election_notice
- retention_contest
- street_segment
- candidate_contest
- party
- internationalized_text
- ballot_measure_selection
- hours_open
- electoral_district
- party_selection
- simple_address_type
- Enumerations
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,
|
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
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,
|
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. |
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. |
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
|
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
|
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. |
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
|
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,
|
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. |
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. |
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>
|
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>
|
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
|
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
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,
|
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. |
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
|
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:
- candidate
- Any element that extends single-csv-contest-base
- electoral_district
- locality
- office
- party
- precinct
- state
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. |
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
|
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. |
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
|
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
|
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. |
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. |
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
|
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
|
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. |
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 . |
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
|
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
|
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
|
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. |
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
|
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
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
|
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. |
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>
|
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
|
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
|
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,,
|
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. |
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
|
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
|
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
|
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. |
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
|
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. |
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
|
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. |
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>
|
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. |
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. |
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
|
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
|
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. |
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
|
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
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. |
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
|
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. |
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. |
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
|
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. |
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>
|
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
|
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
|
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. |
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 . |
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. |
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. |
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 |
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. |
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. |
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. |
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. |
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. |
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. |
Elements (Separate Pages)¶
ballot_measure_contest¶
The BallotMeasureContest provides information about a ballot measure before the voters, including summary statements on each side. Extends 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,
|
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 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. |
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 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
|
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. |
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:`multi-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
|
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 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
|
candidate_contest¶
CandidateContest extends 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
|
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 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. |
candiate_selection¶
CandidateSelection extends 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
|
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. |
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:`multi-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
|
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 | 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 | 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
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
contact_information | contact_information | Optional | Single | Contact and physical address information for the election administration body (see 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 | multi-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
|
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
contact_information | 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
|
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. |
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:`multi-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 | lat_long | 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
|
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. |
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
contact_information | 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
|
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
|
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. |
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:
- candidate
- Any element that extends contest_base
- electoral_district
- locality
- office
- party
- precinct
- state
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. |
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 | 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. |
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 | 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
|
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 | 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 | 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. |
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>
|
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 contest_base
* Any element that extends ballot_selection_base
* candidate
* 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. |
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>
|
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 <multi-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
|
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 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 | 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,
|
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. |
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. |
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:`multi-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 | lat_long | 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
|
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 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 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
ballot_selection_base-extended
elements referenced by the underlying
contest_base-extended
elements. |
1 2 3 | id,contest_id,ordered_ballot_selection_ids
oc2025,con001,bs001 bs002 bs003
oc3000,con002,bs001
|
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 | 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
|
A restricted string pattern for a six-character hex code representing an HTML color string. The pattern is:
[0-9a-f]{6}
party_contest¶
An extension of 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,,
|
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 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_selection¶
This element extends 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
|
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. |
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 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,
|
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. |
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:`multi-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 | lat_long | 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
|
polling_location¶
The PollingLocation object represents a site where voters cast or drop off ballots.
Tag | Data Type | Required? | Repeats? | Description | Error Handling |
---|---|---|---|---|---|
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 | lat_long | 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
|
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. |
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 . |
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:`multi-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
|
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. |
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
|
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,
|
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
|
Enumerations (Separate Pages)¶
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. |
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 |
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. |
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. |
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. |
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. |
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. |
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. |
Best Practices¶
Data Best Practices¶
Following is a series of best practice for data collection and file creation and suggestions about best practices of formatting data within your VIP XML and CSV file.
Naming convention¶
While many of the Voting Information Project’s data processes are managed by software, the quality of the entire system relies on human intervention, especially for error reporting and quality control. For this reason, VIP files should follow a naming convention that describes the contents of each individual feed file in an accessible way.
The file containing the VIP feed should be named using the following convention:
vipfeed-${FIPS}-${ELECTION_DATE}-${STATE}[-${LOCAL}].{xml|zip}
An explanation of each of the segments of the file naming convention above are as follows:
${FIPS}
- The FIPS code for the jurisdiction.${ELECTION_DATE}
- The date of the election in ISO 8601 format.${STATE}
- The full state name (e.g. Alaska, Arkansas, etc…) and not the abbreviation. If there are spaces in the state name, they should be substituted with underscores (e.g. New York -> New_York).${LOCAL}
(optional) - This additional identifier should be used if the file contains data from a specific jurisdiction. As with${STATE}
above, all spaces should be substituted with underscores. For example, if the data contained in the file only covers Maricopa County, AZ for the November 6, 2012 election, the file name would bevipfeed-04013-2012-11-06-Arizona-Maricopa_County.xml
.{xml|zip}
- If the file is an uncompressed XML document, the extension should be.xml.
If the file is zipped, the file extension should end with.zip
.
For a final example, vipfeed-19-2012-11-06-Iowa.zip
denotes Iowa’s (NB: the FIPS code
for IA is 19) feed for the Nov 6, 2012 election that has been compressed.
Element Identifiers¶
Most elements within the VIP feed require unique identifiers, xs:ID data types. Conformance to xs:ID
requires
the identifying record to:
- begin with a letter or underscore
- only contain letters, digits, hyphens and periods
- be unique across the VIP data set
In order to maintain uniqueness and provide context for the identifiers, the best practice is to use Hungarian-Style notation for identifiers.
ID values should follow Hungarian-Style notation, were the identifier prefix implicitly names the data element. Below
is a list of preferred prefixes by element (e.g. par00001 for a Party
id
):
Element | Prefix |
---|---|
BallotMeasureContest | bmc |
BallotMeasureSelection | bms |
BallotStyle | bs |
Candidate | can |
CandidateContest | cc |
CandidateSelection | cs |
ContactInformation | ci |
Election | ele |
ElectionAdministration | ea |
ElectoralDistrict | ed |
HoursOpen | hours |
Locality | loc |
Office | off |
OrderedContest | oc |
Party | par |
PartyContest | pc |
PartySelection | ps |
Person | per |
PollingLocation | pl |
RetentionContest | rc |
Source | src |
State | st |
StreetSegment | ss |
File Structure¶
All XML and CSV files should be encoded UFT-8 and line breaks should be LF (\n
) as opposed to CR LF (\r\n
).
For consistency across files and to aid human readability all indentation of elements should be an indent of two spaces and tabs should not be used. Each child node of an element should also be indented an additional two spaces.
General Data Structure¶
All data that are presented to end users of the data (i.e. contest names, referendum text, polling location names, street names, proper names), where possible, should be converted to Title Case to aid readability.
All data should be trimmed to remove leading and trailing white space.
Optional elements without values should be omitted from XML feed.
Specific Data Types¶
Elements with a data type of xs:integer
must contain a valid whole number greater than zero.
Elements with a data type of xs:anyURI
should be entered as a fully qualified domain name
(e.g. https://www.votinginfoproject.org/)
Elements with a data type of xs:dateTime
should be entered in ISO-8601 format.
Elements with a data type of xs:boolean
should either have a value of true
or false
Elements with a data type of xs:language
should contain a two character, lower-case, value corresponding to the
ISO 639 standard.
Elements that have enumerations which include an other
should have a corresponding value assigned to OtherType
within
the containing element. For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <BallotMeasureContest id="bm390616670907">
<BallotSelectionId>bms390616670907</BallotSelectionId>
<ElectoralDistrictId>ed3906177703103</ElectoralDistrictId>
<Name>Proposed Tax Levy School District</Name>
<SequenceOrder>34</SequenceOrder>
<FullText>
<Text language="en">An additional tax for the benefit of the Lockland Local School District, County of Hamilton,
Ohio, for the purpose of CURRENT EXPENSES at a rate not exceeding eleven and two-tenths (11.2) mills for each
one dollar of valuation, which amounts to one dollar and twelve cents ($1.12) for each one hundred dollars of
valuation, for a continuing period of time, commencing in 2015, first due in calendar year 2016.</Text>
</FullText>
<SummaryText>
<Text language="en">4 Proposed Tax Levy</Text>
</SummaryText>
<Type>other</Type>
<OtherType>bond</OtherType>
</BallotMeasureContest>
|
Specific Data Elements¶
Street Segments: Valid street segment records should not contain leading zeros in xs:integer
fields and should have
a Zip
value of 00000
if a value is unknown.
External Identifiers: External identifiers with an enumeration of fips
should contain valid FIPS code values as
defined by the U.S. Census Bureau. External identifiers with an enumeration of ocd-id
should contain a valid
Open Civic Data Division Identifier.
For long text fields (e.g. FullText
in BallotMeasureContest
) the XML line break (

) should be used to
enforce line break styling.
In all fields the characters <
, >
, and &
should be encoded <
, >
, and &
respectively.