> For the complete documentation index, see [llms.txt](https://docs.voting.works/vxsuite-tdp-v4.1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voting.works/vxsuite-tdp-v4.1/system-overview.md).

# System Overview

<figure><img src="https://629495352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZ4bC0rbmogHEUUuMLAUa%2Fuploads%2FeLWCNJjMTFT75lsbiFfQ%2Fimage.png?alt=media&amp;token=9effc519-90ad-464c-829e-c5a03954586f" alt=""><figcaption><p>Top-level system diagram</p></figcaption></figure>

The VotingWorks voting system (a.k.a. **VxSuite**) consists of six primary components:

* **VxAdmin**: election setup and election results manager
* **VxMark**: tabletop ballot-marking device (BMD)
* **VxMarkScan**: free-standing ballot-marking device (BMD)
* **VxScan**: precinct scanner
* **VxCentralScan**: batch scanner
* **VxPrint**: ballot-on-demand printer

Voters mark paper [bubble ballots](/vxsuite-tdp-v4.1/system-overview/hand-marked-ballots.md) (pre-printed or printed on VxPrint) by hand or use ballot marking devices (VxMark & VxMarkScan) to mark and print ballots. Ballots are read and counted by tabulating devices (VxScan & VxCentralScan), which create [cast vote records](/vxsuite-tdp-v4.1/system-overview/cast-vote-records.md) for adjudication and aggregation on VxAdmin. VotingWorks considers read and counted ballots as the same.

An election begins with generating an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md) and [bubble ballots](/vxsuite-tdp-v4.1/system-overview/hand-marked-ballots.md) using an external system.

## VxAdmin

VxAdmin is where the election administrator performs election setup tasks and manages election results. At the beginning of an election, the user configures VxAdmin with an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md). Once configured, VxAdmin is used for two key election setup tasks:

* Exporting a copy of the election package to USB drives with a [digital signature](/vxsuite-tdp-v4.1/system-security-auditing-and-logging/software-security/artifact-authentication.md). The election package is used to configure VxMark, VxMarkScan, VxPrint, VxScan, and VxCentralScan, and it **must** be digitally signed by VxAdmin.
* Programming [role-based smart cards](/vxsuite-tdp-v4.1/system-overview/user-roles.md) that will be used to authenticate on all machines. While the "System Administrator" role is election-agnostic, the "Election Manager" and "Poll Worker" roles are election-specific and cards must be programmed for every election.

VxAdmin is later used to load, store, and aggregate cast vote records from the scanners. The results are available for review or export in [several results formats](/vxsuite-tdp-v4.1/system-overview/vxadmin-results-exports.md). Election administrators can mark results as official, after which no new results can be added.

* [VxAdmin Function](/vxsuite-tdp-v4.1/system-overview/vxadmin-function.md)
* [VxAdmin, VxPrint, & VxCentralScan Hardware](/vxsuite-tdp-v4.1/system-overview/vxadmin-and-vxcentralscan-hardware.md)

## VxMark

VxMark is the system's tabletop ballot-marking device (BMD) that provides an accessible voting experience. At the beginning of an election, it is configured with an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md) from VxAdmin. Once configured, a voter can make vote selections in various interaction modes according to their needs.

The following input modes are supported:

* Touch, using the touchscreen
* Tactile, using the accessible controller
* Limited Dexterity, using a sip-and-puff device or other dual-switch input

The following output modes are supported:

* Visual, with options to change color contrast and text size
* Audio, with navigation instructions and contest details read to the user over headphones

The voter can also adjust the language based on translations included in the election package.

After the voter finishes their vote selections, VxMark prints a machine marked ballot via the connected COTS printer. Depending on the jurisdiction's system settings, the printed ballot may be a [bubble ballot](/vxsuite-tdp-v4.1/system-overview/hand-marked-ballots.md) or a [summary ballot](/vxsuite-tdp-v4.1/system-overview/machine-marked-ballots.md). After reviewing the ballot and confirming their selections, the voter takes their ballot and casts it on VxScan, the precinct tabulator, or inserts their ballot into a ballot box.

* [VxMark Function](/vxsuite-tdp-v4.1/system-overview/vxmark-function.md)
* [VxMark Hardware](/vxsuite-tdp-v4.1/system-overview/vxmark-hardware.md)

## VxMarkScan

VxMarkScan is the system's free-standing ballot-marking device (BMD) that provides an accessible voting experience. At the beginning of an election, it is configured with an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md) from VxAdmin. Once configured, a voter can make vote selections in various interaction modes according to their needs.

The following input modes are supported:

* Touch, using the touchscreen
* Tactile, using the accessible controller
* Limited Dexterity, using a sip-and-puff device or other dual-switch input

The following output modes are supported:

* Visual, with options to change color contrast and text size
* Audio, with navigation instructions and contest details read to the user over headphones

