# Maine Political Data — Voter Registration Master Dataset (v7.2)

## What changed in v7.2 (2026-10-15)

Matt decided on 2026-10-15 that the flagged rows should be made accurate where the real numbers can be worked out. Every town-year v7.1 flagged (the party test, the named audit cases and the small-unit and November total tests, 118 in all) was reviewed one by one. **17 were corrected; 101 stay flagged** because the right figure cannot be determined. The changes are made by `fix_v7.2.py` (re-runnable on a v7.1 unzip) and checked by `verify_v7.2.py`; every reviewed case, with the printed and corrected figures and the reason, is in `v7.2_corrections.csv`. Details are in FLAGS.md under "What changed in v7.2".

**Rules (Matt, 2026-10-15).** *Registration:* "I want the data to be accurate and consistent" - a clear Republican/Democratic swap is swapped back (the Lovell 1962 / Winterport 1966 rule, now applied to every case); a figure whose right value the town's own row proves is corrected; anything that cannot be determined stays as printed and flagged. *Rule 19 exception:* a single town figure proved wrong by an official or printed total plus the town's own same-day figures is corrected; the printed figure is kept (here in the row's `correction_note` / `imputation_note` and in `v7.2_corrections.csv`).

* **Republican/Democratic swaps undone (9 town-years):** Orrington 1956, Arundel 1962, Winterville Plt 1970, Andover and Ogunquit 1980, Kingman Twp 1982, Rangeley Plt June 2000 and Nov 2001, Dyer Brook Nov 2004. In each, both neighbouring reports show the reverse and swapping restores the series. Dallas Plt June 1990 had its Democratic and unenrolled figures transposed (75 / 32 for 32 / 75) and is swapped back the same way.
* **Registered total keyed as unenrolled (7 town-years):** Livermore Falls, Andover and Detroit Nov 1995; Eastport June 1996; Palermo Nov 1996; Stockholm June 2000; Vienna Nov 2001. The SOS put the town's registered total in the unenrolled cell, so its total counted the enrolled voters twice (Livermore Falls: 2,424 in the unenrolled cell, 3,884 total). The registered total is now the figure in that cell (2,424) and unenrolled is that minus the enrolled voters (964). Both fit the town's reports either side. This is the same error as Orland 1995, corrected in v5.
* **How corrected rows are marked:** `imputation = sos_error_corrected` (the site's "corrected" marker), a plain-English note giving the printed figures (`imputation_note` in the precinct table; new column **`correction_note`** in `registration_town_wide.csv`, which also carries the older v5 correction notes), and `reliability` back to what it was before v7.1 flagged the row (`ok` or `derived_unenrolled`). The site shows these points again.
* **Left flagged, with the reason recorded:** Solon 1980 (swapping fixes the Republicans but not the Democrats), North Yarmouth 1980 (Pownal's copied 222 R; the real figure is unknown), Orrington June 2000 (DEM 69: which digit was dropped cannot be proved), Bowdoin Nov 1994 and its June 1996 carry-forward (DEM 990, probably 390 but not provable), Whitefield 1978, Holden 1962, Van Buren 1958, Bath 1995, Waltham Nov 2006, New Canada June 2002, Medway Nov 1990 and the other party-test, partial-report, votes-cast and all-zero rows.
* **County and state rows** are sums of towns, so they move with the corrections. The SOS's printed county totals include the wrong figures as printed (checked for every corrected year), so the county rows now differ from the printed totals by the size of each correction; `v7.2_corrections.csv` gives the before and after difference. Statewide registered totals move in five snapshots: Nov 1995 955,819 (was 957,927), June 1996 960,048 (−985), Nov 1996 1,000,766 (−526), June 2000 882,197 (−140), Nov 2001 922,997 (−248); `snapshots.csv` `active_total` follows.

Counts after v7.2: unchanged rows (89 active snapshots, 62,566 precinct rows, 45,090 town rows). Flags in `registration_town_wide.csv`: 77 `implausible` (was 94), 94 `partial_report`, 112 `stale_report`, 99 `data_unavailable`.

## What changed in v7.1 (2026-10-14)

A clean-up release from the second data audit. No printed figure was changed (except blanking zeros that meant "not reported"); flags were added so the site can leave doubtful points off the charts. The changes are made by `fix_v7.1.py` and checked by `verify_v7.1.py`, both in this folder; every changed flag and its evidence is in `v7.1_reliability_changes.csv`. Details are in FLAGS.md under "What changed in v7.1".

* **Party-level glitches are now flagged.** The old test looked only at the registered total, so a wrong Republican or Democratic figure next to a sensible total was plotted. A new party test flags a Republican or Democratic count more than 2 times off both neighbouring reports when the total is in line (42 town-years). Another 16 named cases from the audit are flagged too: probable REP/DEM swaps such as Orrington 1956, Kingman Twp 1982, Dyer Brook 2004, Arundel 1962 and Andover / Solon / Ogunquit 1980; a dropped digit (Orrington June 2000); a mis-keyed 990 (Bowdoin Nov 1994) and its June 1996 carry-forward; and North Yarmouth 1980, which copies Pownal's cells. All of them are `implausible` and kept as printed. **[v7.2: the clear swaps are now swapped back; see v7.2.]**
* **Zeros and tiny partial reports.** Nine town-years the SOS printed as all zeros (Osborn and Mason Twp 1995, Benedicta Twp 2006, Orneville Twp 2005–06 and others) are now blank and `data_unavailable`. A second total test for small units (more than 1.5 times off both neighbours, neighbours at least 20) flags 40 more, including Cyr Plt June 1998 (17 registered).
* **November totals that are really votes cast.** In eleven total-only November figures the "registered" number is no higher than the ballots cast in the town that day, well below the reports on either side. Augusta Nov 1956 is one: 7,294 registered against 8,183 ballots. All eleven are now `implausible`.
* **`une_status` fixed on 59 rows** where nothing was derived: 24 rows with a total but no enrollment (including Old Orchard Beach and York 1956), 21 with enrollment but no total, and 14 unavailable rows. They are now `not_reported`, and `derived_unenrolled` becomes `ok`.
* **Smaller fixes:**
  * T3 ND BPP Nov 1994 and Nov 1995 are counted in Hancock, its county, instead of Penobscot, where the SOS listed it.
  * The OCR misreadings "Machtasport" and "MACHTAS" are corrected.
  * `snapshots.csv` notes that 2021-11-03 is the file's "as of" date (the election was Nov 2).
  * `units.csv`: Baring Plt is a `plantation`; `unit_type` is now the current status (Cary, Codyville, Oxbow North, Atkinson, Grand Falls, Barnard, Blanchard and Elliottsville → `unorganized township`); `former_names` now gives the deorganization years for Drew (2023), Oxbow (2017), Atkinson (2019) and Bancroft (2015).

Counts after v7.1: unchanged (89 active snapshots, 62,566 precinct rows, 45,090 town rows). `registration_town_long.csv` loses the 9 blanked zero rows' party cells. Flags in `registration_town_wide.csv`: 94 `implausible`, 94 `partial_report`, 112 `stale_report`, 99 `data_unavailable`.

## What changed in v7 (2026-10-14)

Two more of the SOS's biennial "Enrolled and Registered Voters" reports are in. On 2026-10-14 the Maine State Library sent Matt its copies of the **1974** report ("Enrolled and Registered Voters with Comparative Gubernatorial Votes and Congressional Votes") and the **1980** report ("Number of Enrolled and Registered Voters with Comparative Congressional Votes"); it does not hold 1972. The PDFs and the transcriptions are in `source_hist_files/scanned_sos_reports/transcriptions/` (`1974-EnrolledRegisteredVoters.pdf`, `1980-EnrolledRegisteredVoters.pdf`, `1974_transcribed.csv`, `1980_transcribed.csv`, the printed county totals and `v7_reconciliation.csv`). The changes are made by `fix_v7.py` and checked by `verify_v7.py`, both in this folder. Details are in FLAGS.md under "What changed in v7".

* **Three new snapshots:** June 11, 1974 (primary: Republican, Democratic and registered, unenrolled derived), November 5, 1974 (general election: registered total only) and June 10, 1980 (primary). The 1980 report has no general-election column.
* **1974 Cumberland County is missing:** the Library's copy has no Cumberland pages. Every Cumberland unit is `data_unavailable` in both 1974 snapshots; the Cumberland county row carries the summary page's printed figures (48,949 R / 37,551 D / 123,086 registered in June; 127,360 in November), so county, district and statewide totals are complete.
* **Other gaps, as printed by the SOS:** Grand Falls Plt has no November 1974 figure ("Grand Falls Plantation Missing"); Pleasant Point has no 1980 figures ("Information not reported").
* **Statewide:** June 1974 237,827 R / 212,195 D / 613,246 registered; November 1974 631,897 registered; June 1980 219,054 R / 242,099 D / 684,185 registered. These are sums of the towns (rule 19); the SOS printed 237,828 / 212,175 / 613,227 / 631,873 and 218,898 / 242,248 / 680,949. FLAGS lists every county where the towns do not add to the printed total.
* **Flags:** the partial/implausible test was re-run over the whole series. Danforth June 1980 (675 R / 248 D / 236 registered as printed) is `partial_report`; no existing row's flag changed.

Counts after v7: 89 active snapshots and 62,566 precinct rows (+1,511). `registration_town_wide.csv` has 45,090 rows; 90 town-years are `data_unavailable` (36 before, plus 52 Cumberland 1974, Grand Falls Nov 1974 and Pleasant Point 1980). The inactive tables are unchanged.


## What changed in v6.2 (2026-10-07)

The 1960 and 1962 gaps are filled. On 2026-10-07 the Maine State Library / State Archives sent Matt complete copies of the SOS booklets "Number of Enrolled and Registered Voters with Comparative Gubernatorial [and Presidential] Votes" for 1960 and 1962. They are in `source_hist_files/scanned_sos_reports/transcriptions/` as `1960_complete_StateLibrary.pdf` and `1962_complete_StateLibrary.pdf`. The changes are made by `fix_v6.2.py` and checked by `verify_v6.2.py`, both in this folder. Details are in FLAGS.md under "What changed in v6.2".

* **1960:** the 48 municipalities that were `data_unavailable` (the middle Aroostook page and the second Washington page, missing from the old scan) now have their printed figures: 33 in Aroostook, 15 in Washington. Topsfield (Washington), which the old scan did not show at all, gets a 1960 row. Wade (104 registered) and Codyville Plt (21) print no enrollment, so they have a registered total only. Connor Twp ("Limestone Connor District") prints votes but no enrollment or registration, so it stays `data_unavailable`.
* **1962:** the 28 York towns now have their registered totals, so they get derived unenrolled like every other 1962 town.
* **County rows:** Aroostook and Washington 1960 and York 1962 now equal the sum of their towns, like every other county row. Their Republican, Democratic and registered totals are unchanged (they were already the SOS's printed totals). Unenrolled for Aroostook 1960 is now 15,679 (was 15,738) and for Washington 1960 4,224 (was 4,370). The difference is the towns with a total but no enrollment (Wade, Codyville, Marshfield) and the five new towns where June enrollment exceeds the fall total, whose unenrolled is left blank as it is everywhere else. Statewide 1960 unenrolled is now 172,071 (was 172,276). Statewide Republican, Democratic and registered totals for 1960 and 1962 are unchanged.
* **Full cross-check:** every 1960 and 1962 town's Republican, Democratic and registered figures were checked against the new copies. No figure differs from v6.1. Lovell 1962 is printed 28 R / 411 D in the new copy too, so v6.1's correction (411 R / 28 D) stays.
* **Flags:** the partial/implausible test was re-run. None of the filled rows is flagged. Grand Lake Stream Plt 1962 stays `partial_report`; its note now cites 155 in 1960 as the previous report.
* **By-product:** `1960_1962_complete_StateLibrary_transcribed.csv` (in `transcriptions/`) holds every column of both booklets, including the town Governor and 1960 Presidential votes.

Counts after v6.2: 86 active snapshots and 61,055 precinct rows (+1, Topsfield 1960). `registration_town_wide.csv` has 43,579 rows (+1) and `registration_town_long.csv` 174,059 (+164). Only 36 town-years are still `data_unavailable`. The inactive tables are unchanged.

## What changed in v6.1 (2026-10-05)

A clean-up release. It adds flags so the site can see which points to trust. No printed figure was changed. Details are in FLAGS.md under "What changed in v6.1". The changes are made by `fix_v6.1.py` and checked by `verify_v6.1.py`, both in this folder.

* **1960:** the Aroostook and Washington county rows and the statewide row are now the SOS's printed totals, the way York 1962 already was. The statewide total is now 537,922 (v6 had 519,492, which was only the pages that survive). The 48 municipalities on the two missing pages now have explicit `data_unavailable` rows.
* **Partial and implausible municipal reports:** 79 pre-2007 town-years are flagged (64 `partial_report`, 15 `implausible`). They include Bangor Nov 2005, Berwick Nov 1995, Kingman Twp Nov 1995 and Auburn Jan 2004. Every value is kept as printed.
* **Stale repeats:** 112 pre-2007 town-years that repeat the previous report cell for cell are flagged `stale_report`. These are probably the SOS reusing a municipality's previous return.
* **New columns:** `une_status` (whether unenrolled is reported or derived), plus `reliability` and `reliability_note`. Both are in `registration_precinct.csv` and `registration_town_wide.csv`; `registration_town_long.csv` gets `une_status` and `reliability`.
* **Notes added to `snapshots.csv`:**
  * 2023-11-07 is really the SOS's January 18, 2024 extract.
  * 2022-11-08 is the November 18, 2022 extract.
  * The 2011-08-17 inactive count is an isolated dip.
  * The 2010-06-01 file has no Big Lake Twp line.
  * In 1998, Green enrollees are folded into unenrolled.
  * The 1960 unenrolled spike is an artefact of how unenrolled was derived.
* **FLAGS.md:** a note that Edmunds Twp votes at Dennysville, so turnout joins must add the two together.

Counts after v6.1: 86 active snapshots and 61,054 precinct rows (+48). `registration_town_wide.csv` has 43,578 rows (+48); `registration_town_long.csv` still has 173,895, since unavailable town-years have no long rows. The inactive tables are unchanged.

- `units.csv`: `megis_geocode`, `gnis_id` and `census_geoid` are written as whole numbers (v6 printed them with a trailing ".0"); MPD-0139 Perkins Twp (Franklin) no longer points at the Census "Perkins UT", which is Swan Island in Sagadahoc (census-data v1.2) — its parent UT is South Franklin.

## About the dataset

Built 2026-09-30 (v6) from the Maine Secretary of State "Registered & Enrolled Voters" files and the SOS's earlier printed reports. 89 active snapshots, Sept 1954 – Mar 2026, 538 political units, 62,566 precinct rows (v7); plus 44 inactive-status snapshots (June 2007 – March 2026, one for every active snapshot from 2007 on) held in separate tables. Fourteen of the snapshots (Jan 2004 and thirteen between-election dates 2008–2014) were recovered from Wayback Machine copies of files the SOS no longer posts; they are marked in `snapshots.csv` and their source files are in `source_sos_files/wayback/` and `source_sos_inactive_files/wayback/`. 2007 onward are active-voter counts from the SOS website; 1994–2006 are registered-voter counts from Wayback Machine copies of the SOS files; **1954–2006 (v5): 25 further snapshots were transcribed from scanned SOS printed reports** ("Enrolled and Registered Voters", 1954–1970 and 1984, and "Voter Registration and Party Enrollment", 1986–2006) supplied as PDFs. **v6 adds four snapshots from the 1970–1984 gap** — June 1976, June and November 1978, and June 1982 — transcribed from the Law and Legislative Reference Library's scans of the SOS's biennial "Enrolled and Registered Voters" reports (lldc.mainelegislature.org), which the SOS Elections Division no longer holds; v7 adds June and November 1974 and June 1980 from the Maine State Library's copies (the 1974 copy lacks Cumberland County); the 1972 report has not been found (see FLAGS, "v6" and "v7"). Every one of those was reconciled town-by-town to the report's own printed county totals and the county totals to its printed state totals; the scans and transcriptions are in `source_hist_files/scanned_sos_reports/` (the three Law Library PDFs are in its `law_library_scans/` subfolder). See FLAGS.md ("v5") for how the older reports were read.

For 2007–2026 every number was taken directly from the SOS's own text/Excel files (in `source_sos_files/`); your hand-built CSVs were compared row-by-row against them and matched exactly. For 1994–2006 the numbers come from the workbooks in `source_hist_files/` and were reconciled against each file's own printed totals.

## Files

| File | Grain | Description |
|---|---|---|
| `units.csv` | one row per political unit | Master unit list with internal ID, canonical name, county, unit type, Maine GIS GEOCODE, Census GEOID, GNIS ID, every SOS spelling seen, first/last snapshot, `former_names` (earlier names the SOS used for the same place, with the year the name changed — for a note on the town's page), continuity flags. **This is the table to key everything on.** |
| `label_crosswalk.csv` | one row per raw SOS spelling | Maps every one of the 1,551 distinct county+label strings (including the spellings used in the 1954–2006 printed reports) the SOS has ever used to a `unit_id`, with match method and confidence. |
| `inactive_registration_*.csv` | same grains as below | Inactive-status voters, 2007–2025, partitioned from the active data. Never mixed into the `registration_*` tables; join on `unit_id` + `snapshot_date` when a combined view is wanted. |
| `registration_precinct.csv` | one row per SOS row | Precinct-level data exactly as reported, plus `unit_id`, normalized ward/precinct, district codes, party counts, reported total, and audit columns. |
| `registration_town_wide.csv` | unit × snapshot | Precinct rows summed to the unit. One column per party. |
| `registration_town_long.csv` | unit × snapshot × party | Same data in long form (unit_id, snapshot_date, party, count). Parties only have rows in snapshots where the SOS reported them — this gives you the broken lines you wanted. |
| `registration_county_wide.csv` | county × snapshot | County roll-ups. |
| `registration_statewide.csv` | snapshot | Statewide roll-ups. |
| `snapshots.csv` | snapshot | Date, election, source, row counts, parties reported, notes on quirks. |
| `parties.csv` | party | Party codes, full names, SOS column letter, when each appears. |
| `source_sos_files/` | — | The official SOS active files each 2007–2026 snapshot was built from (`wayback/` holds the recovered files). |
| `source_sos_inactive_files/` | — | The official SOS inactive files. |
| `source_hist_files/` | — | The 1994–2006 workbooks (Wayback Machine copies of SOS files), and `scanned_sos_reports/`: the 1954–2006 report PDFs, the index spreadsheet, and one transcription CSV per report with its printed county totals (`transcriptions/`). |
| `fix_v7.1.py`, `verify_v7.1.py`, `v7.1_reliability_changes.csv` | — | The v7 → v7.1 script, its checks (roll-up identities, long = wide, cell-by-cell diff against v7, named flags) and the list of every flag it changed with its evidence. |
| `fix_v7.py`, `verify_v7.py` | — | The v6.2 → v7 script (1974 and 1980 reports) and its checks. |
| `fix_v6.2.py`, `verify_v6.2.py` | — | The v6.1 → v6.2 script and its checks (roll-up identities, wide = long, printed 1960/1962 county totals, cell-by-cell diff against v6.1). |
| `fix_v6.1.py`, `verify_v6.1.py` | — | The v6 → v6.1 script and its checks (roll-up identities, wide = long, cell-by-cell diff against v6). |
| `reference/` | — | Maine GIS GEOCODES table and Census 2024 gazetteer used for the crosswalk. |

## Keys and identifiers

* `unit_id` — our stable internal key (`MPD-0001` …). One per Maine GIS GEOCODE. Never changes even when the SOS renames a unit (e.g. Cary Plt → Cary Twp).
* `megis_geocode` — Maine Office of GIS 5-digit code (field `GEOCODE` in the *Maine Town and Townships Boundary Polygons* layer). Use this to join to state boundary shapefiles for mapping. Every township is individually coded.
* `census_geoid` — 10-digit Census county-subdivision GEOID (state 23 + county FIPS + cousub). Use this for Census demographics and TIGER boundaries. The Census lumps unorganized townships into aggregate "UT" subdivisions, so several townships can share one GEOID; where the mapping wasn't certain from names alone it is left blank with `census_confidence = needs-spatial-join` (41 labels / ~25 units — all tiny townships).
* `gnis_id` — USGS GNIS feature ID, a third stable key that both Census and Maine GIS carry.

## Party codes

DEM Democratic · REP Republican · UNE Unenrolled · GRN Green Independent · LIB Libertarian · NLB No Labels · CON Constitution · AME Americans Elect · ALL Alliance · PEO People's · SOC Socialist · YES Yankee · IND Independent Party (a 1990s ballot-qualified party, distinct from unenrolled voters) · REF Reform.

## Audit columns in `registration_precinct.csv`

* `sum_matches_total` — party columns sum to the SOS's own TOTAL (true for all rows except three Eliot rows in 2010–2011 where the SOS's total is off by one).
* `une_source` — `reported` where the SOS file has an Unenrolled column (1986–1995 reports, 1994, 1997–2006 reports, 2007+); `derived (TOTAL minus enrolled parties)` for 1996–2004, June 1976, June 1978, June 1982 and June 1984; `derived across dates (...)` for 1954–1970, where the reports give party enrollment as of the June primary but registered voters as of the fall election, so unenrolled = registered − REP − DEM mixes two dates and is approximate (`... negative result suppressed` marks the 239 town-years where June enrollments exceed the fall registered total and unenrolled is left blank); `not applicable (total only)` for the six snapshots that carry a registered total but no enrollment (Nov 1956, Nov 1978, Nov 1984, Nov 1988, Nov 1990, Nov 1992).
* `imputation` / `imputation_note` — blank for reported data; `carried_forward`, `carried_back`, or `apportioned_from_combined` for the June 1996 repairs; `sos_error_corrected` / `sos_error_unrecoverable` for the seven 1962–1995 rows where a clear SOS entry error was fixed or blanked (v5) — each with a display-ready sentence explaining it. `combined_reported_total` holds the SOS's original combined figure for apportioned rows.
* `correction_note` (`registration_town_wide.csv`, since v7.2) — for every row with `imputation = sos_error_corrected` or `sos_error_unrecoverable`, the display-ready sentence saying what the SOS printed and what was corrected (the same text as the precinct table's `imputation_note`). Blank everywhere else. v7.2 added 17 corrected rows (see `v7.2_corrections.csv`).
* `carried_forward_flag` — true where figures were carried from a prior snapshot: the SOS's asterisked towns (2000, 2001, 2006; the SOS's own note says they did not submit figures) and the June 1996 carry-forwards.
* `district_source` — `reported`, `not reported`, or `inferred from 1996 files` (1994 rows; multi-district towns list every code, semicolon-separated).
* `voter_status` — `active` (2007+), `not specified (pre-CVR)` (1954–2006), `inactive` (inactive tables).
* `data_unavailable` — true for Mercer and Moose River in 1994, for towns the older reports mark as not received / not reported, and for Connor Twp in 1960 (votes only). The 48 towns on two pages missing from the old 1960 scan were filled in v6.2 from the State Library's complete copy (see FLAGS).
* `une_status` (v6.1; also in the town tables) — `reported`; `derived` (unenrolled = TOTAL minus the listed parties: 1954–1970, June 1976/1978/1982/1984, 1996–2004); `derived_suppressed` (derived but negative, left blank); `not_reported` (total-only snapshots, and since v7.1 any row where the SOS printed no enrollment or no registered total).
* `reliability` / `reliability_note` (v6.1; `reliability` also in `registration_town_wide.csv` and `registration_town_long.csv`, the note also in town_wide) — one value per town and snapshot, the most severe applying:
  * `data_unavailable` — no figures exist (since v7.1 including rows the SOS printed as all zeros, now blank).
  * `implausible` — the total is far above the unit's neighbouring reports, or the SOS's arithmetic does not add; since v7.1 also a Republican or Democratic figure far out of line with the neighbouring reports (a swap, dropped digit or copied cell), or a November total no higher than the votes cast. The whole point is suppressed.
  * `partial_report` — the total is far below the neighbouring reports, most likely an incomplete municipal report such as some wards missing.
  * `stale_report` — pre-2007, total of 150 or more, and identical in every column to the unit's previous report, most likely the SOS reusing the municipality's previous return.
  * `derived_unenrolled` — the figures are fine but unenrolled is derived.
  * `ok` — none of the above.

  **The site suppresses `partial_report`, `stale_report` and `implausible` points on charts**, draws a rule at 2007 (registered voters before, active voters after) and dashes the years where unenrolled is derived. In the `registration_county_wide.csv` / `registration_statewide.csv` roll-ups, every county row equals the sum of its towns and the statewide row equals the sum of its counties, with **one exception: Cumberland County in June and November 1974**. The 1974 copy has no Cumberland pages, so every Cumberland town is `data_unavailable` and the county row carries the SOS's printed totals (123,086 registered in June, 127,360 in November). Code that re-sums towns to counties will lose about 123,000 voters in 1974. 1960 Aroostook and Washington and 1962 York were exceptions until v6.2.
* `is_placeholder_row` — true for the "9-9" rows in the 2007–2009 files (voters not assigned to a precinct; they are real voters and are included in town totals).
* `ward_precinct` is normalized to "ward-precinct" form ("1-2"); 1994 has none (town-level file). `subprecinct` carries the 1996–2004 sub-precinct number where the SOS split a precinct across House districts.

## Important interpretation note

From 2007 on, counts are **active** voters only, with inactive voters in the separate `inactive_registration_*` tables. **Pre-2007 disclaimer (for display on the site):** "For 1994–2006 the Secretary of State's published tables do not state whether they include voters in inactive status. These figures predate Maine's Central Voter Registration system and were compiled from municipal registrars' reports; our best assumption is that they represent all registered voters as reported by each municipality. They are shown as reported and should be compared with the post-2007 active-voter series with that caveat in mind." This assumption is **unverified**: the question has been put to the SOS, and the disclaimer stays until the SOS answers. The same caveat applies to the 1954–1993 printed reports. Large statewide drops (Nov 2011, Nov 2022, Mar 2026) reflect list maintenance moving voters to inactive status. **Gap 1970–1984:** the SOS did publish biennial town-level enrollment/registration reports in these years (its records schedule lists "Tabulation for Enrolled and Registered Voters for the years 1970 thru 1982", transferred to the Maine State Archives), but the Elections Division no longer holds them. The 1976, 1978 and 1982 reports were found online at the Law Library (v6) and the 1974 and 1980 reports came from the Maine State Library (v7); the State Library does not hold 1972, so the remaining hole is Nov 1970 → June 1974 (and Cumberland County to June 1976). **1954–1970:** party enrollment is as of the June primary and registered voters as of the September/November election of the same year (dated to election day); there were only two enrolled parties, and the SOS did not report unenrolled voters, so the unenrolled figures for those years are derived and approximate (see `une_source`). June 1996 was repaired with flagged carry-forwards and apportionments. See FLAGS.md.
