hardConceptDesignScenarioMidSeniorStaff
A customer moves from London to Manchester. Last quarter's regional sales report now shows different numbers. Why, and how do you stop it?
5 min readUpdated 2026-08-15
Answer
Short answer
The dimension was overwritten, so historical facts joined to it now report the customer's current region rather than the region they were in when they bought. Keeping history means versioning the dimension row and joining facts to the version that was current at the time, not to the customer.
Use dimensional modelling as the thread through the slowly changing dimensions and the report explanation: name the signal, then say what changes when it moves.
Was this answer helpful?
Likely follow-ups
- Which key does the fact table store, and why not the customer id?
- How would you answer both "sales by region then" and "by region now" from one model?
- What does this cost when the dimension has millions of rows and changes often?
- Where would you use type 1 deliberately?
Related questions
- In a modern columnar warehouse, would you still build a star schema or just use one wide table?mediumAlso on dimensional-modelling and grain6 min
- Two dashboards report different revenue for the same month. How do you find out why, and how do you stop it happening again?hardAlso on dimensional-modelling and grain6 min
- Analysts want yesterday's numbers to still match after a late-arriving correction. What does the warehouse have to record?hardAlso on warehousing7 min
- We sell to trade customers who each negotiate their own prices, and those prices change. Design the schema.hardAlso on surrogate-keys5 min