This guide explains, in plain words, what Reach does, what every number means, and how to use each screen to win votes and save money. No technical background needed.
1. Overview โ what Reach is for
A campaign has two scarce resources: time and money. You cannot knock on 752,000 doors. Reach exists to answer three questions so you spend both wisely:
- Who do we talk to? Our supporters who need a nudge to vote, and the gettable middle โ not the locked-in opposition.
- How do we reach them? A cell-phone call or text is cheap; a door knock is expensive. Reach the right people the cheapest way.
- Where do we spend? Which precincts and neighborhoods give the most return.
2. How the scores work (the math, in plain English)
Every voter carries a handful of numbers. Here's what each means, why it exists, and what to do with it.
Party score, ballot score, turnout score (0โ100)
These come from a political data vendor โ each a 0โ100 rating. Republican / Democratic party score = how R- or D-leaning a person looks. Ballot scores = a similar lean from ballot-marking patterns. Turnout score = a general "this person tends to vote" rating.
Republican lean & partisan strength
We subtract the Democratic score from the Republican score. Positive = leans Republican; negative = leans Democratic. We bucket everyone into five labels: strongR leanR independent leanD strongD.
Turnout probability & turnout decile
On top of the vendor score, Reach's own model estimates each person's chance of voting in November 2026 as a percentage.
The honest test: we pretended it was still before the 2024 election and, using only information from back then, asked the model to guess who would vote in 2024, then checked against what really happened. It scored an AUC of 0.86.
The turnout decile sorts everyone into 10 equal groups, from least likely to vote (decile 1) to most reliable (decile 10).
What to do with it: decile-10 folks vote no matter what โ don't waste a GOTV nudge on them. The gold is the middle deciles: supporters who might skip if no one reminds them.
Support estimate (0โ100)
One 0โ100 number for how likely someone supports JJ. It blends the party score (70%) with the ballot score (30%).
Quadrant โ the core targeting map
Every voter is dropped onto a grid. Left-to-right is support; top-to-bottom is turnout.
| High turnout | Low turnout | |
|---|---|---|
| Base (likely supporters) | Base โ High | Base โ Low |
| Persuade (gettable middle) | Persuade โ High | Persuade โ Low |
| Opposition (likely against) | Opp โ High | Opp โ Low |
- Base = support estimate 60+.
- Opposition = support estimate 40 or below.
- Persuade = the middle, 40โ60.
- High vs Low turnout splits on the turnout decile (6+ is "high").
What to do with it: Base โ Low get GOTV reminders. Persuade get persuasion. Opposition gets left alone. This grid is the single most useful targeting picture in the app.
Segments โ six "lookalike tribes"
The computer grouped all voters into 6 behavioral tribes by their lean, turnout, age, and primary-voting habits. Nobody hand-picked these; the patterns came out of the data.
Do-not-contact & the holdout
- Do-not-contact flags locked-in opposition: estimated R support of 25 or less and a top-three turnout decile. Nearly all are strong Democrats, but the rule reads the support estimate, not party, so a few voters whose party scores rate them lean R are flagged too. We deliberately skip them; reaching them just reminds the other side to turn out.
- Holdout is ~10% of voters we deliberately never contact, picked by a fixed hash of the voter ID, so it stays the same every run and is balanced like a random draw. To measure whether outreach moved the needle, compare holdout voters with non-holdout voters in the same tier.
3. The screens โ how to use each one
โ HUD (home)
The war-room overview. Win number (votes to win), projected support (and whether you're above/below it), turnout, race universe (Jefferson County voters), and head-to-head margin (our votes minus theirs, the same measure as the 2022 benchmark; green ahead, red behind). Plus the top winnable precincts and the Low/Expected/High scenarios.
Start your day here โ "are we ahead, and where's the opportunity?"
๐บ Map
See the county geographically. Two dropdowns: Layer (Precincts / Mailing areas / Census tracts) and Color by (lean, turnout, or Election OPS for precincts; income, poverty, or education for tracts).
- Precinct/mailing-area dots are approximate: sized by voter count, colored by metric (no official boundaries exist in the data). A mailing area is the place name of a voter's ZIP code, not city limits.
- Census tracts are real neighborhood shapes filled by the SES color you pick โ the one true-boundary layer.
- Voter dots appear once you zoom in. The count is every voter in view; when that is over 50,000 the dots are a random 50,000 of them, not the most Republican. Click a voter for the full profile; click a precinct/tract for a summary panel.
- Box-select (top-right): drag a rectangle to count every voter inside it (not just the drawn dots), then refine into a segment.
Use it to scout a neighborhood, find supporter clusters, or see where income (and R support) lines up with votes.
Voter 360 (profile drawer)
Everything known about one voter (click a dot): party, partisan strength, quadrant, DO-NOT-CONTACT / HOLDOUT flags, scores, turnout probability + decile, participation history spark-chart (oldest to newest), best channel, and household members (up to 25 listed; the heading gives the full count). The neighborhood (Census) block is labeled clearly as area context, not personal data.
โฆ Segments (Segment Builder)
Stack filters (e.g. "leanR" AND "turnout decile 4โ7" AND "precinct X") and watch a live count + demographic breakdown. Save the list to reuse, or press Export to send that exact list to Exports. Saved counts are recomputed on every visit; "contactable" leaves out the holdout, do-not-contact and non-Jefferson voters, as exports do.
๐ Models (Models & Analytics)
Look under the hood: turnout-decile distribution, score histogram, feature importance (measured on the deployed turnout model; the vendor turnout score and age lead), the 6 segment profiles, the Census income-quintile validation, and the model cards (the AUC 0.86 backtest). The turnout-decile chart shows predictions only, so it is not a calibration check.
The anchoring check there is in-sample: support is fit to the 2022 results it plots, so it shows the correction, not proof of accuracy.
โณ GOTV (Targeting & GOTV)
The quadrant grid as a to-do list: six cards (Base / Persuade / Opposition ร High/Low) each with a live count of contactable voters (holdout and do-not-contact removed) and a recommended action. Opposition cards are red and marked not a contact target. Only some opposition voters carry the do-not-contact flag; the rest are left alone by choice, not blocked. A compliance panel explains the do-not-contact and 10% holdout rules.
โพ Money (Moneyball) ยท โ War (War Game)
See sections 4 and 6 below.
โด Live (Election-Day Live)
A SIMULATED rehearsal of the election-night screen, not real results. No results source is connected yet. It replays precincts in priority order and shows the model's expected votes (the sum of turnout probabilities), precincts reporting and % in. Do not read any number on it as a vote count.
โค Export (Exports)
Generate the actual CSV contact lists. Pick a quadrant (opposition quadrants are not offered) and a channel: walk, phone, mail, or chase (low-turnout supporters needing a final push). Compliance is always on: do-not-contact voters and the 10% holdout are stripped automatically โ you cannot export them.
โ Admin (Data Health)
System vital signs: data/model version, voter count, scored date, API status, whether the 2026 primary data is available (it isn't โ that file was blank), and a data-quality report.
4. Moneyball Mode explained
Borrowed straight from baseball's Moneyball: the traditional way of valuing players (and voters) misses bargains. A scrappy team found undervalued players with better stats and won. Reach does the same with voters.
OBP โ On-Base Percentage
In baseball, a player who reliably gets on base. For a voter: strong Republican lean + actually shows up to vote โ a dependable R vote.
SLG โ Slugging
Baseball power. For a voter, voting volume and history โ how many elections they show up for, including primaries.
OPS โ the combined value score (0โ100)
40% OBP + 25% SLG + 25% vendor turnout score + 10% age factor, in one 0โ100 number: the headline "how valuable is this voter" grade. Everyone also gets an OPS decile (rank in 10 groups).
Value-per-dollar (baseline R votes per $)
The most practical number: baseline expected Republican-supporting votes per contact dollar: turnout chance ร support ร contact success รท channel cost. It is a baseline, not a return: it does not measure how much contact changes a vote, and it is not netted against Democratic votes, so it is never negative. A reliable supporter you can reach by cell phone for $1.00 per completed call beats one who needs a $2.67 door contact.
"Outs" โ not worth contacting
In baseball you avoid outs. Here an out is low-lean, low-turnout, and expensive to reach (door-only), measured on real vendor scores. A voter with no vendor scores is unknown, never counted as an out. Spending on outs is wasted money.
The tiers (your roster)
- Tier 1: Core mobilization Top-OPS voters (OPS decile 9+) who voted in 2024 and lean our way (support estimate 50+). Turn them out (any channel; a door knock is fine for your base).
- Tier 2: Undervalued (the high-OBP bargains) The whole point of Moneyball. Strong supporters (support estimate 60+) whose turnout is only medium (decile 4 to 8), who are cheap to reach (by cell phone), age 35+. The usual playbook overlooks them, but they're efficient gold.
- Tier 3: Persuasion swing Gettable middle voters (support estimate between 40 and 60) with decent turnout (decile 5+). Make the case.
- Excluded: Outs / do-not-contact Skip. Only do-not-contact voters and outs land here.
- Opposition lean (not targeted) Voters who lean the other way (support estimate 40 or less) and match no tier rule. Labeled so they aren't mistaken for voters a rule missed. Never targeted or exported; contact status unchanged.
- Untiered Other contactable voters who match no tier rule: R-leaning or persuadable voters a rule actually missed. Not outs; just not a Moneyball priority.
- Unscored No vendor party or ballot score, so no individual lean. Kept visible on their own instead of being scored as the worst voters.
The Moneyball screen
A race selector at the top picks Jefferson County Sheriff (the default) or Congressional District 7; the race is named in big type, every number below counts that race's voters only, and the link (/moneyball?race=cd7) opens that race.
Tier cards (Tier 2 glows โ it's the edge); a one-page brief for the candidate (votes in play, outs avoided, dollars saved); an OPS precinct leaderboard with an inefficiency number = (traditional rank โ value rank). Both ranks are precinct totals: the value rank orders precincts by net value, the R-minus-D lean of contactable voters weighted toward mid-turnout voters, so a big Democratic precinct ranks low on both. A big positive means a precinct is under-attended relative to its value; only precincts that net R votes are flagged. Then mispricing bars, and per-tier CSV export (do-not-contact and holdout already removed; the counts shown are the contactable voters an export returns).
5. Neighborhood / Census data
Reach matched every voter to their Census tract โ a small official neighborhood (a few thousand people). From the Census we pull each area's median income, poverty rate, education, home values, unemployment, and race makeup.
We sort neighborhoods into 5 income groups (quintiles, Q1 = lowest โ Q5 = highest), weighted to hold roughly equal numbers of Jefferson County voters.
The finding for this campaign: Jefferson County leans heavily Democratic overall, but Republican support AND the "undervalued bargain" voters both concentrate in higher-income neighborhoods. The Models screen shows this as a rising line โ the Tier-2 share climbs as you move up the income quintiles.
Use it to prioritize higher-income tracts for canvass and persuasion, and to back up your targeting with independent Census data.
6. War Game
A what-if simulator. Move sliders ("boost turnout? persuade more? spend more?") and it estimates your odds of winning โ a flight simulator for the campaign, a safe place to stress-test strategy.
The Win Number
How many votes it takes to win: just over half of the expected turnout (half the expected voters, plus one). More expected voters โ higher win number.
Win probability (the simulation)
Hit Run simulation and the computer plays out the election thousands of times (about 2,000โ5,000 runs), each with a little random luck, then reports the fraction of runs you won.
- It starts from our expected supporter votes.
- GOTV slider recovers a share of the turnout your supporters are expected to miss. Every voter it adds raises turnout, but only their support share votes for us; the rest go to the opponent.
- Persuasion slider + budget flip some gettable voters โ but only as many as your budget can afford to contact, and only a fraction actually flip. The budget is spent through the optimizer's channel plan, and a flip only counts if that voter turns out.
- The turnout wiggle is shared: a bigger electorate raises both your support and the win number in the same run.
- Each run wiggles your support total and the win number with bell-curve noise, then checks: did we clear the line? The typical wiggle (one standard deviation) is 6% for support and 5% for the win number. These are not hard limits: about 1 run in 20 moves more than twice that.
Sensitivity โ which lever matters most
Reach nudges each lever a little, one at a time, and reports which one moves your odds the most, telling you where to put your energy.
The optimizer โ how to split a budget
Splits the persuasion budget on the slider across door, phone, mail, email, and digital to get the most net votes. It scores each channel with the simulator's own yield, so its expected votes equal the simulator's persuasion flips at the same budget, persuasion rate and scenario.
- Costs and per-contact effects come from one shared source, mostly Green & Gerber's Get Out the Vote field experiments: about $2.67 per door contact and $1.00 per phone contact, and a phone contact does about 15/35 of a door contact's work.
- Mail, email and digital ads showed no detectable effect in field experiments, so they get $0.
- Every voter is contacted at most once, and each channel completes only its contact rate of the voters it tries: about 25% of doors and 60% of phones. Once those contacts are used up, it stops spending and says so.
Persuasion spending only, because that is what the simulator's budget buys. GOTV is the separate slider.
7. Glossary
| AUC | Ranking grade (0.5 to 1.0) for how well the turnout model puts voters above non-voters. 0.5 = coin flip, 1.0 = perfect. Ours is 0.86. Not a percent-correct accuracy. |
| Ballot score | 0โ100 lean estimate from ballot-marking patterns. |
| Base | Likely supporters (support estimate 60+). |
| Best channel | Cheapest reliable way to reach a voter (cell / landline / door). The voter file has no email addresses. |
| Census tract | A small official neighborhood (a few thousand people). |
| Decile | One of 10 equal groups. Turnout decile 10 = most reliable voters. |
| Do-not-contact | Estimated R support 25 or less in a top-three turnout decile: the locked-in opposition we deliberately skip. |
| Holdout | ~10% group we never contact, picked by a fixed hash of the voter ID and balanced like a random draw. Compare it with non-holdout voters in the same tier to measure if outreach worked. |
| Inefficiency | Traditional rank minus net value rank, both precinct totals. Big positive = a precinct that nets R votes but the traditional plan under-ranks. |
| Marginal value | Expected R-supporting votes from one voter this cycle. |
| OBP / SLG / OPS | Baseball stats reused for voters: reliability of "getting on base" (OBP), voting volume/power (SLG), and the combined 0โ100 value score (OPS = 40% OBP + 25% SLG + 25% turnout score + 10% age). |
| Opposition | Likely against us (support estimate 40 or below). |
| Partisan strength | strongR / leanR / independent / leanD / strongD. |
| Persuade | The gettable middle (support estimate 40โ60). |
| Quadrant | The support ร turnout grid; the core targeting map. |
| Quintile | One of 5 equal slices. Income Q1 = lowest, Q5 = highest. |
| Republican lean | Republican score minus Democratic score. Positive = leans R. |
| Segment / tribe | One of 6 computer-found groups of similar voters. |
| Support estimate | 0โ100 chance a voter supports JJ (70% party + 30% ballot score). |
| Turnout probability | Modeled percent chance a voter casts a ballot in Nov 2026. |
| Value-per-dollar | Baseline expected R-supporting votes per contact dollar. Not a return on contact and not netted against D votes. |
| Win number | Votes needed to win: just over half the expected turnout. |
8. Trust & limitations
Reach is powerful, but be a smart skeptic. The honest fine print:
- Modeled estimates, not certainties. A support estimate of 72 means people who look like them tend to support us โ not that they will. Strong odds, not facts.
- The turnout model was tested honestly (AUC 0.86 on a fair, no-peeking 2024 backtest; about 78% classified correctly). Good, but no model is perfect, and 2026 won't equal 2024.
- Precinct/municipality dots are approximate. Only the Census tract layer has true boundaries.
- The War Game is a stress test, not a forecast. Built conservatively on purpose; read its low odds as "here's the work it takes," not "we'll lose."
- The War Game and all sheriff-race targeting count Jefferson County voters only, because only they vote in the sheriff race. Deciles, quadrants, Moneyball tiers, precinct priority and exports skip the rest of Congressional District 7, which still shows on the map, in segments and in Voter 360. The Moneyball screen's Congressional District 7 race is the exception: it ranks its own deciles, tiers and precinct priority among CD7 voters.
- Persuasion / uplift math are documented rules of thumb, not proven cause-and-effect โ which is exactly why we keep a holdout to measure real impact later.
- The 2026 primary data was blank in this extract, so it's excluded everywhere (flagged on Admin).
- Census data is about neighborhoods, not individuals.
- Compliance can't be turned off: do-not-contact voters and the 10% holdout are stripped from every export.