R.A.R.E.

How we counted

Where every number comes from

Back to citywide data

The source

Every number comes from the City of Seattle open data portal, code complaints and violations. We use the landlord-tenant records: 56,258 records opened 2003–2025. 40,540 are complaints, 9,961 are notices of violation and 5,757 are other records (4,045 tenant relocation, 1,394 citation, 318 unfit building). Each type is counted on its own.

Records file fingerprint (SHA-256): 012d77ac41a4cde618a3b3ea9182310e83c0aa49ff0e2824240bfabca5f5cc9f

What each number means

Complaints and notices
A complaint and a notice of violation are separate records. Notices are not subtracted from complaints. Notices per 100 complaints is the number of notices of violation divided by the number of complaints, times 100, both counted by the year opened. The portal does not link a notice to a complaint, so this compares counts, not cases.
No inspection date
The last inspection date column is empty for that record. Until July 2025 that column held map coordinates, for example POINT (-122.33 47.60), instead of dates. In July 2025 the City backfilled it, including records back to 2003, so only then could these shares be measured. A blank date does not mean no one inspected. The last inspection date report tells that story.
Districts
The Council district on the record. 668 records have none (545 of them complaints), so they are not in any district.
What tenants reported
We read the description of every complaint and counted the problems it names, using rules checked against the complaint text. A complaint is counted in every group it names. A complaint is unassigned when no problem can be assigned from its words. The City staff’s notes are not used to name a problem. They are read only to find three-day notices (“3-day notice,” “three day notice,” or 3-day pay, comply or vacate wording) and the City’s JCEO label or “just cause” wording. Borderline wording is left out.
Elevators
The STLCA cross-reference built September 12, 2026 from Seattle Fire Department elevator rescue calls, tenant complaints that mention an elevator, and the City’s elevator certificate list dated January 31, 2026. 113 addresses citywide appear in all three.
Property database
The P.I.E.R. counts are read directly from STLCA’s property database.
The moving list
72 records drawn at random from all 56,258 (seed 20261017). Each record number opens that record on the City of Seattle website.

How the groups are decided

Each group below is made of the problem types listed beside it. The three-day notice and JCEO groups are found by wording, as described above.

GroupProblem types counted in it
Fire, smoke/CO alarms, gasFire, smoke/CO alarms, gas, exits
Structural, doors, windowsDoors, windows, locks, mail, security; Structural / building envelope
Heat, hot water, utilitiesAir conditioning / HVAC (cooling); Gas / utility service loss; Heat; Hot water; Water service, pressure, quality
Mold, leaks, moistureLeaks, flooding, water intrusion; Mold and moisture
Plumbing, sewagePlumbing and sewage
ElectricalElectrical and power
PestsPests (bed bugs, roaches, rodents)
Other housing conditionsAppliances and fixtures; Elevator and accessibility; General habitability (no defect named); Hazardous materials, fumes, ventilation; Overcrowding / occupancy; Sanitation, trash, odors; Uninhabitable / unfit
3-day notices3-day notice
Just cause eviction (JCEO)Just cause eviction (JCEO)
Evictions and terminationEviction and termination
Rent increases and feesRent increases, fees, charges
Deposits and refundsDeposits and refunds
Other notices (type not stated)Notice (type not stated)
Lease terms and renewalsLease terms, renewal, roommates
Other (retaliation, entry, relocation, lockouts)Discrimination / fair housing; Landlord entry and privacy; Lockouts and self-help; Relocation and displacement; Rent payment disputes; Rental registration paperwork; Retaliation and harassment; Utility billing (RUBS, third-party)
Other (noise, construction, public space)Construction / permits; Neighbor behavior (drugs, violence); Noise; Public space (weeds, sidewalks, parking); Zoning / illegal unit / land use

Show our work

  • Every landlord-tenant record landlord-tenant-records.csv · 8.6 MB

    One row for each of the 56,258 records: record number, record type, a link to the record on the City of Seattle website, date opened, district, status, whether the record has an inspection date, and, for complaints, a yes in each group the complaint is counted in. Every count on the citywide page and the district pages can be made by filtering this file.

    SHA-256 b55cd317002c16c0fc4b5271c324af8b6fb01b11af79d8b93cc41a818db49076
  • Numbers by year citywide-by-year.csv · 1 KB

    Complaints, complaints with no inspection date, notices of violation and notices per 100 complaints, for each year opened, 2003 to 2025. These are the numbers behind the line chart.

    SHA-256 69ee3f6a0b51eb9a54c8d16bd84090a5770ca678d30d983d5d96def96aa1b998
  • Elevator addresses elevator-addresses.csv · 8 KB

    The addresses that appear in all three sources: Fire Department elevator rescue calls, tenant complaints that mention an elevator, and the City’s elevator certificate list.

    SHA-256 35ede537ec493f33d3a88086334629c5bcf721b9a91d18e188bfa7db842055d5
  • Recount script recount.py · 4 KB

    A short Python script that recounts every number on the citywide page from the two files above and prints it. It uses nothing else and changes nothing.

    SHA-256 55f348083a3a28e76313d218e6f0727da62604c863a6b8d9c3e5c3ab28ab2e8c
  • The counting rules topic-rules.py · 221 KB

    The rules, in code, that decide which problem a complaint description names. They were checked against the complaint text one rule at a time.

    SHA-256 67215b12e03bef2ee3b9f5228ac24047c2811de8d5d7683666b81664c61290a8

Recount it yourself

  1. Download landlord-tenant-records.csv and recount.py into the same folder.
  2. Open a command window in that folder and run:
python recount.py

The script prints the record counts, the year-by-year table, each district and every group, so you can check them against the pages.