How the evidence is built
We describe what restaurants state. We never certify a restaurant as safe.
What the levels mean
| Level | Meaning | Where it comes from |
|---|---|---|
| 0 · Unknown | No gluten-free information found | n/a |
| 1 · Some options | The menu marks some dishes gluten-free, or says dishes can be made gluten-free on request | Menu |
| 2 · Gluten-free menu | A separate gluten-free menu exists, or gluten-free mains appear across most sections | Menu |
| 3 · Stated precautions | The restaurant states precautions against cross-contact: separate preparation, a dedicated fryer, trained staff | Website or menu text |
| 4 · Dedicated kitchen | The restaurant says its entire kitchen is gluten-free | Website |
The level is a summary of stated evidence, not a safety score. Pages show dish counts, a separate menu, preparation statements and disclaimers as separate facts, because one doesn't establish the others.
Where it comes from
- Each restaurant's own website and menus: web pages, PDFs and menu images. Our crawler honors robots.txt and never logs in.
- We count only what the restaurant labels or states. We never infer that a dish is gluten-free from its ingredients: "grilled salmon" may come with a sauce that contains gluten.
- Every fact keeps its source and the date we checked it. Dishes are shown as printed: names, prices and labels, never copied descriptions.
- Booking and ordering platforms are the ones a restaurant's own site links to. We don't check availability.
Who reads it
- Language models read each menu and statement, and a second model checks every dish's reading.
- An answer the models aren't sure of goes to a stronger model, then to an escalation agent that can read more of the restaurant's site, and last to a person.
- A person checks every restaurant's profile before its page is indexed, and again if its level changes.
What a list counts
- A neighborhood list counts every active restaurant, café and bakery registered in the neighborhood (DataSF's Registered Business Locations, with its Analysis Neighborhoods), and says how many we checked and how many show gluten-free evidence.
- A list is indexed once every place in the neighborhood is checked and at least 5 restaurants show gluten-free evidence.
- A restaurant page is indexed once a person has checked its profile and its menu was checked in the last 90 days.
For AI agents: this page is also served as markdown at /method.md and as JSON at /method.json, or at this URL with Accept: text/markdown or Accept: application/json. Every fact carries its source and the date we checked it; what isn't known is listed, never guessed. /llms.txt lists every page.