Data Stack Index / v 02.06
Verified 2026·05·30
Send a correction
Quality & testing · primary Self-hosted only Open source

dbt-expectations.

Metaplane (Datadog)
Founded 2020
Status · ● active

Open-source dbt package adding 50+ Great Expectations-style assertions as native dbt tests that run in your own warehouse.

Pricing starts OSS · paid tiers
Deployment Self-hosted only
License Open source
Free tier Entirely free. An Apache-2.0 dbt package installed from the dbt Package Hub; no paid tier, no SaaS, no usage metering. The only cost is your own warehouse compute when the generated test SQL runs.
Persona analytics engineer · data engineer
Company size startup → scaleup → mid market → enterprise
dbt integration Native
Warehouses postgres · snowflake · bigquery · duckdb +2
OpenLineage none
Founded 2020
HQ
Last verified 2026·05·30
01
Verdict

Where it fits — and where it doesn't.

● Ideal for

dbt-centric analytics-engineering teams that already run dbt test in CI and want a broad library of declarative, in-warehouse assertions — value ranges, regex and pattern matching, schema shape, and distributional bounds (mean, median, stdev, quantiles) — with zero added cost or infrastructure. It is the natural first step up from dbt's four built-in tests (unique, not_null, accepted_values, relationships) for a team that wants richer checks without leaving the dbt workflow.

○ Avoid if

You need ML-based anomaly detection, learned thresholds, automatic freshness or volume baselines, lineage, incident management, or alerting out of the box — dbt-expectations has none of these; it emits pass/fail and nothing else. It is also not for teams that aren't on dbt at all.

02
Strengths & weaknesses

The honest scorecard.

  • [+] Free and Apache-2.0 with no paid tier, no SaaS, and no lock-in — the only cost is your own warehouse compute
  • [+] A library of 50+ assertions far beyond dbt's four built-ins (value ranges, regex, schema shape, distributional bounds)
  • [+] Fully native to dbt — declared in YAML, run by dbt test / dbt build, inheriting dbt severity levels, CI, and run artifacts; the current fork release is dbt Fusion-compatible
  • [+] Push-down execution across Postgres, Snowflake, BigQuery, DuckDB, Spark, and Trino
  • [−] No ML or anomaly detection and no learned baselines — every threshold is hand-specified, so it cannot catch unknown-unknowns
  • [−] No alerting, scheduling, UI, incident management, lineage, or catalog — purely a test library; operations must be bolted on with an orchestrator or observability tool
  • [−] Maintenance risk — the original calogica repo is unmaintained since December 2024; continuity depends on the Metaplane (Datadog) fork
  • [−] Authoring is YAML-plus-SQL only with a dependency on dbt-date; complex assertions get verbose and there is no GUI for non-engineers
03
Editorial

What dbt-expectations actually is.

What dbt-expectations is

dbt-expectations is a dbt package — a library, not a platform. It ports the assertion style popularised by the standalone Great Expectations framework into native dbt generic tests: 50-plus pre-built checks, declared in dbt YAML, that compile to SQL and run inside dbt test or dbt build against your own warehouse. The library spans row-count and volume checks, freshness windows, schema-shape assertions, value ranges and sets, regex and LIKE pattern matching, and distributional bounds (mean, median, standard deviation, quantiles, and N-standard-deviation envelopes).

What it is not: there is no UI, no scheduler, no alerting, no learned baseline, and no lineage. A test passes or fails, and that result flows through dbt’s normal machinery — severity levels, CI exit codes, and run_results.json artifacts.

Where it fits

It extends dbt’s four built-in tests for teams that want richer assertions without leaving the dbt project — a lighter, code-only alternative to soda or the full Great Expectations framework. Against elementary it adds no anomaly detection or reporting UI; against bigeye, monte-carlo, or anomalo it has no ML monitoring, lineage, or incident management. In practice it pairs with those tools rather than competing: several observability vendors document running dbt-expectations as the in-warehouse assertion layer beneath their platform.

