All writing

The estate

Finding dead tables without guessing

"Nothing reads this" is a claim about every consumer you have, including the ones you forgot. Here is what it takes to make it safely.

1 minute read

Dead objects are the most reliable saving in a data estate and the easiest to get badly wrong. The saving is real: storage, the compute that maintains them, the tests that guard them, the cognitive weight of a catalogue nobody trusts. The risk is also real, because the cost of being wrong is somebody's quarterly report failing on a Monday.

The evidence, in order of strength

  • Access history over the full retention window — not a default thirty days, which will mark everything monthly as dead.
  • Lineage: nothing downstream in the transformation graph references it.
  • BI dependencies, which usually live in a different system and a different API.
  • Hand-run exports and service accounts, which look like ordinary queries and often are not scheduled.

Only the first two are available from the warehouse alone. A dead-object list built from warehouse metadata and nothing else will confidently name tables that a dashboard reads through a connector the warehouse cannot attribute. This is the single most common way these lists lose credibility, and credibility is spent once.

Say what you checked

A finding of this kind should carry its own limits: this object has had no recorded access in N days, the history covers M days, and these consumer systems were and were not consulted. Stated that way, a reader can judge it. Stated as "unused", it is a claim the reader has to either accept or verify from scratch — and they will do neither.

A finding that names its own blind spots is more persuasive than one that does not, not less.

Run this against your own estate

Gecko reads metadata and query history — never the rows in your tables — and tells you what it found.

Get started