Crowd BlogUniversal Orlando Resort

Things I Think I Think: How Many Crowd Calendar Levels Are There Anyway?

Share This!

Introduction

Year-end is a period of contemplation here at TouringPlans. Time to reflect on a lot of things, like “Why don’t Americans eat minced pies?” and “How many distinct fingers can a mitten have before it becomes a glove? Is the glove/mitten hybrid called a glitten or a mive?” Also “How many crowd levels are there, really?”

This blog post explores the last question. I’ll review how our crowd calendar works (and why), what makes predicting crowds hard, and new ways we’re looking at to identify crowd levels.

If you or someone you love have created handwarmers mid-spaced on spectrum of knits, let me know in the comments below. With pictures, if possible.

This Github repository contains all of the clustering programs and some sample data for this blog post. Let me know if you come up with anything cool: len@touringplans.com.

What’s a Crowd Calendar?

TouringPlans’ Crowd Calendar predicts how crowded a theme park will be for every day of the next year. We use a 1-to-10 scale to represent crowds, where 1 is the lowest crowds and 10 is the highest.

To get a park’s overall crowd level, we first calculate an attraction crowd level for the park’s most important attractions. Those include things like VelociCoaster, Forbidden Journey, Spider-Man, and more. 

Once we have each ride’s crowd level, we throw out the ride with the highest and the lowest scores, kind of like how figure skating judging is done. (We don’t want one attraction’s bad day to affect everything else, if we can help it.) We average the rest of the attraction crowd levels to get the park’s overall 1-to-10 crowd level.

Why a 1-to-10 scale? Mainly because it seemed like a good idea at the time, probably in the same way Sears thought men would wear doilies as vests in 1971:

Sears catalog image from 1971 showing three men wearing what can only be described as tea cup doilies stitched together into vests.
IT SEEMED LIKE A GOOD IDEA AT THE TIME

We chose a 1-to-10 scale because we thought it would be easy to understand and provide enough difference for people to find it useful. One-to-ten is the most intuitive numbering system humans have.  Most of us are born with ten fingers, so counting to ten is one of the first math-related things we do.

Also, having ten different crowd levels felt “right” in that we thought it gave people enough information to compare two different dates for their vacation when everything else was equal.

Imagine a crowd calendar with just two crowd levels: “below average” and “above average.” That’s much easier to predict, but you, our customers – the people we want to help – would be left asking things like “But how much above average?” So smaller scales didn’t seem like a great solution. 

A Good Crowd Calendar is Objective and Transparent

Along with an easy-to-understand scale, we have two other goals for our Crowd Calendars.

First, our crowd calendar has to be objective – it has to be based on things that we can all see and verify. Our crowd calendar for Islands of Adventure is based on the posted wait times at IOA’s rides. That’s public information – Universal’s app shows the wait times for free to anyone – and lots of independent websites report them as well. 

That means that you can verify we’re telling the truth: If we say the peak wait time at Harry Potter and the Forbidden Journey was 75 minutes on December 22, 2024, other websites will show the same thing.

A calendar that used ratings like “heavy crowds” and “light crowds”, or colors like green, yellow, and red, would be like a daily horoscope: any of them could be right depending on how you look at it.

Transparency is our second Crowd Calendar goal. And that means that every day, we show you yesterday’s crowd prediction along with what really happened. Here’s December 22, 2024 as an example:

Universal Orlando Crowd Calendar report for Sunday, December 22, 2024. TouringPlans predicted a crowd level of 8 at Universal Studios Florida, and the actual crowd level was a 10. The prediction for Islands of Adventure was a 5 and the actual crowd level was a 6.
Predicted and Actual Crowd Levels at Islands of Adventure

Why It’s Hard To Predict Crowds Using a 1-to-10 Scale

At least three things make it hard to predict crowd levels: 

  • Weather
  • Things we just don’t know, and
  • Incorrect posted wait times.

It’s hard to predict the weather, especially how it’ll affect park crowds weeks in advance. A thunderstorm system that covers Central Florida for several days might result in lower crowds on its first day, as families try to wait it out or locals with flexible schedules put off their visit. And we know from experience that there’s a “rebound effect” with higher crowds  once the storm has passed. 

There’s also a limit to what we know about when people decide to visit the parks. Most theme park guests plan their trips weeks or months in advance. Those decisions take into account things like the state of the economy, the cost of gasoline, school or corporate vacation schedules, and how they feel about their own finances. There’s a lot about that that we just don’t know today, that’s going to influence crowds months from now.

