# Issaquah Police Data

Crime data extracted from the Issaquah Police Department's Monthly Activity Reports
(https://www.issaquahwa.gov/Archive.aspx?AMID=66), August 2020 – April 2026 editions.
Because each report restates the same month for up to four years, the assembled series
covers **January 2019 – April 2026**.

## Files

- `raw/`: all 68 source PDFs, named `YYYY-MM.pdf` (April 2021 was never published by the city).
- `monthly_crime.csv`: merged monthly Part A crime counts by category. Where multiple reports
  state the same month, the **most recent report's value** is used (the city revises counts).
- `monthly_crime_first_reported.csv`: same grid, but using each month's **own report** (as first
  reported). Comparing the two shows the revisions.
- `larceny_drilldown.csv`: monthly larceny theft by sub-type (shoplift, theft from vehicle, etc.).
- `dept_metrics.csv`: calls for service, average priority-1 response time, jail inmates housed.
- `crime-data.json`: compact dataset consumed by `../crime.html`.
- `extracted/observations.json`: every individual value observed, with the source report for each.
- `extracted/report_tables.json`: per-report parsed tables (OCR era).
- `extracted/conflicts.json`: months where reports disagree (mostly city revisions).

## How it was extracted

Report formats changed repeatedly:

| Period | Format | Method |
|---|---|---|
| 2020-08 – 2021-05 | 1–2 page text table (current vs previous month) | text parsing |
| 2021-06 – 2021-08 | scanned image only | crime: recovered from "Last Six Months" tables in later reports; call/911/patrol data: OCR of the scans, verified by eye and by each report's "previous month" column |
| 2021-09 – 2022-04 | text tables, month × 3–4 years + last-six-months | text parsing |
| 2022-05 – 2024-12 | designed PDF; tables embedded as images, 9 categories | 300-dpi OCR (tesseract) |
| 2025-01 – present | designed PDF; tables as images, full NIBRS category list | 300-dpi OCR (tesseract) |

OCR was validated by (a) checking that categories sum to the reported Part A total in every
table, and (b) cross-checking the up-to-4 reports that state each month. The ~30 cells OCR
could not read reliably were verified by eye against the page images and corrected manually
(see `CORRECTIONS` in the extraction scripts).

## Caveats

- The city's own disclaimer: data are preliminary and revised continuously; reports run at
  different times produce different results.
- Counting methodology changed over time (incidents → NIBRS offenses; "Rape" → "Sex Offenses";
  Part A total redefined to include all NIBRS categories around 2023). Category totals are not
  perfectly comparable across eras, which is why both "latest" and "first reported" versions exist.
- 2019 values come only from tables in 2021–2022 reports (older methodology).
- "Violation of No Contact/Protection Orders" appears as a category beginning July 2025
  (with restated values back to 2022).
- A few reports are internally inconsistent: the Part A table's "Larceny Theft" and the
  larceny drill-down's total disagree by 2–3 in the same PDF (e.g., June/July/Nov 2024 as
  restated in 2025 reports). Both values are preserved as printed.
- The Feb 2023 report prints "Theft from Building-Attempt: 5,5,3,3" directly above
  "Theft from Building: 0,0,0,0". The labels are almost certainly swapped; values are preserved as printed.
- The 2021-era reports' "call center calls" and the 2022+ "all calls for service" are
  different metrics; 2019 monthly call volumes were never published ("data not available").
- Call data gaps Apr–Jun 2020 are the city's: April 2020 is marked "data not available"
  in its reports, and May–June 2020 predate the report archive (which begins Aug 2020).
