Skip to content

Latest commit

 

History

History
1272 lines (829 loc) · 104 KB

BallotDefinition_UML_Model_Documentation.md

File metadata and controls

1272 lines (829 loc) · 104 KB

BallotDefinition UML Model

Enumerations

The BallotDefinitionVersion Enumeration

Image of BallotDefinitionVersion

Name Value
1.0.0 For version 1.0.0 of this specification.

The BallotMeasureType Enumeration

Image of BallotMeasureType

Enumeration for types of ballot measures in the BallotMeasureContest element.

Name Value
ballot-measure For a standard “yes” or “no” question on the ballot.
initiative For an initiative.
recall For a recall.
referendum For a referendum.
other Used when the type of ballot measure is not included in this enumeration.

The BallotSideType Enumeration

Image of BallotSideType

The side of a ballot sheet.

Name Value
back The back of the ballot sheet.
front The front of the ballot sheet

The CandidatePreElectionStatus Enumeration

Image of CandidatePreElectionStatus

Enumeration for various pre-election statuses applicable to a candidate in the Candidate class.

Name Value
filed For candidates who have filed with the election authority but not necessarily qualified.
qualified For candidates who are qualified by the election authority to be on the ballot for a contest.
withdrawn For candidates who have withdrawn from the contest.

The DayType Enumeration

Image of DayType

Enumeration for the day(s) in a schedule in the Schedule element.

Name Value
all Used for all days of the week.
sunday Used if day of week is Sunday.
monday Used if day of week is Monday.
tuesday Used if day of week is Tuesday.
wednesday Used if day of week is Wednesday.
thursday Used if day of week is Thursday.
friday Used if day of week is Friday.
saturday Used if day of week is Saturday.
weekday Used for any day of the week except Saturday and Sunday.

weekend|Used for both Saturday and Sunday.

The ElectionType Enumeration

Image of ElectionType

Enumeration for the type of election in the BallotDefinition class.

Name Value
general Election in which all eligible voters, regardless of party affiliation, are permitted to select candidates to fill public office and/or vote on ballot measures.
partisan-primary-closed Primary election in which the voter receives a ballot containing only those party-specific contests pertaining to the political party with which the voter is affiliated, along with non-party-specific contests presented at the same election. Unaffiliated voters may be permitted to vote only on non-party-specific contests.
partisan-primary-open Primary election in which the voter may choose a political party at the time of voting and vote in party-specific contests associated with that party, along with non-party-specific contests presented at the same election. Some states require voters to publicly declare their choice of party at the polling place, after which the election worker provides or activates the appropriate ballot. Other states allow the voters to make their choice of party within the privacy of the voting booth.
primary Election held to determine which candidates qualify to appear as contest options in subsequent elections.
runoff Election to select a winner following a primary or a general election, in which no candidate in the contest received the required minimum percentage of the votes cast. The two candidates receiving the most votes for the contest in question proceed to a runoff election.
special Primary or general election that is not regularly scheduled. A special election may be combined with a scheduled election.
other Used when the election type is not listed in this enumeration.

The GeoSpatialFormat Enumeration

Image of GeoSpatialFormat

Enumeration for geospatial vector data formats used in Geographic Information System (GIS) software, used in the SpatialExtent class.

Name Value
geo-json For GeoJSON open standard format.
gml For Geography Markup Language format.
kml For Keyhole Markup Language format.
shp For the shape file format associated with Esri.
wkt For Well-known Text format.

The IdentifierType Enumeration

Image of IdentifierType

Enumeration for election data-related codes in the ExternalIdentifier class .

Name Value
fips For FIPS codes.
local-level For a code that is specific to a county or other similar locality.
national-level For a code that is used at the national level other than “fips” or “ocd-id”.
ocd-id For Open Civic Data identifiers.
state-level For a code that is specific to a state.
other Used when the type of code is not included in this enumeration.

The MeasurementUnitType Enumeration

Image of MeasurementUnitType

The measurement unit for describing the location of content on a ballot.

Name Value
in inches
mm millimeters
pc picas
pt points (1/72 inch)

The OfficeTermType Enumeration

Image of OfficeTermType

Enumeration for the office term type in the Office class.

Name Value
full-term When the officeholder’s term began at the beginning of the full term of the office, e.g., 6 years for U.S. Senate.
unexpired-term When the officeholder’s term began at some date after the beginning of the full term of the office, generally because the previous officeholder vacated the office before the fullterm expired.

The OrientationType Enumeration

Image of OrientationType

The orientation of a ballot sheet.

Name Value
landscape Orient the sheet so that the ballot content print across the long edge of the paper.
portrait Orient the sheet so that the ballot content print across the short edge of the paper.

The ReportingUnitType Enumeration

Image of ReportingUnitType

Enumeration for the type of geopolitical unit in the ReportingUnit class.

Name Value
ballot-batch Used for reporting batches of ballots that may cross precinct boundaries.
ballot-style-area Used for ballot style areas generally composed of precincts.
borough Used in CT, NJ, PA, other states, and New York City for boroughs. For AK and LA, see county.
city Used for a city that reports results and/or for the district that encompasses it.
city-council Used for city council districts.
combined-precinct Used for one or more precincts that have been combined for the purposes of reporting. Used for “Ward” if “Ward” is used interchangeably with “CombinedPrecinct”.
congressional Used for U.S. Congressional districts.
country Used for a reporting unit of type country.
county Used for a county and/or for the district that encompasses it. In AK, used for counties that are called boroughs. In LA, used for parishes.
county-council Used for county council districts.
drop-box Used for a dropbox for absentee ballots.
judicial Used for judicial districts.
municipality Used as applicable for various units such as towns, townships, villages that report votes and/or for the district that encompasses it.
polling-place Used for a polling place.
precinct Used also for “Ward” or “District” when these terms are used interchangeably with “Precinct”.
school Used for a school district.
special Used for a special district.
split-precinct Used for splits of precincts.
state Used for a state and/or for the district that encompasses it.
state-house Used for a state house or assembly district.
state-senate Used for a state senate district.
town Used in some New England states as a type of municipality that reports votes and/or for the district that encompasses it.
township Used in some mid-western states as a type of municipality that reports votes and/or for the district that encompasses it.
utility Used for a utility district.
village Used as a type of municipality that reports votes and/or for the district that encompasses it.
vote-center Used for a vote center.
ward Used for combinations or groupings of precincts or other units.
water Used for a water district.
other Used for other types of reporting units not included in this enumeration.

