concept

Attribute History Strategy

The per-attribute decision about whether history is overwritten, versioned or kept alongside the current value, which is a business question rather than a technical one.

When a customer moves from one region to another, last year's sales can be reported against the old region or the new one. Both are defensible and they give different numbers. The dimension design is where that choice is made, and it is frequently made by default rather than by decision.

Overwriting keeps only the current value, so all history restates — this year's regional split changes retrospectively when someone moves. Versioning adds a new row with validity dates and leaves old facts pointing at the old version, so history is preserved as it was. Keeping both current and previous as separate columns supports "sales by the region they were in then, and by the region they are in now" side by side.

The decision is per attribute, not per dimension: a corrected spelling should overwrite, a genuine relocation should version, and a sales territory may need both. Getting this wrong is the most common cause of a report whose historical numbers change between runs — which erodes trust in the whole warehouse faster than an outage does.