On maintainership

The original package, by Calogica, was marked “no longer actively supported” in December 2024. Active development continues on a fork by Metaplane, which republished the canonical dbt Package Hub listing under its own namespace and keeps it current and dbt Fusion-compatible. Metaplane was acquired by Datadog in April 2025, so the practical maintainership chain today is Calogica (dormant) → Metaplane fork → a Datadog company. The licence never changed: it is Apache-2.0 and free.

How to evaluate it

Install the metaplane/dbt_expectations package, pick three or four checks your built-in dbt tests can’t express — a distributional bound on a key metric, a regex on an identifier column, a schema-shape assertion on a contract-like table — and wire them into the same CI that already runs dbt build. The evaluation question is narrow: does the assertion library cover the invariants you care about, and are you comfortable getting only pass/fail with no alerting or baselines on top?

04
Capability spec

All capabilities by cluster.

Quality & testing

Primary · strength 3/3
01 dbt-native
02 ML anomaly detection
03 Assertion-based testing
04 Pre-merge diffing
05 Schema drift detection
06 Freshness monitoring
07 Volume monitoring
08 Custom SQL checks
09 Circuit breaker
10 Data contracts
11 Column profiling
12 Runs in CI
13 Root cause analysis
14 Incident management
Test authoring yaml
Paradigm assertion based
Monitors at warehouse table · warehouse column · dbt model
05
Warehouses & integrations

Where it plugs in.

Native warehouse support

postgressnowflakebigqueryduckdbtrinodatabricks
01dbt — Native
02Airflow — None
03OpenLineage — none
04API access — none
05Terraform provider
06Public SDK
06
Pricing

The honest pricing breakdown.

Pricing model free forever
Charged per custom
Published ● Yes — listed on vendor site
Starts at $0 custom
Free tier ● Yes
OSS self-host ● Available

Free tier Entirely free. An Apache-2.0 dbt package installed from the dbt Package Hub; no paid tier, no SaaS, no usage metering. The only cost is your own warehouse compute when the generated test SQL runs.

07
Notable missing

What it doesn't do.

08
Strong at

Drill into one capability.

09
Alternatives & migrations

If not dbt-expectations, then what?

Common alternatives

Great Expectations → Largest open-source data-validation community by stars and contributors, with deep first-party Airflow, Dagster, and Prefect operator support ↔ dbt-expectations vs Great Expectations
Soda → SodaCL is one of the cleaner data-quality DSLs — readable, version-controllable, and expressive enough for both simple assertions and ML thresholds ↔ dbt-expectations vs Soda
Elementary → Fully open-source core is genuinely production-grade, not a trial ramp to a paid tier ↔ dbt-expectations vs Elementary
Datafold → Pre-merge data diffing is genuinely category-defining; no competitor does this as well ↔ dbt-expectations vs Datafold
See all 10 dbt-expectations alternatives, scored and compared →
10
Common questions

Quick answers.

Is dbt-expectations open source?
Yes. dbt-expectations is open source under the Apache-2.0 license, and can be self-hosted at no license cost. A paid managed tier is also offered.
How much does dbt-expectations cost?
dbt-expectations publishes pricing, starting around $0 custom. A free tier is available: Entirely free. An Apache-2.0 dbt package installed from the dbt Package Hub; no paid tier, no SaaS, no usage metering. The only cost is your own warehouse compute when the generated test SQL runs.
How is dbt-expectations deployed?
dbt-expectations is self-hosted — you run it in your own infrastructure.
Does dbt-expectations work with dbt and my warehouse?
It has a native dbt integration. dbt-expectations supports postgres, snowflake, bigquery, duckdb, trino, plus 1 more.

More quality & testing tools

Provenance.

Last verified 2026·05·30 against vendor documentation and, where possible, hands-on trial. Spot something off? Send a correction →