ACID transactions
ACID transactions are the four guarantees that keep database changes correct: atomicity, consistency, isolation, and durability. They make s...
Read definitionLate arriving dimensions occur when a fact reaches the warehouse before the matching dimension row exists. Kimball's standard fix is an inferred member: a temporary dimension row with a real surrogate key that is filled in later.
A late arriving dimension is a dimension row that arrives after a fact row that needs it. The fact is ready to load, but the descriptive context does not exist yet.
Example: a sale arrives with customer number C-8842. The sale should be loaded into the sales fact table now, but customer C-8842 has not yet arrived in the customer dimension because the CRM sync runs later.
From the fact-table point of view, the same problem is often called an early arriving fact. The fact is early, or the dimension is late. The modelling problem is the same: the fact needs a valid dimension key.
A fact table in a star schema normally stores surrogate keys to its dimensions. The sales fact row points to a customer key, product key, date key, store key, and so on.
If the customer dimension row does not exist yet, the ETL process cannot look up the customer surrogate key. You have three bad options if you do nothing:
drop the fact and lose the sale
delay the fact and lose freshness
attach it permanently to an unknown customer and lose the later link
Late arriving dimensions become more common in event-driven and near-real-time pipelines, where facts may arrive from one system before master data arrives from another.
Kimball's standard pattern is to create an inferred member, sometimes called an inferred dimension row or placeholder.
When the fact load sees an unknown natural key, the ETL creates a new dimension row immediately. That row contains the natural key from the fact, a new surrogate key, placeholder values such as Unknown, and a flag that says the row is inferred.
The fact then loads with a real surrogate key. Later, when the proper dimension data arrives, the ETL finds the inferred row by natural key and fills in the missing attributes. The surrogate key stays the same, so the already-loaded facts do not need to be rewritten.
Fact arrives. The incoming fact contains a natural key, such as customer number C-8842.
Lookup fails. The customer dimension has no row for C-8842 yet.
Create inferred member. Insert a customer dimension row with C-8842, a new surrogate key, Unknown descriptive values, and an inferred flag.
Load the fact. The sales row points to that surrogate key.
Real dimension arrives. The CRM sync later brings name, city, segment, and other attributes.
Fill the placeholder. Update the inferred member with the real attributes and clear the inferred flag.
The key point is stability. The surrogate key does not change, so reporting fixes itself as the dimension catches up.
A late arriving fact is different. In that case, the fact itself arrives days or weeks late, while the dimension already exists and may have changed in the meantime.
With a late arriving fact, the job is to find the dimension version that was active when the event happened. In an SCD Type 2 dimension, that means searching by natural key and the event date, then choosing the row whose start and end dates cover that event date.
Example: a sale from March arrives in April, but the customer moved from Antwerp to Ghent in between. The sale should link to the March version of the customer, not the newest one.
Late arriving dimensions need inferred members. Late arriving facts need date-effective lookup against the right dimension version.
Do not leave placeholders forever
An inferred member that stays Unknown for months is a data quality issue. Monitor open inferred rows.
Avoid duplicate inferred rows
If two facts for the same new customer arrive close together, create one inferred row, not two. Put a uniqueness rule on the natural key where possible.
Decide Type 1 versus Type 2 behaviour
Filling an inferred row for the first time is normally a Type 1 update. Later real changes may follow your normal SCD policy. Document that distinction.
Tell the business what Unknown means
Users may see revenue under Unknown customer until the dimension catches up. That can be expected, not a broken report.
Keep the natural key
The natural key is how the real dimension row finds the placeholder later. If you lose it, the inferred member cannot be resolved cleanly.
ACID transactions are the four guarantees that keep database changes correct: atomicity, consistency, isolation, and durability. They make s...
Read definitionAnomaly detection automatically flags data points, events, or patterns that do not fit normal behaviour. It can catch odd invoices, machine ...
Read definitionApache Airflow is an open-source workflow orchestrator for batch-oriented data pipelines. You define workflows as Python code, connect tasks...
Read definitionAn API, or Application Programming Interface, is a contract that lets software talk to other software. In a data context, APIs are how conne...
Read definitionA bridge table is an intermediate table that resolves a many-to-many relationship in a star schema. It stores the valid pairs between two ta...
Read definition
Seven new Data Panda connectors from June 2026, with practical reporting ideas for stock, finance, ticketing, route planning and operations.
Test data ideas fast with pretotyping. Learn how to validate concepts in days, avoid over-engineering, and build what truly adds value.