Skip to main content

How the stats are defined

How Civic Informer computes the Activity Overview and its bands, fire and EMS response times, arrests, neighborhood concentration, and how dates are aligned.

Every statistic on the platform is computed directly from incident records by documented rules. Nothing is weighted, scored, or estimated unless this page says so.

Daily statistics

Each day, Civic Informer aggregates all incident records into a summary covering total incidents, violent and non-violent counts, arrests, category breakdowns, neighborhood distribution, and activity by time of day. This daily summary is the foundation for all reporting on the platform.

The Activity Overview and its bands

Civic Informer shows a single 0 to 100 Activity Index. It is computed the same way and read against the same band table everywhere it appears (the city hub, the cities directory, and the neighborhoods pages), so a given number means the same thing on every surface. 50 is always "typical" for whatever the score is measured against; 100 is twice typical. These band ranges are read directly from the function every surface uses, so the labels here always match what you see on the platform:

Highindex 76100Among the busiest areas for the period.
Elevatedindex 5675Above-typical activity.
Typicalindex 4655Around the middle of the range.
Calmindex 2645Below-typical activity.
Lowindex 025Among the quietest areas for the period.

What differs by surface is only what "typical" is measured against. The scale and the bands never change:

  • City gauge (hub hero, cities directory) compares the latest settled day's incident count against that city's own trailing 30-day median daily count. 50 means today is a typical day for this city.
  • Neighborhood badge (neighborhoods pages) compares a neighborhood's incident count over the last 7 days against that same neighborhood's own typical week, the median of its 12 preceding weekly counts. 50 means a normal week for this neighborhood; the badge never compares one neighborhood to another. Very quiet neighborhoods are held to a minimum baseline of 3 incidents per week, so one or two stray reports cannot read as "High".

Because "typical" is always local to the surface, a "High" reading is always high for that comparison: a busy day for a city that is normally quiet, or a busier-than-usual week for that neighborhood, never a national or absolute threshold. A city's score and a neighborhood's score are not directly comparable even though both run 0 to 100, because each is measured against a different baseline.

Fire and EMS activity

Fire statistics separate two grains that are easy to conflate (see Record types, and how they relate): an event is one incident regardless of how many units responded, and a unit response is one apparatus responding to it. Headline fire activity counts are event-grain and count emergency responses only: scheduled community-paramedic visits, training entries, and administrative dispatch markers are excluded from the headline count and tracked separately. Unit workload figures (responses and committed time per apparatus) are unit-grain and labeled as such.

Fire and EMS response times

Response-time figures answer one question: once units were dispatched, how long until help arrived?

  • The clock. It starts when units are dispatched and stops when the first unit arrives on scene. Each event contributes one number, the first arrival, regardless of how many units responded.
  • The median. The headline figure is the median (50th percentile): half of responses were faster, half slower. We use the median rather than the average because a single outlier (a unit logged as arriving hours later) would distort an average but barely moves a median. Tail performance is measured with the 90th percentile.
  • The baseline. Summaries count only responses with a recorded dispatch and arrival time. Where the department's dispatch data carries call priorities (Bellingham today), citywide and neighborhood baselines are further restricted to emergency-priority calls (the top three priority levels) occurring inside city limits, so routine, administrative, and out-of-area responses cannot flatter or drag the numbers. Where you see a caption like "Priority 0-2 calls, first unit on scene," that is this baseline.
  • Under 8 minutes. Alongside the median we show the share of baseline responses whose first unit arrived within 8 minutes, a widely used benchmark in fire service performance reporting.
  • Windows and floors. Daily emergency volumes are small, so response-time figures are computed over multi-week windows (typically 30 days), and comparative claims (such as a neighborhood's response-time rank) require a minimum sample before they are shown at all.

One deliberate distinction: activity counts and response-time samples are not the same number. Activity counts include every emergency response; the response-time baseline is the filtered subset above. When a median is shown next to a response count, that count is the size of the measured sample, not total fire activity.

The platform computes rolling averages over 7, 14, and 30-day windows to give context around daily figures. Each day is compared against prior periods (the previous day, the prior week, and historical highs and lows) to show whether activity is trending up, down, or holding steady. Category-level trends show which incident types are rising or falling over time.

How top values are determined

When the platform names a top neighborhood, category, or time of day, that value is simply the one with the highest incident count for the period, computed directly from the data, with no weighting or scoring applied.

Arrests: custody events, not charges

An arrest is counted once per custody event. When a person is taken into custody, that is one arrest, even if the booking involves several charges. We count distinct custody events rather than offenses, so a single booking with multiple charges is one arrest, not several.

Arrest details are extracted from incident narrative text. If a narrative does not follow the expected format, an arrest may not be captured, so arrest counts should be read as a lower bound.

Neighborhood statistics

Neighborhood figures describe how incidents are distributed across a city for a period: each neighborhood's share of the citywide total, and its rank. Two rules define them:

  • Boundaries are the city's own. Neighborhood boundaries come from the publicly available boundary files (shapefiles and GIS layers) each city publishes, so "Sehome" on Civic Informer is the same Sehome the city itself defines. We do not draw, merge, or rename neighborhoods.
  • Assignment is geometric. Each record's block-level location (see Location precision and privacy) is tested against those official boundaries, and the record is assigned to the neighborhood polygon it falls inside. No judgment call is involved.

Assignments near a boundary can occasionally land on the wrong side of it, and records that cannot be geocoded (including records whose location the department withholds) are excluded from neighborhood breakdowns rather than guessed at. Those records still count in citywide totals; only the neighborhood attribution is withheld.

Date alignment: publication, not collection

Dates on Civic Informer are publication dates, the day a report is published, not the day the underlying data was collected. A report dated Tuesday reflects the edition published Tuesday. This keeps the platform, the newsletter, and the URL for a given day all referring to the same edition, even when a department's own collection timestamp differs.