Using Washington State Legislative Web Services I downloaded data about the rollcall votes on all motions (votes) on bills for the 2023-2024 biennium. Using that data, and using two standard visualization tools -- Principal Components Analysis (PCA) and t-SNE -- I made scatter charts showing the similarity between lawmakers.
In the analysis, two lawmakers are considered similar if they vote the same on all bills. The more similarly two lawmakers vote, the closer they should appear in the scatter charts. Two lawmakers who voted identically would be in the exactly same location on the scatter charts. But the x and y coordinates are, otherwise, arbirtary and do not, for example, refer to any precise notion of liberal versus conservative. Still, it's obvious from the charts that Republicans cluster together and Democrats cluster together.
PCA is deterministic and projects the high dimensional matrix that represents legislators' voting records onto a lower dimension (in this case, 2D), by finding the direction of maximum variabiity.
T-SNE is stocahstic, and each run generates a slightly different scatter chart and highlights potentially different relations in the underlying data. See How to use t-SNE effectively for a good overview. T-SNE can reveal interesting relations in the data but the charts it generates can be hard to interpret and it can find structure in noise. So the t-SNE charts should be viewed with caution.
I made comments below to point out some obvious features of lawmakers. People more familiar with lawmakers' legislative record may be able to explain to me why they appear as they do in the charts. I will update this page with anything useful that I learn from feedback. Please email feedback to ThinkerFeeler@gmail.com.
The Democrats are clumped on the left, except for Senator Hansen, who is alone at the bottom. One thing unusual about him is that he voted fewer times than other Senators, because he served only part of the session; he was appointed to the Senate in 2023. He served in both the Senate and the House. See the count of votes by each lawmaker near the end of this page.
You can see above that Democratic Senators Mullet, Rolfes, and Van De Wege are closer to Republicans than other Democratic senators. But Senator Rolfes served a partial term.
This view of the senators shows a nice separation between senators, with the Dems clustered on the right. (As I said above, left-right on this char does not correspond to liberalism-conservatiism; it's an arbitrary dimension.) Senator Hansen is in between the clusters but closer to the Democrats.
Interestingly, Senator Rolfes is now furthest from the Republicans, suggesting that he differs from other Democrats not in being more conservative.
This view is similar to the previous and shows Senator Mullet close to the Republicans, as expected. Senator Hansen is on the upper left edge of the Democrats. Senator Hasegawa is furthest from the Republicans.
Rep. Chandler appears to be a moderate Republican, closer to the Democrats. But his location is skewed by the fact that he voted fewer than half as often as other represenatives. Likewise Rep. Nance and Rep Hansen also served only a partial term. Rep. Hale made only a few votes and so their position can be ignored.
This shows a nice separation between Ds and Rs, with Rep. Chandler again showing as a Democrat-leaning Republican (scewed by their partial tenures).
This shows Rep. Chandler and Rep. Hale as being Democrat-leaning Republicans.
This shows Democrat Hansen being very close to Republicans Chandler and Hale. But that may be an artifact of his partial tenure in the House.
Billig: 1483 yeas, 27 nays, 0, absents, 12 excused Boehnke: 1192 yeas, 262 nays, 1, absents, 67 excused Braun: 1273 yeas, 245 nays, 2, absents, 2 excused Cleveland: 1496 yeas, 26 nays, 0, absents, 0 excused Conway: 1448 yeas, 34 nays, 0, absents, 40 excused Dhingra: 1459 yeas, 39 nays, 2, absents, 22 excused Dozier: 1230 yeas, 286 nays, 0, absents, 6 excused Fortunato: 1141 yeas, 291 nays, 3, absents, 87 excused Frame: 1483 yeas, 38 nays, 0, absents, 1 excused Gildon: 1304 yeas, 215 nays, 1, absents, 2 excused Hansen: 650 yeas, 13 nays, 1, absents, 0 excused Hasegawa: 1407 yeas, 113 nays, 0, absents, 2 excused Hawkins: 1292 yeas, 214 nays, 1, absents, 15 excused Holy: 1324 yeas, 195 nays, 0, absents, 3 excused Hunt: 1464 yeas, 41 nays, 1, absents, 16 excused Kauffman: 1365 yeas, 57 nays, 1, absents, 99 excused Keiser: 1477 yeas, 33 nays, 1, absents, 11 excused King: 1342 yeas, 180 nays, 0, absents, 0 excused Kuderer: 1423 yeas, 44 nays, 0, absents, 55 excused Liias: 1365 yeas, 44 nays, 4, absents, 109 excused Lovelett: 1460 yeas, 57 nays, 1, absents, 4 excused Lovick: 1494 yeas, 27 nays, 1, absents, 0 excused MacEwen: 1246 yeas, 250 nays, 0, absents, 26 excused McCune: 1169 yeas, 311 nays, 0, absents, 42 excused Mullet: 1452 yeas, 58 nays, 2, absents, 10 excused Muzzall: 1301 yeas, 182 nays, 0, absents, 39 excused Nguyen: 1471 yeas, 47 nays, 0, absents, 4 excused Nobles: 1456 yeas, 40 nays, 2, absents, 24 excused Padden: 1154 yeas, 339 nays, 3, absents, 26 excused Pedersen: 1484 yeas, 38 nays, 0, absents, 0 excused Randall: 1445 yeas, 39 nays, 2, absents, 36 excused Rivers: 1291 yeas, 185 nays, 1, absents, 45 excused Robinson: 1490 yeas, 30 nays, 0, absents, 2 excused Rolfes: 818 yeas, 25 nays, 1, absents, 14 excused SaldaƱa: 1395 yeas, 43 nays, 3, absents, 81 excused Salomon: 1444 yeas, 41 nays, 6, absents, 31 excused Schoesler: 1196 yeas, 324 nays, 0, absents, 2 excused Shewmake: 1477 yeas, 33 nays, 1, absents, 11 excused Short: 1184 yeas, 285 nays, 0, absents, 53 excused Stanford: 1468 yeas, 48 nays, 1, absents, 5 excused Torres: 1282 yeas, 224 nays, 0, absents, 16 excused Trudeau: 1419 yeas, 55 nays, 1, absents, 47 excused Valdez: 1473 yeas, 49 nays, 0, absents, 0 excused Van De Wege: 1400 yeas, 46 nays, 1, absents, 75 excused Wagoner: 1237 yeas, 280 nays, 0, absents, 5 excused Warnick: 1251 yeas, 270 nays, 0, absents, 1 excused Wellman: 1479 yeas, 38 nays, 1, absents, 4 excused Wilson, C.: 1485 yeas, 37 nays, 0, absents, 0 excused Wilson, J.: 1279 yeas, 205 nays, 1, absents, 37 excused Wilson, L.: 1232 yeas, 278 nays, 0, absents, 12 excused
Represenatives Abbarno: 1025 yeas, 314 nays, 0, absents, 0 excused Alvarado: 1272 yeas, 67 nays, 0, absents, 0 excused Barkis: 1055 yeas, 256 nays, 0, absents, 28 excused Barnard: 1055 yeas, 280 nays, 0, absents, 4 excused Bateman: 1280 yeas, 59 nays, 0, absents, 0 excused Berg: 1286 yeas, 53 nays, 0, absents, 0 excused Bergquist: 1287 yeas, 52 nays, 0, absents, 0 excused Berry: 1258 yeas, 64 nays, 0, absents, 17 excused Bronoske: 1265 yeas, 74 nays, 0, absents, 0 excused Caldier: 1042 yeas, 287 nays, 0, absents, 10 excused Callan: 1281 yeas, 58 nays, 0, absents, 0 excused Chambers: 1032 yeas, 294 nays, 0, absents, 13 excused Chandler: 531 yeas, 151 nays, 0, absents, 657 excused Chapman: 1247 yeas, 92 nays, 0, absents, 0 excused Cheney: 1109 yeas, 230 nays, 0, absents, 0 excused Chopp: 1257 yeas, 75 nays, 0, absents, 7 excused Christian: 970 yeas, 369 nays, 0, absents, 0 excused Connors: 1045 yeas, 294 nays, 0, absents, 0 excused Corry: 929 yeas, 303 nays, 0, absents, 107 excused Cortes: 1281 yeas, 58 nays, 0, absents, 0 excused Couture: 1025 yeas, 314 nays, 0, absents, 0 excused Davis: 1274 yeas, 63 nays, 0, absents, 2 excused Dent: 1002 yeas, 337 nays, 0, absents, 0 excused Doglio: 1279 yeas, 60 nays, 0, absents, 0 excused Donaghy: 1287 yeas, 52 nays, 0, absents, 0 excused Duerr: 1279 yeas, 51 nays, 0, absents, 9 excused Dye: 976 yeas, 320 nays, 0, absents, 43 excused Entenman: 1239 yeas, 63 nays, 0, absents, 37 excused Eslick: 1048 yeas, 248 nays, 0, absents, 43 excused Farivar: 1257 yeas, 68 nays, 0, absents, 14 excused Fey: 1266 yeas, 51 nays, 0, absents, 22 excused Fitzgibbon: 1276 yeas, 56 nays, 0, absents, 7 excused Fosse: 1282 yeas, 57 nays, 0, absents, 0 excused Goehner: 1085 yeas, 254 nays, 0, absents, 0 excused Goodman: 1284 yeas, 54 nays, 0, absents, 1 excused Graham: 969 yeas, 356 nays, 0, absents, 14 excused Gregerson: 1269 yeas, 59 nays, 0, absents, 11 excused Griffey: 1047 yeas, 288 nays, 0, absents, 4 excused Hackney: 1281 yeas, 47 nays, 0, absents, 11 excused Hale: 2 yeas, 4 nays, 0, absents, 0 excused Hansen: 600 yeas, 24 nays, 0, absents, 123 excused Harris: 1095 yeas, 243 nays, 1, absents, 0 excused Hutchins: 1072 yeas, 267 nays, 0, absents, 0 excused Jacobsen: 970 yeas, 369 nays, 0, absents, 0 excused Jinkins: 1273 yeas, 49 nays, 0, absents, 17 excused Klicker: 978 yeas, 305 nays, 0, absents, 56 excused Kloba: 1277 yeas, 62 nays, 0, absents, 0 excused Kretz: 1037 yeas, 294 nays, 0, absents, 8 excused Leavitt: 1236 yeas, 103 nays, 0, absents, 0 excused Lekanoff: 1269 yeas, 48 nays, 0, absents, 22 excused Low: 1079 yeas, 260 nays, 0, absents, 0 excused Macri: 1266 yeas, 67 nays, 0, absents, 6 excused Maycumber: 976 yeas, 286 nays, 0, absents, 77 excused McClintock: 1014 yeas, 301 nays, 0, absents, 24 excused McEntire: 848 yeas, 380 nays, 0, absents, 27 excused Mena: 1272 yeas, 65 nays, 0, absents, 2 excused Morgan: 1153 yeas, 57 nays, 0, absents, 129 excused Mosbrucker: 1039 yeas, 298 nays, 0, absents, 2 excused Nance: 572 yeas, 20 nays, 0, absents, 0 excused Orcutt: 989 yeas, 350 nays, 0, absents, 0 excused Ormsby: 1277 yeas, 62 nays, 0, absents, 0 excused Ortiz-Self: 1079 yeas, 42 nays, 1, absents, 217 excused Orwall: 1288 yeas, 51 nays, 0, absents, 0 excused Paul: 1142 yeas, 64 nays, 0, absents, 133 excused Peterson: 1289 yeas, 50 nays, 0, absents, 0 excused Pollet: 1259 yeas, 80 nays, 0, absents, 0 excused Ramel: 1280 yeas, 59 nays, 0, absents, 0 excused Ramos: 1252 yeas, 71 nays, 0, absents, 16 excused Reed: 1267 yeas, 71 nays, 0, absents, 1 excused Reeves: 1187 yeas, 49 nays, 0, absents, 103 excused Riccelli: 1291 yeas, 48 nays, 0, absents, 0 excused Robertson: 1047 yeas, 292 nays, 0, absents, 0 excused Rude: 1075 yeas, 264 nays, 0, absents, 0 excused Rule: 1261 yeas, 75 nays, 0, absents, 3 excused Ryu: 1268 yeas, 65 nays, 0, absents, 6 excused Sandlin: 1046 yeas, 278 nays, 0, absents, 15 excused Santos: 1268 yeas, 62 nays, 0, absents, 9 excused Schmick: 1007 yeas, 332 nays, 0, absents, 0 excused Schmidt: 1027 yeas, 310 nays, 0, absents, 2 excused Senn: 1275 yeas, 64 nays, 0, absents, 0 excused Shavers: 1267 yeas, 72 nays, 0, absents, 0 excused Simmons: 1267 yeas, 59 nays, 0, absents, 13 excused Slatter: 1288 yeas, 51 nays, 0, absents, 0 excused Springer: 1277 yeas, 62 nays, 0, absents, 0 excused Stearns: 1288 yeas, 50 nays, 0, absents, 1 excused Steele: 1057 yeas, 258 nays, 0, absents, 24 excused Stokesbary: 1038 yeas, 300 nays, 0, absents, 1 excused Stonier: 1283 yeas, 53 nays, 0, absents, 3 excused Street: 1278 yeas, 61 nays, 0, absents, 0 excused Taylor: 1274 yeas, 52 nays, 0, absents, 13 excused Thai: 1255 yeas, 63 nays, 0, absents, 21 excused Tharinger: 1269 yeas, 53 nays, 0, absents, 17 excused Timmons: 1264 yeas, 75 nays, 0, absents, 0 excused Volz: 889 yeas, 308 nays, 0, absents, 142 excused Walen: 1266 yeas, 72 nays, 0, absents, 1 excused Walsh: 899 yeas, 440 nays, 0, absents, 0 excused Waters: 1068 yeas, 244 nays, 0, absents, 27 excused Wilcox: 1026 yeas, 258 nays, 0, absents, 55 excused Wylie: 1258 yeas, 48 nays, 0, absents, 33 excused Ybarra: 1042 yeas, 293 nays, 0, absents, 4 excused
Nice! I did a similar analysis a few years ago using PCA on the cosponsorship data (Senate: https://public.tableau.com/app/profile/aaron.jacobson/viz/WashingtonStateSenateCosponsorshipIdeology/SenateDashboard, House: https://public.tableau.com/app/profile/aaron.jacobson/viz/WALeg_Ideology/HouseDashboard).
Interesting to see where these line up and where they don't.
My understanding is Van De Wege and Mullet are moderate Democrats. Rolfes is certainly not super left-leaning but I don't think she is seen as the most conservative Dem. Hasegawa is sometimes cited as the most left leaning State Senator. Fortunato is sometimes seen as quite far right IIRC.
In the house, Reps. Springer and Walen are quite moderate Dems and Macri is seen as very far left. Walsh is quite a bit to the right.
In general you can also assume the legislators in (or formerly in) leadership positions vote/act more moderate than their personal beliefs since they're trying to grow the caucus. So Jinkins, Stokesbary, Wilcox, Chopp (before the last two stepped down), Billig, and Braun are all good ones to see if they're sufficiently close to the center.