Rectangle Decomposition
Rectangle Decomposition creates stable reporting intervals from multiple independently historized attributes.
Multiple bitemporal attributes cannot be safely projected into one row without alignment.
An entity can have many independently historized attributes stored as attribute rows. Each attribute can have its own valid-time and visible-time history.
This pattern is commonly used when multiple bitemporal attributes must be projected into a single reporting entity.
When those attributes are projected into one reporting row, the result needs one shared bitemporal interval. Without decomposition, the output can contain overlapping or ambiguous historical states.
Try this Rectangle Decomposition case in Target Table Validation
Use these sample target tables to test the validator:
- Copy one of the target tables below.
- Open Target Table Validation.
- Paste the copied table as your target output.
- Check whether overlapping attribute projections were decomposed.
Each attribute creates its own valid-time and visible-time boundaries.
Attributes can evolve independently. The reason for different histories is often source-specific and not obvious. Rectangle Decomposition does not explain why the histories differ — it makes them safely reportable.
The pattern preserves the covered bitemporal area, decomposes it into atomic regions with stable attribute combinations, and can then compact neighbouring regions with identical resolved values.
Decompose first, resolve attributes, then compact if possible.
Validate that the projected output is bitemporally stable.
Rectangle Decomposition turns independent attribute history into one reportable history.
Without Rectangle Decomposition, the same entity and reporting date can produce multiple possible attribute combinations.
With decomposition, each output row represents one entity, one bitemporal rectangle and one stable historical truth.
Explore bitemporal alignment problems in the Workbench.
Use the Historical Modeling Workbench to reason about bitemporal overlaps, temporal joins, coverage gaps and stable reporting intervals.
Open Historical Modeling Workbench →