Where the data comes from
The official government records Civic Informer publishes, the agencies behind them, the access model for each city, and how a report, a call for service, and an arrest differ.
Every number on Civic Informer originates from a single, first-party government source. We do not use third-party crime aggregators, social media posts, news reports, or crowd-sourced tips. Every data point published on the platform is traceable to an official police or fire department record.
Official records only
Civic Informer uses two access models, and some cities use both:
- Public department feed. Many departments publish a public activity log, open-data portal, or incident feed. We ingest directly from that public source, the same data available to any resident or researcher.
- Data sharing agreement. In some cities we have a formal, written agreement with the department itself, providing structured incident data directly from the agency. We publish only what the agreement permits.
Police and fire are separate agencies with separate records, so each is sourced on its own terms. In Bellingham, for example, the police department publishes public activity reports, and Civic Informer additionally holds a data sharing agreement with the Bellingham Police Department and a separate data sharing agreement with the Bellingham Fire Department. The fire agreement is what makes the response-time and fire activity reporting on the Bellingham pages possible.
In every case the source is the department's own records. We never alter, editorialize, or modify what we receive.
Departments publish differently
The methodology on this page is written for every department we ingest, not just the cities currently published. Departments vary along a few axes, and the platform is built to handle each combination the same way in every city where it appears:
- Structured records vs. narrative logs. Some departments publish fully structured data (one field per fact). Others publish narrative activity reports, which we parse into the same structure. Either way, the result is held to the same categorization and statistics rules.
- One offense vs. many. Some departments log one offense per record; others attach multiple offenses to a single incident. Where an incident carries multiple offenses, it is still counted as one incident, classified by its offenses.
- Which streams exist. Not every department publishes every record type. A city may have incidents, calls for service, arrests, and fire dispatch, or only a subset. The platform only reports statistics a city's sources can actually support; it never infers a missing stream from another one.
- Publishing cadence. Some sources update in near real time, some once daily, and some on the department's own posting schedule. We ingest on the source's cadence and report publication-dated figures (see How the stats are defined).
Cities and agencies
The cities currently published, the agency behind each feed, and the access model for each agency. This table is generated from the live site configuration, so a city cannot appear here unless it is actually published.
| City | Police source | Fire / EMS | Access | Updated | Since |
|---|---|---|---|---|---|
| Bellingham, WA | BPD Activity Reports | Bellingham Fire Department | Police: data sharing agreement Fire: data sharing agreement | Daily | Jan 2025 |
| San Francisco, CA | San Francisco Police Department | San Francisco Fire Department | Police: public feed Fire: public feed | Daily | Apr 2026 |
Record types, and how they relate
Four different kinds of record show up across these sources. They answer different questions, and we keep them distinct:
- Call for service (CFS). A request for police or fire response: what was dispatched. One call may turn out to be nothing, or may become a report.
- Report / incident. An offense or event the department has logged as a record, usually with a case number. This is the basis for most statistics.
- Arrest. A person taken into custody, counted once per custody event.
- Fire / EMS event. A dispatched fire or medical response, carrying the call type, the responding units, and the response timestamps.
Each statistic on the platform counts exactly one of these streams. A calls figure counts calls, an incident figure counts incidents, and the two are never blended into a single number, because they measure different things.
Calls and incidents
A call and the report it may produce are separate records, often published in separate feeds. Where the department's records share a common key, we join them on it. When the platform describes a call as having led to a report, that means exactly one thing: the two records are joined in the department's own data. It is a mechanical fact, not a police determination, and not our judgment.
Both unlinked directions are normal, not data problems. A call without an incident usually means the situation was resolved without a report, and an incident without a call usually means the report was filed directly (online or at a station). Where a department publishes call dispositions (cancelled, handled, report taken), we carry them through for context on the record itself.
Incidents and arrests
How arrests reach the platform depends on what the department publishes. There are three models:
- A dedicated arrest feed. Some departments publish arrest records as their own dataset. We ingest them directly, and join each arrest to its incident where the department's records share a common key. An arrest whose incident was not published still counts as an arrest.
- A disposition on the incident. Some departments mark the incident record itself as cleared by arrest. We count those flags as arrests on the incident.
- Narrative extraction. Some departments record arrests only inside the narrative text of an activity report. We parse them out. This is the only model where an arrest can be missed by formatting, which is why arrest counts are documented as a lower bound (see How the stats are defined).
In every model, an arrest is counted once per custody event, and where an arrest is linked to an incident it carries that incident's offense classification.
Where "violent" applies
The violent designation is a property of the offense classification, so it applies to incidents (and to arrests through their offense) and to nothing else. A call for service is never designated violent, because a call is an unverified request for help, not an established offense. Fire and EMS events are never designated violent. When you read a violent count anywhere on the platform, it is counting classified incident records only.
Fire events and apparatus
One fire or EMS event can involve many responding units. Some departments publish one record per responding unit; others publish one record per event. The platform always resolves both to the same two grains, and never mixes them: an event count counts incidents (a fire with five engines is one event), and a unit count counts individual apparatus responses (that same fire is five unit responses). Surfaces that show unit workload or mutual aid say so; headline fire activity is always event-grain, and dispatch codes that are not actual responding units (training entries, administrative markers) are excluded from unit counts.
How records are processed
Once collected, each city's data is normalized into one consistent internal structure so the platform can aggregate and report within that city's dataset.
- Geocoding. Incident locations are geocoded to assign each record to a neighborhood, at the precision rules described below.
- Arrest resolution. Arrests are ingested through whichever of the three models above the department supports (dedicated feed, incident disposition, or narrative extraction). Names and personal identifiers are never published on the platform in any form, regardless of what the source contains.
- Integrity. The platform prevents duplicate records, flags incomplete data, and preserves the original case number on every record. No incident data is manually modified once it enters the system.
Location precision and privacy
No exact address or exact coordinate is ever published. Every location on the platform is held to a precision floor:
- The nearest block, at minimum. Locations are reduced to the hundred block (the "1200 block of Main St"), and often to the nearest intersection of two streets. House numbers are floored to the block before anything else happens, so an exact address never reaches a map, a page, or an email.
- Markers are block anchors. A map marker marks the block or intersection a record was reduced to, not a premises. Two incidents on the same block share the same anchor.
- Withheld locations stay withheld. When a department marks a record's location confidential, or releases no usable location, we never attempt to recover, infer, or approximate one. Those records appear in citywide counts and category statistics, but never on a map and never in a neighborhood breakdown. Removing something from the map does not remove it from the numbers.
Update frequency
Civic Informer updates daily. The platform and newsletter reflect the most recent available data from each city's source, published each day as long as new data is accessible. Where a department publishes on its own schedule, our figures follow that schedule; we report what the source has released, when it releases it.
Overview
What Civic Informer is, and the end-to-end journey your local public safety data takes from an official record to a published statistic.
How we categorize
How Civic Informer maps thousands of department offense descriptions onto a consistent category system, how department-specific taxonomies work, how violent is defined, and the full live crosswalk.