City In Review: Chicago

About the archive

City In Review is a continuously-updated, data-driven record of how Chicago's 77 community areas change, month by month. It is assembled automatically from public records, reviewed for accuracy, and published without editorial gatekeeping.

Sources

All figures come from the Chicago Data Portal, the city's open-data publishing system. Specifically:

We pull from these datasets daily. Each event is geo-tagged to its Chicago community area and stored in our archive. Historical figures should match the city's official records at the time of ingestion; if a source record is later corrected, we pick up the change on the next sync.

How each dispatch is written

Writing a short factual summary for every community area every month — 900+ pages a year — is impractical by hand. So we don't. Here is exactly how it works, with no marketing gloss:

  1. Aggregation. For each (community area, month) pair, we compute metrics: permit count, permit dollar value, new business licenses, closings, 311 requests, crime totals, violent crime, failed food inspections. We also assemble small details: the top permit types, the top 311 categories, the names of new businesses.
  2. Drafting. A language model (Anthropic's Claude) receives the metrics and details for that month — and only those — and drafts a short paragraph plus headline. It is instructed to use only data present in the payload.
  3. Verification. A second model pass checks every number and proper name in the draft against the source payload. Drafts that fail or score below our confidence threshold are retried once; if they still fail, they are stored but not published.
  4. Publication. The draft is published alongside the raw metrics table, so you can check our work. A byline on each page discloses that the draft is automated.

When a City In Review staff member edits a draft by hand, the page is re-bylined accordingly and the automated pipeline will not overwrite the edit on future runs.

What this archive is not

It is not a replacement for investigative local journalism. It won't tell you why something happened, only that it did, according to city records. It can't interpret context a reporter would notice — a nearby transit project, a change in policing strategy, a corner-store shuttering after decades. We recommend pairing this data with local reporting.

Coverage windows

Building permits are archived back 24 months from our launch date; other datasets have varying coverage windows that we are expanding. Each neighborhood page notes the months for which we have data.

Corrections & contact

Data comes from public sources and may contain errors — wrong geocoding, stale records, or miscategorized events. If you notice a problem or want to suggest coverage, please get in touch.