Every change, every entity, forever.
Queryable.
| unit_id | rent | status |
|---|---|---|
| 4B | $2,100 | OCC |
| 4C | $2,050 | OCC |
| 4D | $1,975 | VAC |
| unit_id | rent | status |
|---|---|---|
| 4B | $2,350 | OCC |
| 4C | $2,200 | VAC |
| 4D | $2,100 | OCC |
Your warehouse knows today. Ask what was true on June 14 and you get nothing.
Original lease terms. The rent before the mid-term adjustment. The technician before the reassignment. Normal audit questions your warehouse can't answer.
Historical Tracking makes "what was true when..." a normal SQL query.
What changes when your warehouse remembers
Point-in-time queries for every entity, natively
"Show me the rent roll as of March 31." A normal SQL query. Every entity queryable at any past moment, no reconstruction.
Audit conversations that end in one query, not ten
Every change timestamped, attributed, reversible. Compliance stops being a spreadsheet exercise.
Backtesting that trains on what was actually known
Train models on the state of the world at the time, not today's state projected backward. No more training on the future.
No CDC logic to maintain, ever
SCD Type 6 tables generate automatically, per entity, per integration. You query. We track. No effective-date columns to reason about, no breaking changes when a source system evolves.
Why building SCD Type 6 is easy to start and miserable to finish
The theory is well-known. Current rows, historical rows, effective-from, effective-to, change-type flags. A competent analytics engineer builds it for one entity in a week.
You have dozens of entities across every integration you've turned on.
The math doesn't work. Turn on the add-on and every entity across every source system is tracked the moment it lands.