IL-09 Poll Updates
il9forecast.bsky.social
IL-09 Poll Updates
@il9forecast.bsky.social
A project by @coleurbanist.bsky.social to model the IL-09 democratic primary
2018 had a competitive governors race and 2026 has a competitive senate race. Having a competitive race at the very top of the ticket probably matters.
February 10, 2026 at 5:27 PM
the turnout for the 2018 governors race. Both are competitive primaries in a midterm that most people know about. Local races might have lower participation rates on the same ballot.

I feel 2018 is better than 2022 because there were no competitive races at the top of the ticket in 2022 primary.
February 10, 2026 at 5:27 PM
And I took the average of that portion and for precincts without proper data I just multiplied that average portion by their 2020 dem votes.

Obviously this is still flawed but should be much more accurate than the data I had before.

I also think turnout for this race will be most like
February 10, 2026 at 5:27 PM
Some precincts failed to merge properly and so the data didn’t go over properly to 2024 precincts. So what I did to account for that is for precincts that had proper data I took the 2018 dem primary turnout and divided it by the 2020 votes for Biden (which is more accurate in my data)
February 10, 2026 at 5:27 PM
I cleaned up a file I had with demographic data and have a better turnout estimate here.

I was double checking my turnout and found severe flaws. This uses roughly what the turnout in the 2018 governors races was in 2018.
This file has demographic data on a precinct level, my computed progressive score, probabilities that each candidate will win each precinct and their median result in that precinct.

drive.google.com/file/d/1Cs4l...
drive.google.com
February 10, 2026 at 5:27 PM
One estimation of turnout I have done is looking at the share that voted democrat in the general. Another is looking at presidential primaries and scaling then down a bit. That can make a huge difference!
February 10, 2026 at 2:06 AM
I want to clean up my code and file structure before making it open source. It is kind of a mess right now
February 10, 2026 at 1:47 AM
I will have to go in am make sure my precinct names match up with their precinct names.

I also want to automate this account to report results on election night when there is an update.
February 10, 2026 at 1:44 AM
For election night stuff I need to find if I can use an existing api or if I will have to use the various board of elections websites.

Civic api might not let me match up results easily but I can’t tell yet because the race isn’t in their system currently.
February 10, 2026 at 1:44 AM
Another design update is that this little display shows which region of the district a precinct is in. The options are Chicago, Evanston, Suburban Cook (which I am not including Evanston as part of), Lake County, and McHenry County.
February 10, 2026 at 12:08 AM
but she could come second in some places.
February 10, 2026 at 12:08 AM
Biss probably needs to do decently well in Chicago, and Fine needs to do well enough that she doesn't let anyone bank a bunch of votes. She doesn't need to win Chicago or even come that close really. Her real test is probably Evanston and Suburban Cook County. She won't win Evanston
February 10, 2026 at 12:08 AM
One final note, you will see that Chicago is very competitive. Chicago will probably be make or break for most campaigns. Kat absolutely needs Chicago to do well. Even before adding the boost to her here, she was only winning precincts in Chicago based purely on demographics.
February 10, 2026 at 12:08 AM
This is probably close to the final version but I may make tweaks here and there as I consider other factors that may be relevant.

Don't take this too seriously. Trying to predict individual precincts is kind of absurd but I wanted to get something that looks plausible for fun.
February 10, 2026 at 12:08 AM
I account for more error for crosstabs based on the subsamples. Smaller n means more margin of error. Any error here will affect the precinct level predictions immensely.
February 10, 2026 at 12:08 AM
This might not be how support changes (individual crosstabs may change more than others and I suspect that is the case) but I am not really sure how to account for this without more polling. If another poll with crosstabs comes out, it will average those and then scale up.
February 10, 2026 at 12:08 AM
About the crosstabs, only one poll released them so I have code to scale the crosstabs for candidates based on the weighted average. So if Kat is doing down 20% in the weighted average from the one poll then her crosstabs are scaled down.
February 10, 2026 at 12:08 AM
Now that the baseline support is set in, I give it some logic to weight where undecideds go based on age buckets, education levels, and liberal vs very liberal vs moderate based on the results of the crosstabs.
February 10, 2026 at 12:08 AM
I had these boosts in a prior version but the boosts were too strong (Biss was getting 65% in Evanston). I do still think these will be close to accurate but this is one of the biggest assumptions I make in the model.
February 10, 2026 at 12:08 AM
Low progressive scores represent moderate, medium represent somewhat liberal, and high represents very liberal.

Then from here I assumed geographical boosts for Biss in Evanston and for Kat, Huyhn, and Simmons in Chicago.
February 10, 2026 at 12:08 AM