comparison6 min read

dbt Advanced CI Compare Changes: How It Works and Alternatives

dbt Cloud's compare changes feature shows row and column diffs in your PR — if you're on the right plan. How it works, its limits, and four alternatives.

dbt Cloud's Advanced CI "compare changes" feature shows you, inside a pull request, how the data produced by your modified models differs from production — added, modified, and removed rows and columns. It is genuinely useful, and it requires dbt Cloud's enterprise-tier plans. This guide explains how it works, where its limits are, and the alternatives for everyone else.

For years, dbt CI answered the question "does this change build and pass tests?" but not the question reviewers actually care about: "what does this change do to the data?" A SQL diff that looks innocuous can drop half the rows in a revenue model, and a green test suite will not necessarily catch it if no test asserts the thing that broke. Advanced CI's compare changes feature closes that gap natively in dbt Cloud, and credit where due — it is a well-integrated answer to a real problem.

How Does Compare Changes Work?

When a CI job runs with compare changes enabled, dbt Cloud builds the modified models into the CI schema as usual, then compares those CI-built relations against their production counterparts. The results surface directly in the pull request: which rows were added, modified, or removed, and which columns changed. A reviewer evaluating a model refactor can see at a glance that the change is value-neutral — or that it quietly altered 12% of rows in a downstream-critical table — without leaving the PR. The official documentation covers setup and configuration.

This works because dbt Cloud already controls the whole loop: it knows which models changed (state comparison), it builds them in CI, it knows where production lives, and it owns the PR integration. That vertical integration is the feature's biggest strength — there is nothing to wire together.

What Does It Cost and What Are the Limits?

As of June 2026, Advanced CI is available on dbt Cloud's enterprise-tier plans. Packaging changes over time, so confirm current plan requirements with dbt directly before making a decision based on this article. Beyond price, two structural limitations are worth stating factually, not as criticism but as fit-finding:

  • It is tied to dbt Cloud. Teams running dbt-core with their own orchestration — or transformation pipelines that are not dbt at all — cannot use it. The feature is part of dbt Cloud's CI product, not a standalone tool.
  • Comparisons run inside dbt Cloud's CI surface. The diff happens in dbt Cloud's job infrastructure and reports into its PR integration. If your review process lives elsewhere — a different CI system, an agent-driven workflow, a custom approval gate — you consume the results where dbt Cloud puts them.
  • Compute is real. Comparing CI relations against production means running comparison queries in your warehouse; teams with very large models should think about which models genuinely need row-level comparison on every PR.

Who Should Just Use It?

If you are already on an eligible dbt Cloud plan and your transformation workflow lives in dbt Cloud end-to-end, turning on compare changes is close to free in effort terms and the PR-native experience is excellent. The rest of this article is for the larger group: teams on dbt-core, teams on lower dbt Cloud tiers, teams with non-dbt pipelines, and teams whose review workflow needs to end in something machine-actionable rather than a report.

Alternative 1: dbt-audit-helper in Any CI Runner

dbt Labs' own dbt-audit-helper package (Apache-2.0) gives you compare_relations, compare_all_columns, and compare_row_counts macros that compile to plain SQL. Run them in GitHub Actions, GitLab CI, Jenkins — anywhere you can invoke dbt. You get the core of the comparison capability with zero platform dependency; what you do not get is the packaging. There is no PR-native UI, no automatic state detection of which models to compare, and no visualization — you script which relations to diff and how to post the results. For disciplined teams, that is an afternoon of CI glue. For teams that want it to just work, the glue is the product you are not paying for.

Alternative 2: Recce — Open-Source PR Data Review

Recce (Apache-2.0) is the closest open-source analog to compare changes for dbt projects. It provides row-count, profile, value, top-k, and histogram diffs between your dev/CI environment and a base environment, wrapped in a review UI designed for pull requests. A cloud tier adds a hosted PR bot; as of June 2026 there is a free tier with monthly review limits — see current pricing. If your gap is specifically "I want compare changes but I am not on an enterprise dbt Cloud plan," Recce is the first thing to evaluate. It remains dbt-centric, so non-dbt pipelines are out of scope.

Alternative 3: SQLMesh table_diff

If you are evaluating transformation frameworks more broadly, SQLMesh (Apache-2.0) builds diffing in: its table_diff command compares tables or environments with join-key-level statistics, and its virtual data environments make change-versus-production comparison cheap by construction rather than a bolted-on CI step. This is an alternative at the framework level, not a plugin for your existing dbt project — relevant if a migration is already on your roadmap, irrelevant if it is not.

Alternative 4: Data Workers' Data Guardrail Agent

The Data Guardrail Agent takes a different shape: agent-driven data-change review that is warehouse-generic. It reviews changes on Snowflake, BigQuery, PostgreSQL, and Databricks using plain SQL and INFORMATION_SCHEMAno dbt requirement, which is the key differentiator in this list. It runs progressive, cost-aware checks (cheap structural checks first, deeper comparisons only when warranted) and concludes with a risk verdict plus machine-actionable remediation handoffs, so the output can gate a merge or trigger a fix rather than waiting for a human to interpret a diff table.

Because it runs as an MCP server, it plugs into Claude Code, Cursor, or a CI pipeline — wherever the change is being made. For teams whose pipelines span dbt and non-dbt surfaces, or whose review process is becoming agent-driven end-to-end, this covers the territory that dbt-Cloud-bound tooling structurally cannot. The product page covers the rest of the Data Workers swarm it belongs to.

Comparison Table

OptionRequires dbt Cloud enterprise tier?dbt required?Where review happensOutput
dbt Advanced CI compare changesYes (as of June 2026 — confirm with dbt)Yes (dbt Cloud)dbt Cloud CI + PR integrationRow/column adds, modifications, removals in the PR
dbt-audit-helperNo (Apache-2.0)Yes (dbt-core fine)Any CI runner; you build the reportingSQL comparison results
RecceNo (Apache-2.0 + cloud tier)YesReview UI + optional cloud PR botRow-count/profile/value/top-k/histogram diffs
SQLMesh table_diffNo (Apache-2.0)No (SQLMesh instead)SQLMesh CLI/environmentsJoin-key diff statistics
Data Guardrail AgentNoNoClaude Code, Cursor, or CI via MCPRisk verdict + machine-actionable handoffs

Which Alternative Fits Your Team?

  • On an eligible dbt Cloud plan already: use Advanced CI. It is the lowest-friction option when you qualify for it.
  • dbt-core with existing CI and engineering capacity: dbt-audit-helper. Free, vendor-neutral, and the glue is straightforward.
  • dbt project, want PR-native review without the enterprise tier: Recce, starting with the open-source toolkit.
  • Framework migration already in motion: SQLMesh's built-in table_diff and virtual environments.
  • Mixed or non-dbt stack, or agent-driven workflows: the Data Guardrail Agent — warehouse-generic review with verdicts that downstream automation can act on.

dbt Cloud's compare changes deserves its reputation: it answers the right question in the right place. The fair criticism is not of the feature but of its boundary — it serves teams inside dbt Cloud's enterprise tiers, and the data-change-review problem does not stop at that boundary. Whether you close the gap with open-source macros, a PR review toolkit, a framework with diffing built in, or an agent that hands its verdict to the next step in your pipeline, the important thing is that "what did this change do to the data?" gets answered before merge, not after the incident. More guides at resources.

Go from data platform to
agentic platform.

With autonomous AI agents working across your entire data stack — MCP-native, open-source, deployed in minutes.

Book a Demo →

Related Resources