The voter can also adjust the language based on translations included in the election package.

After the voter finishes their vote selections, VxMarkScan prints a [summary ballot](/vxsuite-tdp-v4.1/system-overview/machine-marked-ballots.md) and presents it to the voter. The ballot is scanned (but not cast) so the interpreted results can be presented to the voter on-screen. After reviewing the ballot and confirming their selections, the ballot is cast and ejected into the attached ballot box. At a later time, depending on election procedures, the ballot will be removed from the ballot box for tabulation.

* [VxMarkScan Function](/vxsuite-tdp-v4.1/system-overview/vxmarkscan-function.md)
* [VxMarkScan Hardware](/vxsuite-tdp-v4.1/system-overview/vxmarkscan-hardware.md)

## VxScan

VxScan is the system's precinct scanner. At the beginning of an election, it is configured with an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md) from VxAdmin. The election package specifies the ballot layouts. The polls are opened by a poll worker after which casting ballots is allowed. Opening polls prints [a tally report](/vxsuite-tdp-v4.1/system-overview/vxscan-polls-reports.md) which is empty because no ballots have been scanned, a.k.a. the zero report.

Voters cast ballots by inserting their ballots into the scanner in any orientation. After interpreting the scanned ballot, the scanner will drop the ballot into the ballot box and inform the voter that their ballot was successfully cast. During voting, VxScan continuously exports [cast vote records](/vxsuite-tdp-v4.1/system-overview/cast-vote-records.md) to an attached USB drive.

If the election is configured to support second-chance voting and the ballot triggers a configured adjudication reason (e.g. it has an overvote), the scanner will hold the ballot while the voter is notified of the issues on their ballot. The voter then chooses whether to cast their ballot or return their ballot in order to update or spoil it.

When polls are closed, the CVR export is completed and a [polls closed report](/vxsuite-tdp-v4.1/system-overview/vxscan-polls-reports.md) prints. The polls closed report includes the vote tallies of all ballots cast at the scanner while polls were open. Unlike the vote tallies eventually exported from VxAdmin, the vote tallies at VxScan do not contain any post-voting adjudication information such as write-in adjudication. The CVR export on the USB drive is then taken to VxAdmin for adjudication, aggregation, and reporting.

* [VxScan Function](/vxsuite-tdp-v4.1/system-overview/vxscan-function.md)
* [VxScan Hardware](/vxsuite-tdp-v4.1/system-overview/vxscan-hardware.md)

## VxCentralScan

VxCentralScan is the system's batch scanner, often used to scan absentee or provisional ballots. At the beginning of an election, it is configured with an [election package](/vxsuite-tdp-v4.1/system-overview/election-package.md) from VxAdmin. The election package specifies the ballot layouts.

Ballots are inserted in the batch scanner's hopper and a batch scan is triggered from VxCentralScan. The ballots are scanned and interpreted in succession until the hopper is empty. If a ballot triggers a configured adjudication reason (e.g. it has an overvote), scanning will pause and the ballot will be displayed on screen, at which point the user can choose to tabulate the ballot anyway or remove it without tabulating.

After scanning is complete, the user can export the [cast vote records](/vxsuite-tdp-v4.1/system-overview/cast-vote-records.md) to a USB drive and take the USB drive to VxAdmin for adjudication, aggregation, and reporting.

* [VxCentralScan Function](/vxsuite-tdp-v4.1/system-overview/vxcentralscan-function.md)
* [VxAdmin, VxPrint, & VxCentralScan Hardware](/vxsuite-tdp-v4.1/system-overview/vxadmin-and-vxcentralscan-hardware.md)

## VxPrint

VxPrint is the ballot-on-demand component for VxSuite. VxPrint is used by poll workers or election managers to print ballots for an election programmed in VxSuite. The three main use cases that VxPrint supports are:

1. Printing ballots on demand at a vote center, which may have too many ballot styles to allow printing ballots in advance;
2. Printing ballots on demand at a precinct on election day in a jurisdiction where all or most ballots are on demand;
3. Printing moderate quantities of ballots in advance of an election, as needed, to supplement third-party printed ballots. In smaller jurisdictions, for example, VxPrint may be used to print absentee ballots while the larger quantities of election day ballots are printed by a third-party printer.

VxPrint tracks the quantities printed for each ballot style and allows the user to view and export a "Ballots Printed Report" at any time.

VxPrint consists of two main pieces of hardware - a commercial off-the-shelf laptop and laser printer. The laser printer is capable of printing any ballot from 11" to 22" long, which is the maximum length supported by the system.

* [VxPrint Function](/vxsuite-tdp-v4.1/system-overview/vxprint-function.md)
* [VxAdmin, VxPrint, & VxCentralScan Hardware](/vxsuite-tdp-v4.1/system-overview/vxadmin-and-vxcentralscan-hardware.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.voting.works/vxsuite-tdp-v4.1/system-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
