// the find
calogica/dbt-expectations
Port(ish) of Great Expectations to dbt test macros
dbt-expectations ports the Great Expectations testing vocabulary into dbt macros, so you can write data quality assertions directly in your YAML schema files without running a separate Python process against your warehouse. It covers the full GE test suite: nulls, ranges, regex matching, aggregate bounds, distributional checks, and cross-table comparisons. The README leads with an abandonment notice — the maintainer has stopped active development.
The test vocabulary is genuinely useful and more expressive than dbt's built-in generic tests — things like `expect_column_values_to_be_within_n_moving_stdevs` or `expect_table_aggregation_to_equal_other_table` would take real effort to write yourself. Cross-warehouse support is solid: Postgres, Snowflake, BigQuery, DuckDB, and Trino all covered via adapter dispatch. The integration test suite runs against real databases via Docker, so the macros are actually verified, not just documented. The naming convention maps directly to Great Expectations, so teams already familiar with GE can adopt it without learning a new vocabulary.
The project is explicitly unmaintained as of the README's own opening line — adopting it means owning it when dbt ships a breaking change. It only targets dbt 1.7.x and above, but there's no one to cut a release if dbt 1.8 or 1.9 breaks something. The distributional tests (`within_n_moving_stdevs`) generate expensive window function queries with no obvious way to configure materialization strategies, which can wreck performance on large tables. There's no alerting or result storage — tests pass or fail in the dbt run, and if you want trends over time you have to build that yourself.