The third thing that makes it hard to predict crowds based on posted wait times is the posted wait times themselves. Posted wait times are often all over the place in ways that can’t be predicted.

You Can’t Predict Posted Waits Even With Perfect Information

Let me give you one example using Harry Potter and the Forbidden Journey. 

Suppose I told you that under normal circumstances:

  • Forbidden Journey could give rides to around 1,600 people per hour
  • There are exactly 1,600 people in line
  • And the ride is operating normally

And then I asked you to guess what the posted wait time sign said outside the ride. What would you guess?

If you guessed 20 minutes, you’d be right. You’d also be right if you guessed 50 minutes, 80 minutes, and 110 minutes. That’s because our users have waited 60 minutes to ride Forbidden Journey when the sign outside the ride said the wait was going to be 20, 50, 80, and 110 minutes. And that’s bad.

It’s almost impossible to guess the posted wait time outside a ride even if you know exactly how many people are in line and how many people the ride can handle per hour. 

A chart that shows the relationship between how long Universal says you’re going to wait to ride and how long our users say they actually waited. If that estimated wait was accurate, every dot would be on the diagonal, red line in the middle of the graph. But almost none of the dots are on that line, so there's a problem.
How long Universal says you’ll wait at Forbidden Journey, and how long the wait was

The chart above shows the relationship between how long Universal says you’re going to wait to ride and how long our users say they actually waited. If that estimated wait was accurate, every dot would be on that red line.

As you can see, dear reader, every dot is not on that red line. 

In the data we’ve collected for Forbidden Journey, the posted wait is close to the actual wait less than 10% of the time:

  • Your actual wait at Forbidden Journey is less than the posted wait around 75% of the time
  • Your actual wait at Forbidden Journey is more than the posted wait around 20% of the time
  • Your actual wait is the posted wait around 5% of the time

And it’s like this at every theme park we’ve got data for, including Disney.

I don’t think that Disney or Universal inflates its posted waits to sell more Lightning Lanes or Express Passes. For one thing, the data doesn’t say that’s happening. Also, I’ve never met anyone at either company whose conscience would allow it. I criticize management for a lot of things. A LOT OF THINGS. But most of that is just normal people naturally following misaligned incentives. 

Last, and not for nothing, if guests don’t really know how long they’re going to wait, they’ll buy line-skipping products as insurance. That’s the same revenue and nobody’s doing a nickel at Folsom if things go south. I’m just sayin’.

So the big problem with using posted wait times for a crowd calendar is that we end up trying to predict how wrong the posted waits are. 

In essence, we’re really trying to predict the size of the arrows below when we don’t know why they’re big:

IMAGE

Arrows showing the considerable difference between the posted wait time at a ride, and how long you’ll really wait sometimes. The size of those errors is one of the things that TouringPlans ends up having to predict in its crowd calendar.
Predicting random behavior, like the kind shown in the arrows, is hard.

Are Universal’s Ticket Prices a Good Way to Predict Crowds?

You’d think that Universal’s one-day ticket prices for Islands of Adventure would be a good way to predict crowd levels in the park. After all, Universal has information about its parks that nobody else has, like how many hotel rooms they’ve already sold for the night, how many people visited the park on the same day last year, and more. 

Checking Universal Orlando’s one-day tickets for Islands of Adventure over the next year, it looks like there are a dozen different prices: $119, $124, $129, $139, $144, $149, $154, $159, $164, $169, $174, and $179. 

Eight of those prices appear in September 2025 alone:

Calendar showing September 2025 and the one-day ticket prices Universal’s charging for Islands of Adventure admission that day.
One-Day Adult Islands of Adventure ticket prices for September 2025

But are there really twelve distinct crowd levels for Islands of Adventure? Do eight of them happen in September? And can the average guest tell the difference between those crowd levels in the parks?

I’ll explore those questions in more detail below. I suspect the answers are maybe, maybe, and probably not. Here’s why.

The first thing to note is that we already know that it’s going to cost $139 to visit Islands of Adventure on Friday,  September 5, 2025, no matter how many people are in the park. That’s because Universal (and Disney) publishes ticket prices a year in advance. And those ticket prices are static – they don’t go up if people buy more than expected and they don’t go down if people buy less. That makes ticket prices a prediction, not a fact.

