Saved filters over the electoral register
Drag conditions into a query, from a single check to a complex nested tree, and save it as a filter to apply to door-knocking rounds, leaflet drops, dashboards or your campaign universe, updating the moment it changes. The editor is drag and drop, and the query also exports and imports as JSON, so you can hand-edit it or generate it with an AI of your choice.
In Cadrify, a list of electorsElector nounA person entitled to vote who appears on the electoral register at their address.In Cadrify Every elector is a single ongoing record in Cadrify. Door-knock history, score, voting history and contact details all attach to that one person across every register import and every campaign that uses it. is a saved filter: a set of conditions that is stored once and used across the app, from door-knocking rounds to leaflet drops and dashboards.
Filters are built in a drag-and-drop editor. Fields cover what the doorstep has told you, score, core party affiliation and flags, what the marked register has told you, and what your contact records add. Conditions combine with all, any or none, and sub-groups nest for the awkward cases.
A filter saved at the branch is inherited by every ward beneath it. A filter saved on a ward stays with that ward. Either way the count on screen is the count a round or an export will get, because every surface runs the same filter engine.
How filters work
Drag conditions onto the canvas
Open Filters on the branch, or the Filters tab on a ward, and select New filter. The palette on the left lists the fields in groups: Canvass for core party affiliation, score, tactical voting, not knocked and doorstep flags, Voting history for turnout at a named election or since a date, Published donations, Demographics for age band and new to the register, and Contact for member type, tags and email or phone opt-in from linked contact records. Drag a field on, or select it to append it, then set the operator and values.
The bar above the rows sets whether a person must match all of the conditions or any of them. Add sub-group nests another set with its own logic, and a sub-group can be set to none, so excluding people needs no separate step. Include sets the household rule: match the whole household when anyone in it matches, which is what a leaflet drop or a round wants, or only the matching electors when the list is for named individuals.
Give the filter a name and an optional description. The description shows under the name in the saved list, so the next organiser knows what the filter is for.
Save it and it appears in the list
Save filter stores the definition. Save as new keeps the original and stores a copy. Each saved filter shows its name, a summary of its conditions, its description and a live count, with controls to edit, duplicate, export and delete. Ward filters saved on individual ward tabs are listed underneath with a link to the ward.
A filter with 0 conditions matches everyone, so saving one is refused until a condition is added.
Use it wherever a list is needed
Assign a door-knocking round with a filter and the door-knocker sees only the electors who match. Set a filter on a leaflet drop and only addresses with a matching elector are delivered. Pick a filter in the scope bar on the branch or ward dashboard and the coverage figures are recalculated for that slice. Set one as the branch universe and coverage is measured against it.
Change the definition once and every one of those reads the new version the next time it runs.
In practice
Going back to the undecided
Save a filter for everyone scored 3 at the branch. Every ward inherits it. Assign persuasion rounds against it and each door-knocker's list is the undecided in their patch.
Before the postal packs land
Combine postal voters with not knocked and you have the people who will vote in the first week and have never heard from you. Export the list for a phone round, or set it on a leaflet drop so the delivery goes to those doors only.
Building the knock-up list
Score 1 or 2, voted at the last comparable election, not postal. Save it as the knocking-up filter and the polling day rounds and the dashboard both work from it.
Reading the dashboard for one slice
Pick a saved filter in the dashboard's scope bar and the contact rate, score spread and coverage are recalculated for that group of electors. Useful when a ward organiser asks how the persuadables in the ward are moving.
Handing a list to someone outside Cadrify
Choose the columns, export the CSV and pass it on. The export is logged, and the same filter is still there next month for the refreshed version.
FAQ
What can I filter on?
Core party affiliation, score, tactical voting intention, whether and when someone was knocked, doorstep flags such as poster requests with a date range, voting history at a named election or by election type, published donations, age band, how recently someone joined the register, and fields from a linked contact record such as member type, tags and email or phone opt-in.
Is the count I see the count I get?
Yes. The count panel, the preview, the export, rounds, leaflet drops and the dashboard all compile the same saved definition through one filter engine. A saved filter means the same people everywhere it is used.
Do wards inherit branch filters?
Yes. A filter saved at a branch is available on every ward under it, marked with where it came from, and can only be edited at the source. A filter saved on a ward's own Filters tab applies to that ward alone.
Who can build and save filters?
Saving, editing and deleting need the organiser role. Anyone from door-knocker up can see the saved list and its counts. Exports need the organiser role and are written to the audit log.
Can I filter across the whole register or only my patch?
A filter counts and exports within the geography of the branch or ward it is opened on. Your branch's filters never reach into another branch's wards.
What happens if I save a filter with no conditions?
It is refused. An empty condition tree matches everyone, which is never what a list is for.
Does it cost anything?
No. Filters, counts, previews and CSV exports are included in the plan. Nothing here is metered.
What this means for your campaign
The lists a campaign runs on are named definitions everyone can see, with a live count next to each. Rounds, drops, dashboards and exports all draw from them, so the knock-up list on polling day is the same list the dashboard has been tracking for weeks.
Build the four or five filters your campaign needs once and they carry through to the election.
See Cadrify in action
Book a demo and we will walk you through it on a real ward.
- Electoral registerImport the roll, match records across imports and track every change.
- Marked registerScanned marked registers read into turnout on each elector's record.
- Door-knockingRounds from the road network, recorded at the door on any phone.
- Leaflet roundsDrops on the ward's rounds, handed out by link, sheet or QR code.
- PhonebankingCall lists from your contacts, a script and a one-at-a-time call screen.
- GOTVTelling at the station, knock-up rounds and turnout live through the day.
- VerificationSample the count box by box and read a live projection with a margin of error.
- Events & sign-upsSign-up pages, QR check-in and consenting attendees saved as contacts.
- Supporter actionsPetitions, open letters and forms on a public link, with consenting signers saved as contacts.
- Fundraising betaDonation pages on your own Stripe account, recorded for the PPERA return.
- Posters & boardsPoster and board requests on a map, bundled into rounds for volunteers.
- Election paperwork betaPrint-ready nomination packs, each candidate entered once.
- Activists & CRMMember, supporter and volunteer records, matched to the register.
- Data & complianceAudit trail, subject access, erasure and access control.
- Gamify your campaigningLive leaderboards, a level ring and a trophy case for every volunteer.