Disney World guests rate almost everything positively. Except getting in.
I spent a few weeks turning 604 Walt Disney World trip reports into a guest journey map. Eleven stages, from booking a hotel to flying home, each one rated bad, neutral or good by the person who lived it.
Almost every stage came back positive. Rides scored +65, resort stays +62, dining +51. Cast members, fireworks, characters, all comfortably in the black.
One stage went negative: park entry and crowds, at -6. It's the only part of a Disney trip that guests, on balance, do not enjoy.
That's the headline. The more interesting findings were the ones I wasn't looking for.
Why trip reports instead of reviews
My last project used posted wait times, which tell you how long a line was and nothing about how the trip felt. I wanted the other half.
Star ratings weren't much better. A four-star restaurant review tells you about one meal, not about where a week-long trip broke down. What I needed was someone describing a whole trip in order, and that's exactly what a trip report is: one guest, one trip, start to finish, in their own words.
r/WaltDisneyWorld has a Trip Report flair. Through the Arctic Shift Reddit archive I pulled 46,855 posts from July 2024 to September 2026, found 997 flaired as trip reports, and kept the 613 with enough text to actually analyze.
The window starts in late July 2024, when Lightning Lane Multi Pass replaced Genie+, so every trip in the dataset played by the same rules.
Turning stories into data
A trip report is prose. Some are chronological, some are lists of what worked and what didn't, some are 2,000 words about a single day. To compare them I needed the same structure applied to all 613.
I defined 11 stages covering the whole trip, then sent each report to a language model with a fixed schema that forced every answer into those 11 stages and three ratings: bad, neutral, good. Nothing free-form came back.
Three ratings instead of a finer scale was deliberate. Five points sound more precise but they're harder to apply consistently, and they invite you to average them as if the gaps were equal. Bad, neutral and good are easy to check by hand, which matters when a model is doing the labeling.
I also had the model pull a short supporting quote for every label, so I could verify a rating by reading one line instead of the whole report.

The persona problem, and the fix
I wanted to split guests four ways: families with kids, couples and adults, multigenerational groups, and pass-holders or locals.
The model kept getting it wrong in one specific way. A report opening "Me (F59 Disabled) & T (F27 Daughter)" came back as families with kids. A 27-year-old daughter isn't a child, and a parent traveling with an adult child is multigenerational by any reasonable definition. I wrote that rule into the prompt. It still got it wrong. I wrote the exact case in as an example. Still wrong, and on a rerun a different report flipped categories.
The word "daughter" was simply outweighing the rules.
So I stopped asking. The model now answers five factual questions instead: is anyone under 18, is an adult child traveling with a parent, are three generations present, is this a local day visit, is the party even described. Then my code applies the precedence rules to those answers.
Everything landed correctly after that, including a case the old method had missed entirely, a report where the author mentioned partway through that "my parents were with us this day."
The lesson generalizes. Models are much better at extracting facts than at applying multi-step rules to them. Let the model read, let the code decide. It's also more defensible: persona assignment became an auditable rule instead of a judgment call, and the underlying facts ship with the dataset so anyone can reclassify under their own definitions.
What the journey actually looks like
Three things stood out.
Crowds are the only genuine negative. Park entry has the largest share of bad ratings of any stage, roughly double the next worst, and only a third of guests describe it positively. In a dataset this positive overall, one stage dipping below zero is loud.
Departure isn't bad, it's blank. Only about 20% of guests describe the last day positively, but very few describe it badly. Most just describe it. For the final thing a guest remembers, "nothing much" is its own kind of problem.
Who you travel with barely matters. Families, couples and multigenerational groups track each other closely across all 11 stages. The dips land in the same places at roughly the same depth. Whatever is happening at park entry is happening to everyone.
That third one surprised me. I built the whole analysis around persona comparison and the personas turned out to be the least interesting variable in it.
The test that failed, and the one that didn't
There's a well-known idea in psychology called the peak-end rule: people judge an experience by its most intense moment and how it ended, not by the average of everything that happened. I wanted to test it on Disney trips.
The end half failed cleanly. A guest's departure rating correlates with their overall verdict at 0.15, with a p-value of 0.10. That's indistinguishable from chance. The average of all their stages correlates at 0.34 on the same 110 reports. How a Disney trip ends tells you very little about how the guest judges it.
But the peak half held, and beat both. The single best stage a guest rated correlates with their verdict at 0.51, higher than the average of everything they experienced, with 93% accuracy at predicting the verdict's direction.
The verdict tracks the high point. Not the ending, and not the overall quality of the trip.
Two caveats I'd rather state than have pointed out. 82% of peaks are rated good, so that predictor has weak variance. And there's circularity in it: a guest who loved their trip is more likely both to rate some stage good and to give a good verdict, so the two aren't independent. It's suggestive, not proven.
What I'd tell Disney
Rides, resorts and restaurants already delight people. Another headliner attraction moves a number that's already at +65.
Park entry is the only stage guests consistently dislike, and it's the first thing that happens to them every single day of the trip. That's where the marginal dollar does the most work.
Departure is the quieter opportunity. Nobody hates it, nobody remembers it, and it's the last thing that happens. If the peak finding holds, a high point near the end of a trip would be worth more than the same high point in the middle.
Limitations
People who write 1,500-word trip reports are enthusiasts. 82% of overall verdicts in this dataset are positive, which is not what a survey of all guests would find. Comparing stages against each other is the meaningful signal; the absolute levels are inflated.
The labels come from a language model, validated against samples I reviewed by hand but not human-coded. They're also not perfectly deterministic, so small gaps between groups are noise.
Coverage is uneven. Rides appear in 496 reports, departure in only 118. Pass-holders and locals have just 26 reports total, too few to say anything about at stage level, which is why they're suppressed from the journey map rather than drawn as a line that would look authoritative.
Interactive graphs, dashboard, and story on Tableau Public.
Labeled dataset on Kaggle.
Code and full methodology on GitHub.
Source posts from r/WaltDisneyWorld via the Arctic Shift archive; no post text, titles or usernames are published.

Comments