Measuring Housing Code Enforcement So Well it Gets Better

A note on the data and scope

(a note: for this essay we’re going to be using and referencing the data available in Montgomery County, Maryland, as that’s where I am researching currently. To put in context, though, MoCo publishes more data than many other localities, and has instituted many best-practice code enforcement initiatives in recent years. Also, their Maryland Public Information Act coordinator is great. All that to say, while this essay implies a critique, the goal is better HCE for everyone, not to minimize the hard work people have done and are doing to work on these issues.)

Let’s say you were just appointed executive director of a housing code enforcement agency in an urban area. Congratulations! You are now in charge of ensuring that housing complaints are responded to, conditions are inspected, violations are tracked, and those responsible for poor conditions are held to account. You must be so excited.

You’ve heard complaints for years about poor housing conditions, particularly for renters, and now, finally, you can do something about it. Ideally, a lot of something. But first, you want to know, “how well have we been doing?” In fact, your predecessor was kind enough to make some housing code enforcement data public, so you decide to start there. The first case you decide to review is 194501, at the Enclave apartments in Silver Spring. Let’s see how it went.

Housing Code ViolationsCase 194501
14 public rows · Selected columns · Scroll for moreCounty data ↗

Fourteen different violation rows pop out - not great for the landlord! - although 12 of them were recorded as corrected within 12 to 26 days of being identified. Except, you notice, one issue first recorded on August 29, 2025 JUST closed on August 7, 2026, 343 days later. And the late-close issue was rodent infestation! That’s a long timeline! You ask yourself ‘how long did this person live with conditions they should not have lived with?’ For a first pass, you group the conditions identified in the public data:

Public timeline

Click an event to expand its record. Dots are positioned by date.
Use the overview at left to move through the case.

When you lay that long timeline out, you see that a re-inspection on October 28th, 2025 revealed a new paint violation, in addition to the rodents. And then… silence? There are 283 days between that October 28th entry and the August 7th correction dates, with no intervening inspection or action shown in this public dataset. We don’t know why it took so long, or what finally convinced whoever took action to take action.

You wonder if the landlord who apparently maintained a pest-infested apartment for a year was asked to pay a fine, or if they paid it. You wonder what went wrong. What did the landlord actually do to solve the issue? And when? Did they just not care? Did they try and try but they just couldn’t remove the pests?

You realize, it’s going to be very hard to come up with a policy that would have made this case go better without knowing a lot more about the case. Then you remember! You don’t just have the public record! You’re the head of the agency! You have the full gosh darn casefile!

The casefile itself is a bit dispersed. There are case notes, notices of violation, citation records, even pictures of each violation listed one by one in 4k resolution. So, you take some time and lay out the timeline once again. This time, some new elements pop out:

Public dataset and case file

Click an event to expand its record. Dots are positioned by date.
Open circles mark correction deadlines. Use the overview at left to move through the case.

  • Correction Deadline: You notice, four separate correction deadlines for the rodent violation passed before a citation was issued: September 9, September 23, October 26, and November 28, 2025. Is that normal for this landlord? Or in general?

  • Deadline Extension: The third notice, dated September 26, gives another 30 days for the remaining pest violations, compared to 7 days in each of the first two notices. Why the increase? Was the issue more complex than assumed?

  • Citation Issuance: You see that on December 4, 2025, 97 days after the rodent violation was found and after 4 missed deadlines, two citations for $500 each were issued, totaling $1,000. One was for rodents and one for paint; the records reviewed here do not establish how much was paid.

  • Maintenance Record requests: Maintenance records would be extremely helpful for knowing when the landlord took action, and what action they took. A September 24, 2025 case note says the inspector has requested pest-service records, 26 days after the first inspection and before the citations. Is this normal protocol? When are landlords supposed to send records?

  • Records requests missed: The notes show further records requests on December 31, February 18, March 4, and June 17. The file identifies pest-service records as received on June 18, 2026, 267 days after the September 24 request and 169 days after the December 31 email. How often is that the case? What are the consequences for lack of records?

  • Apparent maintenance delay: the clearest dated pest-service sheet records treatment on April 17, 2026, 134 days after the citations and 233 days after the complaint. Two other sheets carry 2025 dates even though they were supplied as the last 90 days of records in June 2026, so their timing is uncertain. This does not establish when treatment first began. Were there no records prior? Are there unsubmitted work records? How long passed between abatement attempts?

  • Abatement Order Timing: on Jun 23, 2026, 300 days after the complaint and 298 days after the first inspection, a court order to fix the problem was issued. It requires pest extermination and elimination of entry points within 30 days after service of the order, and authorizes county entry and abatement at the owner’s cost if the owner fails to comply. The county-entry clause uses 30 days from the order’s date. Do these orders usually take this long? Does the county ever actually do, or order, the fixes?

