Methodology
How this list is built, what it can and can't tell you, and how to check any entry yourself. Every listed restaurant has a page showing its government record, the classifier's answer and any human review.
From permits to the list
-
Every food-service sales tax permit in the 11 counties.
-
2. Possibly South Asian969 (2.2%)
The classifier gave at least a 25% chance of being South Asian, web research or a related permit flagged it, or a reviewer confirmed it. The rest were excluded.
-
- Open restaurants
456
- Closed since 2022
149
- Extra permits for the same restaurant
148
- Home address, not counted
65
- In review, not counted
151
456 + 149 + 148 + 65 + 151 = 969.
- Open restaurants
Show as a table
| Food businesses checked | 43,202 |
| Possibly South Asian | 969 |
| Open restaurants | 456 |
| Closed since 2022 | 149 |
| Extra permits for the same restaurant | 148 |
| Home address, not counted | 65 |
| In review, not counted | 151 |
What counts
A restaurant is listed when it (1) holds a Texas sales tax permit at an address in one of the 11 counties of the Dallas-Fort Worth-Arlington metro area (Dallas, Tarrant, Collin, Denton, Ellis, Hunt, Johnson, Kaufman, Parker, Rockwall, Wise), (2) is registered as a food-service business, and (3) primarily serves South Asian food: Indian, Pakistani, Nepali, Bangladeshi, Indo-Chinese, Afghan or Sri Lankan. All seven count toward the total, and each restaurant is tagged with one sub-cuisine. Businesses registered at a home address are listed separately and not counted (see below).
"Open" means the permit has no out-of-business date. It doesn't guarantee the doors are open today (see limitations).
Sources
| Use | Source |
|---|---|
| Every business, address, dates | Texas Comptroller of Public Accounts, All Permitted Sales Tax Locations and Local Sales Tax Responsibility (data.texas.gov, dataset 3kx8-uryv). Lists every sales-tax outlet active at some point in the last four years, with out-of-business dates. |
| Map coordinates | US Census Bureau Geocoder, benchmark Public_AR_Current. Its street data misses some newer stretches (Preston Rd in Frisco, for one), so addresses it can't match are tried with OpenStreetMap Nominatim (data © OpenStreetMap contributors, ODbL), accepted only within the same ZIP code. Home addresses aren't sent to it. Addresses neither can place are listed but not mapped. |
| Cuisine | Inferred from names by a classification model (below), then checked by a person where the model is unsure. |
| Review suggestions | To help reviewers, each outlet in the review queue is looked up in a cached OpenStreetMap download (name and location match) and searched on the web (Exa first, then TinyFish Search, then DuckDuckGo when the others hit a limit) by its trade name and city, without "LLC" or "Inc", which would only find company registries. If nothing in the results mentions the business, a second search adds the street address. Registry and property-record pages are dropped, since they never say what a place serves. Claude Haiku reads up to ten results and answers two questions: is this place mainly South Asian, and if so which cuisine. A distinctively South Asian name plus a local food listing under that name is enough for a medium-confidence yes; a generic name needs a source describing the food. When Indian appears next to a more specific cuisine ("Indian and Pakistani", "Nepali and Indian"), the specific one is suggested, because a restaurant only names a second cuisine when it is strong in it. Halal carts serving chicken over rice and gyros, and menus with one South Asian section among many cuisines, are left for a person to decide. Each suggestion comes with a source link. Suggestions never change the list on their own: a reviewer accepts or rejects each one. |
Filters applied to the Comptroller data: county codes
57 (Dallas), 220 (Tarrant), 43 (Collin), 61 (Denton), 70 (Ellis), 116 (Hunt), 126 (Johnson), 129 (Kaufman), 184 (Parker), 199 (Rockwall), 249 (Wise);
NAICS codes 722511 full-service restaurant; 722513 limited-service restaurant; 722514 cafeteria or buffet; 722515 snack, coffee or dessert bar; 722330 mobile food service (food truck); 722320 caterer.
Addresses are cleaned of one source quirk: the house number sometimes appears twice ("8990 8990 Coit Rd"), and it's kept once.
Steps
- Pull all food-service outlets in the 11 counties from the Comptroller dataset (43,202 at the last refresh).
- Classify each outlet in two stages from its sign name, registered company name, city and business type: first the chance it's a South Asian restaurant at all, then, for likely ones, which cuisine (details below). Only outlets whose details changed are re-classified on later refreshes.
- Decide: with at least a 50% chance of being South Asian, the restaurant is listed. Between 25% and 50% it goes to a person for review and isn't counted until then (151 waiting now). Below 25% it's excluded, with two exceptions that send it to review instead: web research found it serves a South Asian cuisine, or a related permit is listed and this one's name gives no clue either way (a similar name under the same company or in the same building, like a restaurant and its catering arm). Neither exception lists anything on its own; a person decides.
- Review: a reviewer marks uncertain outlets as South Asian (with sub-cuisine) or not, noting a source such as the restaurant's website. A review always overrides the model and is shown on the restaurant's page. Reviewers can also decide outlets the model excluded, for example when a restaurant files under a company name with no trade name. To speed this up, a web search can suggest a decision with a source link; the reviewer accepts or rejects it, and accepted suggestions are labeled as such on the restaurant's page with their source.
- Check the address: outlets whose permit address looks like a home are flagged (rule below).
- Geocode listed addresses with the Census geocoder, falling back to OpenStreetMap, for the map.
- Group permits into restaurants: owner changes, reopenings and moves are joined so they aren't counted as closures plus openings (rules below).
Every classifier answer is stored with the model version, both question versions, the exact input, the full probabilities from both stages and a timestamp, so any listing can be traced and re-checked.
The classifier
Model: typesafe/jev-1.13 (TypeSafe Jev, a decision model that returns probabilities instead of free text), called through OpenRouter. It works in two stages.
Stage 1: is it a South Asian restaurant? A yes/no question (version v7, or v7s for outlets that get the same owner's other trade names). The answer is a single probability, the chance it's a South Asian restaurant, and that number alone decides listing. The question states the base rate: only about 2% of the outlets the model sees are South Asian restaurants, so a name with no South Asian cue should score low. The exact instruction:
Decide whether this Dallas-Fort Worth food outlet is primarily a South Asian restaurant (Indian, Pakistani, Nepali, Bangladeshi, Sri Lankan, Afghan or Indo-Chinese), using its outlet (sign) name and registered LLC name. Roughly 2% of the outlets you see are South Asian restaurants, so a generic name with no South Asian cue is most likely not one. Owner or LLC names that only suggest the owner's ethnicity are NOT evidence of cuisine (e.g. a Subway owned by 'Shree Ganesh LLC' is not South Asian). Words on the sign that name South Asian foods or eating places count as evidence even when they are in Hindi, Telugu, Tamil, Urdu or Nepali.
What counts as yes and as no:
yes | It primarily serves South Asian food. Cues: Indian food: North/South Indian, biryani, dosa, chaat, tandoori, Indian sweets/mithai; eatery words like bhavan, vilas, mess, tiffin, bandi (food cart), rasoi, dhaba, dum; Indian regions or dynasties on the sign (Deccan, Hyderabad, Chennai, Punjab, Chandigarh, Udupi, Kakatiya). Chai (spiced Indian tea) and chaat count. Pakistani food: tikka, karahi, nihari, desi kabab houses, Lahori/Karachi/Peshawari style. Nepali/Himalayan/Tibetan food: momo, thakali, sekuwa, jhol, newari, chiya; Nepali words like durbar, chautari, bhetghat, thela; Everest/Himalaya/Kathmandu/KTM branding. Bangladeshi/Bengali food. Indo-Chinese/Desi-Chinese: Hakka, manchurian, chilli chicken. (Indochine/Indochina means Vietnam, Laos or Cambodia: not_south_asian.) Afghan food: Kabul/Kandahar/Herat/Mazar/Ariana branding, kabuli palaw, mantu, bolani, Afghan kabob houses. A kebab or halal grill with no Afghan cue is not Afghan. Sri Lankan food: kottu, hoppers, string hoppers, lamprais; Lanka/Ceylon/Colombo on the sign. 'Sri' alone (Sri Krishna, Sri Laxmi) is a common Indian honorific, not a Sri Lanka cue. |
no | Clearly another cuisine: Persian, Turkish, Arab or Yemeni (mandi houses), Mediterranean (pita, bowls), Korean (pocha, dosirak), Indonesian or Indochinese ('Indo' alone is not India), Uzbek or Central Asian, African; Chinese, Taiwanese or Korean tea, boba or matcha shops (e.g. 'Feng Cha', 'Cha Halo'; chai is Indian); or a chain/franchise. Also false when the name gives no real South Asian cue. |
For outlets filed under the bare company name that have other trade names, the instruction is instead:
Decide whether this Dallas-Fort Worth food outlet is primarily a South Asian restaurant (Indian, Pakistani, Nepali, Bangladeshi, Sri Lankan, Afghan or Indo-Chinese), using its outlet (sign) name and registered LLC name. The outlet is filed under the bare LLC name, so same_owner_other_outlets lists the trade names of the same taxpayer's other food permits; a business usually runs the same concept at each of its locations, so treat a clearly South Asian trade name there as evidence. Roughly 2% of the outlets you see are South Asian restaurants, so a generic name with no South Asian cue is most likely not one. Owner or LLC names that only suggest the owner's ethnicity are NOT evidence of cuisine (e.g. a Subway owned by 'Shree Ganesh LLC' is not South Asian). Words on the sign that name South Asian foods or eating places count as evidence even when they are in Hindi, Telugu, Tamil, Urdu or Nepali.
Stage 2: which cuisine? Only for outlets with at least a 25% chance in stage 1, a second question (version v7c) picks among the seven cuisines. The sub-cuisine shown is the most likely one, or the reviewer's choice when there is a review. The full seven-way distribution is stored.
This Dallas-Fort Worth outlet serves South Asian food. Which cuisine is it primarily? Words on the sign that name South Asian foods or eating places count as evidence even when they are in Hindi, Telugu, Tamil, Urdu or Nepali.
indian | Indian food: North/South Indian, biryani, dosa, chaat, tandoori, Indian sweets/mithai; eatery words like bhavan, vilas, mess, tiffin, bandi (food cart), rasoi, dhaba, dum; Indian regions or dynasties on the sign (Deccan, Hyderabad, Chennai, Punjab, Chandigarh, Udupi, Kakatiya). Chai (spiced Indian tea) and chaat count. |
pakistani | Pakistani food: tikka, karahi, nihari, desi kabab houses, Lahori/Karachi/Peshawari style. |
nepali | Nepali/Himalayan/Tibetan food: momo, thakali, sekuwa, jhol, newari, chiya; Nepali words like durbar, chautari, bhetghat, thela; Everest/Himalaya/Kathmandu/KTM branding. |
bangladeshi | Bangladeshi/Bengali food. |
indo_chinese | Indo-Chinese/Desi-Chinese: Hakka, manchurian, chilli chicken. (Indochine/Indochina means Vietnam, Laos or Cambodia: not_south_asian.) |
afghan | Afghan food: Kabul/Kandahar/Herat/Mazar/Ariana branding, kabuli palaw, mantu, bolani, Afghan kabob houses. A kebab or halal grill with no Afghan cue is not Afghan. |
sri_lankan | Sri Lankan food: kottu, hoppers, string hoppers, lamprais; Lanka/Ceylon/Colombo on the sign. 'Sri' alone (Sri Krishna, Sri Laxmi) is a common Indian honorific, not a Sri Lanka cue. |
How the thresholds were chosen. Listed at 50% or more, reviewed from 25%. These are fixed constants, chosen once on two human benchmarks (82 labeled outlets and every review decision) by a stated rule: auto-listed outlets must be right at least 90% of the time on the reviewed set, and at least as often as with the previous single-question classifier on the labeled set; the review queue must stay within 30% of its previous size; among the pairs that pass, the one that lists the most correct outlets automatically wins. Compared with the previous classifier on the same benchmarks, it listed more of the right restaurants automatically and wrongly listed fewer, and every change on the labeled set was an improvement.
The model sees only the outlet name, registered company name, city and business type. When an outlet is filed under the bare company name with no trade name of its own (for example "KK BUSINESS GROUP LLC"), it also sees the trade names on the same taxpayer's other food permits ("ISTA EXPRESS INDIAN CUISINE"), which are part of the same state record. Owner names aren't evidence of cuisine: an owner's background says nothing about what a restaurant serves (an Indian-American-owned Subway is still a Subway).
A generic name scores just above the base rate (no cue either way), while a name that clearly belongs to another cuisine scores at it; scores from 3% up to the review threshold are treated as "no signal" for the two closer-look routes below.
Every stored answer keeps its question versions. When the questions change but keep the same answer options, businesses the previous version scored under 2% South Asian, with unchanged details, keep that answer (marked "carried forward") instead of being asked again.
A second question about the registered name. In the same call, the model is also asked whether the registered company or owner name suggests a South Asian owner. This answer is never used to list a restaurant or to change its cuisine: many franchises here (sandwich shops, donut shops, burger chains) have South Asian owners, and an owner's background says nothing about the food. It's used only to pick businesses for a closer look: an open restaurant, caterer or food truck whose name gives no signal but whose owner name looks South Asian gets a web search, and if the search finds South Asian food it goes to a person for review. The exact question:
Judge only the registered_llc field (the owner's personal name, or the company name the business is registered under). Does it suggest the owner is of South Asian origin (Indian, Pakistani, Nepali, Bangladeshi, Sri Lankan or Afghan)? This is about the owner, not the food. A company name with no personal or cultural name in it is cant_tell.
south_asian | A personal or family name, or a company name built from words, that is typically South Asian (e.g. Patel, Reddy, Singh, Khan, Shrestha, Gamlath; 'Sri Venkateswara', 'Shree Ganesh'). |
not_south_asian | A personal or cultural name typical of another origin. |
cant_tell | A generic company name (e.g. 'Spicy Zest LLC', 'ABC Foods Inc') or no clear signal. |
Accuracy
Measured against 320 businesses a person reviewed (210 judged South Asian, 110 not), comparing each decision with what the classifier would have done on its own. 238 of the decisions accepted a web-research suggestion after checking its source; the rest were decided by hand.
Listed automatically and right
91.3%
63 of 69
South Asian ones found (listed or sent to review)
74.8%
157 of 210
Non-South Asian ones kept out
62.7%
69 of 110
Sub-cuisine matches the reviewer
80.0%
of 210 South Asian
Read with care: reviewed businesses are the hard cases (names the classifier wasn't sure about, research finds, visitor reports), so these numbers describe the boundary, not the 43,202 businesses overall, almost all of which are obviously not South Asian. Of the South Asian ones, 53 were excluded by the classifier and only found through web research, a related permit or a report; those have generic names such as "Food Fiesta" or "Hot Breads". Of the non-South Asian ones, 35 went to review: mostly Korean, Indonesian, Yemeni or Mediterranean places, and tea or boba shops whose names look South Asian.
Earlier check against name-only labels
Measured against 82 labeled outlets, using the classifier's answer alone with no human review. These labels were made by Claude, an AI model, from the outlet and company names alone (basis: name-only), not by a person checking each business. Treat the numbers below as agreement with a careful reading of the same names, not verified ground truth.
Listed that should be (precision)
97.4%
South Asian listed automatically
74.0%
South Asian listed or sent to review
94.0%
Correct sub-cuisine
100.0%
Of the 50 truly South Asian outlets in the set, 37 were listed automatically and 10 went to review, where they wait for a person. Of the 10 sent to review, 100.0% were South Asian. The set was sampled from listed, review and near-miss outlets, so it describes performance near the decision boundary, not across all 43,202 businesses (almost all of which are obviously not South Asian). The classifier question was tuned after these labels were made; the reviewed benchmark above is the main measure now.
One restaurant, several permits
A restaurant can have more than one sales tax permit: a new owner files a new one, and an old permit sometimes stays open next to a newer one. Counting permits would count those restaurants twice and record an ownership change as a closure plus an opening. So permits at the same address (and suite) are grouped into one restaurant when they overlap, or when a new permit starts within 120 days of the previous one closing. The same name back at the same address within 365 days is a reopening, not a new restaurant. A longer gap counts as a new restaurant. When a restaurant closes and the same owner opens one with the same name at a new address within 60 days, it has moved: both locations count as one restaurant, not a closure plus an opening. Food trucks are left out of that rule, since they change address all the time.
A restaurant opens on its first permit's first-sale date and closes when its last permit closes. It's shown under its newest permit's name; the other 148 permits are linked from its page. This can merge two separate restaurants that share an address and suite. A move under a new owner or a new name isn't detected.
Home addresses
A sales tax permit lists wherever the owner registered the outlet. Caterers, home kitchens, food trucks and new businesses sometimes register at a house or apartment, which isn't a restaurant a diner can visit. The state data has no residential flag, so an address is treated as a home when:
- The address is an apartment (it contains APT), or
- all of: it is the same as the owner's mailing address, it has no suite or unit number, it is on a residential-type street (Lane, Court, Drive, Trail, Way, Place, Path, Circle, Cove and similar), and no other business in the dataset uses it.
These businesses still appear in the list, marked Home address, but they aren't counted in the totals, charts or trends, and they aren't mapped. Their street address is left out of this site and the downloads; the city and the link to the state record remain. 65 listed businesses are flagged now. The rule can be wrong both ways, so a reviewer can override it, and the restaurant's page says who decided.
How the charts work
Every chart counts listed restaurants at business addresses, one entry per restaurant after grouping permits. Each chart has a "Show as a table" option with the exact numbers.
- Open at each year end, and the time-lapse map: a restaurant counts for a year if it first opened by December 31 and had no out-of-business date by then. The map pins the same restaurants; restaurants that close stay as gray rings. Restaurants without a map location are counted but not pinned.
- Survival odds: a life table in half-year steps over restaurants that opened in 2023 or later (earlier closures aren't in the data). Each step uses only restaurants old enough to have lived through it: of those open at its start, the share still open at its end. The steps multiply, so the curve can only go down. A line stops when fewer than 15 restaurants are old enough for the next step, and a cuisine needs 30 openings for its own line.
- Class-of tracker: the share of one year's openings still open a given number of months after each restaurant's own opening, drawn only up to the month every member has reached.
- Biggest chains: a brand is the restaurant name without city names, branch numbers and company words (LLC, Inc), whoever owns each location. A location filed only under a company name joins the brand of a sibling company with the same name stem. Food trucks are left out, and a shared name doesn't prove a shared business.
- Owners with several restaurants: grouped by the taxpayer on each restaurant's newest permit, counting open restaurants only and leaving out food trucks. Related companies under different names don't link.
- Addresses with several restaurants: the same street address and suite, with permits under one owner or one name (spelled differently) counted once. Food truck stops are left out.
- Growth waterfall: open restaurants at the end of 2010, plus each year's openings, minus its closures, landing on today's count. It uses the same rule as the year-end line, so every step matches it.
- Center of the scene: the average location of open, mapped restaurants at each year end. The headline names a direction only when the center moved at least 2 km and the trail is fairly straight (net movement at least half the trail's length); otherwise it says there's no clear direction.
- City markets: net growth is openings minus closures since closures enter the data; churn is closed ÷ (open + closed) for each city; the quadrant lines are zero growth and the median churn of the cities shown. Rank changes compare open counts at the end of 2020 with today, with ties marked "T" and cities outside 2020's top 12 shown as such. Each city's small line chart has its own scale.
- Every opening year: for each opening year and each number of years since opening, the share still open, among restaurants old enough to have reached that point; fewer than 10 such restaurants leaves the cell blank.
- Giveaway words: a TF-IDF score per cuisine over distinct names; words used by every cuisine score zero.
- Cuisine waffle (home page): 100 squares split by largest remainder, so the squares add to 100; any cuisine with 2 or more restaurants keeps at least one.
- The name game: words in restaurant names, each distinct name counted once, with filler words dropped and simple spelling variants merged (Biriyani into Biryani).
- Change of owner: a closure in these charts can still be the same restaurant under a new permit, when the gap was too long or the move too different to link.
Known limitations
- A permit isn't proof of being open. The Comptroller records an out-of-business date only once it's reported, so some "open" restaurants may already be closed.
- Cuisine is inferred from names. Generic names ("Spice Fusion", "Chai House") are uncertain. Those go to review rather than being counted.
- Names are legal names. The outlet name on the permit can differ from the sign, and some outlets are listed under the company name.
- Four years of history. The source only includes outlets active in the last four years, so long-closed restaurants are missing and trend charts undercount older openings.
- Not covered yet: Indian grocery stores with hot-food counters (registered as grocery stores), and home-based tiffin services without a food-service permit. Restaurant-and-grocery chains are partly covered: Desi Chowrastha and Swadeshi Plaza, for example, register some stores as restaurants and others as groceries, so only some of their locations appear.
- Food trucks and caterers may be registered at a commissary address, so their map position isn't where they serve.
- Outlets filed under a company name only (no trade name) are only identifiable when the same owner has another permit with a telling name. Chains often give each store its own company ("Sri Laxmi Foods Coppell LLC", "Sri Laxmi Foods LW LLC"), and the classifier doesn't link those separate companies, so such stores are excluded unless a reviewer adds them. The chains chart does link them by name once they're listed.
Refresh history
The data is refreshed on demand from the live state dataset.
Source rows at each successful refresh in the table below (failed runs skipped). Latest: 43,202 on 2026-10-21.
| Started (UTC) | Status | Source rows | New | Changed | Classified |
|---|---|---|---|---|---|
| 2026-10-21 14:13:54 | ok | 43,202 | 0 | 0 | 39,222 |
| 2026-10-21 14:10:11 | failed | 0 | 0 | 0 | 0 |
| 2026-10-21 13:53:05 | ok | 43,202 | 0 | 43,202 | 4,305 |
| 2026-10-21 12:36:32 | ok | 43,202 | 0 | 43,202 | 43,202 |
| 2026-10-21 12:03:13 | ok | 43,202 | 0 | 43,202 | 43,202 |
| 2026-10-21 01:37:39 | ok | 43,202 | 0 | 43,202 | 43,202 |
| 2026-10-20 23:42:35 | ok | 43,202 | 0 | 0 | 0 |
| 2026-10-20 23:41:21 | failed | 0 | 0 | 0 | 0 |
| 2026-10-20 23:34:06 | ok | 43,202 | 4,813 | 38,389 | 43,202 |
| 2026-10-20 21:51:37 | ok | 38,389 | 0 | 1 | 0 |
Report an error or a missing restaurant
To correct a listed restaurant, use the form on its page. For anything else, such as a restaurant we missed, write here and include the name and address.