Cleaning Roster Data for Union Campaign Success
Open the messiest possible roster of union workers and turn it into a one-page Campaign Roster Health Report tied to five research-backed indicators of campaign durability. Six 30-minute modules. One final report your lead organizer can hand to the bargaining team.
MdR Palacios
Maria del Rosario Palacios is an author, data engineer, policy expert, and civic technology builder with more than 12 years of multilingual data and community work. Rosario previously served as Training Manager at Generation Data, where she launched the first Spanish-language Intro to Progressive Data course and taught data visualization, WhatsApp outreach, and community data practice to organizers across the South. MdR has worked alongside union organizers, campaign data leads, and field staff on rosters from janitorial locals, adjunct faculty unions, and graduate-worker units — the exact dirt patterns this course teaches you to fix.
Google Sheets and Excel
Teaches Sheets first because it is free, browser-based, and what most organizers and volunteers actually open. Every lesson includes the Excel equivalent in a sidebar.
Union campaign data
Translates union-research findings into concrete columns you can clean and indicators you can calculate in a single sitting.
Real organizing rosters
Every dataset in this course is modeled on a real organizing drive — a janitorial local, an adjunct faculty list, a grad-worker unit — not on a fake employee directory.
Movement Nerds LMS
Built to slot into the DatosLab and Movement Nerds course catalog alongside the SQL and Redistricting courses.
What you will do
You will play the role of the new data person on a union campaign. The lead organizer hands you a spreadsheet of union workers built by five different people across two years and asks one question: how many workers do we actually have, and what percent signed cards? You will leave with the cleaned roster, the five indicators, and a paragraph the lead organizer can read out loud.
Real roster first
Every formula you learn is taught on a roster that looks exactly like a union list you would inherit on day one.
Build the report as you go
Each module produces one piece of the final Campaign Roster Health Report. Nothing is left to the end.
Practice with checkpoints
Every module ends with a checkpoint exercise. You must pass the exercise before the next module unlocks.
Earn six badges
Hygiene Diagnostician, Whitespace Wrangler, Field Splitter, Placeholder Detective, Roster Reconciler, Report Finisher.
Modules in this course
Six 30-minute modules. Each ends with a checkpoint and one section of the final Campaign Roster Health Report.
Why Data Hygiene Decides Campaigns
Connect data quality to campaign outcomes, meet the roster you will clean across the course, and set up a workspace you can actually navigate.
Begin Module 1 MODULE 2 · 30 MINSpaces, Line Breaks, and Invisible Characters
Master TRIM, CLEAN, and SUBSTITUTE so the silent destroyers of matching — leading spaces, hidden line breaks, non-breaking spaces — stop hiding workers from the housecall route.
Begin Module 2 MODULE 3 · 30 MINSplitting Concatenated Fields
Turn one messy cell into the four or seven clean cells you actually need. Names get split into First and Last. Addresses get split into Street, City, State, and ZIP.
Begin Module 3 MODULE 4 · 30 MINPlaceholders, Junk, and Standardization
Catch the values that look like data but are not. "(000) -", "N/A", "unknown", and "TBD" inflate your denominator and lie to your lead organizer.
Begin Module 4 MODULE 5 · 30 MINStripping Formatting and Deduplicating
Remove the visual sludge inherited from five previous spreadsheets, then find the workers who appear twice under slightly different names.
Begin Module 5 MODULE 6 · 30 MIN · FINALProducing the Campaign Roster Health Report
Turn the clean roster into a one-page Campaign Roster Health Report with five research-backed indicators and a plain-language paragraph for the lead organizer.
Begin Module 6Final artifact: Campaign Roster Health Report
A one-page report that names the unit, shows five research-backed indicators, and explains the campaign-strength judgement in a single plain-language paragraph. Every module contributes one section so the report is mostly written by the time you reach Module 6.
| Section | Built in | What it contains |
|---|---|---|
| Case theory | Module 1 | One sentence naming the unit, the question, and the dataset you used. |
| Cleaned contact columns | Module 2 | Phone, name, and email columns with TRIM, CLEAN, and SUBSTITUTE applied. |
| Split name and address | Module 3 | First, Last, Street, City, State, and ZIP each in their own column. |
| Cleaned denominators | Module 4 | Placeholder values flagged and excluded from every percentage. |
| Deduplicated unit | Module 5 | One row per worker. Source-of-truth row chosen for every duplicate pair. |
| Five indicators + narrative | Module 6 | Card support, housecall coverage, structure-test response, committee composition, unit cohesion — plus the paragraph. |
What the research says
Clean data is not a chore. It is how strong campaigns win. Below: four headline findings from the union-organizing research that the five indicators in this course operationalize.
Housecall coverage
Higher NLRB win rate when at least half the unit is housecalled. Bronfenbrenner (1997).
Representative committee
Higher win rate with an organizing committee that reflects the unit. Bronfenbrenner (1997).
Adjunct campaigns
NLRB win rate for adjunct faculty campaigns, 2013–2016. University Business.
Starbucks Workers United
NLRB win rate across 600+ Starbucks Workers United elections. Restaurant Dive, 2025.
Sources: Bronfenbrenner (1997) · Badigannavar & Kelly (2005) · Zhang & Kruse (2025) · Reed (1989) · University Business · Restaurant Dive (2025).
The practice datasets
Three CSV files, all messy in module-specific ways. Each one is modeled on a real organizing drive.
| File | Used in | Rows | Preloaded issues |
|---|---|---|---|
roster_module_2_3.csv | Modules 2 + 3 | 80 | Leading and trailing spaces, hidden line breaks, non-breaking spaces, full names in one cell, full addresses in one cell. |
roster_module_4_5.csv | Modules 4 + 5 | 120 | Placeholder phones “(000) -”, lost leading zeros on ZIPs, salaries stored as text, mixed-case names, merged header cells, conditional-format coloring. |
roster_module_6.csv | Module 6 | 150 | Already cleaned. Worker ID, department, housecall date, card date, structure-test status, committee role. |
How the course works
| Design need | How it appears in this course |
|---|---|
| Self-regulated learning | Set a goal at the start of each module, return to it at the checkpoint. |
| Technology self-efficacy | Sheets use starts with reading the workbook, then a single formula, then nested formulas. |
| Adaptive feedback | Checkpoints include feedback for both correct and incorrect answers. |
| Interaction | Worked examples, common-mistake reviews, formula-anatomy reads, and hands-on cleanup. |
| Cognitive load reduction | Short LMS pages with one primary action per page. |
| Practical skill development | Every module produces one piece of the final Campaign Roster Health Report. |
Accessibility & mobile
- Every diagram has alt text and a plain-language caption.
- Color is never the only signal for correctness or category.
- Pages are readable on phones. Desktop is recommended for the hands-on Google Sheets activities in Modules 2 through 6.