About Our "Random Walks" Around Disney World

This post serves as an introduction to the “random walk” analysis we do occasionally in evaluating park touring strategies. It’s a simple idea, but with a lot of necessary context to fully understand.

Related Posts

This post discusses a tool we use primarily in our weekly wait time scorecards. We have a post explaining our Disney World Wait Time Scorecards, and here are links to the latest updates:

This tool is also used to supplement our rope drop content (you can find links to individual rope drop posts near the start of the wait time posts).

Introduction

We’re spending a bit more time focusing on wait times these days, mostly for fun, but partly because they’re the best information we have to work off when it comes to this new era of planning.

Previously, we had lots of experience with varying crowd levels and how those impacted a rope drop + FastPass+ strategy. Now, we’re in a new world with lower crowds and no FastPass+.

I’m not a serious programmer, but I have enough interest and skill to build some simple programs. One of my recent favorites is the Random Walk Around The Park (“Random Walk”).

What does this program do?

The program takes a list of rides (usually all the rides with wait times at a park) and a list of wait times for those rides (for example, wait times every five minutes for those rides from a specific day, or a 5-minute by 5-minute average from the past week) and generates a random visit to the park via the following outline:

  1. Start when the park opens

  2. Pick a random ride

  3. Go to the ride

  4. Wait the posted wait time

  5. Ride the ride

  6. Repeat 2-5 until done with rides or the park closes

So, the output for a day at Animal Kingdom might look like:

  • Park opens at 08:00; Park closes at 18:00.

  • Go to Kilimanjaro Safaris; Wait time for Kilimanjaro Safaris is 5 minutes at open.

  • Board Kilimanjaro Safaris at 08:05.

  • Go to Expedition Everest; Wait time for Expedition Everest is 5 minutes at 08:30.

  • Board Expedition Everest at 08:35.

  • Go to DINOSAUR; Wait time for DINOSAUR is 5 minutes at 08:43.

  • Board DINOSAUR at 08:48.

  • Go to Kali River Rapids; Wait time for Kali River Rapids is 5 minutes at 08:57.

  • Board Kali River Rapids at 09:02.

  • Go to Avatar Flight of Passage; Wait time for Avatar Flight of Passage is 30 minutes at 09:10.

  • Board Avatar Flight of Passage at 09:40.

  • Go to Na'vi River Journey; Wait time for Na'vi River Journey is 30 minutes at 09:57.

  • Board Na'vi River Journey at 10:27.

  • Go to TriceraTop Spin; Wait time for TriceraTop Spin is 5 minutes at 10:39.

  • Board TriceraTop Spin at 10:44.

  • Done at 10:47 after waiting 85 minutes.

Naturally you might wonder…why? What purpose could this Random Walk serve? Well, it’s got a few uses. But first…

As I’ve belabored elsewhere, wait time analysis is imperfect. You should always take it with a grain of salt, and I view our modest efforts to bring some data to Disney planning to be more about fun than the serious planning tools you’ll find over at places like Touring Plans.

That being said, I don’t want to sell the efforts short, either. Posted wait times are usually overestimates of waits, so using those, as opposed to actual waits, does put you in a more conservative planning mode. With that in mind, here are a few good uses for these…

First, it’s fun—and useful—to see how badly a day can do. The top thing on my mind when planning a day at any theme park is visiting as many rides as possible. Since there are non-ride things at the parks, too (less now than before, though), you also want to do this as quickly as possible. Plus, I hate waiting in lines, so I like to minimize that.

If you run enough of these Random Walks, you can get a look at how bad things can get. Sometimes, it’s impossible to put the rides in an order where you don’t ride them all. If the waits are low enough for enough of the day, then any order will get you on all of them before the park closes.

But sometimes there are really bad strategies. If enough rides sit at two-hour waits in the afternoon, you might only visit a handful of rides in the day if your afternoon is filled with those rides.

With rides being as low as they’ve been, I like to see how hard it is to mess things up. If the wait times aren’t high enough, you simply don’t have to worry about missing rides, though you might still want to minimize the time you wait.

Finding best days is…interesting. You might think you could use this to find the best strategies, but it’s actually tough to pull conclusions out of this information. I’ve seen days where the best strategy at Magic Kingdom was to start with Seven Dwarfs Mine Train and then ride Barnstormer second.

