San Antonio, TX · Military City, USA UEI L58JZMKRCLM5  ·  CAGE 203C1  ·  NAICS 541511  ·  SAM.gov Active
402.4 miles of city trail, mapped from the City's own record
276.3 miles on a firm, stable surface
0 miles that can be certified ADA compliant, and that is not a gap in this tool
1,432.3 miles of sidewalk the City records as missing

Why nothing here is certified. The City's trail layer records a surface material and a length. It contains no tread width, no running grade, no cross slope and no obstruction survey, and ADA compliance cannot be established without them. So this tool says what the record settles, which surfaces are firm, and it refuses to say more. On 25.64 miles it cannot even settle firmness, and it says that too.

Every mapped trail, by surface

  • Firm and stable 276.34 mi. Concrete, asphalt, pavers or rubberized. Meets the surface expectation.
  • Not firm 96.92 mi. Natural or mulch. Not a firm and stable surface.
  • Cannot be judged 25.64 mi. Aggregate or wood. Firmness depends on binder, compaction, joint gaps and maintenance, none of which the City records.
  • Surface not recorded 3.50 mi. The surface field is blank or "Unknown".

What the surface field actually says

SurfaceVerdictSegmentsMilesShare
ConcreteFirm and stable3,082213.5153.1%
NaturalNot firm78595.8623.8%
AsphaltFirm and stable69961.9715.4%
AggregateCannot be judged29524.776.2%
UnknownSurface not recorded453.040.8%
MulchNot firm31.060.3%
WoodCannot be judged150.860.2%
PaversFirm and stable370.520.1%
(blank)Surface not recorded10.460.1%
RubberizedFirm and stable140.350.1%

Surface material as published by the City, classified against the ADA and ABA Accessibility Guidelines for Outdoor Developed Areas. "Cannot be judged" is a real verdict, not a missing one: whether crushed aggregate is firm and stable depends on its binder, its compaction and its maintenance, and whether a boardwalk is depends on joint gaps and running slope. None of that is in the record.

All 571 named trails

