2026 state legislative forecast

Pennsylvania House forecast

Democrats win control of the Pennsylvania House in 95% of 2,000 simulations. All 203 seats are on the 2026 ballot; 7 races are within a 35 to 65 split.

Safe DUpdated October 17, 2026Seats 203On the ballot 203Pennsylvania SenateAll chambers
Chance of control
95%D5%R
Democratic seats, 80% range
103 to 115
Median 108 ยท 102 for a majority
Favored to flip
6to D1to R
After 2024: 101 D, 101 R, 1 other
Environment
D +8.3
Shift from the 2024 presidential vote

Pennsylvania House map

District 1: Democrats >99%District 2: Democrats >99%District 3: Democrats >99%District 4: Democrats <1%District 5: Democrats <1%District 6: Democrats <1%District 7: Democrats 7%District 8: Democrats <1%District 9: Democrats <1%District 10: Democrats >99%District 11: Democrats <1%District 12: Democrats <1%District 13: Democrats 27%District 14: Democrats <1%District 15: Democrats <1%District 16: Democrats 94%District 17: Democrats <1%District 18: Democrats 59%District 19: Democrats >99%District 20: Democrats >99%District 21: Democrats >99%District 22: Democrats >99%District 23: Democrats >99%District 24: Democrats >99%District 25: Democrats >99%District 26: Democrats >99%District 27: Democrats >99%District 28: Democrats 34%District 29: Democrats >99%District 30: Democrats >99%District 31: Democrats >99%District 32: Democrats >99%District 33: Democrats >99%District 34: Democrats >99%District 35: Democrats >99%District 36: Democrats >99%District 37: Democrats <1%District 38: Democrats >99%District 39: Democrats 5%District 40: Democrats 15%District 41: Democrats 39%District 42: Democrats >99%District 43: Democrats <1%District 44: Democrats 67%District 45: Democrats >99%District 46: Democrats 3%District 47: Democrats <1%District 48: Democrats <1%District 49: Democrats >99%District 50: Democrats <1%District 51: Democrats <1%District 52: Democrats <1%District 53: Democrats >99%District 54: Democrats >99%District 55: Democrats <1%District 56: Democrats <1%District 57: Democrats 2%District 58: Democrats <1%District 59: Democrats <1%District 60: Democrats <1%District 61: Democrats >99%District 62: Democrats <1%District 63: Democrats <1%District 64: Democrats <1%District 65: Democrats <1%District 66: Democrats <1%District 67: Democrats <1%District 68: Democrats <1%District 69: Democrats <1%District 70: Democrats >99%District 71: Democrats <1%District 72: Democrats 26%District 73: Democrats <1%District 74: Democrats >99%District 75: Democrats <1%District 76: Democrats <1%District 77: Democrats >99%District 78: Democrats <1%District 79: Democrats <1%District 80: Democrats <1%District 81: Democrats <1%District 82: Democrats 98%District 83: Democrats <1%District 84: Democrats <1%District 85: Democrats <1%District 86: Democrats <1%District 87: Democrats 3%District 88: Democrats 48%District 89: Democrats <1%District 90: Democrats <1%District 91: Democrats <1%District 92: Democrats <1%District 93: Democrats <1%District 94: Democrats <1%District 95: Democrats >99%District 96: Democrats >99%District 97: Democrats 2%District 98: Democrats <1%District 99: Democrats <1%District 100: Democrats <1%District 101: Democrats <1%District 102: Democrats <1%District 103: Democrats >99%District 104: Democrats >99%District 105: Democrats >99%District 106: Democrats 4%District 107: Democrats <1%District 108: Democrats <1%District 109: Democrats <1%District 110: Democrats <1%District 111: Democrats <1%District 112: Democrats 99%District 113: Democrats >99%District 114: Democrats >99%District 115: Democrats 99%District 116: Democrats <1%District 117: Democrats <1%District 118: Democrats 98%District 119: Democrats 2%District 120: Democrats 18%District 121: Democrats >99%District 122: Democrats <1%District 123: Democrats <1%District 124: Democrats <1%District 125: Democrats <1%District 126: Democrats >99%District 127: Democrats >99%District 128: Democrats 5%District 129: Democrats >99%District 130: Democrats <1%District 131: Democrats 41%District 132: Democrats >99%District 133: Democrats >99%District 134: Democrats >99%District 135: Democrats >99%District 136: Democrats >99%District 137: Democrats 87%District 138: Democrats <1%District 139: Democrats <1%District 140: Democrats >99%District 141: Democrats >99%District 142: Democrats 59%District 143: Democrats 51%District 144: Democrats 93%District 145: Democrats 13%District 146: Democrats >99%District 147: Democrats 16%District 148: Democrats >99%District 149: Democrats >99%District 150: Democrats >99%District 151: Democrats >99%District 152: Democrats >99%District 153: Democrats >99%District 154: Democrats >99%District 155: Democrats >99%District 156: Democrats >99%District 157: Democrats >99%District 158: Democrats >99%District 159: Democrats >99%District 160: Democrats 84%District 161: Democrats >99%District 162: Democrats >99%District 163: Democrats >99%District 164: Democrats >99%District 165: Democrats >99%District 166: Democrats >99%District 167: Democrats >99%District 168: Democrats >99%District 169: Democrats <1%District 170: Democrats 31%District 171: Democrats <1%District 172: Democrats 91%District 173: Democrats >99%District 174: Democrats >99%District 175: Democrats >99%District 176: Democrats 1%District 177: Democrats >99%District 178: Democrats 5%District 179: Democrats >99%District 180: Democrats >99%District 181: Democrats >99%District 182: Democrats >99%District 183: Democrats <1%District 184: Democrats >99%District 185: Democrats >99%District 186: Democrats >99%District 187: Democrats 45%District 188: Democrats >99%District 189: Democrats >99%District 190: Democrats >99%District 191: Democrats >99%District 192: Democrats >99%District 193: Democrats <1%District 194: Democrats >99%District 195: Democrats >99%District 196: Democrats <1%District 197: Democrats >99%District 198: Democrats >99%District 199: Democrats 3%District 200: Democrats >99%District 201: Democrats >99%District 202: Democrats >99%District 203: Democrats >99%23467811121746474850515256575960626364656667686971727375767778798081828384858687899091102103107108109110111115117119120122123124139171176189193
Safe DLean DToss upLean RSafe R

