Skip to content
MethodCurrent through

How a case file gets built, and what stops one.

A case file goes through five steps before a firm sees it. Here is each one, including the checks that stop a file and the person who can still say no at the end.

Five steps, in order.

  1. 1. Discovery

    We read HPD violations, the DOB ECB docket and OATH/ECB case data in full, never a sample, going back three years. DOB enforcement reaches us through the ECB docket. We do not hold DOB’s own pre-hearing violations table.

  2. 2. Quality-first selection

    We rank cases by how many open hazards they carry, the penalties imposed on them and whether the same problems keep coming back. Then we screen out institutional, public and receivership buildings with a written rule and a versioned log of every call it makes, never by eye.

  3. 3. Checking against the city

    Each selected case is checked against the city’s own pages as they stand that day. The address has to match the city page. Contact details have to belong to the party named. A second way to reach someone counts only if it is really separate from the first. And the count on the city’s page has to be at least the count in the brief.

  4. 4. The claim gate

    Before a file is written, the brief runs through automated checks that look for any claim the data does not back. If one check fails, there is no file.

  5. 5. A person reads it

    A person reads every case file before it ships, and that step is permanent. It has caught things the automated checks missed, which is exactly why it stays.

What the 41-check claim gate stops.

Before anything ships, an automated set of checks reads it for one thing: a claim the data does not back. A sample of what it stops:

Dollar figuresEvery dollar figure here is either a penalty a hearing decision set or an amount still pending, exactly as the city states it. This site never adds them into a running total of what is left to pay.
Guessing from gapsNo sentence may claim what an owner intends, how a case will end or how long someone has held a building because something is missing from the data. A gap proves nothing, so it says nothing.
Labels that matchA dollar figure is called a penalty only when a hearing decision set it. An estimate is labeled as an estimate.
One claim everywhereA case has to say the same thing on screen, in the PDF and in a letter. If they differ, the build fails.
Where a signal came fromWhen the same registered office turns up across buildings, we say exactly that, and never call it ownership, which a registration cannot prove.

Our own mistakes, in public.

Every mistake we find in our own claims gets a number, a fix and a test that keeps it fixed. A few of them, with the internal details taken out:

  1. Found, fixed, tested

    A field that read "No" was treated as a yes, so a file showed a change of ownership that never happened. Fixed: the code now reads yes and no explicitly, and a test makes sure a "No" can never switch a claim on.

  2. Found, fixed, tested

    The date on a file could be moved forward without rebuilding the data behind it. Now only the build that makes a file can write its date, and the date carries the file's fingerprint.

  3. Found, fixed, tested

    Two date windows that should have matched were one leap day apart, so a sliver of history went uncounted. A check that compares our built numbers with the city's caught it, and both windows now come from one place.

A vendor that cannot show you its mistakes is asking you to assume it makes none.

Read a brief that made it through all five steps.

Request access