Skip to content

ballot_layout_considerations

cwulfman edited this page Sep 5, 2022 · 2 revisions

Ballot Layout Considerations

Introduction

NIST-1500-100 is called the “Election Results Common Data Format Specification”; from its Executive Summary:

This publication presents a common data format (CDF) for pre-election setup information and postelection results reporting. The format, known as the Election Results Common Data Format Specification Version 2.0, is comprehensive and detailed in its coverage of election results-related data and at the same time very flexible, able to accommodate election scenarios used throughout the United States.

TrustTheVote is capitalizing on NIST-1500-100’s broad scope by using it as the canonical format for its Election Definition Files (EDFs): the files that carry all the information used by ElectOS applications to create, distribute, and process ballots. The advantages of this strategy are several, including all those accrued by using an widely adopted open standard, but there are some disadvantages as well: in particular, the common data format is not tailored to any particular application.

Nowhere is this more evident than in its representation of Ballot Styles. Law Insider provides several definitions of Ballot Style, including the following:

Ballot style means a specific ballot layout or content for an election. The ballot style is the presentation of the unique combination of contests and candidates for which the voter is eligible to vote. It includes the order of contests and candidates, the list of ballot positions for each contest, and the binding of candidate names to ballot positions within the presentation. Multiple precincts may use a single ballot style. Multiple styles may appear in a single precinct where voters are split between two or more districts or other categories defining voter eligibility for particular contests and candidates.

NIST-1500-100 defines ballot styles as data structures “containing contest and candidate information in the order as [sic] they appear on the ballot at specific precincts or split precincts.” These data structures, or classes, are not finely tailored to the design of ballots: they do not specify typefaces, font sizes, spacing, pagination, or indeed anything about the layout of information on a printed page or on a screen other than order of presentation.

The remainder of this document, then, comprises guidelines, hints, suggestions, and best practices for designers of ballots (or designers of software that generates ballots automatically from EDFs).

Anatomy of a BallotStyle

NIST-1500-100 was designed so that election officials in large jurisdictions could use a single document (an XML file or a JSON file) to specify and report on elections with many contests, many candidates, in many precincts. To keep such files from growing prohibitively large, the specification designers chose to make heavy use of pointers, or references, to commonly-used elements rather than duplicating them wherever they were needed. A single ballot style in a specification for a county-wide election might look like the following; a single EDF might contain hundreds of ballot styles.

{
    "@type": "ElectionResults.BallotStyle",
    "GpUnitIds": ["recFIehh5Aj0zGTn6"],
    "OrderedContent": [
        {
            "@type": "ElectionResults.OrderedContest",
            "ContestId": "recsoZy7vYhS3lbcK",
            "OrderedContestSelectionIds": [
                "recQK3J9IJq42hz2n",
                "reccUkUdEznfODgeL",
                "recPod2L8VhwagiDl"
            ]
        },
        {
            "@type": "ElectionResults.OrderedContest",
            "ContestId": "recthF6jdx5ybBNkC",
            "OrderedContestSelectionIds": [
                "recJvikmG5MrUKzo1",
                "recigPkqYXXDJEaCE",
                "recbN7UUMaSuOYGQ6",
                "recbxvhKikHJNZYbq",
                "recvjB3rgfiicf0RP",
                "recYurH2CLY3SlYS8",
                "recI5jfcXIsbAKytC",
                "recn9m0o1em7gLahj"
            ]
        },
        {
            "@type": "ElectionResults.OrderedContest",
            "ContestId": "recIj8OmzqzzvnDbM",
            "OrderedContestSelectionIds": [
                "recKD6dBvkNhEU4bg",
                "recTKcXLCzRvKB9U0",
                "recqq21kO6HWgpJZV"
            ]
        },
        {
            "@type": "ElectionResults.OrderedContest",
            "ContestId": "recqPa7AeyufIfd6k",
            "OrderedContestSelectionIds": [
                "recysACFx8cgwomBE",
                "recabXA9jzFYRmGXy"
            ]
        },
        {
            "@type": "ElectionResults.OrderedContest",
            "ContestId": "recWjDBFeafCdklWq",
            "OrderedContestSelectionIds": [
                "rec7mVWjUH6fmDxig",
                "reccIHOhUfJgJkqS7"
            ]
        }
    ]
}

This document is concerned with the pre-election use case for NIST-1500-100; particularly as it might be used to produce ballots.

Retain the Order of OrderedContests as Specified

It is the responsibility of the person creating the EDF to define its ballot styles correctly; the ballot designer must not make assumptions about unexpected ordering or missing data values.

For example: the usual order for contests on ballots is the following: federal, state, multi-county, county, sub-county municipal, and sub-county other-than-municipal. This order is conventional, however; it is not mandatory. Therefore, if ballot designers encounter EDFs with BallotStyles whose OrderedContent elements (OrderedHeaders and OrderedContests) do not appear in this order, they should resist the temptation to re-order them on the printed ballot.

Contests

  • use the BallotTitle and BallotSubTitle attributes in printed headers; use the string associated with the language of the ballot
  • list voter choices (Candidate Selections or Ballot Measure Selections) in the order they appear in the ballot style

Candidate Selections

  • Candidate Selections reference one or more Candidate elements. When printing the name(s) of the candidate(s), use the BallotName attribute and select string associated with the language of the ballot
Clone this wiki locally