Data Quality Frameworks
Expert in embedding quality validation into data pipelines as a dependency, not an afterthought.
When to Use This Skill
Use when:
- Building comprehensive data quality validation into pipelines
- Setting up Great Expectations suites and automated checkpoints
- Creating dbt test suites (schema tests, relationship tests, custom tests)
- Establishing data contracts between producer and consumer teams
- Monitoring data quality metrics, SLAs, and anomalies
- Debugging data quality failures or regressions
- Implementing layer-based validation (Bronze schema, Silver business rules, Gold aggregations)
- Blocking bad data from proceeding downstream
Core Capabilities
- Great Expectations - Build expectation suites, checkpoints, automated validation
- dbt Testing - Schema, relationship, and custom test strategies
- Data Contracts - Producer/consumer agreements (ODCS, datacontract-cli)
- Quality Monitoring - Continuous validation, metrics tracking, alerting
- Debugging - Root-cause analysis of data quality anomalies
- Layer-Based Validation - Schema (Bronze), rules (Silver), aggregation checks (Gold)
Framework References
For detailed implementation guidance, see:
Great Expectations
Use when: Building GE validation suites and checkpoints
Covers:
- Building comprehensive expectation suites
- Checkpoint configuration and automation
- Running validations and handling failures
- Integration patterns and alerting
dbt Testing
Use when: Creating dbt test suites
Covers:
- Schema tests (unique, not_null, accepted_values, relationships)
- Custom generic tests (reusable across models)
- Singular tests (specific business rules)
- Test coverage best practices
Data Contracts
Use when: Establishing producer/consumer agreements
Covers:
- Data contract specification format
- Schema definitions with PII classification
- Quality expectations and SLA definitions
- Contract versioning and evolution
- Validation against contracts
Automated Quality Pipeline
Use when: Orchestrating end-to-end quality validation
Covers:
- Building orchestrated quality pipelines
- Multi-table validation workflows
- Quality reporting and metrics
- Integration with Airflow/orchestrators
- Blocking pipelines on failures
Quick Decision Guide
| Goal |
Reference |
| Build GE validation suite |
Great Expectations |
| Add dbt tests to models |
dbt Testing |
| Define producer/consumer contract |
Data Contracts |
| Orchestrate multi-table validation |
Automated Quality Pipeline |
Quality Strategy
Layer-Based Testing
- Bronze (Schema): Validate schema, data types, null constraints
- Silver (Business Rules): Test foreign keys, categorical values, ranges
- Gold (Aggregations): Verify aggregation logic, metric calculations
Test Pyramid
- Most tests: Single column validations (fast, focused)
- Fewer tests: Cross-table relationships (slower, broader)
- Blocking vs Warning: Block bad data; warn on minor issues
Best Practices
Do's:
- ✅ Test early - Validate source data before transformations
- ✅ Test incrementally - Add tests as you find issues
- ✅ Document expectations - Clear descriptions for each test
- ✅ Alert on failures - Integrate with monitoring
- ✅ Version contracts - Track schema changes
Don'ts:
- ❌ Don't test everything - Focus on critical columns
- ❌ Don't ignore warnings - They often precede failures
- ❌ Don't skip freshness - Stale data is bad data
- ❌ Don't hardcode thresholds - Use dynamic baselines
- ❌ Don't test in isolation - Test relationships too
Common Pitfalls & Fixes
| Pitfall |
Fix |
| Testing only prod |
Run tests on dev first: dbt test --target dev |
| Generic thresholds |
Tailor tests to data characteristics |
| No alerting |
Integrate with monitoring; block failures |
| Outdated expectations |
Review and refresh expectations quarterly |
| Too many tests |
Focus on business-critical quality dimensions |
| Ignoring false positives |
Configure expectations to handle edge cases |
Dependencies
- data-pipeline-engineer - For pipeline orchestration and debugging
- dbt-transformation-patterns - For dbt project integration
- ops-manager - For monitoring dashboards and alerting (out of scope for this skill)
1---2name: data-quality-frameworks3description: Specialist in data quality validation frameworks—Great Expectations, dbt tests, data contracts. Builds comprehensive data quality gates into pipelines for reliability and trust.4---56# Data Quality Frameworks78Expert in embedding quality validation into data pipelines as a dependency, not an afterthought.910## When to Use This Skill1112Use when:1314- Building comprehensive data quality validation into pipelines15- Setting up Great Expectations suites and automated checkpoints16- Creating dbt test suites (schema tests, relationship tests, custom tests)17- Establishing data contracts between producer and consumer teams18- Monitoring data quality metrics, SLAs, and anomalies19- Debugging data quality failures or regressions20- Implementing layer-based validation (Bronze schema, Silver business rules, Gold aggregations)21- Blocking bad data from proceeding downstream2223---2425## Core Capabilities26271. **Great Expectations** - Build expectation suites, checkpoints, automated validation282. **dbt Testing** - Schema, relationship, and custom test strategies293. **Data Contracts** - Producer/consumer agreements (ODCS, datacontract-cli)304. **Quality Monitoring** - Continuous validation, metrics tracking, alerting315. **Debugging** - Root-cause analysis of data quality anomalies326. **Layer-Based Validation** - Schema (Bronze), rules (Silver), aggregation checks (Gold)3334---3536## Framework References3738For detailed implementation guidance, see:3940### [Great Expectations](references/great-expectations.md)4142**Use when:** Building GE validation suites and checkpoints4344Covers:4546- Building comprehensive expectation suites47- Checkpoint configuration and automation48- Running validations and handling failures49- Integration patterns and alerting5051### [dbt Testing](references/dbt-testing.md)5253**Use when:** Creating dbt test suites5455Covers:5657- Schema tests (unique, not_null, accepted_values, relationships)58- Custom generic tests (reusable across models)59- Singular tests (specific business rules)60- Test coverage best practices6162### [Data Contracts](references/data-contracts.md)6364**Use when:** Establishing producer/consumer agreements6566Covers:6768- Data contract specification format69- Schema definitions with PII classification70- Quality expectations and SLA definitions71- Contract versioning and evolution72- Validation against contracts7374### [Automated Quality Pipeline](references/automated-pipeline.md)7576**Use when:** Orchestrating end-to-end quality validation7778Covers:7980- Building orchestrated quality pipelines81- Multi-table validation workflows82- Quality reporting and metrics83- Integration with Airflow/orchestrators84- Blocking pipelines on failures8586---8788## Quick Decision Guide8990| Goal | Reference |91| :--- | :-------- |92| Build GE validation suite | [Great Expectations](references/great-expectations.md) |93| Add dbt tests to models | [dbt Testing](references/dbt-testing.md) |94| Define producer/consumer contract | [Data Contracts](references/data-contracts.md) |95| Orchestrate multi-table validation | [Automated Quality Pipeline](references/automated-pipeline.md) |9697---9899## Quality Strategy100101### Layer-Based Testing102103- **Bronze (Schema)**: Validate schema, data types, null constraints104- **Silver (Business Rules)**: Test foreign keys, categorical values, ranges105- **Gold (Aggregations)**: Verify aggregation logic, metric calculations106107### Test Pyramid108109- **Most tests**: Single column validations (fast, focused)110- **Fewer tests**: Cross-table relationships (slower, broader)111- **Blocking vs Warning**: Block bad data; warn on minor issues112113### Best Practices114115**Do's:**116117- ✅ Test early - Validate source data before transformations118- ✅ Test incrementally - Add tests as you find issues119- ✅ Document expectations - Clear descriptions for each test120- ✅ Alert on failures - Integrate with monitoring121- ✅ Version contracts - Track schema changes122123**Don'ts:**124125- ❌ Don't test everything - Focus on critical columns126- ❌ Don't ignore warnings - They often precede failures127- ❌ Don't skip freshness - Stale data is bad data128- ❌ Don't hardcode thresholds - Use dynamic baselines129- ❌ Don't test in isolation - Test relationships too130131---132133## Common Pitfalls & Fixes134135| Pitfall | Fix |136| :------ | :-- |137| Testing only prod | Run tests on dev first: `dbt test --target dev` |138| Generic thresholds | Tailor tests to data characteristics |139| No alerting | Integrate with monitoring; block failures |140| Outdated expectations | Review and refresh expectations quarterly |141| Too many tests | Focus on business-critical quality dimensions |142| Ignoring false positives | Configure expectations to handle edge cases |143144---145146## Dependencies147148- **data-pipeline-engineer** - For pipeline orchestration and debugging149- **dbt-transformation-patterns** - For dbt project integration150- **ops-manager** - For monitoring dashboards and alerting (out of scope for this skill)