To lay it out more clearly, here’s each stat mentioned for this case:

  1. Measure 1: Number of issues found:

    Total: 151

    • High: 4 (rodents, roaches, and 2 water/mold conditions)

    • Medium: 6

    • Low: 5

  2. Measure 2: Speed of issue resolution, as recorded, by severity:

    • High, 26–343 days (water/mold: 26 days each; roaches: 60; rodents: 343).

    • Medium, 12–26 days.

    • Low, 12–283 days.

  3. Measure 3: Deadlines missed*: 4 (for rodents); 17/30 total violation deadlines missed

    *For this calculation, a deadline counts as met if the first inspection afterward occurs within 7 days and records correction.

  4. Measure 4: Deadlines extended: 3

    The allowed correction period changes once, from 7 to 30 days, and then stays at 30 days.

  5. Measure 5: Time from the rodent violation’s first missed deadline to citation: 86 days

  6. Measure 6: Time from first recorded request to receipt of pest-service records: 267 days

  7. Measure 7: Time from complaint to the clearest dated pest-service visit: 233 days

    Presumably some work was done that was not recorded, since the roach violation was cleared.

  8. Measure 8: Time from first inspection to abatement order: 298 days.

    The order was issued on the day of the sixth completed inspection.

1. Note on violation counts and severity

The public table contains 14 violation rows. The casefile includes one additional roach violation, bringing the total to 15. The severity labels used here come from the casefile’s notices of violation; the public dataset has no severity field. ↩

Looking over these stats, you may feel like you’ve only given yourself more questions. Each record implies a “why?” and a “how often is it like this?” These data alone don’t give you the full picture, or tell you what lever to pull, but they act as imperfect windows into the actual process and mechanisms through which code enforcement happens.

Code enforcement covers an unimaginably diverse array of people and circumstances. Just from looking at the public data, or even the casefile, it can be hard to know why the landlord, or maintenance, or even code enforcement staff did what they did when they did it. But it does reveal enough for us to ask, specifically, about their actions, about their timing, about what they could have done differently and how you can help.

Even knowing what little we do about the maintenance record in the case above lines us up for inquiries into the specific organizations, assessments, and actions taken in response to the violation, which in turn lets us ask, what could they have done? What would an exceptional pest-abatement specialist have done instead? Perhaps, the same thing! Perhaps not. And, if not, it makes you wonder, how would you know? And what incentives or disincentives might help us get there? Training the people involved? Requiring a different team? It’s not clear, necessarily. But the deeper you dive the more you’re able to build appropriate responses for appropriate circumstances, and assess whether those responses made a difference.

As you embark on your housing code enforcement leadership, you will have to consider which actions, initiatives, reforms, and best-practices to institute. HCE agencies are notoriously under-resourced, so to achieve outsized impact you’ll likely have to prioritize carefully and pick your fights well. More data won’t make housing code enforcement easy. But it can give leaders, policy-makers, advocates, and residents enough insight into what’s happening and why to improve what we do about it.

Data sources and display notes
Public data
Montgomery County Housing Code Violations
Case 194501 · 14 rows · 24 fields · Retrieved September 5, 2026 · Fixed snapshot.
Case-file events
Existing Case 194501 timeline
21 events and 4 correction deadlines from the existing reviewed reconstruction. Source annotations retained in event details.
Timeline spacing
Dots use a proportional date scale. Labels move to avoid overlap and remain connected to their dated dots. Zoom changes the date scale within each timeline.
Source differences
Roach violation 729218: absent from this public extract; present in the case-file reconstruction.
Violation 730255: “Microwave” in public data; “Dishwasher” in the case-file reconstruction.
Reasons unresolved.