DATA OPS

Agent-driven dbt cost-vs-usage triage for unused models

An agent cross-references dbt models against Snowflake query history to find expensive models that haven't been read in 30+ days, decides keep vs. deprecate.

CategoryData Ops
Enginepaperclip
Difficultyadvanced
Triggerschedule
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerMonthly schedule
  • ActionPull model inventory from GitLabGitLabGitLab
  • ActionQuery Snowflake cost and access historySnowflakeSnowflake
  • LogicAgent decides keep vs. deprecate per model
  • ActionFile ranked Linear deprecation ticketsLinearLinear
  • OutputSend savings rollup to SlackSlack

What it does

Joins three signals — the dbt model list, Snowflake warehouse cost per model build, and Snowflake `ACCESS_HISTORY` showing who actually queries each table. An agent reasons over models that are both costly to build and unread for 30+ days, distinguishing true dead weight from rarely-but-critically-used tables, then files Linear deprecation tickets ranked by potential savings with a written rationale per model.

When to use it

Run monthly when you want to cut warehouse spend but need judgment, not just a threshold — some unread models are quarterly reports, others are genuinely abandoned. The agent's reasoning is what makes it more than a SQL query.

How it works

  1. 1A monthly schedule starts the triage.
  2. 2Pull the model inventory from the dbt repo in GitLab.
  3. 3Query Snowflake for build cost and last-access date per model.
  4. 4The agent evaluates each costly-and-unread model, weighing access patterns and naming hints to recommend keep or deprecate.
  5. 5For deprecate calls, create a Linear ticket with savings estimate and the agent's rationale.
  6. 6Send the Chairman a Slack rollup of projected monthly savings.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect SnowflakeWarehouses, queries, shares.
  3. 3
    Connect LinearIssues, projects, cycles, triage.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.