Daily budgets: what you'll actually spend
Winter is high season in Mexico, so expect to pay more than in summer, especially in beach destinations and Mexico City. For a two-week trip, a comfortable mid-range budget runs about 1,500–2,500 MXN (75–125 USD) per person per day. That covers a decent hotel room (800–1,500 MXN), three meals (300–500 MXN), local transport (100–200 MXN) and entry fees. Budget travellers can manage on 800–1,200 MXN by staying in hostels or casas de huéspedes and eating at markets. Luxury travellers will easily spend 5,000 MXN or more per day.
Prices vary widely by region. Mexico City is moderate: a good hotel in Roma Norte or Condesa costs around 1,200–2,000 MXN per night in winter. Beach spots like Tulum or Sayulita are pricier—expect 2,000–3,500 MXN for a comparable room. San Cristóbal de las Casas and Oaxaca are cheaper, with charming boutique hotels from 800–1,500 MXN. Remember that winter includes Christmas and New Year, when rates can double; avoid those weeks if you're on a tight budget.
Transport: getting around without breaking the bank
Domestic flights are the biggest variable. A round-trip between Mexico City and Cancún in winter costs around 2,500–4,000 MXN if booked a month ahead. Buses are cheaper and extensive: ADO and ETN cover most routes. For example, Mexico City to Oaxaca takes six hours and costs about 600–900 MXN. Within cities, metro and metrobús in Mexico City cost 5–6 MXN per ride; taxis and ride-hailing apps are 80–150 MXN for short trips. In beach towns, colectivos (shared vans) are the norm for 30–50 MXN.
If you plan to visit multiple regions, consider a domestic flight pass or book flights early. Trains are limited, so buses are your friend. For getting to and from airports, use official taxis or apps; in Mexico City, the metro connects to both airports for pennies. Renting a car makes sense only for exploring areas like the Yucatán interior, where rates start at 600–900 MXN per day plus insurance. Otherwise, public transport is reliable and affordable.
Where to stay: neighbourhoods and price bands
In Mexico City, Roma Norte and Condesa are walkable, safe and full of cafés, with hotels from 1,200 MXN. Centro Histórico is cheaper (800–1,200 MXN) but noisier. For a local feel, try Coyoacán, where boutique hotels cost around 1,000–1,500 MXN. In Oaxaca, the Centro Histórico is ideal, with rooms from 900 MXN. Beach lovers should look at Puerto Escondido (1,200–2,000 MXN) or Mazunte (800–1,500 MXN) for a quieter vibe. Tulum is stunning but expensive; consider staying in Playa del Carmen (1,500–2,500 MXN) and day-tripping.
Book early for winter, especially for Christmas and New Year. Use hotel-booking sites to compare prices, but also check directly with smaller hotels—they often offer better rates. In Mexico City, I'd book a hotel in Roma Norte for its central location and excellent food scene. For a beach break, I'd choose Puerto Escondido over Tulum for better value and a more laid-back atmosphere. Skip the all-inclusive resorts unless you want to stay put; they're poor value if you plan to explore.