TrailMilesFirmNot firmCannot judgeFirm share
Salado Creek Greenway North21.8721.830.040.0099.8%
S River Walk16.9515.481.370.1191.3%
Leon Creek Greenway North Park Trail16.1014.831.270.0092.1%
McAllister Park Trail12.002.419.590.0020.1%
Medina River Greenway Park Trail11.2711.270.000.00100.0%
Salado Creek Greenway South8.548.540.000.00100.0%
McAllister Blue Loop6.280.006.280.000.0%
Olmos Basin Golf Course Park Sidewalk5.905.900.000.00100.0%
OP Schnabel Park Trail5.350.234.890.244.3%
Riverside Golf Course Park Trail5.335.330.000.00100.0%
Black Hill Loop4.850.004.850.000.0%
Lytles Loop4.670.004.670.000.0%
Medina River Greenway Espada Connection4.504.500.000.00100.0%
N River Walk4.444.440.000.00100.0%
Sendero Balcones4.420.004.420.000.0%
Stone Oak South Trail4.372.761.610.0063.1%
Mission Trail4.174.170.000.00100.0%
San Jose Burial Park Trail4.003.930.070.0098.2%
McAllister Park Road3.993.990.000.00100.0%
Joe Johnston Route3.990.003.990.000.0%
Salado Creek Greenway3.873.870.000.00100.0%
Government Canyon Park Road3.823.820.000.00100.0%
Apache Creek Loop3.693.690.000.00100.0%
Leon Creek Greenway South Park Trail3.553.550.000.00100.0%
Alazan Creek Greenway3.513.510.000.00100.0%
Apache Creek Greenway3.113.110.000.00100.0%
Far Reaches Trail2.990.002.990.000.0%
Restoration Way2.940.002.940.000.0%
San Antonio Medical Foundation Trail2.840.951.900.0033.2%
OP Schnabel Park Sidewalk2.790.960.000.0034.2%
Twin Oaks2.610.002.610.000.0%
Woodlawn Lake Park Trail2.602.600.000.00100.0%
Panther Springs Park Trail2.582.580.000.00100.0%
Hillview Natural Trail2.540.000.002.540.0%
Carolines Loop2.470.002.470.000.0%
Leon Creek Greenway North2.352.350.000.00100.0%
Medina River Greenway Trail2.282.280.000.00100.0%
Leon Creek Greenway2.092.090.000.00100.0%
Comanche Lookout Park Trail2.030.151.710.177.4%
Lakewood Acres Park Trail2.032.030.000.00100.0%
Savannah Loop1.990.001.990.000.0%
McAllister Red Trail1.920.001.920.000.0%
Culebra Helotes Creek Greenway1.901.900.000.00100.0%
Pvt St at 17500 Donop Rd1.871.870.000.00100.0%
Culebra Creek Tribuitary Greenway1.821.820.000.00100.0%
French Creek Greenway1.801.800.000.00100.0%
Botanical Garden Park Trail1.801.280.470.0571.0%
Red Oak Trail1.790.000.001.790.0%
Bluff Spurs1.780.001.780.000.0%
Scenic Canyon Park Trail1.780.001.780.000.0%
San Pedro Creek Greenway Trail1.751.750.000.00100.0%
Zarzamora Creek Greenway1.721.720.000.00100.0%
Cave Creek1.700.001.700.000.0%
Main Loop1.680.000.431.250.0%
Lakewood Acres Park Sidewalk1.670.001.670.000.0%
Historic City Cemeteries Park Trail1.650.001.650.000.0%
Wildcat Canyon1.620.001.620.000.0%
River Walk1.621.620.000.00100.0%
Collins Gardens Park Sidewalk1.621.620.000.00100.0%
McAllister Baseball Field Trail1.611.610.000.00100.0%

The 60 longest are listed here; the full 571 are searchable above with JavaScript on, and all of them are in the CSV and the API. "Firm share" is the share of a trail's length on a firm, stable surface. It is not an accessibility score and no trail is certified.

Getting there: the sidewalk network

A trail you cannot reach on foot or on wheels is not accessible, whatever its surface. The City inventories its sidewalks separately, and that inventory records 1,432.3 miles where a sidewalk is planned or expected and does not exist.

  • less missing
  • more missing
Council districtSidewalk (mi)Recorded missing (mi)Share missingRecorded under 36in (mi)Width never recorded
Outside the ten districts550.219.03.3%9.712.8%
District 1637.6214.925.2%100.211.1%
District 2655.7167.220.3%208.610.6%
District 3603.5263.530.4%184.512.2%
District 4620.9130.917.4%43.58.0%
District 5705.493.011.6%115.311.0%
District 6583.350.88.0%108.715.7%
District 7522.2220.529.7%49.618.1%
District 8415.862.813.1%0.441.0%
District 9444.386.616.3%1.314.7%
District 10609.7123.116.8%3.416.4%

Read the last two columns together, always. A district can show almost no sub-36-inch sidewalk because its sidewalks are wide, or because its widths were never measured, and those two look identical in this data. District 8 records 0.4 miles under 36 inches while 41.0% of its widths are blank. Districts 9 and 10 also record very little, but their widths largely were captured, which is a different and more believable finding. "Outside the ten districts" is the City's District 0, which is not a council district: it is unassigned or extra-territorial, and 97.6% of it is unscored. It has no shape on the map above, deliberately.

Three fields that will mislead you

Three fields in the City sidewalk inventory will mislead anyone who reads them at face value. None of this is hidden; all of it is simply unstated, and every one of these traps is easy to walk into.

SidewalkScore sentinel value used for missing data

12,049

12,049 of 75,934 Existing segments carry -999, which is a "no data" marker rather than a score. Averaging without excluding it returns a large negative number.

