Essay · From the builder

Predicting risk from public complaint records

I underwrite business credit. The question I’m paid to answer is simple: will this company pay us? The tools I’m handed to answer it are mostly backward-looking and mostly about lenders. Bureau data tells me how a company treated its other creditors. Financials tell me what it chose to disclose. Both are useful. Both arrive late.

The best predictor I’ve found lives somewhere else. It comes from the people a company has the most power over, at the moment they stop putting up with it and escalate. Reviews measure sentiment. Complaints measure escalation. And escalation by the weakest counterparty is a leading indicator for what will happen to the strongest.

This matters in credit and risk for a specific reason. Everything in my normal data stack is a lagging measure of leverage. A company pays its bank before it pays its vendors, and its vendors before its workers. By the time a lender sees a missed payment, the damage has been rolling downhill for months. If you can see the bottom of the hill, you can see the future.

That’s the thesis. Here’s how I got there, the tool I built to prove it, and a method you can run yourself.

Published September 3, 2026

The wage claim list

Massachusetts publishes a list of companies with unpaid wage complaints. Public, free, updated. We started checking new applicants against it.

Appearing on that list was almost one-to-one with serious payment problems with us later. Not “elevated risk.” Almost every one.

The mechanism is plain once you see it. A company under stress doesn’t stop paying everyone at once. It stretches the counterparty least able to fight back. Vendors first. Then the vendors who can’t afford to sue. Payroll is close to last, because employees walk. So a wage claim isn’t an early signal. It’s a late one. By the time a worker has filed with the state, the company has already run out of softer things to stretch. The bureaus haven’t caught up because bureaus report on creditors, and creditors are the counterparty with the most leverage.

There’s a second reading, and I think it matters as much. A company that stiffs its own workers has told you something about its character. It will stiff anyone it can.

The principle

Every business has a hierarchy of who it can afford to disappoint. Risk to me is downstream of how it treats the people at the bottom. That behavior is observable, and it’s observable before it reaches me.

I want to be careful here. This isn’t “alternative data.” Most of what gets sold under that name is noise with a dashboard. The sources that work share three properties, and reviews mostly lack them:

When reviews do work

Reviews can work. At a previous company, we underwrote solar installers for a while, and customer reviews correlated notably with payment history. “If your customers don’t like you, we won’t either” turned out to be a decent underwriting rule.

Why did a weak, gameable source work here? Because the path from an unhappy customer to our balance sheet was short. An unhappy solar customer becomes a cancellation, a chargeback, a financing dispute. Those are unpaid receivables. The review was a direct read on the asset we were financing. Reviews fail as a signal when the money path is long, or when the entity has no reputation to protect in the first place.

That last failure is the important one. Most of the entities that treat people worst are too small to have reviews at all. Which brings me to the strongest source I’ve worked with.

Code enforcement complaints: the strongest source I’ve found

A code enforcement complaint is what a tenant files with the city when the landlord won’t fix the heat, the mold, or the rats, and asking nicely has failed. It sits at the top of the quality hierarchy for a few reasons:

Address-indexed data does three things a review site cannot

Know Your Block

I wanted to search this data for my own city and couldn’t. The records were public, but they lived in a permitting portal that was built for inspectors, not for someone deciding whether to sign a lease. So I built Know Your Block.

What it is:

Who it’s for

Why it works better than reviews or a Google search

Check a Columbus address now

Free, no account. Official City of Columbus records, mapped by address.

Free · no account · opens the live map's Block Report for the address

I built it for renters and homebuyers. But it’s the same risk logic I use at work, applied to a counterparty with even less leverage than a small vendor: a tenant.

The method

Here’s the flow. Run it on any industry and I promise it generates sources.

Who does the entity have leverage over?

Rank its counterparties by how little recourse they have. Tenants, hourly workers, subcontractors, patients, small customers. Watch the bottom of that list.

What does mistreating them look like?

Be specific. No heat in February. Missed payroll. A botched install. Vague harm doesn’t leave records. Specific harm does.

What does the victim try first?

A private fix. A call, an email, a conversation. This stage leaves no public record, and most bad behavior is absorbed here silently. Remember that for later.

When the private fix fails, which door is open?

There are four exits.

Voice: reviews, social media. Free, anonymous, weakest signal. Only works if the entity has a reputation to damage.

Regulator: code enforcement, state labor departments, attorney general consumer divisions, licensing boards, health departments, OSHA, EEOC. Costly, named, strongest signal.

Courts: small claims, evictions, liens. Costly and real, but scattered across county systems.

Exit: quit, move out, cancel. Leaves no record at all.

Does that door leave a public, indexed trail?

Some agencies publish. Some don’t. Often the answer is “yes, badly,” as in a quarterly PDF or a portal with no export button. That’s the opportunity. Badly published data is unmanaged data. Columbus code enforcement was exactly this: public, complete, and nearly impossible to use until someone reshaped it.

Why does it predict what happens to you?

The filer is a canary. They had less leverage than you, so they ran out of patience first. It generalizes for two reasons:

Character: it’s a pattern, not an incident.

Sequence: the company has already stretched the weak counterparties, so it’s further along in distress than the strong ones know.

Doing it well

This is what separates the method from cargo-cult alt-data.

Mechanism first. If you can’t tell the causal story from the complaint to your loss, don’t trust the correlation. Solar reviews worked because I could draw a line from a bad review to a chargeback. If the line has more than two or three hops, be skeptical.

Use cost of entry as a quality filter. The harder something is to file, the more it means.

Normalize. Complaints per unit. Claims per employee. Raw counts just punish size. A 300-unit complex with twelve complaints is doing better than a duplex with three.

Watch the decay. Every unorthodox source degrades once people start managing it. The day landlords start paying someone to monitor their code enforcement standing, that signal gets weaker. The edge has a half-life. Plan for it.

Respect the absence problem. No complaints is not a clean record. It may mean the victims are too afraid, too undocumented, or too worn down to file. Silence at the bottom of the leverage hierarchy is not the same as health.

Generating your own

Run the six steps on a sector and sources fall out.

The edge is the boring part

None of this data was hidden. The Massachusetts list is a public web page. Columbus code enforcement records were public long before Know Your Block existed. It was all free the whole time.

The edge isn’t access. It’s the translation work nobody wants to do: geocoding a city export, parsing a state PDF, joining a complaint to an address to a block. Turning something that’s technically public into something that’s actually decision-shaped. That work is tedious, and that’s why it’s still an edge.

You can also find this article on my LinkedIn.

Keep going

Source & method

Know Your Block is a free, independent public-information project operated by Canary Civic LLC. It maps official City of Columbus code-enforcement complaints so renters and homebuyers can research a property before they move in. It is not affiliated with the City of Columbus and nothing on this page is legal advice.

Complaint counts describe reports filed, not verified conditions. A filed complaint is a report, not a proven violation, and records may be unfounded, resolved, or out of date.