The SelectionCaptureMethod Enumeration

Image of SelectionCaptureMethod

Name Value
mcdf For a read method that uses the mCDF encoded using a symbology.
omr For a read method that uses optical mark recognition.

The ShapeType Enumeration

Image of ShapeType

Name Value
ellipse For an ellipse shape
rectangle For a rectangle shape

The StraightPartyRuleset Enumeration

Image of StraightPartyRuleset

Specifies how to consider indications made in the controlled contests of a straight party controlling contest.These specify the consequences direct selections made by the voter in controlled contests.

Name Value
inclusive For a ruleset allowing any additional candidates selected by the straight-party to be included with directly selected candidates if the total number of candidates does not exceed the number of selections allowed.
exclusive For a ruleset that excludes any straight-party selections if there is a directly selected candidate in a contest.
other Used when the straight party rule type is not included in this enumeration.

The VoteVariation Enumeration

Image of VoteVariation

Enumeration for contest decision algorithm or rules in the Contest element.

Name Value
approval When voter can select as many candidates as desired in a contest up to a maximum number.
borda For the Borda count voting.
cumulative When voter can allocate more than one vote to a given candidate.
majority For majority voting.
n-of-m Includes vote for 1, i.e., 1-of-m.
plurality For plurality voting.
proportional For proportional voting.
range For range voting.
rcv For ranked choice voting.
super-majority For super majority voting.
other Used when the vote variation type is not included in this enumeration.

Classes

The AnnotatedString Class

Image of AnnotatedString

Used as a type for character strings; it adds a 32-character annotation to a character string. AnnotatedString is a subtype of string.

Property Multiplicity Type Property Description
Annotation 0..1 ShortString An annotation of up to 32 characters associated with a character string.
Content 1 String The string to be annotated.

The AnnotatedUri Class

Image of AnnotatedUri

Used as a type for character strings that represent Uniform Resource Identifiers (URI); it adds a 32-character annotation to a character string.

Property Multiplicity Type Property Description
Annotation 0..1 ShortString An annotation of up to 32 characters associated with a character string.
Content 1 anyURI The URI to be annotated.

The BallotDefinition Class

Image of BallotDefinition

For defining items pertaining to the issuer and version of the definition and when it was generated.

BallotDefinition references the major elements that are not necessarily specific to an election and that therefore can exist in a logical ballot definition: GpUnit, Office and OfficeGroup, Party, Person, and Election.

Property Multiplicity Type Property Description
{BallotFormat} 0..* BallotFormat For associating ballot formats with the definition.
{Election} 0..* Election For associating elections with the definition.
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the definition.
GeneratedDate 1 DateTimeWithZone Identifies the date and time that the ballot definition was generated.
{GpUnit} 0..* GpUnit For associating geopolitical units with the definition.
{Header} 0..* Header For associating headers with parts of a ballot style.
Issuer 1 RichText Identification of the definition issuer.
IssuerAbbreviation 1 RichText An abbreviation of the definition issuer such as the 2-character U.S. Census Bureau abbreviation of the state providing the election definition, e.g., AL, TX, MN, etc.
IsTest 0..1 Boolean Used to indicate whether the definition is a test. Assumed to be “false” if not present.
Notes 0..1 RichText For including an arbitrary message with the definition.
{Office} 0..* Office For associating offices with the definition.
{OfficeGroup} 0..* OfficeGroup For associating a name for a grouping of offices with the definition.
{Party} 0..* Party For associating parties with the definition.
{Person} 0..* Person For associating persons with the definition.
SequenceStart 1 Integer The report’s number as part of a sequence of reports, used with SequenceEnd so as to be read as, e.g., 1 of 1, 1 of 2, 2 of 2, etc.  Starts with “1”.
SequenceEnd 1 Integer The upper bound of the sequence; e.g., “1” if there is only 1 report, “2” if there are two reports in the sequence, etc.
{Shape} 0..* Shape For associating parts of the ballot with geometric shapes.
TestType 0..1 String A description of the type of test, e.g., pre-election, logic and accuracy, etc.
VendorApplicationId 1 String An identifier of the vendor application generating the ballot definition, e.g., X-EMS version 3.1.a.
Version 1 BallotDefinitionVersion To identify the version of the BD specification being used, i.e., version 1.0.0. This will need to be updated for different versions of the specification.

The BallotFormat Class

Image of BallotFormat

For providing details related to the concrete presentation of a ballot appropriate to the particular voting technology being used. All physical details of a ballot style are associated with a particular BallotFormat.

BallotFormat sets the MeasurementUnit appropriate for the marking surface used.

Property Multiplicity Type Property Description
Application 0..1 String The application that generates ballots in the ballot format.
ExternalIdentifier 1..* ExternalIdentifier For associating IDs with the ballot format.
{FiducialMark} 0..* FiducialMark For associating a ballot format with one or more global fiducial marks appearing on a ballot.
LongEdge 1 float Measurement of the long edge of the ballot sheet.
Manufacturer 0..1 String Manufacturer of the ballot format.
{mCDFArea} 0..* mCDFArea For locating the data encoded using a mCDF Profile (e.g. mCDF Profile for Contest Selection Capture).
MeasurementUnit 1 MeasurementUnitType The measurement units used to express locations of ballot content, such as contest option positions.
Orientation 1 OrientationType Orientation of the page relative to the coordinate plane.
SelectionCaptureMethod 1 SelectionCaptureMethod The method used to read contest selections or indications on the ballot.
ShortEdge 1 float Measurement of the short edge of the ballot sheet.

The BallotStyle Class

Image of BallotStyle

