Citywide all-record KPIs
These top metrics use the full SDCI complaint and enforcement universe. They are citywide operational totals, not the landlord-tenant-only accountability frame.
Total Records
0
All record types (complaints, NOVs, citations, etc.)
Complaints (CP)
0
RecordNum ends with -CP
Notices of Violation (VI)
0
RecordNum ends with -VI
% NOV per Complaint
0%
Higher means more enforcement relative to complaints
Missing Inspection Date
0
No LastInspDate (or flagged “No Inspection Date”)
Closed/Completed with No Inspection Date
0
Cannot verify response time or whether a site visit occurred
Blank RecordTypeDesc
0
Uncategorized: RecordTypeDesc is empty
Emergency (Unqualified)
0
Included inside Landlord/Tenant totals
Landlord/Tenant only • March 11 council accountability frame
These figures are the LLT-only accountability numbers used for the March 11 council package. They do not share the same denominator as the citywide all-record KPIs above.
Total Records Reviewed
233,543
Full citywide record universe reviewed for the council accountability frame
Landlord/Tenant Cases
58,761
LLT subset only. This is the denominator for the accountability figures below.
LLT Missing Inspection Date
62.3%
LLT cases with no recorded inspection date in the public record.
LLT Closed with No Inspection Result
59.8%
March 11 council accountability figure. Closed does not automatically equal documented completion.
LLT Open Cases
5,840
Open landlord-tenant cases in the accountability frame.
Read this correctly: the orange/red LLT band is the accountability frame used for Council. The blue/orange band above is the full citywide operational record universe. Same dataset family. Different denominator. Different claim.
Complaints vs NOVs over time (counts)
All Years · Citywide
NOV conversion rate by year (% VI per CP)
All Years · Citywide
NOV rate by district (highest to lowest)
All Years · Citywide
Top categories: Complaints vs NOVs
All Years · Citywide
The Verification Gap
If a record is marked “Closed” or “Completed” but has no inspection date, the public cannot verify if SDCI responded, how long it took, or whether a site visit happened at all. This is an evidence integrity problem, not a paperwork problem.
Missing inspection rate by district (% records)
All Years · Citywide
Missing inspection dates by status (present vs missing)
All Years · Citywide
Records missing an inspection date (by Open Year)
All Years · Citywide
Oldest Open LandLord/Tenant Complaints - Still Under Investigation (top 25)
All Years · Citywide
| Open Date | Record | Status | Category | Address |
Last 25 LandLord/Tenant Complaints Filed
LLT records only · All Years · Citywide
| Open Date | Record | Status | Category | Address |
Appears in the recent completed pull. Same-day closure. No inspection date. No feedback / no contact shown in the portal review.
- Complaint report pulled from the portal-linked record.
- Complaint outcome shows No Violation Observed.
- Use this as a record-level example that “completed” does not prove substantive completion.
Also appears in the recent completed pull. Same-day closure. No inspection date. No inspector assigned in the portal review.
- Complaint report pulled directly from the linked case.
- Complaint outcome shows No Violation Observed.
- Useful as a second example of a closure label that does not answer what actually happened.
This is the hammer example. It surfaces in the completed pull, but the pulled complaint findings still read In Process and show no closed date.
- Appears in the same recent completed sample set.
- No inspection date shown in the record review.
- Front-end completion labeling and record-level findings do not match.
What this demonstrates
A closure label in the portal is not the same thing as a transparent, verifiable enforcement record. In this spot-check, recent 2025 complaints in the completed pull include same-day closures with no inspection date, no contact / no feedback, no inspector assigned, and one record that still reads In Process with no closed date on the record-level findings. That is exactly why the LLT accountability figures exist.
Calculation rules used in this dashboard
- Complaint = RecordNum ends with -CP.
- NOV = RecordNum ends with -VI.
- % NOV per Complaint = NOVs ÷ Complaints.
- Missing inspection date = No LastInspDate (or “No Inspection Date” flag).
- Closed/Completed with no inspection date = StatusCurrent is exactly Closed or Completed, and inspection date is missing.
- Blank RecordTypeDesc = RecordTypeDesc is empty.
- Emergency = RecordTypeDesc equals Emergency.