What is the best data quality and data observability tool for a dbt project?

The best data quality and data observability tool for a dbt project keeps your dbt tests as the gate inside dbt build, then profiles every table dbt produces, generates the tests nobody wrote, monitors freshness, volume, and schema, and shows results on a dashboard. It runs as SQL in your warehouse, so no rows leave.

Key points

  • dbt ships four built-in generic data tests (unique, not_null, accepted_values, relationships), and in dbt build a failing test with error severity makes the models downstream of it skip.
  • dbt-expectations, now a Metaplane-maintained fork of the original calogica package, adds about 60 Great Expectations-style tests to dbt, each one attached to a model by hand.
  • Elementary's dbt package adds volume, freshness, and column anomaly tests, plus schema-change tests, all run as dbt tests; Boomi acquired Elementary on October 19, 2026, and Elementary says its open-source projects will continue to be maintained.
  • Datafold and Recce compare a pull request's dbt models against production before merge; they review code changes rather than watch production tables between releases.
  • DataOps TestGen tests the tables dbt builds, not the dbt models themselves: it connects to the warehouse, profiles 55 column characteristics, and generates tests from 34 test types, running them as SQL in place.

This page compares tools for a dbt project. Whether you need one at all is answered in when dbt tests are enough. How TestGen sits next to dbt is in how TestGen fits into a dbt project.

What dbt gives you natively

dbt ships four built-in generic data tests: unique, not_null, accepted_values, and relationships. In dbt build, a failed test with error severity skips the models downstream of it. Keep that gate. dbt-expectations, now a Metaplane-maintained fork, adds about 60 more test macros (checked October 2026).

The limit is typing. Every test is one you attach to one model. In DataKitchen’s analysis of 849 community comments, the top reason engineers don’t test is that nobody gives them the time.

Tools worth considering

Vendor claims come from each vendor’s own docs and pricing pages, checked October 21, 2026. Price estimates are DataKitchen’s, for 10 users and 1,000 tables.

ToolProfilingGenerated data testsObservability monitorsData quality dashboardsRuns in your warehouseOpen sourcePrice basis
DataOps TestGen55 column characteristicsYes, 34 test typesFreshness, volume, schemaScorecardsYes, SQL in placeApache 2.0Free for one connection; Enterprise per user and connection
dbt tests + dbt-expectationsNoNo, attached by handSource freshnessNoYesdbt-expectations Apache 2.0Free
ElementaryPartialNo; Cloud adds automated monitorsVolume, freshness, and column anomaly tests; schema-change testsStatic report; UI in CloudYes, as dbt testsdbt package Apache 2.0Package free; Cloud est. $80K-$150K
SodaIn Soda CloudNo, you write checksChecks you write; ingests dbt test resultsIn Soda CloudYesSoda Core Elastic License 2.0Free, Team $750 a month, Enterprise custom
DatafoldYesPartialDiffs modified models in CIPR comment and appQueries your warehouseNoEst. $100K-$180K
RecceProfile diffs in PR reviewNoPR diffs onlyPR summaryQueries your warehouseApache 2.0OSS free; Cloud est. $0-$3K

The profiling and generated-test entries for Elementary and Datafold come from DataKitchen’s comparison pages, reviewed June to October 2026.

Who should pick what

Pick Elementary if you want monitoring that lives inside your dbt project, configured in the same YAML. It reads dbt run results natively, which TestGen does not. Boomi bought Elementary on October 19, 2026, and Elementary says its open-source projects will continue to be maintained. Pick Datafold or Recce for pull request review. They show what a code change does to the data before merge, a job TestGen doesn’t do. Pick Soda if you already write SodaCL contracts and want dbt results in the same UI.

Pick TestGen if the gap is coverage. TestGen tests the tables dbt produces. It doesn’t read your models or your manifest. It profiles every column, generates the tests, and monitors the tables between runs. DataKitchen estimates generation covers about 80 percent of the tests you need; business rules stay yours. For how it compares on authoring, see TestGen vs dbt tests and Great Expectations.

The core profiling, testing, and monitoring engine is free and open source. Enterprise adds team access, security, Commercial Pharma tests, source-data controls for AI, and support. Open source covers one user, one database connection, one project, and unlimited tables. Enterprise is $100 per user per month plus $100 per database connection per month. TestGen works with 14 databases.

Documentation: Connect your Data, Access Requirements, Run Profiling and Tests (API), DataOps Observability dbt Core agent

Frequently asked questions

Short answers to the follow-up questions people ask next.

Can I use TestGen alongside dbt's native tests?

Yes. Keep your dbt tests as the gate inside dbt build, where a failed test with error severity makes downstream models skip. DataOps TestGen connects to the same warehouse, profiles the tables dbt builds, and generates tests and monitors that run there as SQL. dbt guards the models you wrote tests for; TestGen covers the columns nobody had time to test.

What does a dbt data quality tool cost for a small team?

It can cost nothing. dbt's built-in tests, dbt-expectations, and Elementary's dbt package are free, and open-source TestGen is free for one user, one database connection, and one project, with unlimited tables. TestGen Enterprise is $100 per user per month plus $100 per database connection per month. Soda listed a Team plan at $750 a month in October 2026; Datafold and Elementary Cloud quote on request.

Does any data leave my environment?

No. DataOps TestGen runs profiling, tests, and monitors as SQL inside your warehouse, the same one dbt builds into, and TestGen runs on your own infrastructure. TestGen stores computed results plus, for display, the most frequent values and the minimum and maximum text values that profiling records. Grant TestGen a read-only user, because a custom SQL test runs whatever SQL you write.

Does TestGen read my dbt models or manifest?

No. DataOps TestGen tests the tables and views dbt produces in the warehouse; it does not parse dbt's SQL, YAML, or manifest.json. The DataKitchen product that reads dbt artifacts is DataOps Observability, whose dbt Core agent parses run_results.json and manifest.json after each run and shows dbt runs next to the rest of the pipeline.

Is Elementary still a safe choice for a dbt project?

It still works. Boomi acquired Elementary on October 19, 2026, and Elementary's announcement says its open-source projects remain available and will continue to be maintained. The open-source dbt package keeps running in your project. What changed is who owns the roadmap and the hosted Elementary Cloud product, so read the next few release notes before you commit.

Try it on your own data

DataOps TestGen is free and open source. Profile a table and generate its tests this afternoon.