San Antonio Bar and Restaurant Revenue
Every dollar of alcohol sold by every permitted bar and restaurant in Bexar County, by month and by ZIP code, from Jan 2007 to Jul 2026. That is 235 complete months and $11.79 billion in reported receipts from 4,634 businesses. It is the only public record that measures commercial activity in this city at neighbourhood scale, monthly, going back nineteen years.
The clearest thing in nineteen years of this data is what did not happen. Between Feb 2020 and Apr 2020, reported receipts fell from $60.7M to $3.0M. Over the same two months the number of businesses holding a permit and filing a return went from 1,213 to 1,221. The revenue vanished and the businesses did not, at least not yet and not on this record. A dataset that only counted openings and closures would have shown almost nothing.
Nineteen years, month by month
Two charts, one shared timeline. They are drawn separately on purpose: putting dollars and venue counts on two axes of one chart is what makes this comparison unreadable. These are nominal dollars. Nothing here is inflation-adjusted, so part of the long rise is prices rather than trade, and the line should not be read as growth on its own.
Where the money is, by ZIP code
The 12 complete months from Aug 2025 to Jul 2026. Average per venue is shown because a ZIP with more bars will report more money, which is not the same as its bars doing better.
- under $2.7M
- $2.7M+
- $5.5M+
- $10.2M+
- $25.5M and up
- withheld
| ZIP | Venues | Receipts | Average per venue |
|---|---|---|---|
| 78205 Downtown | 200 | $160.9M | $804k |
| 78215 Pearl / Government Hill | 76 | $59.0M | $777k |
| 78216 North Central / Airport | 108 | $45.9M | $425k |
| 78212 North Side | 97 | $40.7M | $419k |
| 78209 Alamo Heights area | 88 | $38.2M | $434k |
| 78256 Northwest Side | 32 | $37.0M | $1.2M |
| 78258 Stone Oak | 63 | $35.5M | $563k |
| 78257 La Cantera & The Rim | 64 | $34.2M | $535k |
| 78249 Northwest Side | 60 | $32.1M | $535k |
| 78232 North Side | 70 | $29.7M | $425k |
| 78251 West Side | 45 | $28.8M | $640k |
| 78261 Far North Side | 5 | $25.5M | $5.1M |
| 78245 Far West Side | 42 | $21.1M | $503k |
| 78230 Medical Center area | 54 | $21.0M | $388k |
| 78219 East Side | 12 | $18.9M | $1.6M |
| 78229 Medical Center | 44 | $14.5M | $329k |
| 78238 West Side | 38 | $13.4M | $353k |
| 78223 Southeast Side | 49 | $13.3M | $272k |
| 78217 Northeast Side | 42 | $13.0M | $311k |
| 78233 Northeast Side | 32 | $11.4M | $355k |
| 78253 Far West Side | 32 | $11.0M | $343k |
| 78254 Northwest Side | 22 | $10.6M | $484k |
| 78023 Helotes | 17 | $10.2M | $603k |
| 78247 North Side | 26 | $10.2M | $392k |
| 78231 North Side | 11 | $10.0M | $913k |
| 78210 Southeast Side | 32 | $9.2M | $287k |
| 78214 South Side | 26 | $7.8M | $301k |
| 78213 Northwest Side | 26 | $6.8M | $260k |
| 78227 West Side | 25 | $6.4M | $255k |
| 78218 Northeast Side | 25 | $6.2M | $247k |
| 78248 North Side | 12 | $6.0M | $503k |
| 78224 South Side | 15 | $5.9M | $394k |
| 78204 Southtown | 24 | $5.8M | $241k |
| 78202 Central San Antonio | 16 | $5.7M | $356k |
| 78250 Northwest Side | 17 | $5.5M | $324k |
| 78148 Universal City | 13 | $5.2M | $403k |
| 78207 West Side | 19 | $4.9M | $259k |
| 78201 Deco District | 27 | $4.5M | $168k |
| 78240 Northwest Side | 27 | $4.5M | $167k |
| 78154 Schertz | 19 | $4.2M | $222k |
| 78221 South Side | 15 | $3.9M | $262k |
| 78235 JBSA (South) | 7 | $3.4M | $485k |
| 78015 Fair Oaks Ranch / Boerne | 5 | $3.1M | $626k |
| 78255 Northwest Side | 6 | $3.1M | $519k |
| 78259 Stone Oak area | 14 | $2.9M | $207k |
| 78208 Northeast Side | 8 | $2.7M | $340k |
| 78222 Southeast Side | 16 | $2.5M | $159k |
| 78109 Converse | 13 | $2.1M | $160k |
| 78228 West Side | 18 | $2.0M | $111k |
| 78237 West Side | 11 | $1.2M | $113k |
| 78260 Far North Side | 5 | $1.1M | $227k |
| 78211 Southwest Side | 11 | $1.1M | $97k |
| 78101 St Hedwig / Adkins | 6 | $875k | $146k |
| 78239 Northeast Side | 6 | $839k | $140k |
| 78263 Southeast Side | 9 | $801k | $89k |
| 78242 Southwest Side | 8 | $549k | $69k |
| 78225 Southwest Side | 6 | $472k | $79k |
| 13 ZIP codes withheld (fewer than 5 venues each, so the total would be one identifiable business) | 32 | $13.0M | withheld |
Withheld ZIP codes are still counted in every citywide total on this page. They are removed as rows, not from the data. One of them is not a San Antonio ZIP at all: 77063 is in Houston, and it carries 68 filings that the source records under Bexar County with a San Antonio city name. It is the only ZIP in this dataset outside the 78xxx range.
What San Antonio drinks
- Liquor 55% $6.47B
- Beer 32.6% $3.83B
- Wine 12% $1.41B
Computed over 99.8% of dollars. 862 filings reported a total with no drink breakdown at all ($23.7M), and cover charges are $54.1M, too small a share to draw honestly as a segment.
The mistake this dataset invites
Bexar County is county 015 here, not 029. The Comptroller numbers counties alphabetically, so Bexar is 015. Query this dataset with 029, which is Bexar's actual federal FIPS code and the obvious thing to reach for, and you get Port Lavaca, Port O'Connor and Seadrift. That is Calhoun County, two hundred miles away on the coast. There is no error, no warning and no empty result: just a complete, plausible dataset for the wrong place.
Source. Texas Comptroller of Public Accounts, Mixed Beverage Gross Receipts, read through the State's own API and rebuilt monthly. Fetched 27 August 2026. Aug 2026 is excluded: it held 8 filings against a monthly median near 0, because returns are still arriving. Charting it would show a collapse that is only reporting lag.
Share it with someone who argues about which part of town is booming.
Read this before you read the numbers
This dataset is unusually good and unusually easy to misuse. Both are worth knowing before you quote it.
What this is
Gross receipts reported to the State by every holder of a TABC mixed beverage permit in Bexar County. Bars, restaurants, hotels, clubs and stadiums. 270,430 monthly returns from 4,634 businesses since Jan 2007.
What it is not
It is not profit, not total restaurant sales, and not a census of restaurants. A venue without a mixed beverage permit never appears, so absence here is not evidence a business does not exist.
Where the numbers come from
Directly from the Texas Comptroller’s own API, rebuilt monthly and republished exactly as filed. No figure is adjusted, smoothed or inflation-corrected. The dollars are nominal, so a 2007 dollar and a 2026 dollar sit side by side in the chart.
Who it is for
Anyone arguing about which part of San Antonio is thriving, anyone siting a business, and anyone who has been handed a confident claim about the local economy and would like to check it.
What April 2020 actually looked like
In Feb 2020, the bars and restaurants of Bexar County reported $60,682,757 in sales across 1,213 permit holders. Two months later, in Apr 2020, they reported $2,987,421.
That is a fall of 95.1%. Over the same two months the number of businesses holding a permit and filing a return went up, to 1,221.
Those two facts together are the most useful thing in this dataset, and neither one is visible on its own. A chart of revenue alone shows a catastrophe. A count of open businesses alone shows almost nothing happening. Put them on the same timeline and you can see the actual shape of it: the businesses were still there, still permitted, still filing their returns, and reporting almost no sales.
This is why the two charts above are drawn separately rather than stacked onto one pair of axes. Dollars and business counts are different units, and a chart with two y-scales lets whoever drew it decide how dramatic the comparison looks by choosing where the axes cross. Two aligned charts on one shared timeline cannot be tuned that way.
It is also worth knowing what the recovery does not tell you. A permit that stops filing leaves this dataset silently, and a new permit at the same address arrives as a different business. So the venue line is not a count of survivals, and this record cannot tell you how many of the places open in Feb 2020 are the same ones open today.
The mistake this dataset invites
Four ways to be confidently, invisibly wrong with these numbers.
Bexar County is not 029 here
The State numbers counties alphabetically, so Bexar is 015. Query this data with 029, which is Bexar’s actual federal FIPS code and the obvious thing to reach for, and you get Port Lavaca and Seadrift. That is Calhoun County, on the coast. No error, no warning, just a complete and plausible dataset for the wrong place.
The newest month is a stub
Returns keep arriving for months after a period closes. The most recent month in the raw feed held a tiny fraction of a normal month’s filings. Chart it and you have drawn a collapse that is entirely an artefact of when you looked. This page excludes any trailing month that is still filling in, and says which one it dropped.
A quiet ZIP is one business
Six ZIP codes in this county have had exactly one permit holder in nineteen years, and one of those six is not in San Antonio at all: 77063 is a Houston ZIP that the source files under Bexar with a San Antonio city name. Publishing a total for any of them is publishing one identifiable company’s monthly revenue. This page withholds every ZIP with fewer than 5 reporting venues, currently 13 of them, and keeps their dollars inside the citywide totals so nothing silently disappears.
It is not a denominator
Receipts measure commercial activity, not people. Dividing anything by them, crime especially, reproduces the exact error that makes downtown look like the most dangerous place in Texas. What this data can honestly do is show why that denominator fails: 78205 alone reports $160,882,579 a year from 200 venues.
How this was built
Every figure is a grouped aggregate computed by the State’s own API and reconciled before publication. Nothing here downloads the underlying rows, which matters because the platform silently caps a grouped result at a thousand rows unless you tell it otherwise, and a cap like that does not announce itself.
Two independent reconciliations run on every rebuild. The citywide total must equal the sum of the monthly series, and the per-ZIP window must equal the same months in that series. If either disagrees by more than a rounding margin the build refuses to publish anything and the previous good copy stays exactly where it is. A partial fetch produces no update rather than a quietly wrong one.
Every number in the prose above is read from the same file as the charts, through a shortcode, so this essay cannot drift out of agreement with the data underneath it. The figures here were last rebuilt on 27 August 2026.
All of it is free to take. There is a CSV of the whole dataset and a documented JSON API, both linked from the panel above. The API’s quality endpoint returns the county-code trap, the disclosure floor and the reporting lag as structured data, so a developer who never reads this page still gets told what will make them wrong.
Want the monthly rebuild in your inbox? Leave an email and we will send you the update when the numbers move.
We'll send a copy and, if you want, help you take the next step. No spam.
Related free tools
San Antonio Building Permits
Every building permit by type, district and month, published with the coverage rate of every field. The billions-of-dollars headline turns out to come from a fortieth of the record.
San Antonio Crime Map
Forty-two months of SAPD offences by ZIP with trends, per-capita rates, and the denominator problem this page puts a number on.
The free API platform
Every one of these datasets is documented, CORS-enabled JSON with an OpenAPI description. No key, no signup.
Schedule Your Technical Briefing
Skip the email queue. Book a direct 30-minute discovery session on our technical calendar.
Pick a date
Available times
All times shown in Central (Chicago)You're booked.
A confirmation email is on its way from [email protected].
If you need to reschedule, reply to the confirmation email and we’ll handle it.