San Antonio Aggressive Driving Report
Wrong-way driver calls in this city peak at 02:00. Crash calls peak at 17:00. Both come out of the same SAPD dispatch record, and neither contains a single tailgater, because nobody phones 911 about being tailgated. This page publishes the official calls and collects the part no official record has.
Before you scroll: what hour of the day do you think San Antonio police get the most wrong-way driver calls?
The same 911 line, two completely different clocks
Wrong-way driver calls in San Antonio peak at 02:00. Crash calls peak at 17:00.
Wrong-way driver calls
58% between 10pm and 5am
midnightnoon11pm
Crash calls
13% between 10pm and 5am
midnightnoon11pm
Both numbers come from the same table of 423,100 calls, and not one of them is a tailgater. Nobody phones the police about being tailgated, brake-checked or run to the shoulder, so none of it is in any official record anywhere. That gap is what the form on this page collects.
Add a reportFour dropdowns, about twenty seconds. No signup, and nowhere to type a name.
What the official record shows
SAPD calls for service, filtered to events rather than enforcement.
This is the official record, and it is not the same thing this page collects. These are people who phoned the police. The form collects the people who did not, which is nearly everyone. The two are never added together.
What police were called to
- Accident Minor296,494
- Accident Major121,789
- Wrong Way Driver4,817
Where police were called
115,964 of 116,262 calls (99.7%) are on this map. The other 298 have no shape to draw: 117 were logged without a ZIP at all, and the rest sit in four ZIP codes that are administrative rather than geographic (a corporate campus, a base annex and two PO box ranges), which have no polygon in the county layer. Verified against that layer rather than assumed.
Driving-event calls in the last twelve months, shaded darkest where police were called most. This is not a map of where driving is worst, and it is not a rate: a ZIP full of highway collects enormous numbers with almost nobody living in it, so dividing by residents would say something confident and false. No traffic count is published for these roads, so there is no denominator to use and none is invented.
14 ZIP codes recorded no driving-event calls at all. They are hatched, not left as holes, because a hole reads as missing data when the truth is a real zero: they are mostly outside the city, where SAPD is not the responding agency. Blank areas have no polygon in the county layer. Neither is a ZIP whose calls were dropped.
The same figures, ranked
The last twelve months: where police were called, not where driving is worst.
| ZIP | Part of town | Calls, 12 months | Share |
|---|---|---|---|
| 78216 | North Central / Airport | 5,207 | |
| 78249 | Northwest Side | 4,810 | |
| 78251 | West Side | 4,755 | |
| 78218 | Northeast Side | 4,179 | |
| 78223 | Southeast Side | 4,166 | |
| 78207 | West Side | 3,901 | |
| 78230 | Medical Center area | 3,898 | |
| 78227 | West Side | 3,809 | |
| 78229 | Medical Center | 3,719 | |
| 78233 | Northeast Side | 3,458 | |
| 78212 | North Side | 3,210 | |
| 78201 | Deco District | 3,055 | |
| 78247 | North Side | 3,001 | |
| 78245 | Far West Side | 2,901 | |
| 78232 | North Side | 2,853 | |
| 78219 | East Side | 2,723 | |
| 78238 | West Side | 2,622 | |
| 78258 | Stone Oak | 2,565 | |
| 78237 | West Side | 2,532 | |
| 78240 | Northwest Side | 2,515 |
When it happens
Crashes follow the traffic. Wrong-way drivers follow closing time. Crash calls peak at 17:00, in the evening rush, and only 13% of them land between 10pm and 5am. Wrong-way calls peak at 02:00, and 58% of them land in those same seven hours. Both reach police the same way, out of the same table, over the same years. If this were just a matter of how many cars are out, the two would fall together overnight. One falls and the other rises.
Every call in the archive, placed at the hour it reached police. Somebody dials while it is in front of them, so this is essentially when it happened, which a crime report date is not.
Each row is scaled to its own busiest hour: crashes outnumber wrong-way calls about sixty to one, and one shared scale would flatten the second row flat. Compare the shape of a row to itself, not the bar heights between the two.
Every hour of every day of the week
Both call types, 423,100 of them, across the 168 hours of a week. The darkest block is the weekday drive home. The weekend has no such block and carries the early hours instead.
Where the wrong-way calls come from
4,809 of 4,817 wrong-way driver calls are on this map. 0 were logged without a usable ZIP and 8 sit in ZIP codes that are administrative rather than geographic and have no polygon to draw.
This map covers the whole archive, not the last twelve months like the map above it. 4,817 wrong-way calls is too thin to spread across the county in a single year. It is a separate map, not a second color, because crashes outnumber these about ninety to one and on one shared ramp this layer disappears. Shading is raw counts, so this is where police were called and not where driving is worst.
Most wrong-way calls across the archive: 78216 North Central / Airport (327), 78223 Southeast Side (267), 78227 West Side (229), 78251 West Side (215), 78207 West Side (171). More freeway miles collects more of these whatever the drivers are like.
Take the data
One public dataset, rebuilt on a schedule. No signup, open endpoints.
Police calls (JSON)Resident reports (CSV)Known limits (JSON)API docs
Cite it as: BrandShyp, San Antonio Aggressive Driving Report, derived from City of San Antonio SAPD Calls for Service, 2023-01-01 to 2026-07-31. https://brandshyp.org/san-antonio-aggressive-driving/
The two layers are published separately and must not be added together. The resident reports are a self-selected survey, not a record.
Source. SAPD Calls for Service, 2023-01-01 to 2026-07-31. Only Accident Major,Accident Minor,Wrong Way Driver are counted. Traffic Stop, Traffic Violation and DWI are excluded because they count enforcement activity rather than events, and Traffic Related is excluded as too vague to mean anything about driving.
What it cost
A third record, and the only one of the three that says what happened to anybody.
Everything above counts phone calls. A dispatch record knows somebody rang about a crash, and then it stops. It does not know whether anyone walked away. The City publishes the other half, just not in the open data catalog, which is where this page looked and found nothing. It is in the City’s GIS services, filed for a federal Safe Streets and Roads for All grant: 59,915 injury crashes, 2018 to 2023, each with a street, a time and an outcome.
It is never added to the two layers above, and never divided into them. A crash is not a call. Different windows, different grain, and no field in either record supports a ratio between them.
Getting out of the car is what makes a crash fatal
A crash on foot kills 13.6 times as often as one in a vehicle. That is why 391 of the 825 people killed were walking.
| Road user | Crashes | Killed | Seriously hurt | Killed or seriously hurt | Fatality rate |
|---|---|---|---|---|---|
| Motor Vehicle | 54,515 | 405 | 1,932 | 4.3% | 0.74% |
| Pedestrian | 3,889 | 391 | 638 | 26.5% | 10.05% |
| Bicycle | 1,511 | 29 | 148 | 11.7% | 1.92% |
Severity is the Texas KABC scale. Every row here recorded an injury, so damage-only collisions are absent and no number here is a count of all crashes in San Antonio.
The streets it concentrates on
The City ranks 176 segments as its High Injury Network: 332 miles carrying 1,547 of the worst crashes. Darker and thicker is worse.
These are stretches of road, not whole streets, which is why the network looks broken into pieces. The 14 busiest are labeled; hover any line to find it in the table, or any row to find it on the map. Bins are quantiles, because the score is heavily skewed.
The gaps inside the shaded area are not missing data. Alamo Heights, Terrell Hills, Castle Hills, Balcones Heights and Leon Valley are separate cities, so they are not San Antonio council districts and this record does not cover them.
The ranked network
| # | Segment | Miles | Killed or seriously hurt | Per mile per year | City’s own trend flag | Who owns the road |
|---|---|---|---|---|---|---|
| 1 | Culebra Rd | 15.61 | 116 | 1.49 | Increasing | San Antonio |
| 2 | Sw Military Dr | 6.05 | 31 | 1.03 | Increasing | State of Texas |
| 3 | Bandera Rd | 3.73 | 38 | 2.04 | About the Same | State of Texas |
| 4 | Roosevelt Ave | 6.65 | 37 | 1.11 | Increasing | San Antonio |
| 5 | Se Military Dr | 5.52 | 34 | 1.23 | Increasing | State of Texas |
| 6 | W Commerce St | 5.82 | 31 | 1.07 | Increasing | San Antonio |
| 7 | Nacogdoches Rd | 6.16 | 28 | 0.91 | Increasing | San Antonio |
| 8 | S Zarzamora | 5.90 | 30 | 1.02 | Increasing | San Antonio |
| 9 | S Ww White Rd | 3.93 | 32 | 1.63 | Increasing | State of Texas |
| 10 | S General Mcmullen | 2.93 | 31 | 2.11 | Increasing | San Antonio |
| 11 | Oconnor Rd | 4.82 | 27 | 1.12 | About the Same | San Antonio |
| 12 | S Flores St | 4.11 | 25 | 1.22 | Increasing | San Antonio |
| 13 | Austin Hwy | 3.58 | 26 | 1.45 | Decreasing | State of Texas |
| 14 | S Zarzamora | 3.02 | 25 | 1.66 | Increasing | San Antonio |
| 15 | Perrin Beitel | 2.92 | 18 | 1.23 | Decreasing | San Antonio |
| 16 | Babcock Rd | 2.55 | 20 | 1.57 | Increasing | San Antonio |
| 17 | Wurzbach Rd | 3.91 | 16 | 0.82 | Increasing | San Antonio |
| 17 | Rittiman Rd | 4.38 | 18 | 0.82 | Decreasing | San Antonio |
| 19 | Huebner Rd | 3.05 | 16 | 1.05 | About the Same | San Antonio |
| 19 | E Southcross Blvd | 5.35 | 18 | 0.67 | Increasing | San Antonio |
| 21 | Fredericksburg Rd | 2.08 | 17 | 1.64 | Increasing | State of Texas |
| 22 | Historic Old Hwy 90 | 4.06 | 20 | 0.98 | Increasing | San Antonio |
| 23 | Rigsby Ave | 4.81 | 17 | 0.71 | Increasing | San Antonio |
| 24 | S New Braunfels Ave | 3.66 | 16 | 0.87 | About the Same | San Antonio |
| 25 | Walzem Rd | 2.89 | 15 | 1.04 | Increasing | State of Texas |
Top 25 of 176; the rest are in the CSV. Ranking is by segment, so a long road can appear twice. Per mile per year is a length denominator, not a traffic one, and no public traffic count covers these roads. Roads owned by the State are ones the City cannot redesign alone.
The trend flag is the City’s, reproduced rather than relied on. It compares two three-year windows the service never names, and they do not partition this record: the two do not sum to the six-year total on any segment. That matters, because 20.1% fewer injury crashes were recorded in 2020 than in an average year here, and an earlier window holding 2020 would make a flat road look like a worsening one.
Every crash that killed or seriously hurt somebody
3,543 of 3,543 plotted (100.0%). 0 carry no location and 0 fall outside Bexar County. This is a complete category, not a sample: every crash in 2018 to 2023 coded as killed or seriously injured.
Loads on demand: until you press the button, no map service is contacted.
A pin is where a crash was recorded, not where anyone lives. The record has no fault field.
The blue lines are the ranked network from the map above, drawn underneath, and the pale points sit on it. The City built that ranking out of these same crashes, so those agreeing is not a finding. The orange and red points are the ones worth looking at: 1,706 of the 3,543 (48%) killed or seriously hurt somebody on a road that is not on the network at all. Whether a crash counts as on it is the City’s own field, not a geometry test of ours.
Take the crash data
The ranked network as CSV, the full cube as JSON. Source: City of San Antonio SS4A High Injury Network, retrieved 2026-08-28. Cite it as: City of San Antonio Vision Zero / SS4A High Injury Network, via brandshyp.org.
Why the clock above is on this page and not on the crime map
The same question, asked of two datasets, is honest on one and not the other.
The crime map on this site cannot show you an hour. It carries the date an offense was reported, not when it happened, which is why its property spike lands on Monday morning: a weekend of burglaries written up when the office opens. A dispatch time is different. Somebody dials while the car is still in front of them. That is what makes an hour-of-day reading defensible here and refused there.
This page does not name the cause of the 2am peak, because the record has no field for impairment or for the driver. The shape is the whole claim, and the data behind it is linked above.
Share it with somebody who drives 1604.
Report what the official record misses
Four questions, all dropdowns, about twenty seconds.
What people have reported here
Separate from the figures above, and never added to them.
SAPD codes every call it takes to one of 160 problem types, and not one of them is road rage. Not reckless driving, not aggressive driving. The nearest is "Traffic Related", which covers a stalled car and a dead traffic light equally well. So there is no official count of this in San Antonio, and there is no way to build one from what the City publishes.
That gap is what this half collects, and it is not a survey about bad manners. The form runs from tailgating and brake-checking through to being followed, forced off the road, or shown a weapon.
Road-by-road figures appear once at least 250 reports are in. A map built from a handful would say more about who happened to find this page than about how anybody drives, so until then there is nothing here to show, and showing it anyway would be worse than showing nothing.
What this is, and is not. A self-selected survey, not a record. Nothing in it is verified, a road with more reports may simply have more people who know this page exists, and there is no traffic count to divide by. The full caveat list ships with the data.
Why nothing about the driver is ever published
Nothing you write here is ever published. The totals on this page, the downloads and the API are built only from the dropdowns. There is one optional box for context, it is read by us and nobody else, and license plates, phone numbers and email addresses are rejected outright if you type one into it.
That is not squeamishness. A plate beside an accusation is a public allegation about an identifiable person, made by an anonymous stranger, that nobody has checked: a defamation claim, a stalking tool and a way to settle a grudge, in a single field.
Same reasoning for the road list: a report on Culebra Road is anonymous, one on a cul-de-sac of twenty houses points at a household. You can add the nearest major intersection, and only crossings of two big roads are offered, for that same reason. And nothing is published finer than a calendar month, because a day plus one road plus a serious category can single out one real event.
Read this before you quote a number from it
This page is built differently from everything else on this site, and it is weaker evidence.
The three layers are different evidence
Two are official. The call figures are a dispatch record: SAPD were sent, and it happened. The crash figures are a filed crash report with an injury on it. The resident reports are checked against nothing, and there is nothing to check them against: the State’s crash database sits behind a login, and no feed anywhere flags a road rage incident as such. Treat the first two as records and the third as a survey.
An earlier version of this page said the City publishes no crash data. That was wrong, and is corrected here rather than quietly edited: it is absent from the open data catalog and present in the GIS services. A catalog is not the whole of what a government publishes.
Self-selection, and no denominator
People who report are not a random sample: a road can rise up the list because more of its drivers know this page exists, which says nothing about how anyone drives on it. A road carrying two hundred thousand vehicles a day also collects more reports whatever its drivers are like. Without a traffic count to divide by, “most reported” is the only honest ranking, and it is not “worst”.
What is kept, and for how long
A road, an optional nearest intersection, a category, a day, a rough time, an optional severity, an optional private note, and a one-way hash of your IP address so one person cannot flood it. No name, no email, no raw address, and the note is never published anywhere. Raw submissions are deleted after 90 days; only the totals persist, and the totals never contain the note.
Why an IT contractor built it
Because the interesting problem is not the map, it is the schema. Decide what the data cannot support, then make it structurally impossible to claim anyway: a form with no free-text field cannot publish an accusation. Nobody commissioned this page and there is nothing to buy on it.
Other San Antonio tools
Same method, a different public record. Each one states what its record cannot answer.
Crime Map Building Permits Bar & Restaurant Revenue Aggressive Driving Trail Accessibility License Plate Readers Data Centers Data Center Zoning 311 Response Times Data Center Corroboration Data Center Environmental Record Bond Projects Council District Lookup Sheriff Response Times County Capital Projects Police Response Times Missing Children Records
All 17 are free, with no signup and no email wall, and the public API behind them needs no key.
Who publishes this
These tools are built and maintained by BrandShyp LLC, a San Antonio software firm. We sell data, software and accessibility work to public agencies and are seeking state and local government contracts. Small business certification with the South Central Texas Regional Certification Agency is in process. We hold no City of San Antonio contract.
No client, agency or sponsor funds, reviews or approves any of these tools, and nothing on these pages is a solicitation. Every figure comes from the public record named below, which is linked and can be queried without us.
Corrections. If a number here disagrees with the record, write to Justice Harker at [email protected] with the figure and the source that contradicts it. Corrections are made on the page, and what changed is noted there rather than replaced silently.