Grain Declaration
Stating exactly what one row of a fact table represents, before any column is chosen, because every later decision depends on it.
The grain is the answer to "what does one row mean?" — one order line, one shipment, one daily balance per account. It has to be declared first and stated in one sentence, because the grain determines which dimensions can attach and which measures can be summed.
Getting it wrong produces errors that are hard to detect and easy to propagate. Mixing grains in one table — some rows per order, some per line — makes every aggregation wrong in a way that looks plausible. Attaching a measure at the wrong grain produces double counting: an order-level shipping charge repeated on every line, then summed, inflates cost by the average line count.
The related discipline is classifying each measure by how it may be aggregated. Additive measures sum across every dimension. Semi-additive ones — a balance, an inventory level — sum across some dimensions and not across time. Non-additive ones, such as a ratio, cannot be summed at all and must be recomputed from their components. A model that does not record which is which will eventually have a percentage summed in a dashboard.