District shapes are estimated from where each district's voters live in the precinct returns, not drawn from the official boundary files.

Pick a district

Hover the map for the odds in any district. Click one to pin it here and find it in the table below.

Every seat

Average 109 D to 94 R
District 1: Democrats win >99%District 2: Democrats win >99%District 10: Democrats win >99%District 19: Democrats win >99%District 20: Democrats win >99%District 21: Democrats win >99%District 22: Democrats win >99%District 23: Democrats win >99%District 24: Democrats win >99%District 25: Democrats win >99%District 27: Democrats win >99%District 31: Democrats win >99%District 32: Democrats win >99%District 34: Democrats win >99%District 35: Democrats win >99%District 36: Democrats win >99%District 42: Democrats win >99%District 45: Democrats win >99%District 49: Democrats win >99%District 53: Democrats win >99%District 54: Democrats win >99%District 61: Democrats win >99%District 70: Democrats win >99%District 77: Democrats win >99%District 95: Democrats win >99%District 96: Democrats win >99%District 103: Democrats win >99%District 104: Democrats win >99%District 105: Democrats win >99%District 127: Democrats win >99%District 129: Democrats win >99%District 133: Democrats win >99%District 135: Democrats win >99%District 136: Democrats win >99%District 141: Democrats win >99%District 146: Democrats win >99%District 148: Democrats win >99%District 149: Democrats win >99%District 150: Democrats win >99%District 151: Democrats win >99%District 152: Democrats win >99%District 153: Democrats win >99%District 154: Democrats win >99%District 155: Democrats win >99%District 156: Democrats win >99%District 157: Democrats win >99%District 158: Democrats win >99%District 159: Democrats win >99%District 163: Democrats win >99%District 164: Democrats win >99%District 166: Democrats win >99%District 167: Democrats win >99%District 174: Democrats win >99%District 175: Democrats win >99%District 177: Democrats win >99%District 179: Democrats win >99%District 180: Democrats win >99%District 181: Democrats win >99%District 182: Democrats win >99%District 184: Democrats win >99%District 185: Democrats win >99%District 186: Democrats win >99%District 188: Democrats win >99%District 190: Democrats win >99%District 191: Democrats win >99%District 192: Democrats win >99%District 194: Democrats win >99%District 195: Democrats win >99%District 197: Democrats win >99%District 198: Democrats win >99%District 200: Democrats win >99%District 201: Democrats win >99%District 202: Democrats win >99%District 203: Democrats win >99%District 132: Democrats win >99%District 134: Democrats win >99%District 165: Democrats win >99%District 168: Democrats win >99%District 26: Democrats win >99%District 29: Democrats win >99%District 161: Democrats win >99%District 189: Democrats win >99%District 162: Democrats win >99%District 113: Democrats win >99%District 3: Democrats win >99%District 33: Democrats win >99%District 114: Democrats win >99%District 173: Democrats win >99%District 126: Democrats win >99%District 30: Democrats win >99%District 74: Democrats win >99%District 38: Democrats win >99%District 140: Democrats win >99%District 121: Democrats win >99%District 112: Democrats win 99%District 115: Democrats win 99%District 118: Democrats win 98%District 82: Democrats win 98%District 16: Democrats win 94%District 144: Democrats win 93%District 172: Democrats win 91%District 137: Democrats win 87%District 160: Democrats win 84%District 44: Democrats win 67%District 18: Democrats win 59%District 142: Democrats win 59%District 143: Democrats win 51%District 88: Democrats win 48%District 187: Democrats win 45%District 131: Democrats win 41%District 41: Democrats win 39%District 28: Democrats win 34%District 170: Democrats win 31%District 13: Democrats win 27%District 72: Democrats win 26%District 120: Democrats win 18%District 147: Democrats win 16%District 40: Democrats win 15%District 145: Democrats win 13%District 7: Democrats win 7%District 178: Democrats win 5%District 128: Democrats win 5%District 39: Democrats win 5%District 106: Democrats win 4%District 87: Democrats win 3%District 199: Democrats win 3%District 46: Democrats win 3%District 97: Democrats win 2%District 119: Democrats win 2%District 57: Democrats win 2%District 176: Democrats win 1%District 47: Democrats win <1%District 138: Democrats win <1%District 48: Democrats win <1%District 183: Democrats win <1%District 9: Democrats win <1%District 4: Democrats win <1%District 12: Democrats win <1%District 93: Democrats win <1%District 55: Democrats win <1%District 5: Democrats win <1%District 6: Democrats win <1%District 8: Democrats win <1%District 11: Democrats win <1%District 14: Democrats win <1%District 15: Democrats win <1%District 17: Democrats win <1%District 37: Democrats win <1%District 43: Democrats win <1%District 50: Democrats win <1%District 51: Democrats win <1%District 52: Democrats win <1%District 56: Democrats win <1%District 58: Democrats win <1%District 59: Democrats win <1%District 60: Democrats win <1%District 62: Democrats win <1%District 63: Democrats win <1%District 64: Democrats win <1%District 65: Democrats win <1%District 66: Democrats win <1%District 67: Democrats win <1%District 68: Democrats win <1%District 69: Democrats win <1%District 71: Democrats win <1%District 73: Democrats win <1%District 75: Democrats win <1%District 76: Democrats win <1%District 78: Democrats win <1%District 79: Democrats win <1%District 80: Democrats win <1%District 81: Democrats win <1%District 83: Democrats win <1%District 84: Democrats win <1%District 85: Democrats win <1%District 86: Democrats win <1%District 89: Democrats win <1%District 90: Democrats win <1%District 91: Democrats win <1%District 92: Democrats win <1%District 94: Democrats win <1%District 98: Democrats win <1%District 99: Democrats win <1%District 100: Democrats win <1%District 101: Democrats win <1%District 102: Democrats win <1%District 107: Democrats win <1%District 108: Democrats win <1%District 109: Democrats win <1%District 110: Democrats win <1%District 111: Democrats win <1%District 116: Democrats win <1%District 117: Democrats win <1%District 122: Democrats win <1%District 123: Democrats win <1%District 124: Democrats win <1%District 125: Democrats win <1%District 130: Democrats win <1%District 139: Democrats win <1%District 169: Democrats win <1%District 171: Democrats win <1%District 193: Democrats win <1%District 196: Democrats win <1%
Safe DLean DToss upLean RSafe R
Democratic seats across 2,000 simulations
102 for a majority9297102117131

