Elementary is an Apache-2.0 data observability tool built for dbt projects: a dbt package and CLI collect test results and run anomaly detection on freshness, volume, and custom metrics, with Elementary Cloud adding column-level lineage, ML monitors, and incident workflows.
The package runs during dbt invocations through an on-run-end hook, writing logs and metrics into its own schema in your warehouse; the CLI generates reports and sends alerts. There is no server in the open-source path. Elementary Cloud adds the hosted platform, lineage, ownership tagging, and incidents.
How Elementary answers the questions Data Quality turns on.
| How it works | |
| Authoring model | dbt YAML, because the tests are dbt tests, anomaly and schema tests are declared beside a model like any other test and inherit dbt's severity model. A dbt project is the unit of observability, so data arriving outside dbt is outside the picture |
| Detection model | Learned baselines rather than thresholds, every anomaly test takes a training set, a detection set and an algorithm, buckets rows by a timestamp field and compares recent buckets against earlier ones. Alongside that it simply collects the pass or fail of every dbt test that already existed |
| Built-in monitors | Five anomaly tests plus schema checks (volume, freshness, column anomalies over metrics like null counts and value lengths, dimension anomalies over the frequency of values in chosen fields, and an all-columns variant picking monitors by data type) and it harvests results from dbt's own tests, dbt-utils, dbt-expectations and custom SQL |
| Prevention or detection | Whatever dbt does: these are dbt tests, so severity decides whether a failure errors or warns and a failing test fails the run. In practice the anomaly tests run against data that has already landed, which makes the posture detection with prevention available rather than the other way round |
| Lineage | Column-level from source through to BI, and Cloud only, the open-source package has the dbt graph and nothing above it, with impact analysis and root cause arriving on the paid platform |
| Alerts and delivery | Slack, Microsoft Teams, PagerDuty, Opsgenie, Jira, Linear and webhooks, configurable per test or per model rather than one firehose |
| Incidents and ownership | Incident management in Cloud: open issues carrying a status and an assignee, with ownership and criticality tagging so an alert reaches the team that owns the model rather than the channel everyone muted |
| Running it | |
| What you run | Inside dbt: an on-run-end hook collects run artifacts and the tests execute during dbt test, writing logs and metrics into Elementary models in a schema of their own in your warehouse. No server at all in the open-source path; Elementary Cloud is the hosted platform above it |
| Connections | |
| Connectors | Seven warehouses, and only the ones dbt itself reaches, Snowflake, BigQuery, Redshift, Databricks, Postgres, Athena and ClickHouse. There is no connector layer of its own, which is the architecture rather than a gap |
| Cost | |
| Billing unit | Seats and monitored tables together, editor seats, viewer seats from Enterprise upward, and a table allowance with an overage per additional thousand: Scale at 10 editors and 1K tables, Enterprise at 20 editors plus 40 viewers and 3K, Unlimited at unrestricted seats and 3K. No figures are published, and the 30-day trial lifts every limit |
vs Elementary: Commercial · Subscription · Operational complexity: Medium
vs Elementary: Commercial · Subscription · Operational complexity: Medium
vs Elementary: Self-hosted · Free · Scala