← Back to blog
ExplainersOctober 12, 2026

How our Rodents and Roaches tags work now (and why they used to be wrong)

By IsTheKitchenClean Editor

The filters on our home page let you narrow the feed to Rodents, Roaches, Mold, Sewage, and a few others. They work by reading the inspector's notes for certain words. Simple enough. The problem was what counts as a match.

The problem

Inspectors write two kinds of sentences. Findings, like "observed approximately 30 rat droppings in rear storage room." And instructions, like "instructed to provide rodent proof door and protect outer openings."

Both sentences contain the word rodent. Only one of them describes a rodent.

For a long time we counted both. That meant a restaurant with a quarter-inch gap under its back door got the same Rodents tag as a restaurant with droppings on the prep table. It also added points to its severity score, which could push it into the trending feed. When we audited six months of failed inspections, about one in six restaurants carrying a pest tag had never actually had a pest sighting written up.

The fix

We looked at 1,237 pest mentions across 888 failed inspections and wrote rules for what a sighting sentence looks like. A pest word now counts only when:

  • It's not part of a phrase like rodent-proof, pest control, bait station, or rodent harborage.
  • The sentence doesn't start with an instruction. Instructed to, must, shall, provide, remove.
  • There's no "no" or "not" right before it in the same clause.
  • Either the violation is the city's code 38, which is specifically about pests being present, or the sentence includes something like observed, found, live, dead, or a number.

We also stopped counting the city's own citation boilerplate, the line that says "citation issued for control of vermin and insects," because it names a pest without reporting one.

What changed

436 of those 1,237 mentions were thrown out. We read every one. All of them were instructions, door-proofing notes, dumpster language, or citation text. 56 restaurants lost a pest tag they never should have had. Not one real sighting was dropped.

Scores shifted too, since each phantom mention had been worth ten points. A few restaurants fell out of the trending feed. They belonged out.

Why not just use AI for this

We could have sent every violation to a language model and asked whether it describes a sighting. It would probably do fine. It would also cost real money on every inspection forever, and we'd have no way to audit why it decided what it decided.

The rules above are a few dozen lines of code. They run instantly, they cost nothing, and when they get something wrong we can show you exactly which rule did it. For a site that's supposed to be about transparency, that seemed like the right trade.

Did you find this helpful?