If you’ve looked at a show page recently, you might have noticed the scores are a little different than they used to be. This is because, after a long week spent running the numbers, we realized that the way we were calculating how many queer characters were on a show was deeply flawed and resulted in inaccurate scores. So your resident math nerd (hello) sat down with a highly advanced setup to figure out how to count characters based on how long they were actually on the show.
Of course, if it was that simple, you wouldn’t notice a change and I wouldn’t be posting this.
Scoring built for a smaller database
Our show score has worked more or less the same way for years. It was set up when this site tracked a fraction of what it tracks now, and we (okay I) hadn’t revisited it in a long time.
The basic method we use for scoring shows is to give them a 0 to 100 rating based on the four primary aspects of a show:
- How the reviewers rate the show (thumbs up, etc).
- How the show handles its tropes.
- How many queer characters are alive.
- How much queer representation is there.

By turning this into a formula, instead of arbitrarily assigning a grade, we were able to automate the system and have it self update just by adding a new character or trope. The problem was we had changed the way and amount of data we collected.
For example, we now note which years each character actually appeared, for very nearly every character in the database. That took years of work to build up, and you don’t even want to know the maintenance pain in the ass it is (I ended up making a tool to help). But the score system couldn’t use it, because I designed before we had the years.
That meant I had to revisit how we count appearances.
Counting Heads Conundrum
Essentially I learned how we added characters into the scoring system was deeply flawed. For example, a series regular was worth more ‘points’ than a guest, which is correct, but if a show had a lot of guests or ran a long time, it wasn’t being properly reflected. At the start, that didn’t really matter much. But as we improved our data collection, it suddenly because a very obvious issue we needed to fix.
There are two real examples I can show you make the issue a little more obvious.
Like most of the Law & Order shows, Law & Order: SVU has a lot of queer guest characters. In fact, it has 38 characters spread across 27+ years on air (1999 to 2026, feel old yet?). That’s over a queer a year, which isn’t terrible, but the problem is most of those characters were a queer-of-the-week and either the victim, the perpetrator, or both.
On the other hand, Adventure Time has three characters who were there for most of the show’s run.
So why did SVU have a higher score? Because the formula was flawed. Instead of taking into account how long someone was on a show, it took the raw number as gospel.
Time on Screen
First, I tackled time on screen. Every character is weighted by how many years they appear on screen, relative to how long a show aired. A character who was on screen for 4 out of 5 seasons is worth more than a one-timer. That one change is where the majority of the scores got hit. SVU dropped from 40 to 31, and Adventure Time went up from 64 to 77!
But this snowballed when I realized we had a major flaw in the way we tracked how many seasons a show has. Weighting characters by how long they were around means answering a question that sounds trivial. How long did the show run? Well that can be easy (Buffy aired 7 years), or it can be practically insane (The X-Files was on from 1993 to 2018, but only for 11 seasons, not the 26 you’d assume just counting the years!).
See, we only put in how many seasons a show ran when it’s over. And worse than that, TV has decided everything old is new again, and shows are returning after some lengthy hiatuses. So in the middle or all the math to recalculate appearances, I had to come up with a more robust, accurate way of tracking seasons! How could we sanely track a show that had a decade long hiatus, after all?
Detour: Season of the Switch
The obvious fix is that we needed to store our own seasons count. Now asking people to manually enter than and uptick it every year is ridiculous and cruel. I suspect our editor team would revolt, or just not do it. (Don’t panic, we still hard-lock the seasons when a show has ended!) That’s why I took advantage of TVMaze!

