DATA OPS

dbt orphan model detector with Linear cleanup tickets

Scans your dbt manifest for models that no other model, exposure, or BI tool consumes.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerWeekly schedule
  • ActionFetch dbt manifest.json from GitLab repoGitLabGitLab
  • LogicBuild DAG, flag models with no downstream consumers
  • ActionQuery open Linear issues to dedupeLinearLinear
  • ActionCreate Linear cleanup ticket per new orphanLinearLinear
  • OutputPost orphan summary to SlackSlack

What it does

Parses the dbt `manifest.json` and walks the dependency graph to find models with zero downstream edges — no child models, no exposures, no metrics. These orphans usually cost warehouse spend without serving any dashboard or query. For each one it opens a Linear ticket tagged for cleanup, skipping models that already have an open ticket.

When to use it

Run it weekly to keep your dbt project from accumulating dead models after dashboards get retired or pipelines get refactored. Ideal for data platform teams who want deprecation work tracked instead of forgotten.

How it works

  1. 1A weekly schedule fires the run.
  2. 2Fetch the latest `manifest.json` artifact from the dbt repo in GitLab.
  3. 3Build the DAG and flag every model node whose downstream set is empty (excluding tagged seeds/snapshots).
  4. 4Query existing Linear issues to filter out orphans that already have an open cleanup ticket.
  5. 5Create one Linear ticket per new orphan with the model path, last-built time, and estimated monthly query cost.
  6. 6Post a summary count to the data-eng Slack channel.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect LinearIssues, projects, cycles, triage.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.