STATE SENATOR, DISTRICT 21
⚠ 11
● Live Results·272,243 ballots cast·Updated 11/5/2026, 3:10:01 PM
69.0%188,053
31.0%84,190
Early vote vs Election Day
JULIE DAHLBERG gained 10.0 percentage points on Election Day.
Race totals272,243 ballots
Early 208,485 (76.6%)E-day 63,758 (23.4%)
Hue = county leader · Saturation = √(net margin / 90th-pctile county margin), floored
Noted (11)
- Underperform10.0WILSONJUDITH ZAFFIRINI's margin -37.5pp vs statewide +38.2pp
- Underperform7.0GUADALUPEJUDITH ZAFFIRINI's margin -30.5pp vs statewide +38.2pp
- Underperform6.6LIVE OAKJUDITH ZAFFIRINI's margin -54.1pp vs statewide +38.2pp
- Landslide5.2TRAVISJUDITH ZAFFIRINI won by +70.5pp vs statewide +38.2pp
- Underperform5.1KARNESJUDITH ZAFFIRINI's margin -31.6pp vs statewide +38.2pp
- Underperform3.5CALDWELLJUDITH ZAFFIRINI's margin +12.8pp vs statewide +38.2pp
- Underperform3.4BEXARJUDITH ZAFFIRINI's margin +0.2pp vs statewide +38.2pp
- Underperform2.1MCMULLENJUDITH ZAFFIRINI's margin -58.8pp vs statewide +38.2pp
- Mid-race flip1.2CALDWELLJUDITH ZAFFIRINI led early (59.7%); JULIE DAHLBERG won E-day (54.1%)
- Mid-race flip0.4BEXARJUDITH ZAFFIRINI led early (51.2%); JULIE DAHLBERG won E-day (54.0%)
- Crossover0.0CALDWELLJUDITH ZAFFIRINI (DEM) won a county with 50.1% REP lean
County results — early vs Election Day
| County | ZAFFIRINI | DAHLBERG | Total | ||||
|---|---|---|---|---|---|---|---|
| Early | E-day | Total | Early | E-day | Total | ||
| BEXAR | 2,453 | 602 | 3,055 | 2,337 | 707 | 3,044 | 6,099 |
| CALDWELL | 6,590 | 1,573 | 8,163 | 4,454 | 1,852 | 6,306 | 14,469 |
| DIMMIT | 1,134 | 690 | 1,824 | 410 | 295 | 705 | 2,529 |
| DUVAL | 1,646 | 614 | 2,260 | 536 | 347 | 883 | 3,143 |
| GUADALUPE | 1,899 | 852 | 2,751 | 3,311 | 1,850 | 5,161 | 7,912 |
| HAYS | 42,326 | 8,841 | 51,167 | 15,143 | 4,895 | 20,038 | 71,205 |
| JIM HOGG | 777 | 316 | 1,093 | 130 | 109 | 239 | 1,332 |
| KARNES | 876 | 481 | 1,357 | 1,463 | 1,148 | 2,611 | 3,968 |
| LASALLE | 697 | 433 | 1,130 | 430 | 220 | 650 | 1,780 |
| LIVE OAK | 567 | 312 | 879 | 1,791 | 1,164 | 2,955 | 3,834 |
| MCMULLEN | 46 | 28 | 74 | 194 | 91 | 285 | 359 |
| STARR | 6,917 | 2,117 | 9,034 | 1,665 | 731 | 2,396 | 11,430 |
| TRAVIS | 42,338 | 10,687 | 53,025 | 5,803 | 3,375 | 9,178 | 62,203 |
| WEBB | 33,757 | 9,438 | 43,195 | 10,498 | 3,617 | 14,115 | 57,310 |
| WILSON | 5,384 | 1,378 | 6,762 | 10,942 | 3,928 | 14,870 | 21,632 |
| ZAPATA | 1,493 | 791 | 2,284 | 478 | 276 | 754 | 3,038 |
- BEXAR6,099 totalZAFFIRINIEarly 2,453 · E-day 6023,055DAHLBERGEarly 2,337 · E-day 7073,044
- CALDWELL14,469 totalZAFFIRINIEarly 6,590 · E-day 1,5738,163DAHLBERGEarly 4,454 · E-day 1,8526,306
- DIMMIT2,529 totalZAFFIRINIEarly 1,134 · E-day 6901,824DAHLBERGEarly 410 · E-day 295705
- DUVAL3,143 totalZAFFIRINIEarly 1,646 · E-day 6142,260DAHLBERGEarly 536 · E-day 347883
- GUADALUPE7,912 totalZAFFIRINIEarly 1,899 · E-day 8522,751DAHLBERGEarly 3,311 · E-day 1,8505,161
- HAYS71,205 totalZAFFIRINIEarly 42,326 · E-day 8,84151,167DAHLBERGEarly 15,143 · E-day 4,89520,038
- JIM HOGG1,332 totalZAFFIRINIEarly 777 · E-day 3161,093DAHLBERGEarly 130 · E-day 109239
- KARNES3,968 totalZAFFIRINIEarly 876 · E-day 4811,357DAHLBERGEarly 1,463 · E-day 1,1482,611
- LASALLE1,780 totalZAFFIRINIEarly 697 · E-day 4331,130DAHLBERGEarly 430 · E-day 220650
- LIVE OAK3,834 totalZAFFIRINIEarly 567 · E-day 312879DAHLBERGEarly 1,791 · E-day 1,1642,955
- MCMULLEN359 totalZAFFIRINIEarly 46 · E-day 2874DAHLBERGEarly 194 · E-day 91285
- STARR11,430 totalZAFFIRINIEarly 6,917 · E-day 2,1179,034DAHLBERGEarly 1,665 · E-day 7312,396
- TRAVIS62,203 totalZAFFIRINIEarly 42,338 · E-day 10,68753,025DAHLBERGEarly 5,803 · E-day 3,3759,178
- WEBB57,310 totalZAFFIRINIEarly 33,757 · E-day 9,43843,195DAHLBERGEarly 10,498 · E-day 3,61714,115
- WILSON21,632 totalZAFFIRINIEarly 5,384 · E-day 1,3786,762DAHLBERGEarly 10,942 · E-day 3,92814,870
- ZAPATA3,038 totalZAFFIRINIEarly 1,493 · E-day 7912,284DAHLBERGEarly 478 · E-day 276754