---
title: "Large dbt sources that nothing references | Metacenta"
description: "A large dbt source that no model, exposure or metric references is ingested and stored for nothing. How we measure its share, and when to keep it."
url: "https://metacenta.com/rules/catalog-large-unused-source"
updated: "2026-10-14"
tokens: 684
---

Lineage integrity · rule catalog-large-unused-source

# Large dbt sources that nothing references

A Metacenta review checks this under the rule **Large ingested sources are referenced**. Everything below applies whether or not you ever commission one.

## What this rule checks

This rule flags a declared dbt source holding at least 10% of the storage `catalog.json` measured, when nothing in the project references it. That means no model, exposure, metric or semantic model. At 25% or more we rate it high severity. The rule declines when fewer than 10 relations were measured.

## Why it matters

Its ingestion and storage are paid for on every cycle, whether anything reads it or not. If a tool outside dbt reads it, that dependency is undeclared. The next person to change the ingest has no way to find it.

## How to fix it

**Settle what reads the largest unreferenced sources.** Confirm what reads the source. Declare the model or exposure that does, and stop ingesting the table if nothing does.

## When it is fine to leave

A raw table kept for audit, replay or a retention period is read rarely by design. So is a landing table another tool reads directly. Tell us which applies, and the finding comes out of your report.

## What we need to check it

`manifest.json` and `catalog.json`, which `dbt docs generate` writes. The adapter must report sizes or row counts: Snowflake and BigQuery do, DuckDB does not. The finding is medium confidence, because a reader outside dbt appears in neither file.

## Published rules it corresponds to

**[dbt_project_evaluator](https://dbt-labs.github.io/dbt-project-evaluator/)**, rule `fct_unused_sources`. Ours checks a subset of what it flags; theirs is stricter. dbt Labs' rule flags every source nothing references. This one flags only those large enough to be a material share of the storage the catalog measured, and only where the adapter reported sizes, so theirs finds strictly more.

This means our check corresponds to their rule. It does not mean the publisher reviewed or endorses it.

[Ask about a review](https://metacenta.com/enquire?src=rule-catalog-large-unused-source&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)
