Skip to content

feat: live Queue-Times waits + multi-park crowd coverage - #4

Draft
jssturm wants to merge 2 commits into
mainfrom
cursor/fix-crowd-prediction-72c3
Draft

feat: live Queue-Times waits + multi-park crowd coverage#4
jssturm wants to merge 2 commits into
mainfrom
cursor/fix-crowd-prediction-72c3

Conversation

@jssturm

@jssturm jssturm commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Problem

Production showed Predicted crowd: 7/10 — Busy for Walt Disney World from a coarse heuristic. Per-stop wait badges (22 min wait) were also synthetic (random.randint), not live park data.

Fix

Crowd banner

  • Prefer live open-ride wait averages from Queue-Times.com for today
  • Recalibrated heuristic fallback; pass trip_date
  • UI: Live vs Estimated + attribution

Live waits on schedule stops (new)

  • Expanded multi-park coverage: WDW (4 parks), Disneyland Resort, Universal Orlando (Studios, IOA, Epic Universe, Volcano Bay), SeaWorld/Busch, Six Flags, Cedar Fair, Legoland, Hershey, Dollywood, etc.
  • Parses labels like Magic Kingdom: Space Mountain, Seven Dwarfs Mine Train and matches rides across the right park(s)
  • Sets wait_time_min from the highest matched live wait (plan for the worst line)
  • Prefers standard queues over Single Rider variants
  • Badge shows {n} min wait (live) when sourced from Queue-Times
  • Future trip dates still use estimates (live waits only apply to today)

Test plan

  • pytest test_crowd.py test_travel.py (33 passed)
  • Live smoke: MK / EPCOT / HS / AK / Busch Gardens ride matching
  • Preview: regenerate WDW itinerary — waits should reflect live Queue-Times, not random ranges
Open in Web Open in Cursor 

The banner showed "Predicted crowd: 7/10 — Busy" for Walt Disney World
because a multiplicative heuristic (base 6 × summer 1.3 × weekday)
almost always landed on 7 in July — and ignored trip date / live data.

Prefer Queue-Times.com open-ride wait averages for today when the venue
maps to a known park; recalibrate the fallback as an additive estimate;
pass trip_date; label live vs calendar estimate in the UI (with
Queue-Times attribution). Also fix CI Test to install requirements-dev.

Co-authored-by: jssturm <jssturm@users.noreply.github.com>
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
plan-it Ready Ready Preview Jul 31, 2026 5:52pm

Expand park coverage (Disney, Universal incl. Epic/Volcano Bay,
SeaWorld/Busch, Six Flags, Cedar Fair, Legoland, etc.). Match
attraction labels like "Magic Kingdom: Space Mountain, …" to live
ride waits and set wait_time_min from the highest matched line.
UI badges mark live waits; fall back to heuristic when unmatched
or for future trip dates.

Co-authored-by: jssturm <jssturm@users.noreply.github.com>
@cursor cursor Bot changed the title fix: accurate crowd levels via live waits (stop defaulting Disney to 7/10) feat: live Queue-Times waits + multi-park crowd coverage Jul 28, 2026
@jssturm
jssturm force-pushed the cursor/fix-crowd-prediction-72c3 branch from 7a12823 to 9a480c9 Compare July 31, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants