Model Grain Before Metric Logic
Identify and document the grain of a dbt model before adding joins or metrics.
Grain is the sentence that prevents a model from lying politely. The mechanism Every useful model has a grain: one row per order, one row per customer per day, one row per subscription event. If you cannot say the grain, you cannot safely choose joins, tests, or aggregations. MECE thinking helps here: the model should represent mutually exclusive rows at a collectively understood level, not a mixture of order-level and customer-level facts. Why it works Most beginner dbt bugs are not syntax bugs; they are grain bugs. A left join to payments can multiply orders. A customer snapshot can duplicate…
Sign up free — one personalized lesson every day, matched to your role and goals.
Already have an account? Sign in