That works some days because Barnstormer is a five minute wait and it doesn’t make a difference if you squeeze it in. But I’d never tell you to do to Barnstormer second. I don’t know what the day is going to look like, but I know you need to be prioritizing other rides early on. Which brings us to…

They’re fun for “testing” rope drop strategies. A rope drop strategy is, more or less, the list of rides you start your day with (in a particular order).

I can test a rope drop strategy by forcing the program to start with a specific set of rides. After that start, the program then resumes its random selection.

If the simulations with the rope drop strategy perform better (on average, details coming) than the completely random strategy, it’s at least not a bad strategy. If it performs much better, then it’s a good strategy. So, how do I compare strategies?

Example Comparison

I’m going to use wait times from August 1, 2020 at Magic Kingdom. At Magic Kingdom, I’m aiming for 19 rides, which means there are somewhere around 10^17 possible ride orders. I’m only running 30,000 total simulations, which is a fraction of those.

I’m going to compare three strategies:

  1. Completely random ride order from arrival until park close (or done with all rides)

  2. Rope Drop 2 rides: Seven Dwarfs Mine Train, then Peter Pan’s Flight

  3. Rope Drop 5 Rides: Seven Dwarfs Mine Train, then Peter Pan’s Flight, then Big Thunder Mountain Railroad, then Splash Mountain, then Jungle Cruise

I’m going to compare them along two sets of metrics. The first is how long you wind up spending in line using these strategies. The less time in line, the better the strategy. The second is how many times this strategy results in you missing rides. If a strategy keeps you out of line but misses 3 rides, that’s sometimes worse than spending a bit more time in line but getting on every ride.

Here’s the table:

mk walks example.png

You can see that starting with Seven Dwarfs Mine Train and Peter Pan’s Flight slightly improved your average time spent in line, and it substantially reduced your (already small) risk of missing any rides.

But starting with our recommended five rides further reduced your expected time in in line, and it (in the limited 10,000 simulations) eliminated your risk of missing any rides.

Now, the total time spent in line numbers above aren’t all that impressive. Saving 20 minutes doesn’t seem like a huge deal. Well, in today’s world of low wait times, you’re not going to have much variance. Hopefully as wait times increase, we’ll see this program become a little more useful.

Limitations

There are lots of limitations for our Random Walks, as currently built. For example, they don’t include non-rides like Carousel of Progress or Enchanted Tiki Room. Visiting one of those in the middle of the day will impact your schedule (it might hurt, but it might also help by pushing some waits later in the day, when they may be shorter).

And, as I pointed out above, wait time analysis is imperfect. We’re using Disney’s posted wait times, which aren’t perfectly accurate, and which can be incredibly volatile. Small changes can be very impactful on the program.

Here’s an example of part of a morning. I ran two simulations with the same ride order on the same day, but on one I used a fixed 5-minute walk between all rides, and in the other I used more precise estimates ranging from 3 minutes to 10 minutes. Compare how these two rides went:

  • Go to Big Thunder Mountain Railroad; Wait time for Big Thunder Mountain Railroad is 20 minutes at 09:30

  • Board Big Thunder Mountain Railroad at 09:50

  • Go to Splash Mountain; Wait time for Splash Mountain is 40 minutes at 10:00

  • Board Splash Mountain at 10:40

With the same two in slightly different conditions:

  • Go to Big Thunder Mountain Railroad; Wait time for Big Thunder Mountain Railroad is 5 minutes at 09:29

  • Board Big Thunder Mountain Railroad at 09:34

  • Go to Splash Mountain; Wait time for Splash Mountain is 20 minutes at 09:42

  • Board Splash Mountain at 10:02

Because the posted wait time for Big Thunder Mountain Railroad changed from 5 to 20 minutes at 9:30, the simulation thinks getting there a single minute later is much worse, when obviously this wouldn’t be the case in real life.

I could (should?) fix some of these things by, e.g. smoothing Disney’s wait time data. But I’m not at that point yet. Anyone with an interest in data science should be able to identify more flaws (I really should start running more simulations, for example, I’m just impatient).

While I might be using a lot of data recently, all our recommendations are also founded in real-world experience at the parks. That experience was mostly in busier times, and strategies that work well in crowded times will generally work even better now.

Conclusions

The random walk is a fun tool that tells us a little bit about how strategies are working at the Disney World parks. I hope to build it up over time, but for now it’s a handy way of quickly checking whether a strategy is worth sticking to or whether something is seriously wrong.

Thanks for reading!