Context
dim_dates has no not_null or unique data test on date_day / date_id. The MetricFlow granularity: day config is not a data quality assertion — it tells the semantic layer how to interpret the time column, but it does not verify that the column contains no duplicates or nulls.
A date dimension with duplicate or null rows will cause fan-out in any fact-to-dim join that touches the time spine, silently inflating every time-series metric in the project.
This is a small, standalone fix but its blast radius if left unaddressed is large.
Acceptance criteria
Context
dim_dateshas nonot_nulloruniquedata test ondate_day/date_id. The MetricFlowgranularity: dayconfig is not a data quality assertion — it tells the semantic layer how to interpret the time column, but it does not verify that the column contains no duplicates or nulls.A date dimension with duplicate or null rows will cause fan-out in any fact-to-dim join that touches the time spine, silently inflating every time-series metric in the project.
This is a small, standalone fix but its blast radius if left unaddressed is large.
Acceptance criteria
date_day(ordate_id, whichever is the primary key) has anot_nulltestdate_day(ordate_id) has auniquetestdate_dayanddate_idexist, it is clear in the column docs which one is the primary key and only the primary key column has the uniqueness testdbt test --select dim_datespasses with no failures