Width zero used for missing data

10,871

10,871 Existing segments (924 miles) record a width of 0, which means the width was never captured, not that the sidewalk has no width.

Width physically implausible values

11

11 Existing segments record a width above 20 feet. A sidewalk is not that wide; these are data-entry errors and are excluded from the width comparison.

A district can show almost no sub-36-inch sidewalk because its sidewalks are wide, or because its widths were never measured. Those two look identical in this data. Read every width figure beside its blank rate. The mean of the 63,885 segments that do carry a real score is 25.77. Average the field without excluding the sentinel and District 0 scores about negative 975.

Source. City of San Antonio open GIS: Park Trails, Sidewalks, Park Boundaries, Redistricted Council Districts 2022, via data.sanantonio.gov. Republished as fetched. No field was corrected, filled or smoothed. Licence: City of San Antonio open data.

Scope. 4,976 trail segments across 571 named trails, and 99,147 sidewalk segments. Sidewalk figures are computed by the City's own GIS service across every segment, not sampled.

Built. 24 August 2026 from the layers as published that day. The City republishes on its own schedule, so cite the API rather than copying a number if you need it to stay current.

Take the data. Trails as CSV · Public API · Developer portal. Cite as: BrandShyp, San Antonio Trail and Sidewalk Access, derived from City of San Antonio open GIS, 2026.

Share it with someone who has to plan the route.

Free, no signup, no email wall. Useful to anyone pushing a chair, a walker or a stroller.

Facebook LinkedIn X WhatsApp Email

Read this before you read the map

An accessibility guide that does not explain its own limits is worse than no guide, because someone will plan a trip on it.

What this is

Every trail segment the City of San Antonio publishes in its Park Trails layer: 4,976 of them, 402.4 miles, grouped into 571 named trails and sorted by the one accessibility fact the record actually contains, which is what the surface is made of.

What it is not

It is not a compliance determination, a route planner, or a promise that a trail is passable today. A surface can be concrete and still be blocked by a fallen limb, a construction barrier or a flooded low-water crossing. Nothing here has been walked.

Where the numbers come from

Directly from the City’s ArcGIS services, refetched monthly, republished exactly as fetched. No field was corrected, filled or smoothed. Where the City’s record is blank, this page shows a blank and says how large it is.

Who it is for

Anyone looking for accessible trails in San Antonio, or planning a route with a wheelchair, a walker, a cane or a stroller. Also anyone who has to answer for this network: the sidewalk figures here are the raw material of an ADA Title II self evaluation.

Why this map certifies nothing

The Americans with Disabilities Act does not care what a trail is made of in isolation. For an outdoor recreation access route it asks four things: is the surface firm and stable, is the clear tread width at least 36 inches, is the running slope within limits, and is the cross slope under five percent.

The City’s trail layer answers exactly one of those four. It records a surface material and a length. There is no width field, no grade field, no cross slope field and no obstruction survey anywhere in it. So the honest output is a surface verdict and an explicit refusal to go further, and that is what this page publishes.

It gets one step more careful than that. On 25.64 miles the record cannot even settle the surface question. Crushed aggregate is firm and stable when it is properly bound, compacted and maintained, and is loose gravel when it is not, and the City does not publish which. Boardwalk depends on joint gaps and running slope. Those miles are reported as undecidable rather than quietly counted as passing or failing, because a wrong answer here sends somebody down a trail they cannot get back up.

A further 3.50 miles carry no surface value at all. That is also shown, rather than dropped, because a trail missing from a table reads as a trail that does not exist.

The trap sitting inside every accessibility statistic

This is the part that took the longest to find, and it is the reason the tables above look the way they do.

The City’s sidewalk inventory records a width for each segment, so it is tempting to count how many fall below the 36 inch minimum and publish the total. That number is 825.2 miles across 9,671 segments, and on its own it is close to meaningless.

