The summary.
DECLARING THE GRAIN IS THE MOST IMPORTANT MODELLING DECISION
What one row represents. Without it you get rows at mixed levels and totals that double-count.
NEVER SUM A RATIO
Store the numerator and denominator and compute at query time. Summing ratios produces meaningless numbers, constantly.
KEEP RAW DATA UNMODIFIED
So processing can be corrected and rerun. Sources frequently cannot be re-read, and a transformation bug otherwise destroys the original.
DECIDE PER ATTRIBUTE HOW CHANGE IS HANDLED
A corrected spelling and a genuine relocation warrant different treatment. Test that a report for a past period does not change when a dimension is updated.
RECORD BOTH WHEN AN EVENT OCCURRED AND WHEN IT WAS RECORDED
It allows reporting as-of any point and explains why a figure changed. And reverse rather than delete, so the audit trail survives.
ONE DEFINITION PER METRIC, DOCUMENTED, WITH EXCLUSIONS STATED
Most disputes are about what was excluded — test accounts, refunds, internal usage.
STORE EVERYTHING IN ONE TIME ZONE, AND SAY WHICH
Mixed time zones produce errors that are extremely hard to trace.