STATE SENATOR, DISTRICT 21
⚠ 12
Final Results·210,913 ballots cast
JUDITH ZAFFIRINII
61.6%129,832
JULIE DAHLBERG
35.9%75,799
ARTHUR DIBIANCA
2.5%5,282
Early vote vs Election Day
JULIE DAHLBERG gained 6.5 percentage points on Election Day.
JUDITH ZAFFIRINI-7.4pp on E-day
Early 89,545 (69.0%)E-day 40,287 (31.0%)
JULIE DAHLBERG+6.5pp on E-day
Early 47,165 (62.2%)E-day 28,634 (37.8%)
ARTHUR DIBIANCA+0.9pp on E-day
Early 3,083 (58.4%)E-day 2,199 (41.6%)
Race totals210,913 ballots
Early 139,793 (66.3%)E-day 71,120 (33.7%)
Hue = county leader · Saturation = √(net margin / 90th-pctile county margin), floored
Noted (12)
- Underperform10.0WILSONJUDITH ZAFFIRINI's margin -47.8pp vs statewide +25.6pp
- Underperform6.9GUADALUPEJUDITH ZAFFIRINI's margin -44.9pp vs statewide +25.6pp
- Underperform6.3LIVE OAKJUDITH ZAFFIRINI's margin -61.3pp vs statewide +25.6pp
- Landslide6.0TRAVISJUDITH ZAFFIRINI won by +63.1pp vs statewide +25.6pp
- Underperform4.7KARNESJUDITH ZAFFIRINI's margin -41.3pp vs statewide +25.6pp
- Underperform4.2CALDWELLJUDITH ZAFFIRINI's margin -8.9pp vs statewide +25.6pp
- Underperform4.2BEXARJUDITH ZAFFIRINI's margin -27.5pp vs statewide +25.6pp
- Underperform1.9MCMULLENJUDITH ZAFFIRINI's margin -59.2pp vs statewide +25.6pp
- Swing outlier1.5GUADALUPEJUDITH ZAFFIRINI shifted +0.3pp early→E-day vs -5.6pp statewide (2.6σ outlier)
- Landslide1.2JIM HOGGJUDITH ZAFFIRINI won by +60.2pp vs statewide +25.6pp
- Crossover1.1BEXARJULIE DAHLBERG (REP) won a county with 43.8% REP lean
- Crossover0.5LASALLEJUDITH ZAFFIRINI (DEM) won a county with 54.9% REP lean
County results — early vs Election Day
| County | ZAFFIRINI | DAHLBERG | DIBIANCA | Total | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Early | E-day | Total | Early | E-day | Total | Early | E-day | Total | ||
| BEXAR | 1,287 | 328 | 1,615 | 2,250 | 624 | 2,874 | 57 | 36 | 93 | 4,582 |
| CALDWELL | 3,491 | 1,502 | 4,993 | 3,956 | 2,038 | 5,994 | 115 | 95 | 210 | 11,197 |
| DIMMIT | 1,082 | 809 | 1,891 | 369 | 385 | 754 | 21 | 26 | 47 | 2,692 |
| DUVAL | 1,561 | 646 | 2,207 | 608 | 380 | 988 | 28 | 22 | 50 | 3,245 |
| GUADALUPE | 1,119 | 787 | 1,906 | 3,045 | 2,080 | 5,125 | 65 | 76 | 141 | 7,172 |
| HAYS | 21,653 | 8,346 | 29,999 | 11,133 | 5,473 | 16,606 | 820 | 575 | 1,395 | 48,000 |
| JIM HOGG | 807 | 385 | 1,192 | 171 | 117 | 288 | 13 | 8 | 21 | 1,501 |
| KARNES | 570 | 518 | 1,088 | 1,279 | 1,360 | 2,639 | 10 | 17 | 27 | 3,754 |
| LASALLE | 378 | 385 | 763 | 282 | 302 | 584 | 5 | 13 | 18 | 1,365 |
| LIVE OAK | 399 | 349 | 748 | 1,582 | 1,592 | 3,174 | 20 | 13 | 33 | 3,955 |
| MCMULLEN | 36 | 34 | 70 | 157 | 125 | 282 | 3 | 3 | 6 | 358 |
| STARR | 4,539 | 1,666 | 6,205 | 1,741 | 898 | 2,639 | 153 | 56 | 209 | 9,053 |
| TRAVIS | 26,246 | 12,158 | 38,404 | 4,727 | 3,389 | 8,116 | 727 | 722 | 1,449 | 47,969 |
| WEBB | 21,646 | 10,050 | 31,696 | 6,902 | 3,784 | 10,686 | 907 | 395 | 1,302 | 43,684 |
| WILSON | 3,226 | 1,684 | 4,910 | 8,314 | 5,797 | 14,111 | 114 | 126 | 240 | 19,261 |
| ZAPATA | 1,505 | 640 | 2,145 | 649 | 290 | 939 | 25 | 16 | 41 | 3,125 |
- BEXAR4,582 totalZAFFIRINIEarly 1,287 · E-day 3281,615DAHLBERGEarly 2,250 · E-day 6242,874DIBIANCAEarly 57 · E-day 3693
- CALDWELL11,197 totalZAFFIRINIEarly 3,491 · E-day 1,5024,993DAHLBERGEarly 3,956 · E-day 2,0385,994DIBIANCAEarly 115 · E-day 95210
- DIMMIT2,692 totalZAFFIRINIEarly 1,082 · E-day 8091,891DAHLBERGEarly 369 · E-day 385754DIBIANCAEarly 21 · E-day 2647
- DUVAL3,245 totalZAFFIRINIEarly 1,561 · E-day 6462,207DAHLBERGEarly 608 · E-day 380988DIBIANCAEarly 28 · E-day 2250
- GUADALUPE7,172 totalZAFFIRINIEarly 1,119 · E-day 7871,906DAHLBERGEarly 3,045 · E-day 2,0805,125DIBIANCAEarly 65 · E-day 76141
- HAYS48,000 totalZAFFIRINIEarly 21,653 · E-day 8,34629,999DAHLBERGEarly 11,133 · E-day 5,47316,606DIBIANCAEarly 820 · E-day 5751,395
- JIM HOGG1,501 totalZAFFIRINIEarly 807 · E-day 3851,192DAHLBERGEarly 171 · E-day 117288DIBIANCAEarly 13 · E-day 821
- KARNES3,754 totalZAFFIRINIEarly 570 · E-day 5181,088DAHLBERGEarly 1,279 · E-day 1,3602,639DIBIANCAEarly 10 · E-day 1727
- LASALLE1,365 totalZAFFIRINIEarly 378 · E-day 385763DAHLBERGEarly 282 · E-day 302584DIBIANCAEarly 5 · E-day 1318
- LIVE OAK3,955 totalZAFFIRINIEarly 399 · E-day 349748DAHLBERGEarly 1,582 · E-day 1,5923,174DIBIANCAEarly 20 · E-day 1333
- MCMULLEN358 totalZAFFIRINIEarly 36 · E-day 3470DAHLBERGEarly 157 · E-day 125282DIBIANCAEarly 3 · E-day 36
- STARR9,053 totalZAFFIRINIEarly 4,539 · E-day 1,6666,205DAHLBERGEarly 1,741 · E-day 8982,639DIBIANCAEarly 153 · E-day 56209
- TRAVIS47,969 totalZAFFIRINIEarly 26,246 · E-day 12,15838,404DAHLBERGEarly 4,727 · E-day 3,3898,116DIBIANCAEarly 727 · E-day 7221,449
- WEBB43,684 totalZAFFIRINIEarly 21,646 · E-day 10,05031,696DAHLBERGEarly 6,902 · E-day 3,78410,686DIBIANCAEarly 907 · E-day 3951,302
- WILSON19,261 totalZAFFIRINIEarly 3,226 · E-day 1,6844,910DAHLBERGEarly 8,314 · E-day 5,79714,111DIBIANCAEarly 114 · E-day 126240
- ZAPATA3,125 totalZAFFIRINIEarly 1,505 · E-day 6402,145DAHLBERGEarly 649 · E-day 290939DIBIANCAEarly 25 · E-day 1641