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.

JUDITH ZAFFIRINI-10.0pp on E-day
Early 148,900 (79.2%)E-day 39,153 (20.8%)
JULIE DAHLBERG+10.0pp on E-day
Early 59,585 (70.8%)E-day 24,605 (29.2%)
Race totals272,243 ballots
Early 208,485 (76.6%)E-day 63,758 (23.4%)
Menard: no dataHale: no dataArmstrong: no dataCalhoun: no dataClay: no dataOrange: no dataGonzales: no dataFannin: no dataKerr: no dataRefugio: no dataJim Hogg: 1,332 votes · JUDITH ZAFFIRINI 82.1% (1,093) · JULIE DAHLBERG 17.9% (239) · 854 net for leaderDimmit: 2,529 votes · JUDITH ZAFFIRINI 72.1% (1,824) · JULIE DAHLBERG 27.9% (705) · 1,119 net for leaderNolan: no dataBrazos: no dataJefferson: no dataBell: no dataBandera: no dataHidalgo: no dataSchleicher: no dataGrayson: no dataCrosby: no dataDelta: no dataZavala: no dataRockwall: no dataEastland: no dataDeWitt: no dataAngelina: no dataMcLennan: no dataLamar: no dataLeon: no dataStonewall: no dataMcMullen: 359 votes · JUDITH ZAFFIRINI 20.6% (74) · JULIE DAHLBERG 79.4% (285) · 211 net for leaderSutton: no dataFort Bend: no dataParker: no dataKinney: no dataFayette: no dataBriscoe: no dataHarrison: no dataReagan: no dataColeman: no dataOchiltree: no dataCrane: no dataWashington: no dataLynn: no dataMills: no dataOldham: no dataSabine: no dataHopkins: no dataHouston: no dataBexar: 6,099 votes · JUDITH ZAFFIRINI 50.1% (3,055) · JULIE DAHLBERG 49.9% (3,044) · 11 net for leaderUpton: no dataErath: no dataRandall: no dataRusk: no dataCoryell: no dataComal: no dataAransas: no dataJack: no dataHemphill: no dataShackelford: no dataSan Jacinto: no dataKendall: no dataWharton: no dataFloyd: no dataKarnes: 3,968 votes · JUDITH ZAFFIRINI 34.2% (1,357) · JULIE DAHLBERG 65.8% (2,611) · 1,254 net for leaderKaufman: no dataDuval: 3,143 votes · JUDITH ZAFFIRINI 71.9% (2,260) · JULIE DAHLBERG 28.1% (883) · 1,377 net for leaderJohnson: no dataFranklin: no dataEdwards: no dataWaller: no dataMaverick: no dataKleberg: no dataGaines: no dataMartin: no dataBowie: no dataAndrews: no dataPotter: no dataGarza: no dataCaldwell: 14,469 votes · JUDITH ZAFFIRINI 56.4% (8,163) · JULIE DAHLBERG 43.6% (6,306) · 1,857 net for leaderParmer: no dataTitus: no dataTerry: no dataFoard: no dataReal: no dataCarson: no dataKnox: no dataHays: 71,205 votes · JUDITH ZAFFIRINI 71.9% (51,167) · JULIE DAHLBERG 28.1% (20,038) · 31,129 net for leaderMedina: no dataMotley: no dataWichita: no dataMidland: no dataVictoria: no dataTyler: no dataFalls: no dataPresidio: no dataWillacy: no dataLubbock: no dataHenderson: no dataWalker: no dataGalveston: no dataHarris: no dataDawson: no dataPecos: no dataNacogdoches: no dataGuadalupe: 7,912 votes · JUDITH ZAFFIRINI 34.8% (2,751) · JULIE DAHLBERG 65.2% (5,161) · 2,410 net for leaderTarrant: no dataJackson: no dataSwisher: no dataSterling: no dataWinkler: no dataFrio: no dataLipscomb: no dataCollingsworth: no dataColorado: no dataWise: no dataGlasscock: no dataShelby: no dataComanche: no dataBurnet: no dataGray: no dataHudspeth: no dataCass: no dataEllis: no dataCooke: no dataWilliamson: no dataCochran: no dataVan Zandt: no dataDonley: no dataJones: no dataGrimes: no dataIrion: no dataNavarro: no dataBrooks: no dataDallam: no dataHunt: no dataMitchell: no dataWood: no dataChildress: no dataJeff Davis: no dataMontague: no dataBrown: no dataHaskell: no dataFisher: no dataConcho: no dataCoke: no dataPolk: no dataCottle: no dataYoung: no dataLee: no dataCherokee: no dataHall: no dataHood: no dataArcher: no dataBaylor: no dataSan Augustine: no dataMadison: no dataMilam: no dataReeves: no dataNueces: no dataCamp: no dataFreestone: no dataRunnels: no dataTerrell: no dataDeaf Smith: no dataMarion: no dataLiberty: no dataJasper: no dataHansford: no dataChambers: no dataHardin: no dataCollin: no dataBrazoria: no dataThrockmorton: no dataBastrop: no dataScurry: no dataEctor: no dataLimestone: no dataDenton: no dataRed River: no dataMatagorda: no dataHardeman: no dataPalo Pinto: no dataLive Oak: 3,834 votes · JUDITH ZAFFIRINI 22.9% (879) · JULIE DAHLBERG 77.1% (2,955) · 2,076 net for leaderSherman: no dataUvalde: no dataBailey: no dataCulberson: no dataAtascosa: no dataWilson: 21,632 votes · JUDITH ZAFFIRINI 31.3% (6,762) · JULIE DAHLBERG 68.7% (14,870) · 8,108 net for leaderStarr: 11,430 votes · JUDITH ZAFFIRINI 79.0% (9,034) · JULIE DAHLBERG 21.0% (2,396) · 6,638 net for leaderDallas: no dataKimble: no dataMcCulloch: no dataCrockett: no dataHill: no dataKent: no dataEl Paso: no dataLoving: no dataDickens: no dataLa Salle: no dataLamb: no dataAustin: no dataHutchinson: no dataVal Verde: no dataSmith: no dataRobertson: no dataGillespie: no dataKing: no dataTom Green: no dataYoakum: no dataSomervell: no dataKenedy: no dataBorden: no dataSan Saba: no dataBurleson: no dataBee: no dataTrinity: no dataCastro: no dataBrewster: no dataGregg: no dataWard: no dataWilbarger: no dataHamilton: no dataStephens: no dataLavaca: no dataBosque: no dataGoliad: no dataRoberts: no dataCallahan: no dataRains: no dataMorris: no dataLampasas: no dataUpshur: no dataWheeler: no dataSan Patricio: no dataMoore: no dataWebb: 57,310 votes · JUDITH ZAFFIRINI 75.4% (43,195) · JULIE DAHLBERG 24.6% (14,115) · 29,080 net for leaderBlanco: no dataNewton: no dataHockley: no dataPanola: no dataAnderson: no dataCameron: no dataMontgomery: no dataLlano: no dataMason: no dataTaylor: no dataHartley: no dataJim Wells: no dataZapata: 3,038 votes · JUDITH ZAFFIRINI 75.2% (2,284) · JULIE DAHLBERG 24.8% (754) · 1,530 net for leaderTravis: 62,203 votes · JUDITH ZAFFIRINI 85.2% (53,025) · JULIE DAHLBERG 14.8% (9,178) · 43,847 net for leaderHoward: no dataEl PasoAmarilloLubbockOdessaSan AngeloDallasTylerAustinHoustonSan AntonioCorpus ChristiMcAllen
Hue = county leader · Saturation = √(net margin / 90th-pctile county margin), floored
Noted (11)
  • Underperform10.0
    WILSON
    JUDITH ZAFFIRINI's margin -37.5pp vs statewide +38.2pp
  • Underperform7.0
    GUADALUPE
    JUDITH ZAFFIRINI's margin -30.5pp vs statewide +38.2pp
  • Underperform6.6
    LIVE OAK
    JUDITH ZAFFIRINI's margin -54.1pp vs statewide +38.2pp
  • Landslide5.2
    TRAVIS
    JUDITH ZAFFIRINI won by +70.5pp vs statewide +38.2pp
  • Underperform5.1
    KARNES
    JUDITH ZAFFIRINI's margin -31.6pp vs statewide +38.2pp
  • Underperform3.5
    CALDWELL
    JUDITH ZAFFIRINI's margin +12.8pp vs statewide +38.2pp
  • Underperform3.4
    BEXAR
    JUDITH ZAFFIRINI's margin +0.2pp vs statewide +38.2pp
  • Underperform2.1
    MCMULLEN
    JUDITH ZAFFIRINI's margin -58.8pp vs statewide +38.2pp
  • Mid-race flip1.2
    CALDWELL
    JUDITH ZAFFIRINI led early (59.7%); JULIE DAHLBERG won E-day (54.1%)
  • Mid-race flip0.4
    BEXAR
    JUDITH ZAFFIRINI led early (51.2%); JULIE DAHLBERG won E-day (54.0%)
  • Crossover0.0
    CALDWELL
    JUDITH ZAFFIRINI (DEM) won a county with 50.1% REP lean

