How every restaurant is checked
Every fact on Mesasays has an official source and a date. This is how the 456 records are built.
A restaurant is listed only when its official website (or the official Instagram linked from it) confirms the address, and it has an official menu or a verified Instagram plus a way to contact it. Press lists (Time Out, The Infatuation, Chilango, Local.mx and others) are used to discover places; they are never the source of a fact. Bars and cafés without a menu are left out.
Only from the restaurant's own menu: its website, its PDF or its official ordering page. We do not use delivery-app prices (usually marked up), reviews, or third-party databases. Each dish is transcribed with its section, its peso price as printed and the date it was checked. Prices under 15 pesos are dropped (usually add-ons).
Every menu carries the date it was checked and a re-check date 30 days later. An overdue menu drops out of the statistics and the cost-per-person estimate until it is checked again; the restaurant page says so.
Estimated from the official menu: the median starter plus the median main course; one main course when there is no starter section; three tacos at a taquería; one breakfast plate at a breakfast place; or the cheapest set menu at a tasting-menu restaurant. Drinks, desserts, sides and tip (10–15% in Mexico) are not included. No sectioned, priced menu means no estimate. Dollar and euro equivalents use the European Central Bank reference rate of 2026-10-19.
A restaurant needs at least 8 priced dishes to get a median; a neighborhood or cuisine needs at least 3 such restaurants. Group figures are the median of restaurant medians.
A booking channel is published only when the official site links or states it (OpenTable, Resy, WhatsApp, phone or walk-in). Instagram only when the official site links it. Map points are checked against the verified address (OpenStreetMap).
We do not get around bot protection or CAPTCHAs: if a page blocks the check, the fact is not published. We buy no data and fill no gaps by guessing. A closed restaurant is removed and the closure is logged in the change log.