We’ve been using TVMaze for years, as that powers the calendar page as well as the nifty airing next box on the per-show pages. We heavily cache their API so we don’t blow through our tokens too fast, and yes, I absolutely pay for the service. And for shows on-air today, it’s a goldmine. It can handle the standard US seasons (September to May), two complete seasons landing in the same calendar year (more often found in reality TV), and those massive gaps when a show just isn’t on air for a decade.
Of course, that brought up a couple of wrinkles. First of all, TVMaze isn’t meant to be historical, so it doesn’t track all shows perfectly. In tests, a German soap that’s been on air since 1992 (go on, guess which one) came back with only 9 years on-air. That would have been worse than just guessing the years! To address that, the system checks if the show has characters on outside those 9 years and, if there are 5 or more, we don’t use their data.
The second was kind of hilarious. In the middle of testing that, I found out that some of the IMDb entries we had have the wrong value, only … it wasn’t. The IMDb ID for Only Murders in the Building changed! So I had to create a way to look up those and flag them.
New Characters Don’t Drop Scores
This was a doozy. Adding a new, minor, character would drop a show score.
Yeah I know. I was flabbergasted. How could I have goofed that so badly that doing our work, recording characters, would make things worse!? Well, it had to do with how we counted death, and the other was how we handled transgender characters.
Death was a flat score, no matter how much a character was worth. So for example, a new regular character was worth 5 points. If they were dead, they lost 5 points and netted a 0. But a recurring character was worth 2 points, and a dead one -3 points! And guests? Worth 1 alive, and -4 dead. That was a little too much.
Now transgender characters was a cliff. By which I mean I was inadvertently causing a massive underscore. See, I wanted to address issues like we saw in Transparent, where a cis-male lead was playing a trans-female character. That should be worth points, but fewer than if a trans character was played by a trans actor. The formula I used was wrong. A show with 3 trans characters all played by trans actors scored 3 × 10 = +30. Add a fourth trans character whose actor isn’t recorded as trans, and the condition flips: (4 − 3) × −5 = −5.
That’s been fixed, and now every character contributes something positive, however small. Death still reduces what a
character is worth, and trans-characters played by cis actors is worth less than trans playing trans. But no character ever subtracts on its own. It’s just worth less.
Hard Ceilings in the Wrong Place
Scores have a cap: 100. The old system however put the cap in too soon, which meant we had a few dozen shows hanging out at the apex without a way to tell them apart. It’s like having your bathroom scale stop at 100lbs. Everyone above it reads the same, which doesn’t help.
Technically the new system has no cap (and no cliff). Instead, every new character adds a little less than the one before. The gap between a show’s first queer character and its second is enormous. Between its twentieth and twenty-first, much less so. That’s how it should feel, and now it’s how it scores.
The output is still limited at 100, mind you, but since we have extra numbers behind that, we can actually tell you which 100 point show is best (answer? All of them! You really think I’d pick one?).
Lead Actors Matter Most
I mentioned before I had a setup so trans actors playing trans characters were worth more than those played by their cis counterparts? That actually extended further, and shows get credited for casting queers as queers overall. I called the one mechanism that handled the trans characters “The Tambor Takedown,” which is something I like to do when I find a new quirk.
But … While Adult Maura was played by the cis-het Tambor, Young Maura was played by a young transgender woman! That meant Young Maura’s actor skewed my scoring and made it not deduct for Tambor!
The new system actually scores all that concisely. Instead of looking at all the actors who played a character, it looks at the lead actor. The one who played the majority of the character. We always put the primary actor on top, thanks to Caity Lotz. What? Did you think I could talk about stats and math without mentioned Sara Lance? Who was played by four actors!? Yeah, because of her, we had long-ago set it up so we listed the primary actor first, making this an easy win.
While 24% of characters are played by queer actors, it’s only 4% of those characters have a queer actor as their non-primary actor. I know that sentence is weird. But basically out of the roughly 1800 queer characters who have at least one queer actor portraying them, about 70 have a non-queer as their primary actor. It’s a slice of a slice of a pie, and had very limit impact except what I was trying for in the beginning: reward shows for casting queers as queers first.
Why most scores went up
I know that saying “we improved the scoring system and everything got better!” sounds like some kind of scam, or like we put a thumb on the scale.
The truth is that we were overweighing the wrong portions.

Picture four judges scoring a competition and averaging their scores. If 3 judges are on the 100 point scale and 1 is on the 10 point scale, then no matter how many times you run the numbers, that fourth judge buggers the results. Three judges score 70, 80, and 50, and even if that last judge gives a 9 (which would be a majorly high score on a 10 point scale), the average is 52. And it’s not like the fourth judge was East German, it was simply using a different scale.
That’s basically what was happening. The other three parts of the system averaged 69 points (nice) but the character part landed around 10.
Yeah, 10. And it was being treated like 10 out of 100.
So when I say I recalibrated everything, it means the median show’s character score is now around 35 instead of 10. That lifts most total scores by roughly five points.
We deliberately did not tune this to keep the old numbers looking the same. We could have. But the only way to hold the old totals steady is to keep the character score pinned near the floor, which is the exact problem we set out to fix.
What this means for your favourite show
Rankings changed more than numbers. That’s the point. If your show moved up or down five points along with everything else, nothing meaningful happened to it. If it moved fifteen, something did.
Shows with small, committed casts did well. Tightly-written series where the queer characters are central rather than passing through.
Long-running procedurals and soaps generally came down. Not as a judgment on them, but a large cast accumulated over decades no longer counts the same as a cast that stayed. On the flip side, if a long-running show is amazing for rep, the other aspects of the score (the heart system) will reflect that, and it does balance out.
The 90+ Club is about the same, and honestly, most of the shows that left it were there because of that old ceiling rather than because they’d earned the top band. Twelve of its members had character scores sitting at exactly 100, collecting the maximum whether they’d reached it or run past it.
Killing Eve went from ~16 to ~29. A show built entirely around a queer obsession was scoring below the line we ourselves label a failing grade. That was the clearest sign the old character score wasn’t measuring what we meant it to.
The other three parts of the score are untouched. Our show ratings, trope handling, and who-lives-who-dies all work exactly as before. Star ratings, trigger warnings and Shows We Love are unchanged.
The current (as of August 2026) front runner for shows is The L Word: Generation Q, which takes advantage of the stars and the love to jump ahead.
The Good News?
After spending a solid month on it, I’m pretty confident about our tracking with characters on air. It’s a beast to check and a hassle to maintain, but it’s finally giving us some amazing data.
Got any ideas of factors we’re not taking into consideration? Give a shout!