I expect Disney and Universal to announce dynamic ticket pricing in 2025 for their domestic theme parks. When that happens the admission price for a specific day will go up and down throughout the year based on demand, the same way airline tickets work. Disney’s already started it for Disneyland Paris, and I’m certain they’re working on the same thing for Walt Disney World and Disneyland. Universal will almost certainly follow suit.

The second reason why ticket prices aren’t great indicators of crowd levels is that Universal’s using ticket prices to make as much money as possible. That’s not exactly the same as trying to predict crowd levels. 

Here’s a recent example from Walt Disney World. A one-day adult ticket to the Magic Kingdom on December 8, 2024 cost $174 plus tax. That’s near the top end of Magic Kingdom ticket prices for 2024, which ranged from $129 to $189. Based on the price of $174, you’d think the Magic Kingdom’s crowds would’ve been substantial. But they weren’t.

Why? Because the Magic Kingdom closed at 6 p.m. on December 8, to get ready for the 7 p.m. start of Mickey’s Very Merry Christmas Party, an after-hours event with its own separate $189 admission cost.

The Magic Kingdom’s official opening time was 8 a.m., so the park was officially open for 10 hours. But the Magic Kingdom would be open for 13 hours the next day and tickets were only $5 more. So guests with flexible plans could have three more hours in the park for essentially the same price. 

Thousands of guests make the choice to visit the Magic Kingdom on non-Party days. That makes crowds lower on days when it hosts these events. In fact, crowds on December 8, 2024 were some of the lowest of the entire year – we had it as a ‘1’ crowd level on our scale of 1 to 10:

Crowd calendar showing the Magic Kingdom’s crowd level of 1 (the lowest possible crowd level) on December 8, 2024
The Magic Kingdom’s crowd level was 1 on December 8, 2024

So How Many Crowd Levels Are There at Islands of Adventure?

Now that we’ve explained what a crowd calendar is and why it’s hard to predict, let’s look to see if there are better ways to predict useful crowd levels.

We’ll start with a simplified chart that shows the average posted wait time we’ve recorded at Harry Potter and the Forbidden Journey for an entire day, and the number of days we’ve seen that average posted wait over the last few years. 

As an example for the chart below, we’ve seen Forbidden Journey average a 40-minute wait throughout the day around 362 days over the past few years:

A chart showing the average daily posted wait at Harry Potter and the Forbidden Journey. There are outliers for average posted waits of 15, 20, 30, 40, 45, and 60 minutes.
Daily average posted wait at Forbidden Journey, and how many times that average has happened.

The first thing to notice is that we see daily averages of some numbers – 15, 20, 30, 40, 45, and 60 minutes – way more often than other numbers. Some of that is because Universal’s signs display posted wait times in increments of 5 minutes. But it doesn’t explain why 35, 50, and 55 don’t show up as often. 

This happens at lots of attractions too

So our crowd calendar should recognize that some wait times happen a lot more than you’d expect, even if the data we use to predict wait times doesn’t think it should. 

We can do that. 

The next big question is where each crowd level should begin and end. For example, let’s say a crowd level of ‘1’ is an average posted wait time of 0 to 15 minutes. That means crowd level ‘2’ starts at 16 minutes. But where should it end? 20 minutes? 25? Something else? 

We don’t want to make those decisions by hand. It’s not possible for the over 100 attractions we track. So we need math. Math that decides for us which wait times go in each crowd level. One way to do that is called clustering.

What’s Clustering?

Clustering is the process of grouping similar things together. In the chart below, imagine that you’re asked to group all of the blue dots on the left into three groups (“clusters”). One way to do that is shown on the right.

An example of how to cluster data into three distinc groups
Left: Unclustered data. Right: Clustered Data.

The basic step in clustering is pretty straightforward: take one piece of data and figure out which other data it looks like the most. Put it in that group and move on to the next piece of data.

Of course, the more data you add the bigger its group gets. Eventually, some groups get so big that data in one group becomes “closer” to data in another group, so you have to re-organize the groups. And that’s one of the tricky parts of clustering.

Clustering happens in lots of places, from image processing to medicine to marketing, so there are lots of different clustering techniques to group things together.

Some clustering techniques, like K-Means clustering, require you to say in advance how many groups there are. But that’s the thing we’re trying to figure out, so we need more help. We want our clustering technique to tell us how many crowd levels we should be using. 

