How Dallas Inspects Its Restaurants (And Why the Data Comes From Two Places)

Dallas gives restaurants a number. Getting that number into our system is where things get interesting.

Dallas has one of the more straightforward inspection systems we work with. An inspector visits, evaluates the kitchen, deducts points for violations, and the restaurant walks away with a score out of 100. Higher is better. No backwards math. No letter-grade conversion. Just a number.

It’s clean. It’s legible. And the data infrastructure behind it is split across two completely different systems.

Two Sources, One Restaurant

Dallas restaurant inspection data lives in two places. The city’s own open data portal, powered by Socrata, publishes inspection records for establishments within Dallas city limits. But the underlying inspection work is coordinated through the state’s Municipal Health Department (MHD) system, which uses a separate platform and data format.

Some records are in one system. Some are in the other. Some overlap. Merging them into a single coherent history per restaurant required building a pipeline that reconciles both sources — matching establishments by name, address, and license number, deduplicating inspections, and resolving conflicts when the two systems disagree on details.

This is the kind of problem that’s invisible to the end user. You see a restaurant page with a score and an inspection history. You don’t see the Python script that figured out which of two slightly different database entries is the canonical one.

The Numeric Score Advantage

Because Dallas publishes an actual number per inspection, our scoring model can work with the raw data more directly than in pass/fail cities. We don’t have to construct a score from violation severity — the city already did that work.

We take each inspection’s score, apply recency weighting so that newer inspections count more, and compute a weighted average. The thresholds are the same as our other score-based cities: 78 or above is EAT, below 50 is BEAT, everything in between is YOUR CALL.

The simplicity is a strength. When the city gives you a 94, that means something concrete: the inspector found very little wrong. When the city gives you a 76, you know they found more. The number communicates without requiring you to interpret violation codes or understand the difference between “critical” and “serious.”

The Neighborhood Question

Dallas is geographically large and its neighborhoods don’t map cleanly to the data the way they do in denser cities. Chicago has well-defined community areas. NYC has boroughs and neighborhoods that everyone agrees on. Dallas has ZIP codes — which don’t correspond neatly to the neighborhoods people actually use when they talk about where they eat.

We mapped 96 Dallas ZIP codes to 68 canonical neighborhood names so that when you’re looking at a restaurant, the location makes sense in human terms. Some ZIPs map cleanly to a single neighborhood. Others span two or three. Eighteen ZIPs fall outside the DFW metro area entirely and don’t get a neighborhood label — they’re in the dataset because the inspection system covers surrounding areas, not because they’re part of Dallas in any meaningful sense.

It’s a small detail, but it’s the kind of thing that separates a data dump from a useful product. Nobody wants to browse restaurants by ZIP code.


Every score on Eat or Beat is computed from public health-department records. We don’t visit restaurants. We don’t accept payments from restaurants. We translate what’s already on file.