For defining a ballot style composed of ordered content (i.e. Headers or Contests) and their contest selections, and associating the ballot style with a political party, a reference to an image of the ballot, and a reference to a precinct or other geopolitical unit that the ballot is unique to. Election includes BallotStyle. BallotStyle references OrderedContent to include content that appears on that ballot style. To preserve any rotation associated with the ballot, it is expected that the generating application will list the occurrences of OrderedContest in the order as on the ballot for the associated geopolitical unit. BallotStyle references one or more GpUnit instances defined for the associated precincts or split precincts. If the ballot style is associated with multiple precincts (or other geographies), multiple references to the precinct GpUnit instances can be included.

Property Multiplicity Type Property Description
ExternalIdentifier 0..* ExternalIdentifier For associating IDs with the ballot style.
{GpUnit} 1..* GpUnit Unique identifier for one or more GpUnit instances. For associating specific election administrative areas (e.g. precincts or splits) with the ballot style.
ImageUri 0..* AnnotatedUri URI for a sample ballot image.
Language 0..* language For the written languages appearing on the ballot style.
{OrderedContent} 0..* OrderedContent For associating a ballot style with ballot content, such as contests or headers.
{Party} 0..* Party For associating one or more parties with the ballot style.
Purpose 0..1 RichText Freeform text to further describe the purpose (e.g. federal-only ballot) of the ballot style.

The BoundedObject Class

Image of BoundedObject

A class representing a bounding box. The box represents in absolute coordinate space its location and size. Its location is given by x,y coordinates, size by h,w values, the side of the sheet it appears on and the sheet number of the ballot style.

PhysicalContest includes BoundedObject. BoundedObject has three subclasses, used contextually:

Property Multiplicity Type Property Description
H 1 float Height in ballot format measurement units.
Sheet 0..1 Integer The ballot sheet the bounded object appears on. Sheets start at 1 and increase monotonically. Does not apply to mCDFArea, or global fiducials.
Side 1 BallotSideType The side of the sheet of paper the bounded object appears.
W 1 float Width in ballot format measurement units.
X 1 float X-coordinate for locating a bounded object (top left anchor).
Y 1 float Y-coordinate for locating a bounded object (top left anchor).

The FiducialMark Class

Image of FiducialMark

FiducialMark is a subclass of BoundedObject for geometry found at fixed positions of the page. BallotFormat references FiducialMark for geometry found at fixed locations on the ballot. PhysicalContest references FiducialMark for geometry proximate to the contest.

Property Multiplicity Type Property Description
{Shape} 1 Shape For associating a FiducialMark with the geometric shape that represents it.

The mCDFArea Class

Image of mCDFArea

A part of the ballot containing an instantiation of the microCDF. It inherits the properties of BoundedObject.

Property Multiplicity Type Property Description
Symbology 1 String The name of the symbology used.

The OptionPosition Class

Image of OptionPosition

For associating a physical contest option to the location(s) where a selection can be indicated. It inherits the properties of BoundedObject.

Property Multiplicity Type Property Description
FractionalVotes 0..1 FractionalNumber The proper fractional number of votes represented by the option position.
{Indicator} 0..1 Shape For associating an OptionPosition with the shape that conveys the expected location of a mark.
NumberVotes 1 Integer The number of votes represented by the option position.
Rank 0..1 Integer The rank represented by the option position, if a RCV contest.

The WriteInPosition Class

Image of WriteInPosition

Response area for representing a particular candidate, e.g. John Smith hand printed. It inherits the properties of BoundedObject.

Property Multiplicity Type Property Description
SelectionRequired 0..1 Boolean Whether a selection in an OptionPosition is required in order to count the write-in. Assumed to be false if not present.

The Candidate Class

Image of Candidate

For defining information about a candidate in a contest. CandidateOption references Candidate instances to associate one or more candidates with a contest selection. Election includes Candidate.

Candidate uses the Party association to reference the candidate’s political party. If the candidate is endorsed by other parties for a particular contest, the endorsing parties are referenced using the CandidateOption attribute.

ExternalIdentifier can be used to associate IDs with the candidate. If the type is not listed in enumeration IdentifierType, use other and include the type (that is not listed in the enumeration) in OtherType.

Property Multiplicity Type Property Description
BallotName 1 InternationalizedText For the candidate’s name as listed on the ballot.
CampaignSlogan 0..1 InternationalizedText The slogan or motto used by the candidate in their campaign.
{ContactInformation} 0..1 ContactInformation For associating contact information for the candidate.
ExternalIdentifier 0..* ExternalIdentifier For associating IDs with the candidate.
FileDate 0..1 date Date when the candidate filed for the contest.
IsIncumbent 0..1 Boolean Boolean to indicate whether the candidate is the incumbent for the office associated with the contest. Assumed to be “false” if not present.
IsTopTicket 0..1 Boolean Boolean to indicate whether the candidate is the top of a ticket that includes multiple candidates. Assumed to be “false” if not present.
{Party} 0..1 Party For associating a party with the candidate.
{Person} 0..1 Person For associating more detailed information about the candidate.
PreElectionStatus 0..1 CandidatePreElectionStatus Registration status of the candidate, e.g., filed, qualified, etc.
ReadName 0..1 String The name spelled phonetically for reading by a screen reader.

The ContactInformation Class

Image of ContactInformation

For defining contact information about objects such as persons, boards of authorities, organizations, etc. Election, ElectionAdministration, Person, GpUnit, and Office include ContactInformation.

To include an address for the contact, use multiple occurrences of AddressLine. It is expected that the generating application will list the name of the person/organization in the first occurrence of AddressLine, with subsequent ordered occurrences for street address, city, state, zip code, etc. Directions can be used to supply any additional address-related information that may appear in multiple languages.

ContactInformation includes LatLng so as to associate latitude/longitude with the contact address.

Email, Fax, and Phone are of type AnnotatedString, which permits up to a 32-character annotation to be associated with the data.

Property Multiplicity Type Property Description
AddressLine 0..* RichText For associating an address with the contact.
Directions 0..1 InternationalizedText Directional information in addition to address information.
Email 0..* AnnotatedString Email address associated with the contact.
Fax 0..* AnnotatedString Fax number associated with the contact.
Label 0..1 String For use as needed and compatibility with the VIP schema.
{LatLng} 0..1 LatLng For latitude and longitude information associated with the contact.
Name 0..1 RichText Name associated with the contact.
Phone 0..* AnnotatedString Phone number associated with the contact.
{Schedule} 0..* Schedule For associating a schedule with the contact.
Uri 0..* AnnotatedUri URI associated with the contact.

