IncidentTrack Lubbock

How IncidentTrack works, and where it gets things wrong

This site is built by software that listens to a public radio feed around the clock. No newsroom is typing these entries. That is worth being specific about, because it explains both what the site can do that a newsroom cannot, and the particular ways it fails.

1. Listening

A server holds an open connection to the public Lubbock feed carried on Broadcastify, the same audio any scanner listener can hear. Dispatch channels sit quiet most of the time, so the software watches the audio level and cuts a clip whenever someone keys up, ending it when the channel goes quiet again. A typical clip is three to fifteen seconds. Nothing is recorded from private, encrypted or phone conversations; if a call never goes out over the air, it never reaches this site.

2. Transcribing

Each clip goes through a speech-to-text model running on the same server. Scanner audio is hard for these models: it is compressed, often stepped on by another radio, and full of street names, callsigns and abbreviations. Expect names of people and businesses to come out mangled, numbers to drift, and the occasional line to be pure nonsense. The transcript shown under each recording is exactly what the model produced, unless a person has corrected it.

3. Grouping into incidents

Transmissions arrive one at a time, but an incident is a conversation: a dispatch, a unit responding, an address correction, an all clear. A language model reads each new batch of transcripts alongside the incidents already open and decides whether a clip belongs to one of them or starts a new one. It also pulls out the pieces shown on the page: a short title, the category, the unit names and their status, and the address as heard.

4. Deciding what is solid enough to publish

Every incident carries a confidence level. High means the dispatch was clearly audible and internally consistent. Medium and low mean the audio was rough, or a single garbled phrase carried the whole story, and those incidents are labelled unconfirmed on the site. A serious-sounding call heard once, badly, is not enough: something like a report of shots fired needs either a clean dispatch with a location, a second transmission, or a unit assigned before it will post. When later traffic shows a call was a mishearing, the incident is voided and disappears.

What we leave out on purpose

Names, license plates and descriptions of individuals are stripped. Home addresses are reduced to a block or a nearby intersection, and the map draws a circle rather than a pin when the location is vague. Calls involving suicide, self-harm, overdose or a mental health crisis are filtered out entirely and never appear on the site, the map or the Facebook page, because publishing them can cause real harm and serves no public purpose.

When a person steps in

Anything on this site can be corrected by hand. A corrected title, address, update or transcript is marked Human verified with a green check, and once a person has set it the automated system is blocked from overwriting it. Incidents that look doubtful can be marked possibly inaccurate, which puts a yellow warning on the incident everywhere it appears and stops it from being shared to Facebook. Anything can also be deleted outright.

Telling us it is wrong

Every incident has a Report a problem button, and you can highlight any words in a transcript to flag exactly what is wrong and say what it should be. Reports go to a review queue that a person reads. If an incident involves you and you want it taken down, use Request incident removal on the incident page. Removal requests are handled by a person, usually within a day.

Known limits, stated plainly

If a number from this site is going into a story or a class project, link the page you took it from and say it came from scanner audio. And if something here matters to you, verify it with the agency involved before acting on it.