
A working-level summary of the pipeline and how its accuracy has been measured — enough to evaluate the approach without a source-code walkthrough.
Given a crash coordinate (an officer-reported lat/long, confirmed or corrected by a reviewer) and a crash key, the service resolves it to the state's official location reference. It computes the exact same class of answer produced by the existing internal state process, but does so independently against Nebraska's public GIS data.
The pipeline degrades gracefully: a failed individual data source is recorded as a diagnostic and the request completes without taking the whole resolution down. The two location-resolution stages run in order, falling back to the second only when the first doesn't apply.
For state highways (I/US/N/S/L routes), the point is snapped to the nearest highway centerline, then Route ID and Reference Post / Log Mile are interpolated by bracketing between the two nearest physically-surveyed mile markers — not the route's own beginning/end points, which for some highways span 300+ miles with no calibration in between.
For local/municipal roads with no public reference post, the location is described using distance and direction from the nearest intersecting street, bridge, or landmark — the same approach behind NHTSA's national MMUCC standard for crash reporting, implemented on NDOT's own crash report form as Form 40, item 20: primary and cross street picked as the closest, then next-closest, named road to the point. A reference-post file for these same roads already exists internally — see "The opportunity" below.
Every one of the 20 MIRE data elements this service tracks gets pulled for each resolved crash — not just speed limit and traffic volume. Elements with no confirmed authoritative source report as unavailable with an honest reason, rather than a guess. See the full element list below.
All spatial data is sourced directly from Nebraska's public ArcGIS REST services (giscat.ne.gov) — the exact same authoritative layers the state's own tools are built on, including:
Zero third-party geocoding, zero scraped data. Queries are read-only and require no authentication.
Built on .NET 10 (C# 13), using a clean three-layer architecture:
That strict separation is what lets the same resolution logic run as a live REST endpoint, a batch job, or be embedded directly into another system later, without rewriting the core.
The core of the location math is a proper linear referencing system (LRS) — the same underlying approach professional transportation GIS software uses internally: every highway is modeled as a continuous line, and a crash point is mathematically projected onto that line to find both the nearest point on the roadway and the precise distance traveled along it from a known survey point. Crucially, all of that projection and distance math runs in NAD83 Nebraska State Plane feet — a flat, foot-based coordinate system — rather than raw latitude/longitude degrees, which distort real-world distance depending on where you are on the globe. Computing in feet from the start avoids that distortion instead of correcting for it after the fact.
Every accuracy figure on this page comes from a live, repeatable comparison against the state's own already-finalized crash data — not a one-time spot check. The same validation can be re-run at any time to reconfirm current accuracy.
At a stacked interchange, a crash near a bridge could be on the elevated road or on the road passing underneath it — a genuinely ambiguous case nationally, not unique to Nebraska. Today, resolving that ambiguity requires a person to look at the crash diagram, decide which physical road is actually correct, and manually place the pin — noting the result as free text in the narrative.
This pipeline determines Over vs. Under automatically wherever a resolved crash falls near a bridge, formatted the same way the state's own crash reporting expects it ({ROAD} BRIDGE OVER {crossed feature} or {ROAD} UNDER {carried feature}) — no manual pin-nudging required.
| Relation | Sample | Detected | Correct, once detected |
|---|---|---|---|
| Overpass (crash on the bridge) | 85 | 65% | 94.5% |
| Underpass (crash underneath) | 15 | 67% | 100%* |
| Combined | 100 | 65% | 95.4% |
* 10 of 10 detected underpass crashes were correct — a real result, but a small base to generalize from yet.
This is the component that turns a location answer into a usable safety-analysis dataset. Every resolved crash carries all 18 of the roadway-segment elements the federal government requires for non-local paved roads (23 CFR § 924.17), plus 2 more beyond that minimum — 20 in total, not a subset picked for convenience. Four elements currently have no confirmed authoritative source available and are reported as unavailable rather than guessed at. Everything else is populated for every crash, every time.
| Element | Status |
|---|---|
| Segment Identifier | Available |
| Route Number | Available |
| Route / Street Name | Available |
| Federal Aid / Route Type | Available |
| Rural / Urban Designation | Available |
| Surface Type | Unavailable — no confirmed source |
| Begin Point Descriptor | Available |
| End Point Descriptor | Available |
| Segment Length (miles) | Available |
| Direction of Inventory | Available |
| Functional Class | Unavailable — no confirmed source* |
| Median Type | Unavailable — no confirmed source |
| Access Control | Available |
| One-Way / Two-Way Operations | Available |
| Number of Through Lanes | Unavailable — no confirmed source |
| AADT (Annual Average Daily Traffic) | Available |
| AADT Year | Available |
| Governmental Ownership | Available |
| Speed Limit (mph) | Available |
| DOT District Number | Available |
* Checked directly: the one candidate field on the public street layer mixes several unrelated systems in the same column (jurisdictional terms, surface-type terms, and unexplained numeric codes alongside genuine classification terms), with a single ambiguous value accounting for three-quarters of all populated rows statewide — not reliable enough to classify roads from. As with the county-road naming gap below, the real fix here is the state's own internal classification method, if shared (see "The opportunity" below).
All 20 elements are included as columns in the downloadable results file for every batch, alongside the location answer itself.
Every result is checked against the state's own 2023 statewide crash dataset — specifically the SPOT_MAPPED_LOCATIONS fields, representing the official, final location recorded for each crash. The service's output is compared directly against that ground truth.
| Roadway type | Resolved | Accuracy signal |
|---|---|---|
| State highway (LRS) | 97% | 100% route match · median position error 0.001 mi (~5 ft) |
| City / Municipal | 100% | 78% location-type match · 63% primary road · 66% cross street |
| Town / Village | 100% | 84% location-type match · 73% primary road · 67% cross street |
| County | 100% | 82% location-type match · 52% primary road · 28% cross street |
Sample: ~300 crashes per bucket, stratified statewide, fixed random seed for reproducibility. Full methodology and per-corridor detail available on request.
A comprehensive county and local-road reference-post file already exists within the state — it's just internal-facing today, not published to any public GIS layer. If access is granted, this pipeline would be expected to resolve nearly every roadway in the state — aside from a small set of edge cases (alleys, ramps, weigh scales, and similar) that even state staff currently resolve by hand — at an accuracy level expected to approach what's already demonstrated on state highways above.
That access would be expected to turn today's best-effort local/county resolution (Stage 2 of the pipeline) into precision approaching the ~5 ft-class results already achieved on Interstates and US/State routes — statewide, not just on the state highway system. That expectation would need to be validated against real local-road data before being treated as confirmed, the same way every other accuracy figure on this page already has been. Furthermore, if the state shares its own calculation logic for deriving the remaining MIRE elements, that logic can be incorporated directly into the Crash Location Resolution API.