Quality is a process, not a hope. Cover dimensions + checks + ownership.
Quality dimensions (name a few)
- Completeness (nulls, missing partitions)
- Uniqueness (primary keys)
- Validity (ranges, enums)
- Consistency (cross-table reconciliation)
- Freshness / timeliness
- Accuracy (vs source of truth)
Practical checklist
1. Contracts at ingest (schema, required fields) 2. Tests in transform layer (dbt tests, Great Expectations, asserts) 3. Reconciliation counts/sums vs source 4. Quarantine bad rows instead of silent drops when possible 5. Alerts on freshness and test failures 6. Lineage / docs so consumers know meaning
Example outline
> For orders, I enforce order_id not null + unique, amount >= 0, and daily row count within 20% of yesterday. Failures page me before the dashboard refresh.
Fresher tip
Even in projects: assert schema, reject null keys, log dropped rows.
Interview tip: Pair one test type with one failure mode you prevented.