Every House district

DistrictLast winner2026 nominees2024 leanForecastDem winRating
143Shelby E Labs 2024Timothy L. Hayes vs Shelby Labs ยท Christopher D. Gambino (O)2 pollsR +5.6D +0.251%Toss up
88Sheryl M Delozier 2024Sara M. Agerton vs Jeff ClarkR +0.9R +0.448%Toss up
187Gary W Day 2024Rachel Cuevas vs Gary Day2 pollsR +9.5R +0.845%Toss up
131V Milou Mackenzie 2024Meriam H. Sabih vs Milou Mackenzie2 pollsR +10.3R +1.441%Toss up
142Joseph F Hogan 2024Kristin Egan vs Joe Hogan2 pollsR +3.4D +1.459%Toss up
18Kathleen C Tomlinson 2024Bryan F. Allen Jr. vs K.C. Tomlinson2 pollsR +3.3D +1.559%Toss up
41Brett R Miller 2024Bradford T. Chambers vs Brett Miller2 pollsR +5.0R +2.039%Toss up
28Jeremy K Shaffer 2024Jeremy Ferderber vs Jeremy ShafferR +7.6R +2.734%Lean R
44Valerie S Gaydos 2024Hadley B. Haas vs Valerie GaydosR +3.9D +3.367%Lean D
170Martina A White 2024Robert N. Gurtcheff II vs Martina WhiteR +14.7R +3.331%Lean R
13John Adda Lawrence 2024Madelyn G. Alvarino vs John LawrenceR +4.8R +3.827%Lean R
72Frank Burns 2024Frank Burns vs Philip RiceR +31.6R +4.626%Lean R
120Brenda M Pugh 2024Fern Leard vs Brenda PughR +11.8R +6.218%Likely R
40Natalie Stuck 2024Jonathan C. Lloyd vs Natalie MihalekR +5.9R +6.615%Likely R
160Wendell Craig Williams 2024Elizabeth Moro vs Craig WilliamsD +5.4D +6.884%Likely D
147Donna Marie Scheuren 2024Margaret Burke vs Donna Scheuren1 pollR +9.8R +6.816%Likely R
145Craig T Staats 2024Les Mavus vs Craig Staats1 pollR +15.7R +7.713%Likely R
137Joseph T Emrick 2024Jeffrey M. Warren vs Joe EmrickR +1.0D +7.887%Likely D
172Sean Michael Dougherty 2024Sean Dougherty vs Wallace J. QuinlanR +0.9D +8.991%Likely D
7Parke H Wentling 2024Chris Ford vs Parke WentlingR +17.7R +9.67%Likely R
144Brian Munroe 2024Brian Munroe vs Michael J. Murphy1 pollR +0.3D +9.693%Likely D
16Robert F Matzie 2024Robert Matzie vs John CostanzaR +7.5D +10.094%Likely D
178Kristin Marcell 2024Monica Weninger vs Kristin Marcell1 pollR +13.0R +10.65%Likely R
39Andrew M Kuzma 2024Dylan Altemara vs Andrew KuzmaR +19.2R +11.25%Likely R
106Thomas L Mehaffie 2024Anju Singh vs Tom MehaffieR +9.9R +11.24%Likely R
128Mark M Gillen 2024Andrew Wagner vs Mark M. GillenR +17.4R +11.75%Likely R
87Thomas H Kutz 2024Jessica Lynne St. Clair vs Thomas KutzR +11.5R +11.73%Likely R
46Jason A Ortitay 2024Michael Crossey vs Jason OrtitayR +14.8R +11.83%Likely R
199Barbara Gleim 2024Tawanda Hunter Stallworth vs Barbara GleimR +15.6R +12.03%Likely R
How this is built
Each district starts from its 2024 presidential vote, read off the precincts that voted in it, and moves with the state's 2026 House forecast and the national generic ballot. Half of what the last legislative winner ran ahead of the district carries over, 2026 primary turnout moves districts where it is posted, and district and statewide legislative polls count by recency and sample. A seat with no candidate from one party is called for the other. 2,000 simulations share a national, a state and a district shock. The map's district shapes are estimated from where each district's voters are in the precinct returns. All chambers.