Résumé
Gardner Thornhill
jgardnerthornhill@gmail.com · 662-385-6333
gardnerstats.com · github.com/gardnerthornhill
summary
Data Director at Mississippi Data Hub. Led statewide GOTV texting reaching 415,090 voters; builds voter models, targeting analysis, BigQuery pipelines, and civic tools. Previously cut a 24-hour voter-protection workflow to under one hour.
skills
- Data engineering
- SQL, BigQuery, dbt, data-quality testing, fuzzy matching
- Python and automation
- Python, pandas, pytest, Playwright, REST APIs, GitHub Actions, Google Cloud
- Campaign data
- NGP VAN, VAN/MyCampaign API, TargetSmart scores, voter file analysis, turf cutting, data standards
- Geospatial
- QGIS, Census API and boundary data, geocoding, shapefiles, GeoJSON
- Visualization and web
- JavaScript, TypeScript, React, Observable, Tableau, FastAPI, Cloudflare Workers/D1, Git
experience
Mississippi Data Hub
Data Director · Sept. 2026 to present- Ran the fall GOTV texting program end to end (lists, scripts, A/B tests, opt-out screening): 675,959 texts reached 415,090 voters in all 82 counties. A shorter script raised clicks 26%, and a youth picture text got 3× the click rate.
- Replaced the vendor's race and age fields with our own models. The race model (wru + household) predicted precinct results better than the vendor's race field (R² .90 vs .80). The age model, tested on North Carolina's voter file, found twice as many 18–29 voters.
- Built the analysis behind our turnout-first targeting strategy (precinct returns, vote history, primary turnout). It set tiered GOTV lists for 343K infrequent Black voters in 2026, plus a 367K-voter target and district win numbers for the 2027 legislative races.
- Delivered 10+ VAN, text and ad lists, such as 343K GOTV tiers, 98K absentee voters 65+, 137K Black voters 18–45, and 230K inactive voters matched to VAN at 99.7%. Scheduled digital ads and combined 380K+ partner records in BigQuery to find overlaps and gaps.
- Built and launched wheredoivotems.org in under two days. It's a nonpartisan polling place finder, 99.9% accurate when tested against the voter file. 21,390 people visited and 11,352 found their polling place in all 82 counties, including 2,092 whose site had moved. A/B tests doubled sharing.
- Built the MS Data Hub for partner groups: live election-night results, a daily early vote tracker combining VAN exports with state reports, and results by precinct. Also built Turfbook, where partner groups claim turf and canvass by phone; 11 groups used it.
Pennsylvania Democratic Party
Data Associate, Voter Protection · Harrisburg, PA · June 2026 to September 2026- Automated GOTV turf-packet generation with Python, Playwright, and authenticated VAN accounts, reducing a 24-hour manual process to under one hour.
- Built a Python replay harness and pytest suite to backtest a dbt vote-by-mail ballot-cure model against historical election data before production use.
- Replaced Tableau with an Observable Framework BI platform on dbt/BigQuery marts, deployed to Netlify with documentation; built an automated public voter-registration tracker.
- Built a reusable VAN API client adopted as team tooling and a BigQuery pipeline that enriches user accounts with voter records and geocoded boundaries.
- Matched 99.8% of 9,075 precincts to Census boundaries and geocoded ~8,000 polling locations; produced analysis informing Spanish-language ballot access in two counties.
- Trained 20 field organizers on VAN and built volunteer and call-tracking dashboards used daily by organizing leadership.
selected projects
Where Do I Vote MS
Python, JavaScript, GIS, Cloudflare Workers/D1 · 2026- Built and launched a nonpartisan polling place finder in under two days, one week before Election Day: 21,390 visitors, 11,352 people served, all 82 Mississippi counties; 96% of searchers found their polling place.
- Owned product, design, data pipeline, address matching, and analytics; matched all 1,731 precincts and alerted 2,092 people to moved or closed polling places.
NXTStopHealth
Electron, JavaScript, Census data, GTFS · 2026- Built an offline transportation research app for Jackson Free Clinic that combines local address matching with JTRAN transit measurements and keeps entered addresses out of saved records.
MSU Football Attendance Model
Python, OLS regression, GitHub Actions · 2026- Built a tested Python attendance-forecasting package with leave-one-out validation and 80% prediction intervals; cut out-of-sample RMSE 47% versus baseline (R² 0.66). Automated daily refresh, retraining, and deployment.
Election Dashboards: NYC Poll Tracker and Travis County
Python, web development · 2025- Published live election dashboards with analysis from state legislative through congressional districts; generated 100,000+ combined views across web and social media.
education
Harvard Extension School
Data Science coursework · 2025- CSCI 101: Foundations of Data Science and Engineering; grade A.
Mississippi State University
B.A., History · December 2023- Dean's List (2 semesters); President's List (Spring 2023).