dbtGuard adds a lineage-aware cost guard to every dbt PR. It detects catastrophic scan patterns, estimates the downstream $ impact, and blocks the merge — before your CFO sees the bill.
Changing a model from materialized='incremental' to materialized='table' forces a full-refresh on every run — and propagates full-scan cost through every downstream model. No native tool flags this before the merge.
dbt's built-in Slim CI tells you which models changed. dbtGuard tells you what it costs — including every model downstream that inherits the scan.
Resolves the full downstream closure of every changed model using your dbt manifest — not just the model you touched.
Flags incremental→full-refresh switches, dropped partition filters, unfiltered table scans, and large-table fan-outs before they land in prod.
Uses your dbt catalog's num_bytes stats and BigQuery's $6.25/TiB on-demand rate. No dry-run needed — works in any CI.
Block merges that exceed a cost threshold or trigger high-severity patterns. Set rules per repo or across your whole org.
Point dbtGuard at your dbt artifacts and it handles the rest — lineage, cost math, pattern detection, and PR comment.
Pass manifest.json and catalog.json from your CI run. No BigQuery credentials needed for the free tier.
The lineage engine walks the upstream/downstream graph and identifies every model in the blast radius of your change.
Bytes scanned × $6.25/TiB per model, labeled exact (table) or estimated (incremental). Four catastrophic patterns checked.
A GitHub PR comment shows the full cost-diff. If org policy is breached, the check fails and the merge is blocked.
The PR comment and pattern detection are always free. The gating/policy layer is the paid tier — you only need it once you've seen what's in your DAG.
WHERE order_date >= DATE_SUB(...)guard was dropped. BigQuery will scan the full 3.8 GB on every execution.