Here is why. District 8 records almost no sub-36-inch sidewalk at all. Read alone, that district looks like the most accessible in the city. But 41.0% of District 8‘s sidewalk widths were never recorded in the first place. Its clean sheet is very largely an absence of measurement, not an absence of narrow sidewalks.

“Few narrow sidewalks” and “few measured sidewalks” produce identical-looking statistics. Every width figure on this page is therefore printed beside the share of that district’s widths that are blank. If you take one thing from this tool, take that.

Not every low number is an artefact, and it would be just as wrong to assume they all are. Districts 9 and 10 also record very little sub-minimum sidewalk, but their widths largely were captured, which makes theirs a much more believable result. Those are newer parts of the city, built under modern standards. The point is not that the data lies. The point is that you cannot tell these two cases apart without publishing the coverage rate, and almost nobody publishes the coverage rate.

Three fields that will quietly ruin your analysis

None of this is hidden. All of it is simply unstated, which is worse.

SidewalkScore uses negative 999 to mean “no data”. 12,049 segments carry it. Load the layer, average the column, and District 0 comes back with a sidewalk score of about negative 975. The mean across the 63,885 segments that carry a real score is 25.77. Any dashboard that skipped that filter has been publishing nonsense.

Width uses 0 to mean “no data” too. 10,871 segments, 923.8 miles, record a width of zero. A zero-foot sidewalk is not a very narrow sidewalk. Averaging that column drags the mean down by a seventh, and counting those segments as failing the 36 inch minimum would overstate the problem by roughly the same amount as ignoring it understates it.

Eleven segments record a width above 20 feet, the widest at 287.5 feet. That is a plaza, a parking lot or a typing error, and it is not a sidewalk. They are excluded from the width comparison and reported separately.

Catching these is not clever. It is just the work: look at the distribution before you look at the average, and treat every suspiciously round or suspiciously extreme value as a sentinel until proven otherwise.

How this was built

A monthly job on our own server queries the City’s ArcGIS endpoints directly. The 99,147 sidewalk segments are never downloaded: every sidewalk figure on this page is computed by the City’s own GIS service through grouped aggregate queries, which means the totals cover every segment rather than a sample, and the whole job moves a few hundred kilobytes instead of a few gigabytes.

Before anything is written, the build reconciles. The width buckets must partition the set of existing sidewalks exactly, and the per-district totals must equal the citywide totals. If either check fails the job aborts and leaves the previous dataset in place, so this page can go stale but it cannot go wrong. Every figure is stamped with its build date, and the same numbers are available as CSV and through a documented public API, so nothing you read here is a number we typed by hand.

The maps are drawn as plain SVG paths projected once on the server, with no map library, no tiles and no tracking. The page works with JavaScript switched off: search and highlighting are enhancements, not the content.

Why an IT contractor built a trail map

Because an ADA Title II self evaluation is a data problem before it is a civil engineering problem, and this is what that work actually looks like. A public entity has to know the condition of its pedestrian network, and the honest first finding is almost always that the inventory is incomplete in ways the inventory does not announce.

We build data systems for government and commercial clients: ingestion that reconciles instead of assuming, provenance that survives an audit, and public interfaces that state their own limits. This page is that claim made checkable. You can call the API, pull the CSV, and compare either against the City’s original layers yourself. That is the entire point of publishing it.

If you have a dataset that has to be right, and defensibly right, start a conversation.

Send me the methodology and how this would apply to our data

We'll send a copy and, if you want, help you take the next step. No spam.

Related free tools

San Antonio Crime Map

Reported offences by ZIP code with the trend behind each one, and a straight account of which changes are real.

Accessibility Checker

Scan a page against WCAG 2.1 AA and Section 508 and get the specific failures, not a score.

Developer Portal

Every dataset behind these tools as a documented, key-free public API with an OpenAPI 3.1 spec.

Priority Scheduling

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)
Pick a date from the calendar to see available time slots.
Your meeting

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.