How the York County 911 dashboard works

This site is a reformatting of one page York County already publishes. Everything below documents exactly what that means, so you can judge how much weight to put on it.

The single source of the data

Every figure on the dashboard is read from the WebCAD status page published by the York County Department of Emergency Services. That page is a set of HTML tables listing the calls currently open in the county computer-aided dispatch system, and it is publicly available without a login.

A small server-side function fetches that page, parses the table rows, and returns them as JSON. The browser then renders the JSON. There is no database, no history, no second data provider, and no human in the loop. Nothing is added to the county’s figures and nothing is removed from them.

York’s feed is comparatively rich for Pennsylvania. Beyond the active call list it also publishes a road closure list, an out-of-service hydrant list, and a per-incident detail page naming the units assigned to each call. All four are carried here. Neighbouring counties publish less, which is why the sibling dashboards for other counties show fewer sections.

What each field on a card means

The county’s column names are terse, and one of them is routinely misread as a street address, so they are worth spelling out:

Category
The broad service the county assigned the call to. Used to colour the card and to drive the category filters.
Type
The county’s own description of the call, such as a building fire or a vehicle accident. Passed through verbatim.
Box
The dispatch box area, an internal geographic code the county uses to decide which stations are assigned. Useful for searching, not a street address.
Street and cross street
The road the call is on and, when the county supplies one, the nearest intersecting road. House numbers are never published.
Municipality
The borough, township, or city the call falls in. This is the most precise location the county releases and is what the map plots.
Dispatch time
When the call was dispatched, published as Eastern time without a timezone marker and rendered here as Eastern wall-clock time.

How calls are grouped

The county supplies a free-text category per call. To make filtering and colour-coding possible, each one is matched against a keyword list and assigned to one of five groups. These groups are this site’s invention, not official York County classifications:

  • Fire — any category containing “FIRE”, “RESCUE”, “HAZMAT”.
  • EMS — any category containing “MEDICAL”, “EMS”, “AMBULANCE”.
  • Traffic — any category containing “TRAFFIC”, “ROAD”, “MVA”.
  • Police — any category containing “POLICE”, “LAW”.
  • Other — anything that matches none of the above, including calls the county labels in a way this site does not recognise.

A consequence worth knowing: a miscategorised call is usually the keyword list’s fault, not the county’s. The original category text is always searchable, so you can find a call even when its group looks wrong.

Locations are municipality-level on purpose

The county publishes no coordinates and no house numbers — only a street, sometimes a cross street, and a municipality. The map therefore draws one circle per municipality, sized to that municipality’s real land area, rather than a pin at an interpolated point.

This is a deliberate limit rather than an unfinished feature, for three reasons:

  • Long roads make pins misleading. A single point on a highway that crosses the whole county would imply precision the source data does not contain.
  • Many calls are medical calls at private residences. The county withholds those addresses, and geocoding to one would effectively identify the person who called 911.
  • Street-level geocoding is not available at this volume anyway. Free geocoders either prohibit this pattern of use or require the house numbers the feed does not carry.

Municipality boundaries come from US Census Bureau TIGERweb data, which is public domain. Both a city and a township can share a name in York County, so the municipality type is part of the lookup — matching on the bare name would be ambiguous.

Coverage

72 municipalities are matched: 36 boroughs, 35 townships, and one city, covering roughly 904 square miles. The largest by land area are Chanceford Township (~48 sq mi), Dover Township (~42 sq mi), Lower Chanceford Township (~42 sq mi); the smallest include Wellsville Borough (~0.1 sq mi), Lewisberry Borough (~0.2 sq mi), Yorkana Borough (~0.2 sq mi).

York borders four Pennsylvania counties and the Maryland state line, so mutual-aid calls that dispatch outside the county cannot be matched to a York municipality. Rather than dropping them, they are counted and disclosed beneath the map.

Times are Eastern, always

The county writes dispatch times without a timezone marker. Parsing them in the viewer’s own timezone would produce wrong elapsed times for anyone outside Eastern, so they are explicitly resolved as America/New_York wall-clock time, including across daylight saving transitions. A call shown at 8:07 PM was dispatched at 8:07 PM in York County.

Known limits

  • No history. Only calls currently open are shown. When a call clears it disappears on the next read and cannot be retrieved here.
  • Up to four minutes stale. Plus whatever delay the county page carries before that.
  • Incomplete by design. Not every call reaches the public page, and encrypted police traffic never does.
  • Dependent on the county’s HTML. If the county restructures its page, parsing can break until this site is updated.
  • Not monitored. No one watches this dashboard or responds to anything on it.

Who runs this

An independent volunteer project, not affiliated with, endorsed by, or operated by York County government or the York County Department of Emergency Services. It shares a name with the county’s emergency communications function only because that is what the data describes.

Corrections, parsing bugs, and questions are welcome at [email protected]. See also the privacy policy and the terms of use.