County results — early vs Election Day

  • BEXAR6,099 total
    ZAFFIRINIEarly 2,453 · E-day 6023,055
    DAHLBERGEarly 2,337 · E-day 7073,044
  • CALDWELL14,469 total
    ZAFFIRINIEarly 6,590 · E-day 1,5738,163
    DAHLBERGEarly 4,454 · E-day 1,8526,306
  • DIMMIT2,529 total
    ZAFFIRINIEarly 1,134 · E-day 6901,824
    DAHLBERGEarly 410 · E-day 295705
  • DUVAL3,143 total
    ZAFFIRINIEarly 1,646 · E-day 6142,260
    DAHLBERGEarly 536 · E-day 347883
  • GUADALUPE7,912 total
    ZAFFIRINIEarly 1,899 · E-day 8522,751
    DAHLBERGEarly 3,311 · E-day 1,8505,161
  • HAYS71,205 total
    ZAFFIRINIEarly 42,326 · E-day 8,84151,167
    DAHLBERGEarly 15,143 · E-day 4,89520,038
  • JIM HOGG1,332 total
    ZAFFIRINIEarly 777 · E-day 3161,093
    DAHLBERGEarly 130 · E-day 109239
  • KARNES3,968 total
    ZAFFIRINIEarly 876 · E-day 4811,357
    DAHLBERGEarly 1,463 · E-day 1,1482,611
  • LASALLE1,780 total
    ZAFFIRINIEarly 697 · E-day 4331,130
    DAHLBERGEarly 430 · E-day 220650
  • LIVE OAK3,834 total
    ZAFFIRINIEarly 567 · E-day 312879
    DAHLBERGEarly 1,791 · E-day 1,1642,955
  • MCMULLEN359 total
    ZAFFIRINIEarly 46 · E-day 2874
    DAHLBERGEarly 194 · E-day 91285
  • STARR11,430 total
    ZAFFIRINIEarly 6,917 · E-day 2,1179,034
    DAHLBERGEarly 1,665 · E-day 7312,396
  • TRAVIS62,203 total
    ZAFFIRINIEarly 42,338 · E-day 10,68753,025
    DAHLBERGEarly 5,803 · E-day 3,3759,178
  • WEBB57,310 total
    ZAFFIRINIEarly 33,757 · E-day 9,43843,195
    DAHLBERGEarly 10,498 · E-day 3,61714,115
  • WILSON21,632 total
    ZAFFIRINIEarly 5,384 · E-day 1,3786,762
    DAHLBERGEarly 10,942 · E-day 3,92814,870
  • ZAPATA3,038 total
    ZAFFIRINIEarly 1,493 · E-day 7912,284
    DAHLBERGEarly 478 · E-day 276754