Case Studies · Data engineering & multi-wave mail production
Ten lists mailed. Then the strategy changed.
Plavidian first produced ten household-priority lists for a statewide outreach program's initial mailings, working from instructions the client wrote in plain prose. When the strategy pivoted mid-campaign, Plavidian extended the program with Lists 11 through 36 and four B-version replacement files across three mailing waves, six creative versions, and recurring voted-record suppression, preserving household-level priority throughout.
Need to combine voter, member, donor, or customer files without duplicating households?
Ask Plavidian to design the merge, priority, suppression, and audit rules before production begins. Complicated list logic on a tight clock is the work this shop is built for.
The outcome
Ten household-priority lists produced and mailed, then a mid-campaign pivot absorbed without losing household control: 30 additional or revised production files, Lists 11-36 plus four B-versions, across three waves and three source universes, six language and member-status creative versions, and a documented, rerunnable cascade that suppressed voters as ballots were returned. No household received conflicting pieces within a wave.
What the client sent
The specification arrived as prose, not a schema
There was no data dictionary and no file layout. The client supplied a voter file and ten numbered paragraphs written the way a person talks through a plan. Two of them, verbatim:
1. Early Voting English Only Speaking Member Households = Discrete mailing address households where at least 1 individual person has a languagegroup=ENG, Member=Member, and Early/Late=Early... This should be the largest list, basically if they have at least 1 English speaking member that votes early in the household, we will just speak to them in English for the first mailing next week.
8. Bilingual Vietnamese Speaking Non-Member Households = Mailing address households where at least 1 individual Member=NonMember and languagegroup=VIE and not included in Group 1 to 7 above... If this list is too small, we may just combine it with Group 3 and have one list for all Vietnamese households.
Client instructions, reproduced as received (field names as written; identifying details omitted)
Turning that into production files meant interpretation before engineering: formalizing "at least 1 individual" into any-person household qualification on a normalized address key, resolving the "not included in the groups above" chains into a strict priority cascade with a persistent suppression set, deciding what happens to households that qualify under conflicting fields, and carrying contingencies like "if this list is too small, we may combine it" as decisions to surface with counts rather than assumptions to bake in. The client described the outcome; Plavidian had to design the system that produced it.
Phase one
Ten mutually exclusive household groups, produced and mailed
The original source file contained 65,872 registered voters. Plavidian evaluated address quality, household concentration, and deliverability, then generated the ten lists and the campaign mailed from them. Segmentation combined member status, language preference, and early-versus-late voting behavior; the first qualifying group owned the household, and every later group suppressed that address, so a household assigned to a higher-priority list could not reappear even when another resident independently qualified for a different message.
Householding here was a strategic decision, not deduplication. Traditional dedupe asks whether two records are the same; cascade householding asks which of several valid messages should control the entire address. The grouping rules were documented from the start so the process could be rerun after voted-ID suppression without changing the hierarchy.
The pivot
The strategy changed after mail was already in production
After the first mailings, the client expanded the audience, added a low-propensity universe, introduced a medium-propensity universe for later waves, and restructured early and late timing. The original lists stayed part of the campaign history; the program grew by Lists 11 through 36 plus four B-version replacements, 4B, 5B, 9B, and 10B, revising specific later uses of the original lists: 40 distinct production files across the full engagement, within a 36-number framework.
Live-program pivot
The specification changed after the original lists had been created and used for physical mailings.
Three source universes
Base (82,476 records), Medium (65,689), and Low (21,822), combined differently per wave; the largest combined universe was 104,298 records before householding.
Six physical pieces
English, Spanish/English, and Vietnamese/English versions for members and non-members, with counts returned per list so print quantities could be recalculated per version.
Recurring suppression
Later reruns removed individuals already recorded as having voted, without redesigning the segmentation rules or reintroducing suppressed households.
The system
A repeatable, wave-aware cascade
Plavidian converted the changing instructions into a controlled processing system. Each run began with the correct source-universe combination for the wave and ended with reconciled counts and preserved production files:
- Select the wave universe. Base, Base plus Low, Medium plus Low, or Low only, according to the mailing phase.
- Standardize and validate. Normalize address elements, language values, member status, early/late indicators, and unique voter IDs.
- Apply cumulative voter suppression. Remove individuals appearing on the latest voted-ID file before recalculating household eligibility.
- Rebuild household groups. Create normalized address keys and collect all remaining individuals at each residence.
- Run the priority cascade. Evaluate households in the approved order and lock each assigned address out of all lower-priority lists.
- Generate creative-specific outputs. Produce the correct English, Spanish/English, or Vietnamese/English member or non-member file.
- Reconcile counts. Report individual records, unique household addresses, suppressions, exceptions, and final mail quantities.
- Preserve mailed-file history. Return cleaned copies of the exact householded files used in production for the client's records.
Why this is data engineering
Work that normally never reaches a mail house
A commercial mail house is built to take a finished list and make it mailable: CASS standardization, NCOA, deduplication, presort, and production. One file goes in, a cleaner file comes out. This program required something categorically different: interpreting a prose specification into deterministic rules, a multi-stage assignment cascade with priority arbitration, household identity resolution across conflicting sources, a persistent suppression state that survived reruns and a live pivot, and an audit trail that could explain any household's assignment in any wave. That is data engineering, and it typically falls outside what a print and mail vendor takes on.
Typical mail-house scope
CASS, NCOA, dedupe, presort: one file in, a cleaner file out.
What this program required
Spec interpretation, a multi-stage assignment cascade, household identity resolution, and suppression state that survived a mid-campaign pivot.
Who normally does this work
A data services bureau, a political data vendor's services team, a custom software consultancy, or an in-house data engineer, with the mail house downstream.
Why one roof mattered
Household counts translated directly into print quantities, version planning, and postal preparation. No vendor handoff is how days, not weeks, was possible per wave.
Quality control
Checked every wave, before print and postage were committed
- Address and deliverability review: evaluated malformed addresses, missing unit information, duplicate residences, and potentially uneconomical micro-segments.
- Cross-list household audit: confirmed a normalized address appeared in only one output within each applicable wave.
- Unique-ID audit: checked duplicate PDI or source-system voter IDs, conflicting source classifications, and cumulative voted-file suppression.
- Priority trace testing: sampled households with mixed residents and verified the earliest qualifying group controlled the assignment.
- Count reconciliation: tied source individuals to excluded records, remaining individuals, unique households, assigned households, and final list totals.
- Production-file retention: preserved the exact cleaned, householded mail files used for each physical version.
Complex mail programs require more than a clean list. They require a documented decision system that connects source data, household priority, creative version, timing, print quantity, and the exact file that enters the mailstream. Plavidian gave the client a way to change strategy after mailing had begun without losing control of any of it.