I’ve looked at these clustering algorithms over the last few weeks. Some of them look like they’re based on an iterative form of K-Means clustering. I’m sure someone smarter than me will come up with better explanations of how they work:

  • Silhouette Coefficients – Looks at how close each data point is to the other data points in the group, and how far away each data point is from the next-closest group.
  • Dunn Index – Looks at how close each data point is to others in the group, and how far away each group is from one another
  • Davies-Bouldin – Asks how alike things in one group are as compared to the “most alike” group.
  • Calinski-Harabasz Index – How alike is this thing to its group versus things in other groups?
  • Krzanowski-Lai Index – Another iterative method that looks at whether breaking things into “one more group” results in better results, then picks the number of groups with the best result.

The most recent clustering technique I’ve looked at is Gaussian Mixture Models. That’s testing the idea that crowd levels might have shapes other than circles, and that average daily wait times are continuous values, not discrete. 

I implemented each clustering algorithm in Python (get the code here). Next, I calculated the average posted wait time for every day in the past, from 11 a.m. to 3 p.m., for every Universal Orlando attraction we’ve used in our Islands of Adventure Crowd Calendar:

We use wait times collected between 11 a.m. and 3 p.m. because those are the busiest times. That makes it easier to tell the difference between days. 

Clustering Algorithm Results & Discussion

The chart below shows the number of crowd levels each algorithm identified for each attraction in our Islands of Adventure Crowd Calendar:

Most clustering algorithms identified between 5 and 7 crowd levels for most attractions at Islands of Adventure
Most clustering algorithms identified between 5 and 7 crowd levels for most attractions at Islands of Adventure

My implementation of Dunn’s Index always resulted in a recommendation for 3 crowd levels no matter the attraction. Likewise, the Calinski-Harabasz algorithm always recommended 9 or 10 crowd levels. So I think either I’ve implemented those incorrectly, or they’re not appropriate for this kind of problem.

Most of the other algorithms identified between 5 and 7 crowd levels for these Islands of Adventure attractions. And we can get the wait times that each crowd level represents, too. As an example, here’s the wait times for each of the six crowd levels for Jurassic World VelociCoaster:

Jurassic World VelociCoaster
Crowd Level Avg Posted Wait
1 0 – 25 minutes
2 26 – 39
3 40 – 51
4 52 – 67
5 68 – 88
6 89+ minutes

And here’s how many times each crowd level appeared in our data:

Bar chart graph showing the same data as in the previous chart, with ‘3’ the most common crowd level
Bar chart graph showing of crowd levels for VelociCoaster

That looks like a good distribution to me. We can clearly identify the really slow days and the really busy ones. Also, each crowd level’s wait times have enough space to account for inaccurate posted wait times. 

Next Steps 

Here’s all of the code I used in this blog post, and sample data for IOA’s Spider-Man ride. It should be straightforward to run. Feel free to modify, add, or extend it. And let me know if you come up with anything cool: len@touringplans.com.

We’re still looking at these techniques to see how they might help us make a better crowd calendar. I expect we’ll know more in about a month. 

It’s possible that switching to a different scale than 1-to-10 will be a more accurate way to tell y’all what crowds are going to be like. If that happens, we’ll provide plenty of advance notice for that change, and plenty of guidance on how to switch from the old calendar to the new one.

Let me know in the comments below any thoughts or suggestions you’ve got! Things I Think I Think: How Many Crowd Calendar Levels Are There Anyway?

You May Also Like...

Len Testa

Len Testa is the co-author of the Unofficial Guide to Walt Disney World, and has contributed to the Disneyland and Las Vegas Unofficial Guides. Most of his time is spent trying to keep up with the team. Len's email address is len@touringplans.com. You can also follow him on BlueSky: @lentesta.

4 thoughts on “Things I Think I Think: How Many Crowd Calendar Levels Are There Anyway?

  • Are you looking to use different algorithms for each attraction to create a new crowd calendar? The Calinski-Harabasz algorithm is nearly perfect already with 10 levels (Hulk being the lone hold out), but I don’t know enough about that algorithm to know if it is biased toward ten clusters.

    Reply
    • I’d like to use the same technique for all the attractions.

      Reply
  • Americans don’t eat minced pies? That’s a big shame. The things you learn…

    Merry Christmas.

    Reply
    • You’d think we would. Merry Christmas, Phillip!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *