Skip to the data

The Complaint Machine: an animated explanation of what the public can and cannot trace after a rental-housing complaint

  • 15,973 complaints entered the system in 2025.
  • Public data does not show who, if anyone, was assigned.
  • Out of 233,543 records, 140,979 show an inspection date.
  • The oldest record still marked Under Investigation was opened March 10, 2004: 7,966 days old at the end of 2025.
  • 82,433 of 220,824 closed or completed records show no inspection date.
  • 65,300 records marked Completed show no inspection result.
  • Records requests about SDCI's data are handled by SDCI.
A complaint goes in. What actually happens next?
Animated process example. Facts use City records.

SDCI LOGGED 177,431 CODE COMPLAINTS 31,409 SEPARATE NOTICE OF VIOLATION RECORDS.

Across Seattle,complaints rose sharply going from 4,946 in 2013 to 15,973 in 2025, while notice of violations declined from 1,279 to 969.

STLCA examined Seattle's own complaint, inspection, violation, and enforcement records to understand what the public can verify and what remains undocumented.

THE PUBLIC DESERVES A COMPLETE ENFORCEMENT RECORD.

As it stands, Seattle's public enforcement data does not provide the complete, connected record City Council needs to measure how existing laws are being enforced or make fully informed, data-driven policy decisions.

About this animation: scenes, routes, and what each status establishes

An illustration of the public-record problem, not a claim that every depicted event occurred in every case.

The seven scenes

  1. Complaints fly into the system. Files reporting issues such as no heat, no hot water, sewage backup, a broken elevator, an electrical hazard, mold or moisture, illegal fees, or tenant rights enter the SDCI intake funnel. Some go to an assignment desk, some sit in a pending tray, and some hover between paths. The ticker is decorative and is not a real count.
  2. The inspector catches a complaint. An inspector catches a file, studies it, and sends it down one of several tracks: assigned, inspection documented, administrative handling, or inspection date not shown. "Inspection date not shown" describes a gap in the public record. It never proves that an inspector did not visit.
  3. The property inspection. On one pathway the inspector crosses the city to an apartment building, where a tenant says, "There's still no heat." Possible recorded outcomes: violation identified, no violation observed, follow-up needed, or inspection details not publicly visible. No status is shown as necessarily valid or invalid.
  4. Time passes. The problem remains. A leak, a cold radiator, and a broken elevator stay on screen while a file gathers dust, the clock spins, and the tenant keeps calling: "Any update?" "Has an inspector been assigned?" "What's happening with my complaint?" "Was the repair verified?" Some files move again and others stay open. No delay length is implied, and not every case waits.
  5. The giant case-closure machine. Files drop into labeled buckets, travel between desks, sit on a shelf, or pass through a repair and verification pathway. Where a record lacks detail, questions float above it: Repair confirmed? When was it fixed? How was compliance verified? Where is the inspection record? This does not mean every closed case lacked an inspection or repair.
  6. The public tries to find out. A renter, journalist, or researcher asks what actually happened. An illustrative status screen shows filled and empty fields, and the next stop is a public records request to the department that holds the records. The loop runs: public question, records request, agency search, response or wait, additional questions. STLCA's position is that the public should not have to reconstruct routine enforcement decisions through repeated individual requests.
  7. STLCA exposes the missing links. Routes merge into one network: complaint, assignment, inspection, finding, notice, correction, verification, closure. STLCA's gold beam lights what can be seen and marks gaps in amber. The number of lines and gaps is illustrative and carries no statistical meaning.

Four example routes

Illustrative pathways, not a statistically representative simulation and not the history of any real case. Files appear in a fixed rotation, so how often a route appears means nothing.

Route 1: Documented inspection, enforcement, and correction

Every link in this example is documented. This is what a traceable record would look like.

  1. Complaint record opened
  2. Assigned to an inspector (process step)
  3. Inspection date and result shown
  4. Notice of Violation issued as a separate record
  5. Correction documented
  6. Compliance verification shown
  7. Case closed

Even here, a Notice of Violation alone would not establish a completed repair. The correction and verification steps carry that weight.

Route 2: Closed or completed, no publicly visible inspection documentation

The status says the case ended. The published fields do not show how.

  1. Complaint record opened
  2. Inspection date not shown
  3. Inspection result not shown
  4. Correction and verification not shown
  5. Status reads Closed or Completed

This does not establish that no inspection or repair occurred. It establishes that the published record alone cannot answer the question.

Route 3: Remains open or under investigation

The file stays in an open status and may move between desks.

  1. Complaint record opened
  2. Pending, then assigned (process step)
  3. Interim steps not visible in the published fields
  4. Status reads Under Investigation or similar

No elapsed time is shown or implied. An open status does not by itself show that nothing is happening.

Route 4: Administrative or no-violation outcome

An outcome appears, but the public record does not explain every underlying step.

  1. Complaint record opened
  2. Routed for administrative handling or inspected (process step)
  3. Outcome value shown, such as ADMIN CLOSURE or NO VIOLATION
  4. Underlying basis not explained in the published fields

An administrative closure does not imply wrongdoing or a lack of repair, and a no-violation result may be entirely correct.

Shown in published fields Process step, not a published field Not visible in the published record

What each status does and does not establish

The buckets are not drawn to scale and their levels are not data. Counts are source rows in the same 56,256-record selection. Status and inspection result are different published fields.

Violation / Enforcement action

Does establish: an enforcement record, such as a Notice of Violation or citation, exists.

Does not establish: that the condition was repaired, or which complaint led to it. A notice is not a verified completed repair.

In the data: 9,960 Notice of Violation rows and 1,394 citation rows. These are separately counted records, and the ratio to complaints is not a conversion rate.

Closed

Does establish: the record carries a Closed status.

Does not establish: why it closed, whether an inspection took place, or whether a problem was corrected.

In the data: 10,912 rows have the current status CLOSED.

Completed

Does establish: the record carries a Completed status.

Does not establish: a confirmed correction. A completed record does not prove the condition was fixed, or that it was not.

In the data: 39,809 rows have the current status COMPLETED.

Administrative closure

Does establish: the record shows an administrative closure value.

Does not establish: wrongdoing, a lack of repair, or the reason for the closure.

In the data: 113 rows show ADMIN CLOSURE, in the last inspection result field rather than the status field.

No contact

Does establish: this is an illustrative label for a case where someone could not be reached or a condition could not be observed.

Does not establish: that the condition did not exist, or that no further effort was made.

In the data: "No contact" is not a published value. The closest is NO ACCESS/UNABLE TO OBSERVE, with 154 rows in the last inspection result field.

No violation observed

Does establish: the record shows a no-violation result.

Does not establish: what was examined, or the condition at any other time. This result may be entirely correct.

In the data: 60 rows show NO VIOLATION in the last inspection result field.

Remains open

Does establish: the record has not reached a closing status in this snapshot.

Does not establish: that nothing is happening, or how long any particular case will take.

In the data: 3,749 rows show UNDER INVESTIGATION and 507 show INITIATED, among other open-type values.

Citywide portal, all record categories, 2003 to 2025

Complaints went from 7,206 in 2016 to 15,973 in 2025. Notices of Violation fell from 1,417 to 969.

Records with no inspection date shown: 2,351 to 12,516.

Complaints, Notices of Violation, and missing inspection dates

Annual record counts, grouped by opening year. The series are different types of activity, not matched complaint outcomes.

Closed or Completed: what date can be verified?

Compare complaint volume against Closed/Completed statuses and those with no published last-inspection date. Status does not confirm correction.

What the public portal covers

Top source category labels across all code types. Some records have multiple labels; these are not mutually exclusive.

Read the classification rules

How we got here

The last inspection date made us look. Then we had to go deeper.

Full housing history, 1980 to 2026

Landlord-tenant records, 2003 to 2025

Complaints quadrupled in four years: 649 in 2016, 2,812 in 2020. Notices of Violation went from 473 to 627.

Records with no inspection date shown: 291 to 3,084. By 2025: 5,742 complaints, 286 notices, 5,441 with no date.

Complaints, notices, and no inspection date

Closed or completed, and no inspection date

Housing conditions and paperwork in landlord–tenant complaints

Each complaint falls into one of four nonoverlapping wording groups. This is a keyword classification, not a verified violation or housing-code finding.

Explore the detailed housing-condition and paperwork keyword charts

Explore the keyword maps: housing conditions and paperwork, citywide and across all seven districts →

District by district

One citywide number hides seven different districts.

Seven of nine Councilmembers are elected by district. Notices of Violation run from 946 to 1,975 by district. The share of records with no inspection date shown runs from 57.2% to 71.0%.

Explore the citywide record map

Open the underlying record map for individual locations, then continue to the seven district comparisons.

Tower height and top number: Notices of ViolationLower number and bar: share of the district's landlord-tenant records with no inspection date shown
Into the dashboards

The dashboards

56,256 selected landlord-tenant records opened 2003 to 2025, not all Seattle code cases. City source data bounded December 31, 2025. Methods

Citywide and by district
AreaRecordsComplaintsNo date% no dateNo result% no resultNoticesCitationsHabitabilityPaperwork
Citywide56,25640,54036,10464.2%36,11564.2%9,9601,39419,04813,659
District 17,5275,1364,57560.8%4,57760.8%1,6211832,4721,710
District 28,8726,1285,07657.2%5,07657.2%1,9752933,1382,044
District 311,0928,3097,36466.4%7,36666.4%1,7072074,0882,693
District 46,6764,6594,14762.1%4,14862.1%1,2322272,1841,490
District 57,2325,1414,56863.2%4,56963.2%1,3461852,3311,826
District 66,2944,2034,18266.4%4,18666.5%1,0641841,6481,428
District 77,8956,4195,60771.0%5,60771.0%946983,0542,268
No district listed66854558587.6%58587.6%6917133200
Sources

City of Seattle Code Complaints and Violations data, analyzed and grouped by STLCA. Historical records through 2025-12-31. 233,543 citywide code records; 56,256 landlord-tenant rows. Records file, by year, recount script, methods, Council briefing, citywide audit. DRAFT, REVIEW REQUIRED.