JACK BAKER: With less than a month until the March 17 primary election, The Daily sat down with Evanston Township High School sophomore Ryan McComb, the creator of IL9.org, a website dedicated to predicting the outcome of the crowded race to replace outgoing U.S. Rep. Jan Schakowsky (D-Evanston).
From The Daily Northwestern, I’m Jack Baker. Welcome to The Open Seat, a new limited edition podcast series exploring the once-in-a-generation race to represent Evanston and surrounding municipalities in Congress. Over the next few weeks, we’ll be talking to key actors about the campaigns of Mayor Daniel Biss, progressive content creator Kat Abughazaleh and State. Sen. Laura Fine (D-Glenview), among others, ahead of the big day.
For our first episode, I spoke with McComb about how IL9.org works, what prediction markets and polling data can — and can’t — tell us about this race and why a high school sophomore decided to model one of the most closely watched primaries in Illinois politics.
[music]
JACK BAKER: So, can you tell me a little bit about what motivated you to build a forecasting model for this race specifically, and were there any websites, analysts or forecasts that you drew inspiration from as you designed the model?
RYAN MCCOMB: Yeah, first, thanks for having me here and all this. But this model, originally, when I built it, was a model mainly for myself. I built it as like a minimum viable product, basically scraped it together. The UI looked beyond horrible. It was just basically a string of numbers and equations I had put together.
As I thought, you know, this is kind of cool, why not make this a bit more stuff? I sent it around to a few people in the Biss campaign. They kind of liked it, and after a while, I thought, you know, why not get the domain? IL9.com costs about $10,000. IL9.org costs about $10, so I was incredibly lucky to be able to get a good domain for it. I redid the UI a bit. I added a few more features, and I kind of started it. And that’s kind of how this whole thing started.
This is inspired, and I kind of mentioned this a bit, by a lot of the people who I’ve looked up to for most of my life: Nate Silver and their stuff that they’ve done at FiveThirtyEight, G. Elliott Morris, who is another later in FiveThirtyEight’s tenure before it got killed by Disney and Galen Druke, who runs a political science podcast that I have listened to for I can’t even think about how long, but, you know, that was the inspiration for this project and obviously the market’s part, and we’ll talk about all of that in depth, is less of what they do and more of my interest.
Since then, I’ve incorporated some other stuff that’s more pertinent to that kind of stuff, but you know, that was my inspiration, and that’s where, you know, it all kind of comes from in the end.
JACK BAKER: For listeners who may be a little less familiar, can you explain how prediction or betting markets work? And what information do they capture that sort of more traditional indicators like polling, fundraising, endorsements might miss?
RYAN MCCOMB: For sure. So first, I would like to differentiate because people get confused with this website because there’s so many different things going on.
We have three, I would call them products or features or whatever you want to call them. One is our fundraising hub. That is objective numbers. We get those from the FEC. There is no model data, anything. That is pure API calls and just pulling data from the FEC.
We have our model, which I think I’ll talk about a bit later. It doesn’t involve prediction markets, but is a fundamental model based on polling, based on demographics, based on expected turnout, and a ton of independent variables that we run Monte Carlo simulations on in expected results.
What you’re talking about is the markets model. The markets model is purely a mix of two main prediction markets: Manifold and Kalshi. And we give different weights, and I’ll explain them in a second.
Kalshi is a real money prediction market, and I’ll kind of get into that. And Manifold is a non-real prediction market. Now, on Kalshi, if you were to Google Kalshi right now, and for the odds for the IL-9 district, you could find odds.
Currently, I think I looked at them right before I came here, they’re fine. However, in prediction markets, so I’m gonna give a kind of a quick explainer, prediction markets allow you to buy and sell contracts of things that are gonna happen, maybe.
One of the things is winning the IL-9 district. They have many different candidates. Only roughly three of them are priced in, or they’re actively traded, and you can, you can buy or sell. Now, something key to this product is the fact that on these exchanges, you have to trade against someone. You do this through limit orders.
People will say, “I’m willing to buy Daniel Biss at, say, I think that there’s a 60% chance Daniel will win, which means I will pay 60 cents for a $1 payout if Daniel Biss wins.” But say the market’s at 64, so you would put a limit order at 60, OK?
Basically saying if the market gets down to 60, I’ll buy, OK? Now, the same thing exists in the stock market. It is basically a derivative of what the stock market does. It’s very important to understand that there’s not a lot of limit orders in the markets, which causes rapid price movements, especially in Kalshi.
JACK BAKER: For example, recently the bid-ask spread on Kalshi for Laura Fine spiked, but your model remained relatively stable. I know that you’ve written about that on the website. But I guess, as you were alluding to before, what controls or assumptions are built into the model to dampen, sort of, the short-term market volatility that you were just describing, specifically on Kalshi?
RYAN MCCOMB: Yeah, so that’s a great question. Manifold will never have this because you’re always trading against someone. So we ignore Manifold, we just take Manifold’s price as the true price.
It is factored in much less than Kalshi because it’s fake money, but it is an incredibly accurate website, more accurate than any political pundit’s predictions have ever been, and I assume will continue to be.
On the Laura Fine thing, this was a thing I wrote up because I thought it was interesting to explain.
So a bid-ask spread is basically the difference between the person who wants to buy with a limit order and a person who wants to sell. Now, I don’t remember fully, but the bid was at about 14 — basically people saying, “I think there’s a 14% chance of Laura Fine winning, and I’m willing to place money on that,” and somebody’s saying, I think there’s 16% chance that I will sell — basically, I think she’s less than a 16% chance, and I’ll put money on that.”
It’s a 2-cent bid-ask spread delta, but what happened was — I assume a bad trader, a person who doesn’t fully understand how this works, bought — or maybe, maybe, maybe they’re an insider traders, I don’t know, I won’t speculate.
But anyways, they bought Fine contracts all the way up to 30 cents. After that, there were still people who wanted to buy — at 16, 17, 18, 19 — and there was more as you go up. They bought it all the way up to 30, right?
Now, in our usual market — and especially in an effective, efficient market — this would never happen. If this were true, if it deserved to be a 30, people would immediately have swiped it up, the bid-ask spread would be around there, and people would be willing to buy at higher prices. But that’s not what happened.
Immediately, the next limit order placed was at about 16 or 17 — or no, it was actually a bit higher, like 20-something — and then eventually it came down. But on Kalshi, if you looked at the probability on Kalshi, it still says 30%, even though I can guarantee you the next contract will be sold between roughly 14 cents and 20-something cents. It’s hella misleading.
So our model — I keep calling it that, our equations that we have, or that I came up with — they saw that this was outside of the bid-ask spread, that the current market price was outside of the spread. They throttle the probability on our website.
We do apply an exponential moving average, so even that changed, because we do factor in the fact that they paid 30 cents. There was somebody willing to pay 30 cents — whether it was a good decision or not is up to them — but we do factor that in. Though, we throttled down that part of the probability and raised up the liquidity-weighted, which is basically where people are willing to buy and sell, and just the midpoint where we just take: Where’s the bid, where’s the ask?
So if the bid is at 16 and the ask is at 14, we just choose 15 as a probability. And those were added to the model, and they much dampen our response.
So if you’re watching our website, you would see, “Oh, Laura Fine spiked a few percent — maybe three or four percent.” On Kalshi, you’d be like, “Oh my God, something’s happening.” So that’s kind of a hopefully succinct explanation-ish to the question.
JACK BAKER: One of the most interesting parts of the website, from my perspective, is sort of the precinct-level map that it includes. Could you talk a little bit more about how that was formulated, and what does it tell us about where the leading candidates — Biss, Fine, Abughazaleh — are drawing their strongest support at this moment?
RYAN MCCOMB: For sure. OK, so I have to give credit where credit is due. Thank you, Matthew Eadie, for the GeoJSON file. It’s just on a file that allows it to be easily displayed. And also, I would like to thank a man on Bluesky. I won’t mention his name, but he gave me a lot of demographic data I used for this. So thank you to both of you for that — it helped me build the model much quicker than I was going to be able to.
If you look at the map, Kat draws a lot of her support from a younger Chicago. That is in line with stuff we’ve seen, along with a Data for Progress poll that came out that showed she had 29% support among very liberal voters.
This all tracks. If you look at the model, we run 100,000 simulations, and she actually loses support as more voters come out because her very liberal support is very high propensity. In turn, with what we believe the polls have shown, Daniel Biss wins pretty much all of Evanston, as one would expect.
His name recognition is off the charts. He’s been the mayor for, at this point, 5 or 6 years. He’s also represented different parts of Evanston in different capacities as state senator. He ran for governor, so obviously, good name rec throughout the district, but especially in Evanston.
We do some other stuff in Evanston. I’ll talk about it real quick. With undecideds in Evanston, we divert them a bit. Usually, we have a velocity-type thing where we’ve been looking at how much Laura Fine’s been gaining among these undecided voters — she’s been gaining very quickly — and we apply that velocity basically across the district to the undecideds that we currently see through the two most recent internal polls because they don’t really lie that much about undecideds as much as they may lie about other things. So we apply that velocity throughout the district.
However, in Evanston, we specifically have a thing that for the districts in Evanston, we assume if you are an undecided Evanston, we certainly give Biss still a good amount of undecideds in Evanston, but we weight them less towards Biss than we would in any other part of the district, mainly due to the fact that if you’re in Evanston, we assume you’ve been exposed to Daniel Biss for a good portion of your recent life.
And if you haven’t already taken a proactive stance to vote for him, we assume you’re looking at other candidates, and we certainly don’t divert everything, but we do factor that in.
We have other demographics, you see in like McHenry County and all that, Laura Fine does really well. Daniel does better in kind of just the Evanston, Cook County area, and then, Kat — you can look at them all online — she does really well in Chicago and not as much anywhere else. Notable shoutout to Phil Andrew, who does really well in Winnetka and nowhere else, and then a shoutout to some of the more niche candidates who do well on about two blocks of the 9th District and stop there, so, you know, that’s kind of where the model lands.
JACK BAKER: Do you think that there is a chance, looking at the model — obviously you mentioned some of the other candidates, Phil Andrew, one — is there a chance that they will affect the race in any kind of meaningful way from your perspective?
RYAN MCCOMB: Yeah, I mean, look at, you look at Phil Andrews, you look at a Winnetka population that is, so I mean, there’s a recent poll that came out from the internal from the Biss campaign about AIPAC support, and this is a very Jewish district, and it is bad.
You look at Winnetka, who’s going to be the people who are voting for him, that’s gonna be that New Trier-type community. And you’re seeing, in my model, even, if you’re seeing that kind of support diverted, it could be close to 10%, 20%, we don’t know, but, if you’re seeing that kind of support diverted, especially from like a Winnetka-type community, those are, those are the high propensity voters.
They may not be as high propensity as Chicago voters, but, especially in that kind of community, that could have a huge impact.
You do see these serious candidates who are very localized. Bushra, even I guess you could apply to that kind of group of people, who will certainly influence the race, for sure.
JACK BAKER: I want to follow up on one thing that you mentioned that I think is a little counterintuitive potentially, which is that you’re saying higher turnout might actually be more beneficial to the Biss and Fine campaigns as opposed to Kat.
RYAN MCCOMB: Yeah, that’s a very interesting thing that I found through the model, even more than I expected, so Kat has a very engaged base based on the polls I’ve seen and the cross tabs I’ve looked at. There are internal cross-tabs that I have not been able to look at from many of the campaigns, and I don’t know what they say, so I’m having to go off our most recent data, which is, albeit not that recent, but very damning.
She had almost 30% support among very liberal people. Those are the highest propensity voters in this district. They are part of the 75,000 voters that voted in the 2024 primaries, who are for sure turning out for this one.
And in a low turnout primary, in our lowest turnout primary that we ever simulate for, and I think there would have to be like a nuclear winter going on for this to happen, but it would be an 80,000-vote turnout. The highest is about 200 and something. Our average median is about 150. But in those lower scenarios, in terms of percent vote, not necessarily the amount of people who cast votes for her, but percent of the vote, she does much better.
We also do something, we do like a variance thing, so we group and — to all the candidates that may be listening to this, if you are, I’m sorry, I know you all want to be called progressive, but I had to make a call here.
We grouped them into two lanes. We grouped kind of the Bushra, Kat, Mike Simmons people into what we call progressive lane, and I’ll tell you why in a second.
And we grouped Laura Fine and Daniel Biss into an establishment lane, and now I know Daniel Biss and maybe Laura Fine have just cringed at the fact that I’ve called them establishment, and they want to be known as progressives, of course, because this district is progressive and whatever.
But look, you look at Kat, you look at Bushra, those people, I’m not necessarily calling them progressive because their policies differ that much from Daniel Biss per se, they will most likely vote 99% of the same issues on Congress the exact same way, but I am saying that because from an outside voters type of view, people look at those two different candidates differently.
Laura Fine and Daniel Biss have very big experience. They’re kind of establishment candidates. I think it would be pretty hard to rebuke that as much as their positions may come on as progressive, or they may try to convey them as progressive in this race.
So to get to the point, we have a variance thing where we do account for a very progressive turnout where we would boost all of those kind of progressive candidates in their kind of lane. We also have a very establishment turnout, kind of accounting for what the Democratic kind of appetite is on March 17th, we don’t know. It’s a big question.
There are people who get paid millions of dollars inside the Democratic Party to answer the question of “How do voters feel? Are we looking at more of an establishment year or more of a, you know, is AOC gonna be running in 2028?” That’s the big question everybody’s asking right now.
JACK BAKER: Obviously, you mentioned that each of these candidates is pulling from a specific locale as sort of their home turf, if you will, so Kat obviously has strong support in the city of Chicago, Biss in Evanston, and then Laura Fine sort of in the outlying parts of the district. Is there one part of the district that you think is ultra-competitive?
RYAN MCCOMB: So Kat is struggling. She’s raised the most money in this race. She will not have — in terms of independent expenditures — she will not be the number one.
You do see those Chicago districts, even as much as she is good there, there’s still a lot of this support. She wins no other districts other than the ones in Chicago, and the ones in Chicago she wins are looking to be the most competitive due to the fact that we just have a lot of data, and we can’t be accurate on everything.
There are districts that seem very competitive. That may not be competitive, but I can guarantee you some of those Chicago districts will be for sure because Daniel Biss has name rec there.
So I would say, if you’re watching anywhere, look at the Chicago districts. I would also say look at McHenry County. That’s kind of interesting, just in terms of what happens there because that’s I would say somewhat of a bellwether, in my opinion.
But in Glenview and in Evanston, respectively, Laura Fine and Daniel Biss should win, and if they, if they don’t win those two places, they, they’re pretty much cooked for the election, in all honesty, so yeah, I would just say Chicago, keep an eye on McHenry on election night.
I don’t know, just cool stuff like that, but that’s more of a Republican part of the district that Mr. Pritzker has gerrymandered into this district, so yeah.
JACK BAKER: I guess, as a wrap-up, this question is a lot more generic, but how should people who are listening to this interpret the website as a whole? If you had to sum it up, what does this forecaster model or equation tell us, and perhaps just as importantly, what does it not tell us about how the race will ultimately turn out on election day?
RYAN MCCOMB: That’s a great question. A lot of people have commented on, even, the Roundtable article talking about prediction markets.
Here’s the thing. Anybody can buy a share in this prediction market, and anybody can influence the probability. It’s not — the prediction market side of this — is not a fundamentals model as Nate Silver does, and as those guys do.
I have the fundamental model, but on a prediction market side, what has kind of gained the notoriety, there is a constraint. But also a constraint, maybe it’s like, it is faster than any model. There’s been a lot of stuff this week, for example, Daniel Biss has been endorsed by our senator, obviously.
He has come out with an internal on both AIPAC, well, it was the same internal, but he came out with two different reports on both AIPAC popularity and himself, which obviously we take that with a grain of salt, but it does say some interesting stuff.
People, I assume, have their own models to trade on this. If they don’t, there’s certainly, and I’m not going to speculate, but there’s some very well-informed people, whether it be just voters in the 9th district, or people who are just well-informed by the race who are trading on this thing.
This, on election night, it will be the most efficient way to see who’s gonna win. There’s a lot of money in it. So like, you are limited to the fact that this is anybody’s view, but that also is its greatest benefit is that anybody can trade, and as long as you’re over 18, and you’re located in the United States.
And anybody can trade, and also, it’s faster than anything I could do. It’s faster than, frankly, anybody could tweet. This is going to be the source of truth for this race, and to the people — I’ve received a lot of comments who say that anybody can trade and all this stuff — if you do not believe that the probabilities are right, and to anybody who’s listening to this podcast, I invite you, if you’re over 18, responsibly, to make your informed decision on this race.
You are a voter, and if you believe that this is severely misinformed — which prediction markets are and have been proven through study after study to be very well calibrated, with Brier scores far better than like any single predictor, I invite you to submit your prediction in the form of US dollars within a reasonable, obviously, manner.
That is kind of the gist. I promise you on election night, our race calling model will be heavily based on what I’m seeing on the prediction markets and also what I’m seeing in turnout in places where I’m going to be looking, but also on election night, the models page is where you’re gonna want to be.
We’ll have a whole election night theme on the site. It’s gonna be really fun, but that kind of wraps up my, my, thoughts on the, on the markets.
JACK BAKER: Well, thank you so much.
RYAN MCCOMB: It was great to talk to you. It was great.
JACK BAKER: Thank you for being here.
RYAN MCCOMB: Yeah, for sure, it was great to talk.
[music]
JACK BAKER: From The Daily Northwestern, I’m Jack Baker. Thanks for listening to this episode of The Open Seat. This episode was reported by Jack Baker and produced by Ruby Dowling.
The Audio Editor is Ruby Dowling. The Multimedia Managing Editors are Yong-Yu Huang, Femi Horrall and Jonah McClure. The Editor in Chief is Emily Lichty.
Our theme music is “Revolution” by Xennial, used under a Creative Commons Attribution 4.0 International License and provided by the Free Music Archive.
Follow us on X and Instagram @thedailynu.
Email: [email protected]
X: @jdowb2005
