Retail Star Schema ELT - Data Quality Report

Run UTC: 2026-05-05T08:04:22+00:00
DB: /home/runner/work/python-elt-quality-pipeline/python-elt-quality-pipeline/data/processed/retail_star_schema.duckdb
Total checks
21
Passed
21
Failed
0
Generated
2026-05-05
Check Status Failed rows Threshold Details
mart.dim_customers__rowcount_floor PASS 0 0 dim_customers should have at least 1 row
mart.fct_sales__rowcount_floor PASS 0 0 fct_sales should have at least 1 row
mart.fct_sales__sales_id__not_null PASS 0 0 sales_id should never be NULL
mart.fct_sales__sales_date__not_null PASS 0 0 sales_date should never be NULL
mart.fct_sales__customer_sk__not_null PASS 0 0 customer_sk should never be NULL
mart.fct_sales__product_sk__not_null PASS 0 0 product_sk should never be NULL
mart.fct_sales__store_sk__not_null PASS 0 0 store_sk should never be NULL
mart.fct_sales__salesperson_sk__not_null PASS 0 0 salesperson_sk should never be NULL
mart.fct_sales__total_amount__not_null PASS 0 0 total_amount should never be NULL
mart.fct_sales__sales_id__unique PASS 0 0 sales_id should be unique in fct_sales
mart.fct_sales__customer_sk_fk__references_dim_customers.customer_sk PASS 0 0 All customer_sk values in fct_sales should exist in dim_customers.customer_sk
mart.fct_sales__product_sk_fk__references_dim_products.product_sk PASS 0 0 All product_sk values in fct_sales should exist in dim_products.product_sk
mart.fct_sales__store_sk_fk__references_dim_stores.store_sk PASS 0 0 All store_sk values in fct_sales should exist in dim_stores.store_sk
mart.fct_sales__salesperson_sk_fk__references_dim_salespersons.salesperson_sk PASS 0 0 All salesperson_sk values in fct_sales should exist in dim_salespersons.salesperson_sk
mart.fct_sales__campaign_sk_fk__references_dim_campaigns.campaign_sk PASS 0 0 All campaign_sk values in fct_sales should exist in dim_campaigns.campaign_sk
mart.fct_sales__total_amount__non_negative PASS 0 0 total_amount should be >= 0
mart.fct_sales__sales_date__not_future PASS 0 0 sales_date should not be in the future (beyond 1 day)
mart.fct_sales__total_amount__not_absurd PASS 0 0 total_amount should not exceed 1,000,000 (sanity check)
analytics.mart_store_daily__rowcount_floor PASS 0 0 mart_store_daily should have at least 1 row
analytics.mart_store_daily__revenue__non_negative PASS 0 0 revenue should be >= 0
analytics.mart_campaign_perf__campaign_name__not_null PASS 0 0 campaign_name should not be NULL (dim join should resolve)