The deaths of a young couple and a 4-year-old child in a Christmas Eve fire exposed significant problems with landlords renting dilapidated and dangerous properties in Columbus, Ohio.

In the immediate aftermath, city officials – acting on public outcry – made promises to fix its broken housing code system. But when the outcry died, so did those promises, prompting The Columbus Dispatch’s “Legacy of Neglect” series.

The four-day series produced such overwhelming results that the mayor, other city officials and their housing code enforcement unit immediately declared war on slumlords who, our reporting found, regularly rented houses with unsafe electrical systems, no heat, no water, rodents and other hazards.

Slumlords have been allowed to rent unsafe dwellings to thousands of Columbus residents for years because of an understaffed and ineffective code enforcement office, an inefficient computer tracking system, weak laws and lax judges.

The housing code system operated in a vacuum because no officials could – or would – dive deep into data and records that detail a legacy of neglect, inefficiency and mismanagement.

We began our investigation with requests for two data sets.

In the first, we requested basic court docket information on those who had been cited in Franklin County Environmental Court, which handles cases related to neighborhood quality-of-life issues: barking dogs, litter and housing code violations.

We ran the court data through Microsoft Access database manager to identify the names of property owners who had been to court at least three times in the past 20 years. We decided that at least one of the cases had to have been filed since 2011 to target offenders with an ongoing pattern of flouting the law.

We identified the 100 worst offenders.

That data also showed us that the Environmental Court is overwhelmed by cases involving unlicensed or unvaccinated dogs, overweight trucks and littering offenses. In fact, nearly half of all charges filed since 2000 related to household pets, leaving little time to delve into housing code cases, where the issues are far more complex than a runaway Rottweiler.

Using Access, we joined code scofflaws’ names to Franklin County auditor property data to compile a list of all the properties they owned. Then we turned to paper court records because the electronic docket records lacked key information, such as the details of the violation or the punishment, if there was one. So we had to review more than 1,200 court cases by hand.

We created a spreadsheet to log information found only in the paper files: penalties, warrants, contempt of court charges, details of the offenses, continuances and other information that illustrated how these cases lingered and languished.

It was a painstaking process that took about a month to complete but helped us show how slumlords played the judicial system to their advantage and rarely faced any significant punishment.

If they were fined, they paid an average of $100. Only four had ever been sent to jail; two of which were sent there for ignoring orders to mow grass or clean debris from yards.

By and large, landlords who allowed tenants to live in unsafe houses got a pass. Case in point: The landlord who rented out the dangerous house where three people died on Christmas Eve was sent to jail for 30 days.

As we pored through court records, we also were waging a battle with Columbus code enforcement officials for their database of housing code violations.

Violations are initiated solely by calls to the city’s 311 hotline.

Our first request for data in March resulted in a flurry of emails and phone calls but no data. We then met with code enforcement officials who came up with a host of excuses as to why they couldn’t supply the data: because of its size, it would crash their computer system; it was too hard to extract; they had mixed private information with public information.

None of these excuses were valid exemptions in Ohio’s Public Record Law. After that meeting, we took our argument to the city attorney. By day’s end, he ordered code enforcement officials to supply the data.

We received the data about two weeks later in a Microsoft Excel spreadsheet. It came with a caution from city officials that they had polluted the data with some fake cases. They claimed they had to do this in order to extract the data.

As an added bonus, they could not tell us which cases were the fake cases or even how many there were. It was up to us to figure it out.

That, however, turned out to be the least of our problems.

This data was a mess.

It was obvious that it was treated as an electronic filing cabinet with little consistency. Many records were missing key information such as addresses and details of the violation. In some cases, they listed only partial addresses. Is that Main Street? Main Avenue? West Main? East Main?

We were able to determine some of the addresses by linking parcel identification numbers in the properties table to records in the violations table, when they were present in the latter.

Dispatch librarian Julie Albert offered her SAS skills to help clean some of the data, making true date fields, standardizing parcel IDs and merging two different code violator fields into one.

Identifying the unique cases was almost impossible – even the city admitted as much.

For example, violation data for a pothole on a privately owned street generated more than 250 rows because of the way the city recorded it.

Each of the 35 property owners on that street were cited because they collectively owned the street. If they had spouses, that added more rows. The city generated an additional 54 rows to reflect the one man who made the one complaint. Then there were dozens of other rows tying the complainer to each owner.

It took a lot of trial and error with Access queries to create a master list of unique cases. Ultimately, we settled on grouping by four different fields to create that list.

Before we went further, we met with city officials to discuss our methodology. They agreed that it was solid.

Then we had to find those fake cases. Luckily, they were obvious once we started analyzing the data: a house with more than 500 violations. That house, as it turned out, was owned by a retired code officer. So we tossed anything tied to him, his wife or their address.

We also generated new fields to analyze the nature of the complaint. Keyword searches in both Excel and Access allowed us to determine the issue in the vast majority of cases. But, we had to read through about 10,000 of the records one by one to figure out the problem.

It was time well spent.

The data showed that inspections inside residential properties are rare, accounting for slightly more than 10 percent of the 82,000 code cases opened since 2008.

By comparison, violations involving tall grass, overgrown brush, trash and junk in yards accounted for about 60 percent of the violations logged.

It also showed that more than 7,000 property owners have been tagged for code violations at least three times in the past five years. Each of those cases could contain numerous problems at a single property. About 600 owners have been written up at least 10 times.

The series produced stark findings and swift action.

Two days after the series concluded, the mayor announced that the city will invest in a new computer system to track housing code cases, hire eight new code officers and stiffen the penalties to first-degree misdemeanors.

 Jill Riepenhoff has worked at The Columbus Dispatch since 1985 and as a projects reporter since 2004. She has investigated issues ranging from naughty teachers to naughty college athletes and coaches to naughty mortgage brokers to naughty credit-reporting agencies. Contact her at or @JRiep.