A boundary map — a boundary set — is one named collection of areas. Each area has a name (Ward 12) and an optional code, and the set as a whole declares what it is: a seat area (the territory that elects someone), a voting subdivision (a precinct, a polling division, a Massachusetts ward), or a locality (a whole municipality). Manage them under Boundaries in Workspace settings.
Meaning lives in that declared role, never in the name. It is what lets a Toronto ward and a Boston ward both be represented correctly even though one elects a councillor and the other elects nobody. See What office a campaign is running for for why that matters.
Why a household holds several at once
One American address sits inside a congressional district and a state senate district and a state house district and a city council district and a precinct, all at the same time: five different lines drawn over one house. pplCRM keeps one answer per map, so no level ever overwrites another, and a household page lists every area it belongs to rather than the last one that happened to be worked out.
The People and Households grids follow the same rule. The column you see by default is District, which lists every area a household falls in, across every map you hold, in one cell. Each map also has a column of its own — your campaign’s map under your word for it (Riding, Ward, Congressional district), plus a Wards column if you hold a ward map, and so on — sortable and filterable one level at a time. Those per-map columns all start switched off, because District already names the same areas; turn on the ones you want from the column chooser. A CSV export writes every one of them.
Old and new maps live side by side
Canada redrew its federal ridings for the 2023 representation order, the United States redraws congressional and legislative districts after each census, and several states redraw again mid-decade by court order. You often need the outgoing map to compare with past results and the incoming one to target. Each is its own set with its own vintage label, and one household holds both without either being wrong. Four ways to get a map
- Select a published map. The fastest option when one covers your seat. pplCRM keeps ready-made maps for Canadian federal ridings, Ontario and Alberta provincial ridings, and US congressional, state senate and state house districts. Pick it from a list and it is downloaded and matched for you — nothing to find, convert or upload, and no cost. Municipal wards and precincts are not among them.
- Import the names you already have. Cheapest and fastest when no published map covers you. If your rows already carry a district, ward or precinct column — a purchased voter file almost always does — the import wizard writes those names straight onto each household. No shapes to find, no lookups, no cost. See Import district, ward and precinct columns.
- Upload a map file. A GeoJSON file from whoever publishes it: an elections body, a provincial commission, a city open-data portal. You name the set, declare its role, and say which property in the file holds each area’s name.
- Draw it yourself. For the many municipalities that publish nothing usable, draw the areas on the map with your own household pins visible underneath. See Drawing boundaries on the map.
These are not exclusive. A workspace commonly selects the state’s legislative districts, imports precinct names from its voter file, and draws its own organizing areas, all at once. Each is a separate set and each household holds all of them.
Selecting a published map
Open Boundaries in Workspace settings and choose to add a published map. Maps that match a campaign you are already running are listed first. Each row names the body that publishes it, the edition, and how many areas it holds; adding one shows the licence and the attribution the publisher requires. The areas are then matched against every household that has coordinates, which costs nothing.
A published map is read-only, because every workspace using it shares the same file — you can delete it, but you cannot rename or reshape its areas. If you need to change the lines, upload your own copy or draw them instead. When a legislature redraws its boundaries the new edition is added as a separate map with its own vintage, and the one you already added stays exactly as it is.
Uploading your own map file
- 1Get the file as GeoJSONMost open-data portals offer GeoJSON directly. If yours only publishes a shapefile, convert it to GeoJSON first with whatever mapping tool you already use.
- 2Open Boundaries in Workspace settings and choose to uploadGive the set a name your organizers will recognize in a dropdown.
- 3Declare its roleSeat area, voting subdivision, or locality. This is the field that gives the set its meaning, and it is the one worth getting right.
- 4Pick which property holds the nameThe uploader lists every property it found in your file with an example value from the first area, so you can see which one holds
Ward 12 and which holds 12. Pick a code property too if the file has one. - 5SaveThe areas are listed, the original file is kept in your workspace files, and every household already on the map is matched against the new set straight away. Matching costs nothing.
Uploads have limits, and a file that breaks one is refused with a message naming the limit rather than failing quietly: 20 MB per file, 5,000 areas in one set, 50,000 points in one area’s outline, and 50 sets per workspace. A national file that is too large usually fits comfortably once split per province or state, which is also faster to match against.
How a household gets its areas
Matching compares a household’s coordinates against each area’s outline and records the ones it falls inside. It is arithmetic on our own servers: it calls no outside service and costs nothing, so it re-runs whenever coordinates change, whenever a map changes, and whenever a new map arrives. A household with no coordinates yet has no areas yet — see Geocoding, boundary matching, and what each costs.
Only the maps your workspace actually needs are matched, worked out from your active campaigns. An Arizona state house campaign needs Arizona’s lower-chamber districts and its precincts, not fifty states’ worth of everything. Saving a campaign — creating one, or changing its jurisdiction, region or chamber — queues a matching pass over the households you already have right away, and a nightly sweep backstops it, so the areas fill in behind you.
Boundaries and canvassing turfs
Turf cutting uses the finest voting-subdivision map your workspace holds for that campaign’s jurisdiction and region. With none, it falls back to the seat-area map. With neither, every door lands in one bucket and turfs are grouped purely by which doors sit near each other — which is what happened before boundary maps existed, now reached deliberately instead of by accident. See Canvassing.
A map here is for organizing work, not for compliance
An uploaded map is exactly as accurate as the file you uploaded, and a drawn map is approximate by nature. Neither is a legal source. In particular, the electoral district printed on a donation receipt is a value you enter yourself in the receipting settings and on the campaign — it is never read off one of these maps. See Donation receipts and giving statements. Renaming, replacing and deleting
Rename a set or any single area at any time; the new name shows everywhere immediately. Deleting a set removes it and every household’s membership in it, and changes nothing else about those households. Because matching is free, deleting a set and adding a better one costs nothing but a little of our own processing, so there is no reason to live with a map you have outgrown.