The Contest Class

Image of Contest

For defining a contest and linking the contest to the associated candidates, ballot measures, parties, or controlled contests. Election includes Contest.

Contest is an abstract class with four subclasses that get used according to the type of contest:

Contest includes ContestOption to link the selections on the ballot to the contest, e.g., to link one or more candidates to a candidate contest. Like Contest, ContestOption is also an abstract class and has subclasses that correspond to those of Contest, as follows: 

Contest includes a required ElectionDistrict reference to a GpUnit defined for the geographical scope of the contest. For example, in a state senate contest, ElectionDistrict would reference a GpUnit of type ReportingUnit element defined for the district associated with the contest. Office also includes an optional reference that serves the same purpose. Note that for contests that are state-wide or county-wide and so forth, the same GpUnit defined for the state or county, etc., can be re-used. SequenceOrder is used for results display ordering, i.e., to display contests according to a particular ordering. For example, “100” may indicate a U.S. Senatorial contest, “200” may indicate a U.S. Congressional contest, etc. SequenceOrder is not appropriate to use as the contest order on the ballot; contest order on each ballot can be preserved, however, using the BallotStyle element, which associates ballot styles with their corresponding precincts or other geopolitical units. When including ExternalIdentifier elements, if the type is not listed in enumeration IdentifierType, use other and include the type (that is not listed in the enumeration) in OtherType.

Property Multiplicity Type Property Description
Abbreviation 0..1 String Abbreviation for the contest.
BallotSubTitle 0..1 InternationalizedText Subtitle of the contest as it appears on the ballot.
BallotTitle 0..1 InternationalizedText Title of the contest as it appears on the ballot.
{ContestOption} 0..* ContestOption For associating contest options for the contest, e.g., candidates, ballot measure options.
{ElectionDistrict} 1 ReportingUnit Link to a GpUnit instance. For associating the contest with a reporting unit that represents the geographical scope of the contest, e.g., a district, etc.
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the contest.
HasRotation 0..1 Boolean Boolean to indicate whether the selections in the contest are rotated. Assumed to be “no” if not present.
Name 1 RichText Name of the contest, not necessarily as it appears on the ballot.
SequenceOrder 0..1 Integer Ordering for listing the contest for purposes of display. If not present, no order is assumed.
TotalSubUnits 0..1 Integer Total number of subunits, e.g., precincts that have this contest on the ballot.
VoteVariation 0..1 VoteVariation Vote variation associated with the contest, e.g., n-of-m.
OtherVoteVariation 0..1 String For use when VoteVariation is other.

The BallotMeasureContest Class

Image of BallotMeasureContest

For ballot measure (i.e., referenda or a tax measure) and judicial retention contests. It inherits the attributes of Contest.

If the type of ballot measure is not listed in enumeration BallotMeasureType, use other and include the type (that is not listed in the enumeration) in OtherType.

Property Multiplicity Type Property Description
ConStatement 0..1 InternationalizedText For a statement on the ballot associated with a “no” vote.
EffectOfAbstain 0..1 InternationalizedText For a statement on the ballot detailing the effect of abstaining from voting on the ballot measure.
FullText 0..1 InternationalizedText For full text on the ballot of the ballot measure.
InfoUri 0..* AnnotatedUri For associating a URI with the ballot measure contest.
PassageThreshold 0..1 InternationalizedText For a statement on the ballot of the number or percentage of votes needed to approve or pass the ballot measure.
ProStatement 0..1 InternationalizedText For a statement on the ballot associated with a “yes” vote.
SummaryText 0..1 InternationalizedText For a summary on the ballot of the ballot measure.
Type 0..1 BallotMeasureType For indicating the type of ballot measure.
OtherType 0..1 String Used when BallotMeasureType is other.

The RetentionContest Class

Image of RetentionContest

For judicial retention or other types of retention contests. Retention contests can be treated essentially as ballot measure contests, however this element differs from BallotMeasureContest in that it can include a reference to a candidate or the associated office.

This element uses BallotMeasureContest as a superclass. Therefore, it inherits the attributes of Contest as well as BallotMeasureContest.

Property Multiplicity Type Property Description
{Candidate} 1 Candidate Link to a Candidate instance. For associating a candidate with the retention contest.
{Office} 0..1 Office Link to an Office instance. For associating an office description with the retention contest.

The CandidateContest Class

Image of CandidateContest

For a contest that involves selecting one or more candidates. It inherits the attributes of Contest.

This class optionally references Office and Party. If the candidate contest is associated with a ticket (of candidates) and each candidate in the ticket is associated with a separate office, the association to Office can reference each of the separate offices. For example, if the contest is for the state governor ticket but Governor and Lieutenant (Lt.) Governor are both separate offices, the association references first to the Office instance defined for the Governor’s office and then to the Lt. Governor’s office. In this case, it is expected that the generating application will list the multiple references according to a jurisdiction-defined ordering scheme, e.g., Governor first and Lt. Governor second.

Note that when using the CandidateOption class to associate the candidates with a contest selection for the contest, the order of the candidates should match the order of offices. Again, using the example of the state governor ticket, if the offices are listed with Governor first and Lt. Governor second, then the order of the candidates in the ContestOption instance should be identical, with the Governor candidate first and the Lt. Governor candidate second.

Property Multiplicity Type Property Description
NumberElected 0..1 Integer Number of candidates that are elected in the contest (“n” of n-of-m).
NumberRunoff 0..1 Integer The number of candidates in a runoff contest.
{Office} 0..* Office For associating office descriptions.
{PrimaryParty} 0..* Party For associating parties with the contest.
RanksAllowed 0..1 Integer Maximum number of ranks per voter in this contest.
VotesAllowed 1 Integer Maximum number of votes per voter in this contest.

The ControllingContest Class

Image of ControllingContest

For a contest that affects other contests under its control. ControllingContest is an abstract subclass of Contest with three subclasses that get used according to the type of contest:

ControllingContest contains ControlledContest to link to the contests under its control.

 

Property Multiplicity Type Property Description
{ControlledContest} 1..* Contest A contest on a ballot whose state is dependent on the selections made in a separate controlling contest.

The ActivationContest Class

Image of ActivationContest

For a contest containing an option that conditionally activates other contests on the ballot. This element uses ControllingContest as a superclass. Therefore, it inherits the attributes of Contest as well as ControllingContest.

Property Multiplicity Type Property Description
{Candidate} 0..1 Candidate Link to a Candidate instance. For associating a candidate with the activation contest (e.g. a candidate subject to recall).

SummaryText|0..1|InternationalizedText|For a summary on the ballot of the activation contest, e.g. "Should John Smith be recalled?".

The PartyPreferenceContest Class

Image of PartyPreferenceContest

For a controlling contest that may appear on an open primary ballot and allows the voter to select which political party’s primary they wish to vote. A valid selection in this contest protects the voter from voiding the partisan selection of the ballot by making selections in more than one party’s contest. This element uses ControllingContest as a superclass. Therefore, it inherits the attributes of Contest as well as ControllingContest.

The StraightPartyContest Class

Image of StraightPartyContest

For a contest that involves choosing a party, typically for a straight party selection on the ballot. This element uses ControllingContest as a superclass. Therefore, it inherits the attributes of Contest as well as ControllingContest.

Property Multiplicity Type Property Description
StraightPartyRuleset 1 StraightPartyRuleset The ruleset specifying how to consider indications made in the controlled contests.
OtherStraightPartyRuleset 0..1 String For use when StraightPartyRuleset value is other.

The PartyContest Class

Image of PartyContest

Use PartyContest for a contest that where voters choose a party on the ballot. When a selection in this contest causes other indirect selections, StraightPartyContest should be used instead.

It inherits the attributes of Contest.

The ContestOption Class

Image of ContestOption

Used for the contest selections in a contest (e.g., for candidates, for ballot measures). Contest includes ContestOption.

ContestOption is an abstract class with four subclasses that get used according to the type of contest:

  • ActivationOption, used if the contest type is for an activation contest
  • BallotMeasureOption, used if the contest type is for a ballot measure, including for retentions
  • CandidateOption, used if the contest type is for one or more candidates, to link the contest selection to the candidate instances and endorsement parties; and
  • PartyOption, used if the contest type is for a party, e.g., for a party list contest.

SequenceOrder is included to specify an ordering for the contest selections for purposes of display only. The original ballot ordering can be preserved, however, by using the BallotStyle class.

Property Multiplicity Type Property Description
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the contest option.
SequenceOrder 0..1 Integer Order in which the candidate is listed on the ballot for purposes of display. If not present, no order is assumed.

The ActivationOption Class

Image of ActivationOption

For the contest selections in an ActivationContest. It inherits the attributes of ContestOption.

Property Multiplicity Type Property Description
CausesActivation 1 Boolean Boolean to indicate whether this selection, when chosen by the voter will cause controlled contests to activate.
Selection 1 InternationalizedText The text on the ballot associated with the selection.

The BallotMeasureOption Class

Image of BallotMeasureOption

For a contest selection in a ballot measure contest. Because judicial or other retention contests are often treated like ballot measure contests, this element can be used also for retention contests. It inherits the attributes of ContestOption.

Property Multiplicity Type Property Description
Selection 1 InternationalizedText Contains the text used to indicate a vote for or against the ballot measure, e.g., “yes”, “no”.

The CandidateOption Class

Image of CandidateOption

For the contest selections in a candidate contest, including for write-ins. It inherits the attributes of ContestOption. References to multiple Candidate instances can be included if necessary, e.g., when the contest selection would be for a ticket of candidates (unless the ticket itself is defined as a candidate).

EndorsementParty is used to reference any associated endorsement parties other than the specific party of the candidate (Candidate references Party for that purpose). For example, if a candidate of one party is also endorsed by a second party, use EndorsementParty to reference the second party. A second example would be for ballot fusion as used in some states, where the same candidate is listed multiple times in the same contest, but with different endorsement parties.

When multiple candidates are referenced for a ticket and the ordering of the candidates is important to preserve, it is expected that the generating application will list the references to Candidate instances according to the ordering scheme in place. For example, if the contest is for a ticket in which each candidate is associated with a different office, then the order of the candidates should match the same ordering of the element references within in the <Contest xsi:type="CandidateContest" ... /> element.

Property Multiplicity Type Property Description
{Candidate} 0..* Candidate For associating a candidate with the candidate selection on the ballot and for cases where the contest selection is for multiple candidates, e.g., a ticket.
IsWriteIn 0..1 Boolean Indicates whether the candidate is a write-in, e.g., true or false. Assumed to be false if not present.
{EndorsementParty} 0..* Party For associating one or more endorsing parties with the candidate selection.

The PartyOption Class

Image of PartyOption

For a contest selection involving a party such as for a party list selection or straight party selection on the ballot. It inherits the attributes of ContestOption.

Property Multiplicity Type Property Description
{Party} 1..* Party Link to one or more Party instances. For associating one or more parties with the party selection.

The Election Class

Image of Election

For defining details of the election and associated information such as candidates and contests.

Election includes links to the major instances that are specific to an election: BallotStyle, Candidate, and Contest.

Election includes a required reference to ElectionScope, which links to a GpUnit instance for the purpose of identifying the geographical scope of the election. For example, for an election within a county, ElectionScope would reference a GpUnit defined for the county. If it is desired to include election authority information, the GpUnit can include ElectionAdministration.

