---
title: "Large dbt models with no declared reader | Metacenta"
description: "A large dbt model with no downstream model and no exposure is stored every day, read or not. How we measure its share, and when it is in use anyway."
url: "https://metacenta.com/rules/catalog-large-unread-model"
updated: "2026-10-14"
tokens: 557
---

Lineage integrity · rule catalog-large-unread-model

# Large dbt models with no declared reader

A Metacenta review checks this under the rule **Large leaf models have a declared reader**. Everything below applies whether or not you ever commission one.

## What this rule checks

This rule flags a dbt model holding at least 10% of the storage `catalog.json` measured, when no other model reads it and nothing declares it as a consumer. It runs only when the project declares an exposure, metric or semantic model. At 25% or more we rate it high severity. It declines below 10 measured relations.

## Why it matters

Its storage is paid for every day, whether anything reads it or not. If a dashboard does read it, the dependency is undeclared. The next person to change or drop the model will not know they have broken it.

## How to fix it

**Settle what reads the largest models nothing declares.** Confirm what reads the model. Declare the exposure if something does, and retire the model if nothing does.

## When it is fine to leave

A large table that analysts query directly in the warehouse is in use, even with no exposure. So is a model kept on purpose as a point-in-time archive. Declare the reader where you can, or tell us, and the finding comes out of your report.

## What we need to check it

`manifest.json` and `catalog.json` from `dbt docs generate`, on an adapter that reports sizes or row counts. We state each share beside its size. We do not claim the model is expensive, because that depends on a bill we never see.

[Ask about a review](https://metacenta.com/enquire?src=rule-catalog-large-unread-model&via=md)

## Related pages

- [dbt dependency cycles in the model DAG](https://metacenta.com/rules/dependency-cycle)
- [dbt models with a hardcoded table name](https://metacenta.com/rules/hardcoded-table-reference)
- [dbt exposures: what they are and how to declare them](https://metacenta.com/rules/model-possibly-unused)
- [Deep dbt lineage: long chains of models](https://metacenta.com/rules/deep-lineage)
- [A sample review, as a client reads it](https://metacenta.com/sample)
- [All published rules](https://metacenta.com/rules)
- [How a review is assessed](https://metacenta.com/standard)
