The single most useful modeling question: what does one row mean? That answer is the table's grain.
- One row per order — totals live here.
- One row per order line — product-level analysis lives here.
- One row per customer per day — retention lives here.
Mixing grains in one table is where double-counting bugs are born. State the grain in the table name or its docs, and every downstream query starts from solid ground.