Property Multiplicity Type Property Description
{BallotStyle} 0..* BallotStyle For defining ballot styles associated with the election.
{Candidate} 0..* Candidate For defining candidates associated with the election.
{ContactInformation} 0..1 ContactInformation For associating various contact information with the election.
{Contest} 0..* Contest For defining contests associated with the election.
{ElectionScope} 1 ReportingUnit Unique identifier for a GpUnit element. For associating the election with a reporting unit that represents the geographical scope of the election, e.g., a state, a county, etc.
{ExternalIdentifier} 0..* ExternalIdentifier For associating IDs with the election.
Name 1 InternationalizedText For including a name for the election; the name could be the same name as appears on the ballot.
StartDate 1 date Calendar start date of the election, e.g., “2018-11-04”.
EndDate 1 date Calendar end date of the election; for a typical one-day election, the end date is the same as the start date.
Type 1 ElectionType Enumerated type of election, e.g., partisan-primary, open-primary, etc.
OtherType 0..1 String Used when Type is other.

The ElectionAdministration Class

Image of ElectionAdministration

Used to provide various information about an election authority. ReportingUnit includes ElectionAdministration.

ElectionAdministration includes ContactInformation for the election authority and, using ElectionOfficialPerson references one or more Person instances defined for individuals/organizations associated with the election authority.

Property Multiplicity Type Property Description
{ContactInformation} 0..1 ContactInformation For including various contact information.
{ElectionOfficialPerson} 0..* Person Unique identifier for one or more Person instances defined for the election authority.
Name 0..1 RichText Name of the election authority.

The ExternalIdentifier Class

Image of ExternalIdentifier

For associating a jurisdiction’s codes, i.e., identifiers, with objects such as candidates, offices, or geopolitical units such as counties, towns, precincts, etc. Multiple occurrences of ExternalIdentifier can be used to associate multiple codes, e.g., if there is a desire to associate multiple codes with a particular object such as FIPS (Federal Information Processing Standard) codes as well as OCD-IDs (Open Civic Data Identifiers).

For elements that link to ExternalIdentifier instances, if the type is not listed in enumeration IdentifierType, use other and include the type (that is not listed in the enumeration) in OtherType.

Property Multiplicity Type Property Description
Label 0..1 String For use as needed and compatibility with the VIP schema.
Type 1 IdentifierType An identifier type, e.g., FIPS.
OtherType 0..1 String Used when IdentifierType value is other.
Value 1 String The identifier used by the jurisdiction.

The GpUnit Class

Image of GpUnit

Class for describing a geo-politically bounded area of geography such as a city, district, or jurisdiction, or a precinct or split-precinct.

Reporting units can link to each other to form a hierarchicallly-oriented model of a state's (or a county's, etc.) jurisdictions, districts, and precincts.

GpUnit is an abstract class with one subclass:

  • ReportingUnit, for associating vote counts with geopolitical units such as cities, districts, counties, precincts, etc.

Election and Contest contain a required reference to GpUnit representing the jurisdiction of the election or contest respectively; Office contains a similar reference that is optional. BallotStyle references GpUnit to link a ballot style to its corresponding geopolitical unit.

Property Multiplicity Type Property Description
{ComposingGpUnit} 0..* GpUnit Unique identifier for one or more GpUnit instances. For creating a reference to another GpUnit that is contained with the parent GpUnit.
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the GpUnit, e.g., a district’s or county’s code.
Name 0..1 InternationalizedText Name of the geopolitical unit.

The ReportingUnit Class

Image of ReportingUnit

For defining a geopolitical unit such as state, county, township, precinct, etc., using the ReportingUnitType enumeration. It inherits the attributes of GpUnit.

This class optionally references Person to associate one or more individuals, e.g., authorities, for the reporting unit. It also includes ContactInformation to provide contact addresses for the reporting unit, such as an address of a vote center.

Election references this class so as to identify the geographical scope of the election. In this case, the GpUnit element defined for the scope of the election may include ElectionAdministration to include election authority-related information.

The Type attribute uses the ReportingUnitType enumeration to specify the type of geopolitical geography being defined. ReportingUnitType contains the most common types of geographies, e.g., state, county, precinct, and so forth. If the reporting unit type is not listed in enumeration ReportingUnitType, use other and include the reporting unit type (that is not listed in the enumeration) in OtherType.

The IsDistricted boolean can be used in a number of ways. It is not strictly necessary, as it is possible to identify districts by their Type attribute or by examining the Contest instance’s ElectionDistrict reference, which links to the election district associated with the contest. However, if a district is defined but is not linked from a contest, or if the type of district is not listed in the ReportingUnitType enumeration and therefore OtherType is used, then IsDistricted is necessary to identify the GpUnit as a district. The IsDistricted boolean can also be used to signify that a GpUnit defined as a jurisdiction, e.g., a county, is also used as a district for, e.g., county-wide contests.

Property Multiplicity Type Property Description
{Authority} 0..* Person A link to one or more Person instances describing an authority responsible for the reporting unit.
{ContactInformation} 0..1 ContactInformation For associating contact information with the reporting unit.
{ElectionAdministration} 0..1 ElectionAdministration For use when the reporting unit serves as the authority in the election.
IsDistricted 0..1 Boolean Boolean to indicate whether the reporting unit is a district; assumed to be “false” if not present.
IsMailOnly 0..1 Boolean Boolean to indicate whether the reporting unit handles only mail-in or absentee ballot elections, assumed to be “false” if not present.
Number 0..1 String A number associated with the reporting unit; for compatibility with VIP.
{PartyRegistration} 0..* PartyRegistration For associating a count of registered voters per party with the geopolitical unit.
{SpatialDimension} 0..1 SpatialDimension For describing the reporting unit’s spatial extent (a polygon that shows the related area).
TotalSubUnits 0..1 Integer Total number of associated subunits such as precincts.
Type 1 ReportingUnitType Enumerated type of reporting unit, e.g., state, county, district, precinct, etc.
OtherType 0..1 String For use when ReportingUnitType value is other.
VotersRegistered 0..1 Integer Number of registered voters residing within the boundaries of the geopolitical unit.

The Header Class

Image of Header

For defining a reusable set of headers.

Property Multiplicity Type Property Description
ExternalIdentifier 0..* ExternalIdentifier For associating an ID with the header.
HeaderedContent 0..1 InternationalizedText For textual content appearing under a header (e.g. ballot instructions).
Name 1 InternationalizedText Name of the header, as it is to appear on a ballot style.

The Hours Class

Image of Hours

Hours is used to specify a specific day and hours on that day, including the time zone. Multiple occurrences of Hours can be used if the schedule includes a range of days and hours.

Property Multiplicity Type Property Description
Day 0..1 DayType Day of the week.
Label 0..1 String For use as needed and compatibility with the VIP schema.
StartTime 1 TimeWithZone Start time of the schedule.
EndTime 1 TimeWithZone End time of the schedule.

The InternationalizedText Class

Image of InternationalizedText

For strings that can contain multi-national text, for use with text as shown on a ballot containing multi-national text. The label attribute can be used to assign an identifier to the text as desired.

Text uses the xsd:language type such that its language attribute must be set to a value that identifies the language.

Values for language are from ISO 639 [12] and include:

  • en – English
  • en-US – U.S. English
  • en-GB – U.K. English
  • fr – French
  • es – Spanish
  • zh – Chinese
  • ja – Japanese
  • ko – Korean
Property Multiplicity Type Property Description
Label 0..1 String For use as needed and compatibility with the VIP schema.
{Text} 1..* LanguageString Used to hold a string of text with an associated table indicating the language used.

The LanguageString Class

Image of LanguageString

Used to hold a string of text with an associated table indicating the language used.

Property Multiplicity Type Property Description
Content 1 String The string in the specified language.
Language 1 language Identification of the language, such as 'es'.

The LatLng Class

Image of LatLng

Associates latitude/longitude with a contact address.

Property Multiplicity Type Property Description
Label 0..1 String For use as needed and compatibility with the VIP schema.
Latitude 1 double Latitude of the contact location.
Longitude 1 double Longitude of the contact location.
Source 0..1 String System used to perform the lookup from location name to lat/lng, e.g., the name of a geocoding service.

The Office Class

Image of Office

For defining an office and information associated with a contest and/or a district. BallotDefinition includes Office. CandidateContest and RetentionContest reference Office.

Office includes Term for defining details about the term of an office such as start/end dates and the type of term. OfficeGroup is included from BallotDefinition to assign a name to a grouping of office definitions.

Office includes an optional ElectionDistrict reference to a GpUnit for the purpose of identifying the geographical scope of the office. For example, for an office for a state senate seat, ElectionDistrict would include a reference to the GpUnit defined for the district associated with that office.

Property Multiplicity Type Property Description
{ContactInformation} 0..1 ContactInformation For associating various contact information with the office.
Description 0..1 InternationalizedText A description of the office, possibly as shown on the ballot to the voter.
{ElectionDistrict} 0..1 ReportingUnit Link to a GpUnit instance. For associating the office with a reporting unit that represents the geographical scope of the contest, e.g., a district, etc.
ExternalIdentifier 0..* ExternalIdentifier For associating IDs with the office.
FilingDeadline 0..1 date Date and time when a candidate must have filed for the contest for the office.
IsPartisan 0..1 Boolean Boolean to indicate whether the office is partisan, e.g., true or false. If not present, assumption is true.
Name 1 InternationalizedText Name of the office; can appear on the ballot.
{OfficeHolderPerson} 0..* Person Links to one or more Person instances defined for the office holder.
{Term} 0..1 Term For including office term-related information.

The OfficeGroup Class

Image of OfficeGroup

Used to assign a name to a grouping of office definitions. It includes references to Office instances and a name to identify the grouping of references, e.g., “Judicial” or “Statewide”, etc. SubOfficeGroup can be used to create a nested hierarchy of groupings. BallotDefinition includes OfficeGroup.

Property Multiplicity Type Property Description
Label 0..1 String For use as needed and compatibility with the VIP schema.
Name 1 String Name of the office grouping.
{Office} 0..* Office Link to one or more Office instances.
{SubOfficeGroup} 0..* OfficeGroup For defining a nested hierarchy of Office instance groupings.

The OrderedContent Class

Image of OrderedContent

An abstract base class for content that can appear under a particular ballot style.

OrderedContent is an abstract class with two subclasses that get used according to the type of content:

  • OrderedContest, used for the appearance of a contest.
  • OrderedHeader, used for the appearance of a header, optionally with the inclusion of contests.

The OrderedContest Class

Image of OrderedContest

For the appearance of a contest on a particular ballot style.This property uses OrderedContent as a superclass.

Property Multiplicity Type Property Description
{Contest} 1 Contest The contest associated represented by OrderedContest.
{OrderedContestOption} 0..* ContestOption The contest selections for the ballot.
{Physical} 0..* PhysicalContest For describing the physical aspects of the contest.

The OrderedHeader Class

Image of OrderedHeader

For the appearance of a header on a particular ballot style.This property uses OrderedContent as a superclass.

Property Multiplicity Type Property Description
{Header} 1 Header Association to the header to be used.
{OrderedContent} 0..* OrderedContent For associating a header with ballot content, such as contests or nested headers.

The Party Class

Image of Party

Used to describe a political party that can then be referenced in other elements. BallotDefinition includes Party. Candidate, PartyRegistration, and Person reference Party.

Party is an abstract type with one subtype Coalition, used to define coalitions.

The Color attribute specifies a 6-digit RGB code displayable using HTML.

Property Multiplicity Type Property Description
Abbreviation 0..1 InternationalizedText Short name for the party, e.g., “DEM”.
Color 0..1 HtmlColorString For associating an HTML RGB color coding with the party.
{ContactInformation} 0..1 ContactInformation For associating contact information regarding the party, e.g., party offices.
ExternalIdentifier 0..* ExternalIdentifier For associating IDs with the party.
IsRecognizedParty 0..1 Boolean For indicating whether the party is recognized by the election authority; “false” is assumed if not present.
{LeaderPerson} 0..* Person Identification of a Party's leader.
LogoUri 0..* AnnotatedUri A URI to the party’s graphical logo.
Name 1 InternationalizedText Official full name of the party, e.g., “Republican”; can appear on the ballot.
{PartyScopeGpUnit} 0..* GpUnit The GpUnit(s) the party operates in or the top-most GpUnit.
Slogan 0..1 InternationalizedText The slogan or motto used by a political party.

The Coalition Class

Image of Coalition

For defining a coalition, i.e., a collection of parties organized for the purpose of endorsing a candidate in a contest. It inherits the properties of Party.

