GpUnit and related elements

A geopolitical unit, or GpUnit, describes any physical or virtual unit of representation or vote/seat aggregation. Use this entity to define geopolitical units such as cities, districts, jurisdictions, or precincts to associate contests, offices, vote counts, or other information with those geographies.


The following entities contain references to GpUnit:

  • Election, Contest, and Office contain a required reference to a GpUnit element, which defines the jurisdiction of the election, contest, or office respectively.
  • SummaryCounts and VoteCounts reference GpUnit to link summary or vote counts to GpUnit elements that are defined for precincts or other types of geopolitical units.

The parent-child relationships for similar GpUnit entities need to be consistent. For example, all congressional districts must have a single parent, which is a state, even if a particular congressional district is wholly contained within a county.


The following table describes the attributes for GpUnit:

Attribute Required? Type Description
objectId Required ID Unique internal identifier that's used by other elements to reference this element.


The following table describes the elements for GpUnit:

Element Multiplicity Type Description
ComposingGpUnitIds 0 or 1 IDREFS

Unique identifier for one or more GpUnit elements. Used to reference other GpUnit elements and associate them with the parent GpUnit. Each referenced element must be defined for a geopolitical unit that's contained within the parent GpUnit element.

Use the ComposingGpUnitIds element to only represent direct children of that particular GpUnit. For example, if Precincts A and B are in City M, and City M is in County X, then list Precincts A and B as children of City M. Then City M is a child of County X, but don't make Precincts A and B children of County X.

ExternalIdentifiers 0 or 1 ExternalIdentifiers

Associates an ID with the GpUnit, such as a district's or city's code.

When you include ExternalIdentifiers, if the type isn't listed in the enumeration IdentifierType, use a Type of other and provide your custom type in OtherType.

Name 0 or 1 string Name of the geopolitical unit.
SummaryCounts 0 or more SummaryCounts

Ballot summary counts, such as overvotes, undervotes, and total ballots. They can optionally be broken down by device type and ballot class.

GpUnit includes SummaryCounts to provide summary counts for the corresponding geopolitical geography.


Use ReportingUnit to define a geopolitical unit such as state, city, township, or precinct with the ReportingUnitType enumeration.

Election references this element to identify the geographical scope of the election. In this case, the ReportingUnit element that defines the scope of the election can include ElectionAdministration to provide election authority-related information.

A ReportingUnit can be the child of, at most, one other ReportingUnit. However, if a ReportingUnit needs multiple parents because it legitimately spans across parent ReportingUnit elements, reach out to your Google point of contact for guidance.

The XML syntax for ReportingUnit is <GpUnit xsi:type="ReportingUnit" ... />.


The following table describes the elements for ReportingUnit:

Element Multiplicity Type Description
AuthorityIds 0 or 1 IDREFS The objectId of one or more Person elements that describe an authority responsible for the reporting unit.
ContactInformation 0 or 1 ContactInformation Associates contact information with the reporting unit, such as an address of a vote center.
CountStatus 0 or more CountStatus Provides various counting statuses for different types of ballots or other items.
ElectionAdministration 0 or 1 ElectionAdministration Provides information about an election authority. Use this when the reporting unit serves as the authority in the election.
InternationalizedName 1 InternationalizedText The localized, full, canonical name of the geo-political unit, not an abbreviation. For example, "Alaska" or "New York's 14th congressional district."
IsDistricted 0 or 1 boolean The IsDistricted boolean can be used in a number of ways. It isn't strictly necessary because it's possible to identify districts by their Type sub-element. You can also examine the Contest element's ElectoralDistrictId sub-element, which links to the electoral district associated with the contest. However, if a district is defined but not linked from a contest, or if the type of district is given with OtherType, then IsDistricted is necessary to identify the GpUnit as a district. The IsDistricted boolean can also be used to signify that a GpUnit that's defined as a jurisdiction, like a city, is also used as a district, for example for city-wide contests.
IsMailOnly 0 or 1 boolean Indicates whether the reporting unit handles only mail-in or absentee ballot elections. If not present, the default value is false.
SubUnitsReported 0 or 1 integer Number of associated subunits, such as precincts, that have completed reporting.
TotalSubUnits 0 or 1 integer Total number of associated subunits such as precincts.
Type 1 ReportingUnitType

Enumerated type of the reporting unit, such as state, city, district, or precinct.

If the reporting unit type isn't listed in the enumeration ReportingUnitType, use a Type of other, and provide your custom reporting unit type in OtherType.

OtherType 0 or 1 string Used to specify the type of geopolitical unit when the value of ReportingUnitType is other.
VotersParticipated 0 or 1 integer The number of voters who have participated in the election. That is, how many have shown up at the polls, which includes those who didn't cast ballots.
VotersRegistered 0 or 1 integer The number of registered voters that reside within the boundaries of the geopolitical unit.



    <GpUnit objectId="ru0081" xsi:type="ReportingUnit">
      <ComposingGpUnitIds>ru_wahlkreis1 ru_wahlkreis2</ComposingGpUnitIds>
        <Text language="en">Bremen</Text>


    "GpUnit": [
        "@type": "ReportingUnit",
        "objectId": "ru0081",
        "ComposingGpUnitIds": [
        "ExternalIdentifiers": {
          "ExternalIdentifier" : [
              "Type": "other",
              "OtherType": "stable",
              "Value": "stable-state-0081"
              "Type": "ocd-id",
              "Value": "ocd-division/country:de/state:hb"
        "InternationalizedName": {
          "Text": [
              "language": "en",
              "value": "Bremen"
        "Name": "Bremen",
        "Type": "state"