Seattle Animal Control's own records show where dog owners are cited for illegal off-leash use. The map is the argument: six of the top ten citation locations have no designated off-leash area at all.
Each red circle is a park where Seattle Animal Control issued at least one off-leash citation between January 2014 and October 2019. Circle area is proportional to the number of citations. Green circles are existing OLAs (the legal-use baseline); grey are OLAs under construction or in planning.
The map above shows where citations happen. The map below answers the more important question: why they happen there. A kernel-density heatmap of citation locations is overlaid on 0.5-mile walksheds around every existing OLA (the Trust for Public Land 10-minute-walk standard). The white space — areas with citation heat but no walkshed coverage — is the supply failure made visible.
Discovery Park alone accounts for about 9% of all citations in the dataset. The top four non-OLA parks (Discovery, Volunteer, Cal Anderson, Lincoln) account for 905 citations — nearly one in five.
Citations rose sharply from 2015 to 2018, more than doubling. The 2019 number covers only January through October (the public records request's cutoff). Pro-rated, 2019 would likely have exceeded 1,200 citations — roughly on par with 2018.
Animal Control escalates citations by offense count — 1st offense is a warning or $54 fine; 2nd is $109; 3rd is $136; 4th and beyond is $162. The vast majority are first offenses, indicating a broad population of occasional offenders rather than a small core of repeat violators.
A natural question: does the enforcement revenue at least offset the staffing cost? No. Using the signed 2021 MOA's disclosed FAS-side cost of one ACO II ($152,399/year) and the offense-mix data on this page, the enforcement program is a net cost center by a wide margin. Compared to programs that are also ground-level enforcement but actually generate revenue (parking tickets, for instance), this one barely moves the needle.
| Rank | Park | Neighborhood | Citations 2014–2019 | Has OLA? | Nearest OLA if none |
|---|
All citation records in this analysis come from Seattle public records request C049204, filed 2019-08-29 by Andre Vrignaud and produced by SPR on 2019-10-15 as five Excel workbooks covering 2014-01-01 through 2019-10-15. The raw XLSX files are in the repo under data/prr-responses/C049204/ with a README documenting the request. The consolidated CSV is at data/enforcement-citations.csv, built by the reproducible script scripts/build_enforcement_datasets.py.
Of the 4,803 total citations in the dataset, the underlying location quality breaks down as follows (computed by build_enforcement_datasets.py, reproducible):
| Location quality | Count | Share |
|---|---|---|
| Confidently folded into a canonical named park (e.g. "Warren G Magnuson Park" → "Magnuson Park") | 2,679 | 55.8% |
| Named park pass-through (clearly a Seattle park, but not in the canonicalizer's set — smaller/less-cited locations) | 1,341 | 27.9% |
| Street address only (no park name — typically a report filed against a house address after the fact) | 672 | 14.0% |
| Blank / no location recorded | 111 | 2.3% |
| Total | 4,803 | 100% |
What "confidently folded" means. SPR's internal system recorded the same park under many different strings — inconsistent capitalization, abbreviations, sub-locations appended, minor typos. We collapse these to canonical names using a set of regular expressions in the build script. Every mapping is reviewable in CANONICAL_PARKS. For example:
Across the 811 distinct canonical entries, only 43 were multi-variant (i.e. required reconciliation). The remaining 768 distinct park names came through with only one spelling in the raw data.
The 672 street-address rows (14.0%) are excluded from the per-park counts and the hotspot map because there is no reliable park-name association. They are preserved in enforcement-citations.csv with the original location_raw string; a future pass using a geocoding API against Seattle's park-boundary GIS layer could recover some of them. The 111 blank-location rows are lost entirely for spatial analysis — we can still count them in the year trend and offense-level breakdown, but not place them.
Combined, citations with blank or street-only locations total 783 (16.3%). This is the floor on spatial analysis precision. The park-level totals and the hotspot map should be read as covering the 4,020 citations (83.7%) with an identifiable park name, not the full 4,803.
Coordinates. Park coordinates are approximate, geocoded from park names by hand into data/park-coordinates.csv. They are good enough for a city-scale map; they are not suitable for legal, regulatory, or engineering purposes. Canonical geometry for Seattle parks is on Seattle's ArcGIS Open Data portal.
"No OLA" classification. A park is labeled "no OLA" if it contains no fenced, dedicated off-leash area. Large parks with a small OLA in one section (Woodland Park, containing the 0.75-acre Lower Woodland OLA) are labeled "partial" because citations in the non-OLA portions of the park are still illegal off-leash use.
2019 is partial. The dataset ends October 15, 2019. Year-over-year comparisons involving 2019 need to be interpreted as partial-year; the dashed annualization in the year-trend chart is a naive linear projection (count × 365 / 288) and should not be over-read. A follow-up public records request has been filed for October 2019 through present (draft at prrs/01-spr-offleash-citations-post-2019.md).
What this data does and doesn't say. Citations reflect enforcement activity, not underlying violation rates. A drop in citations at a given park could mean fewer violations, fewer patrols, or both. Conversely, a concentration at a given park reflects both where violations occur and where rangers chose to patrol. SPR deployment patterns over 2014–2019 are not in this dataset; a separate PRR would be needed.
Fee column. Recorded fees in the raw data are $0 (1st-offense verbal warning), $54 (1st-offense citation), $109 (2nd), $136 (3rd), $162 (4th+). The Seattle Municipal Code 18.12.080(A) and fine schedule are the legal reference.