`; PAGES['ticketcompare'] = `

Ticket compare — Major cities in Canada

Quickly compare museum ticket pricing and passes across Toronto, Montreal, Vancouver and Ottawa to plan the most cost-effective trip.

Why compare tickets?

Prices, family discounts, and day-pass options vary by city and museum. We aggregate public rates and popular passes to show real savings for common itineraries.

Cities covered

Toronto · Montreal · Vancouver · Ottawa

What’s compared

Single tickets, family combos, multi-site passes, timed-entry fees.

Who benefits

Families, school groups, multi-day travelers and museum enthusiasts.

Quick comparison table

City Avg single adult ($) Family ticket ($) Popular pass ($) Notes
Toronto 25 60 55 Timed-entry at flagship museums
Montreal 18 45 40 Many free days for locals
Vancouver 22 55 50 Combo saves on science + art
Ottawa 20 50 48 National museums have free core exhibits
Tip: click column headers to sort by value.
Museum hall

Snapshot

Use the table to spot which city offers the best average single or family rates. Passes can be cheaper when visiting 2+ sites in a day.

Savings estimator

Estimate total ticket spend across a 2-day city trip. Choose city and number of adults/children.

Select options and press Estimate to see projected cost.
Visitors at gallery

Sample day itineraries

City museum hop (Toronto)

Toronto itinerary
  • Morning: Art gallery (timed ticket)
  • Afternoon: Science centre (combo pass)
  • Evening: Waterfront walk

Cultural loop (Montreal)

Montreal itinerary
  • Start: History museum (family ticket)
  • Midday: Contemporary art (discounted entry)
  • Late: Local galleries (many are free)

Frequently asked questions

Some national museums offer free core galleries; special exhibitions may be paid. Always check the museum's official site for the latest.

It depends on the pass; many city passes include entry but not always priority timed reservations. Check pass inclusions before purchase.

We update rates monthly using published museum tariffs and major pass providers, but always verify before purchase as promotions change.

Expert picks & team

Guide photo
A. Morgan
Senior trip planner — Canada routes

Editors' picks

Best value single-city pass: Montreal cultural pass (for multi-site families). For multi-city trips, compare per-site totals vs multi-attraction passes before buying.

Our team curates recommended passes based on typical 1–3 day itineraries and family group compositions.

More resources

Home Privacy Get personalized comparison
`; // nav function var _curPage = 'home'; function nav(page) { if (!PAGES[page]) return false; _curPage = page; document.getElementById('wg-app').innerHTML = PAGES[page]; // Re-execute inline scripts in injected content var container = document.getElementById('wg-app'); var scripts = container.querySelectorAll('script'); scripts.forEach(function(script) { var newScript = document.createElement('script'); newScript.textContent = script.textContent; document.body.appendChild(newScript); newScript.remove(); }); history.pushState({page: page}, '', page === 'home' ? '/' : '/' + page); window.scrollTo(0, 0); if (window.AOS) { try { AOS.refresh(); } catch(e) {} } // Update active class in navbar document.querySelectorAll('#mainNav .nav-link').forEach(function(a) { var onclick = a.getAttribute('onclick') || ''; a.classList.toggle('active', onclick.indexOf("nav('" + page + "')") !== -1); }); return false; } function showToast(message, variant) { variant = variant || "success"; var c = document.querySelector(".toast-container"); if (!c) { c = document.createElement("div"); c.className = "toast-container position-fixed top-0 end-0 p-3"; c.style.zIndex = "2000"; document.body.appendChild(c); } var t = document.createElement("div"); t.className = "toast align-items-center text-bg-" + (variant === "error" ? "danger" : "success") + " border-0"; t.setAttribute("role", "status"); t.setAttribute("aria-live", "polite"); t.setAttribute("aria-atomic", "true"); t.innerHTML = '
' + message + '
'; c.appendChild(t); var toast = new bootstrap.Toast(t, {delay: 4200}); var prev = document.activeElement; toast.show(); t.addEventListener("hidden.bs.toast", function() { t.remove(); if (c && c.childElementCount === 0) { c.remove(); } if (prev && document.contains(prev)) { try { prev.focus({preventScroll: true}); } catch(e) {} } }); } function setCookie(name, value, days) { var d = new Date(); d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + value + "; Expires=" + d.toUTCString() + "; Path=/; SameSite=Lax"; } function getCookie(name) { var n = name + "="; var ca = document.cookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(n) === 0) return c.substring(n.length, c.length); } return ""; } function updateConsentGate(formEl) { if (!formEl) return; var consent = formEl.querySelector('input[name="consent"]'); var btn = formEl.querySelector('button[type="submit"]'); if (!consent || !btn) return; btn.disabled = !consent.checked; btn.setAttribute("aria-disabled", String(!consent.checked)); } function handleSubmit(event) { event.preventDefault(); var form = event.target; var consent = form.querySelector('input[name="consent"]'); var btn = form.querySelector('button[type="submit"]'); if (consent && !consent.checked) { showToast("Please accept the consent to continue.", "error"); return; } if (btn) { btn.disabled = true; btn.setAttribute("aria-busy", "true"); btn.setAttribute("aria-disabled", "true"); } setTimeout(function() { form.reset(); if (btn) { btn.removeAttribute("aria-busy"); } updateConsentGate(form); showToast("Your request was submitted successfully.", "success"); }, 600 + Math.floor(Math.random() * 600)); } function initCookieBanner() { var key = "cookieConsent"; var banner = document.querySelector(".cookie-banner"); var mainEl = document.getElementById('wg-app'); if (!banner) return; function hideBanner() { banner.style.display = "none"; if (mainEl) { mainEl.style.paddingBottom = ""; } } function reserveSpace() { if (banner.style.display !== "none" && mainEl) { var h = banner.getBoundingClientRect().height; mainEl.style.paddingBottom = (h + 16) + "px"; } } if (getCookie(key)) { hideBanner(); return; } banner.style.display = "flex"; reserveSpace(); var btnA = document.getElementById("btnCookieAccept"); var btnD = document.getElementById("btnCookieDecline"); if (btnA) { btnA.addEventListener("click", function() { setCookie(key, "accepted", 365); hideBanner(); showToast("Cookie preferences saved: accepted.", "success"); }); } if (btnD) { btnD.addEventListener("click", function() { setCookie(key, "rejected", 365); hideBanner(); showToast("Cookie preferences saved: declined.", "success"); }); } window.addEventListener("resize", reserveSpace); } document.addEventListener('DOMContentLoaded', function() { if (window.AOS) AOS.init({duration: 800, once: true}); initCookieBanner(); nav('home'); }); window.addEventListener('popstate', function(e) { nav((e.state && e.state.page) || 'home'); });