Coalition instances themselves are composed of multiple Party references along with a reference to an associated Contests.

If there are no associated Contests, a general default is that the coalition endorses the associated parties.

Property Multiplicity Type Property Description
{Contest} 0..* Contest For associating contests with the coalition.
{Party} 0..* Party For associating parties with the coalition.

The PartyRegistration Class

Image of PartyRegistration

For tracking the number of registered voters per party per geopolitical unit, i.e., for reporting on the number of registered voters of a particular party in a district or other type of reporting unit. Referenced by GpUnit.

Property Multiplicity Type Property Description
Count 1 Integer A count for tracking the number of registered voters.
{Party} 1 Party Link to a Party instance. For associating a political party.

The Person Class

Image of Person

For defining information about a person; the person may be a candidate, election official, authority for a reporting unit, etc. BallotDefinition includes Person. Candidate, ElectionAdministration and GpUnit references Person. Person optionally references ContactInformation for associating contact information.

Multiple occurrences of the MiddleName attribute can be used as needed, e.g., for names such as “John Andrew Winston Smith”.

Property Multiplicity Type Property Description
{ContactInformation} 0..* ContactInformation For associating contact information with the person.
DateOfBirth 0..1 date Person’s date of birth.
ExternalIdentifier 0..* ExternalIdentifier For associating IDs with the person.
FirstName 0..1 RichText Person’s first (given) name.
FullName 0..1 InternationalizedText Person’s full name.
Gender 0..1 RichText Person’s gender.
LastName 0..1 RichText Person’s last (family) name.
MiddleName 0..* RichText Person’s middle name.
Nickname 0..1 RichText Nickname associated with the person.
{Party} 0..1 Party Links to a Party instance. For associating a political party with the person.
Prefix 0..1 RichText A prefix associated with the person, e.g., Mr.
Profession 0..1 InternationalizedText Person’s profession.
Suffix 0..1 RichText A suffix associated with the person, e.g., Jr.
Title 0..1 InternationalizedText A title associated with the person.

The PhysicalContest Class

Image of PhysicalContest

For the appearance of a contest on a particular ballot style with physical details such as the locations and shapes of contest option positions.

Property Multiplicity Type Property Description
{BallotFormat} 1 BallotFormat For associating a ballot format with a physical contest.
{Extent} 0..* BoundedObject The extent of the contest. If the contest spans multiple sections of the ballot (e.g. columns or pages), then multiple extents may be provided.
{FiducialMark} 0..* FiducialMark For associating a ordered physical contest with one or more local fiducial marks appearing near the contest.
{PhysicalContestOption} 0..* PhysicalContestOption The contest options associated with the contest, including physical details.

The PhysicalContestOption Class

Image of PhysicalContestOption

For associating a ContestOption to its physical manifestation. Each PhysicalContestOption is specified in terms of a particular BallotFormat. A PhysicalContestOption may have multiple OptionPosition instances, for voting methods that require it (e.g. rank choice voting). WriteInPosition specifies the response area where name(s) may written-in.

Property Multiplicity Type Property Description
{ContestOption} 0..1 ContestOption For associating a PhysicalContestOption with a ContestOption. This should always be provided unless the contest option is for a write-in.
{OptionPosition} 1..* OptionPosition For defining locations where a selection can be indicated.
{WriteInPosition} 0..* WriteInPosition For defining locations where a name can be hand-written.

The Schedule Class

Image of Schedule

For defining a schedule associated with a particular election office or location. ContactInformation includes Schedule.

Property Multiplicity Type Property Description
{Hours} 0..* Hours For specifying a range of hours for a schedule.
IsOnlyByAppointment 0..1 Boolean If an appointment is only by appointment; assumed to be “no” if not present.
IsOrByAppointment 0..1 Boolean If an appointment can by appointment presumably as desired; assumed to be “no” if not present.
IsSubjectToChange 0..1 Boolean If an appointment may be subject to change; assumed to be “no” if not present.
Label 0..1 String For use as needed and compatibility with the VIP schema.
StartDate 0..1 date For the starting date of the schedule.
EndDate 0..1 date For the ending date of the schedule.

The Shape Class

Image of Shape

For defining a geometric shape. Geometry can be used to represent content on a physical ballot style, such as for associating an OptionPosition to its shape. It is also used by FiducialMark to define the shape it takes..

 

Strokes when applied, are applied evenhanded.

Property Multiplicity Type Property Description
FillColor 0..1 HtmlColorString For fiducial marks only. If not specified, no fill is assumed.
ShapeType 1 ShapeType The shape this Geometry represents.
StrokeColor 0..1 HtmlColorString The color of the stroke. If no color is specified, assume black (what XFA does)
StrokeWidth 0..1 float The width of the stroke in the measurement units of the BallotFormat associated with the PhysicalContest.

The SpatialDimension Class

Image of SpatialDimension

For defining the spatial layout of a GpUnit, e.g., a map or a spatial extent (a polygon that shows the related area) for various purposes, including to visualize election results, to understand the composition of districts, or to determine whether GpUnit instances are properly related. GpUnit includes SpatialDimension.

Property Multiplicity Type Property Description
MapUri 0..* AnnotatedUri Typically a URI to a map of the GpUnit.
{SpatialExtent} 0..1 SpatialExtent For associating a GpUnit element’s spatial extent information.

The SpatialExtent Class

Image of SpatialExtent

SpatialDimension includes SpatialExtent for defining a GpUnit instance’s spatial extent data and the format used for the spatial extent.

Property Multiplicity Type Property Description
Coordinates 1 RichText The data coordinates constituting the spatial extent.
Format 1 GeoSpatialFormat Enumerated type for the format used, e.g., gml, kml, wkt, etc.

The Term Class

Image of Term

For describing information about an office term. Term is included by Office.

Property Multiplicity Type Property Description
Label 0..1 String For use as needed and compatibility with the VIP schema.
StartDate 0..1 date Start date for the current term of the office.
EndDate 0..1 date End date for the current term of the office.
Type 0..1 OfficeTermType Enumerated type of term, e.g., full-term, unexpired-term, etc.