# Great Expectations

> Declarative data quality testing framework

Great Expectations (GX) is an open-source Python framework for declaring, validating, and documenting data quality expectations inside pipelines.

Website: https://greatexpectations.io

## Use it when

- Quality checks belong in the pipeline as code: expectations are declared in Python and validated where Airflow or Dagster already runs.
- Checks should double as documentation: validation results render into Data Docs a human can browse.
- Data must not move: SQL sources validate inside the database, Spark validates with native functions, and pandas frames validate in memory.
- The gallery model helps: a large set of ready assertions for nullness, ranges, uniqueness, and distributions, with custom expectations where it stops.

## Think twice when

- Nobody writes enough tests: declared assertions catch only what someone thought to assert; Monte Carlo and Anomalo start from learned coverage instead.
- You want a managed offering: GX Cloud became part of the FICO Platform and stopped being publicly available in June 2026.
- Incident workflow matters: actions can post to Slack or email, but there is no triage, ownership, or status.

## How it runs

A Python library in your own process: a Data Context holds expectation suites, validation definitions pair them with batches, and Checkpoints run them with actions attached. SQL sources connect over SQLAlchemy (Snowflake, BigQuery, Postgres, and the rest), plus pandas and Spark dataframes. GX Core is Apache-2.0 and free.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (permissive) |
| SPDX identifier | Apache-2.0 |
| Deployment | Self-hosted, Managed, Hybrid |
| Workload | Batch |
| Operational complexity | Low |
| Pricing | Free, Subscription |
| Language | Python |
| Repository | https://github.com/fivetran/great_expectations |
| Documentation | https://docs.greatexpectations.io |
| Stars | 11.8k |

### Data Quality

| Attribute | Value |
| --- | --- |
| Authoring model | Python: an Expectation is a verifiable assertion, Expectations gather into a Suite, and a Validation Definition pairs a Suite with a Batch Definition so the pairing is explicit rather than implied. A Checkpoint runs one or more of those in production, and all of it hangs off a Data Context |
| Detection model | Declared assertions and nothing else, you state what must hold and a batch is validated against it. Nothing is learned, no baseline is kept and there is no comparison against yesterday; the model is the unit test applied to data, which is what every other row here is read against |
| Built-in monitors | Expectations rather than monitors: a gallery of assertions across columns and tables covering non-nullness, value ranges, set membership, uniqueness, row and column counts, types and distribution properties, with custom Expectations written where the gallery stops |
| Connectors | SQL through SQLAlchemy, with first-class methods for PostgreSQL, Snowflake, SQL Server, BigQuery, MySQL, Redshift and Databricks SQL and any other SQLAlchemy dialect by connection string, plus pandas and Spark dataframes in memory, which is also how Databricks is reached |
| What you run | In the process that already holds the data, a Python library validating a batch wherever the pipeline runs, commonly called from Airflow or Dagster. Against SQL it builds queries and executes them in the database, and against Spark it uses Spark-native functions, so the data is never moved |
| Prevention or detection | Prevention where the pipeline is wired for it, a Checkpoint returns Validation Results and the surrounding job decides what to do with them, so bad data is stopped at an ingestion boundary or before publication only if something branches on the outcome. The framework asserts; it does not halt anything itself |
| Lineage | None: it validates a batch and knows nothing about what produced it or what consumes it |
| Alerts and delivery | Actions attached to a Checkpoint and run every time it finishes, Slack, Microsoft Teams, email and PagerDuty actions ship, UpdateDataDocsAction pushes results into the documentation site, and custom Actions cover the rest |
| Incidents and ownership | No incident workflow at all, what exists instead is Data Docs, human-readable documentation generated from Expectation Suites and Validation Results, so the artefact is a browsable report rather than a ticket with an owner and a status |
| Billing unit | Nothing to pay: GX Core is Apache-2.0 and its stewards say it will always remain free. The paid tier that once sat above it is gone: GX Cloud became part of the FICO Platform and stopped being publicly available on 1 June 2026 |

## Capabilities

- [Data Quality](https://matca.io/capabilities/data-quality)

---

Source: https://matca.io/great-expectations
Last updated: 2026-08-31T11:40:48.023Z
