Skip to content

Horkan

a blog by Wayne Horkan

  • Home
  • About
  • How To Read This Site
  • Neurodiversity
  • Garden Centre
  • Horkan Genealogy

Multi-Domain Temporal Data: How to Avoid Single-Domain SCD2 Failures

Leave a Reply

Building a cross-domain temporal backbone that actually works in Financial Services. Financial Services firms often build robust SCD2 history within individual domains, yet still fail when asked to reconstruct cross-domain state at a point in time. This article explains why single-domain SCD2 is insufficient and sets out a practical design for a multi-domain temporal backbone spanning Customer, Account, Party, Product, Contract, and Transactions. It shows how to align entity history, temporal relationships, and bi-temporal transactional facts to support defensible point-in-time analysis across risk, conduct, AML, remediation, and regulatory use cases.

Contents

Table of Contents
  • Contents
  • 1. Introduction
  • 2. Why Single-Domain SCD2 Is Not Enough
    • 2.1 Design Contract Used in This Article
  • 3. The Core Domains: Customer, Account, Party, Product, Contract
    • 3.1 Customer
    • 3.2 Account
    • 3.3 Party
    • 3.4 Product
    • 3.5 Contract
    • 3.6 Transactions and Sales: Bi-Temporal Facts, Not Static Events
  • 4. Temporal Relationships: It’s Not Just Entities that Change
  • 5. Designing a Multi-Domain Temporal Model
    • 5.1 Consistent Temporal Fields
    • 5.2 Stable Business Keys and Surrogates
    • 5.3 Separate Entity and Relationship History
    • 5.4 A Cross-Domain Temporal “Hub”
  • 6. Point-in-Time Joins Across Domains
    • 6.1 Single “As Of” Date vs Multi-Date
    • 6.2 PIT View Patterns
    • 6.3 Temporal Grain Alignment
  • 7. Use Cases that Demand Cross-Domain Temporal Consistency
    • 7.1 AML & Financial Crime
    • 7.2 Consumer Duty & Conduct Risk
    • 7.3 Credit Risk & Capital
    • 7.4 Remediation & Redress
  • 8. Implementation Patterns on a Lakehouse
    • 8.1 SCD2 Bronze Per Domain + Relationship Tables
    • 8.2 Temporal “Integration” Views in Silver
    • 8.3 Materialised PIT Snapshots for Critical Dates
  • 9. Common Pitfalls and Anti-Patterns
    • 9.1 Domain-Centric, Fragmented SCD2
    • 9.2 Relationships Without Temporal Attributes
    • 9.3 “Current Join” Disguised as History
    • 9.4 Over-Complex Graphs, Under-Defined Semantics
  • 10. Example: A Multi-Domain Point-in-Time Investigation
  • 11. Summary: From Islands of History to a Connected Temporal Backbone

1. Introduction

Most large Financial Services data estates evolve domain by domain, often driven by immediate regulatory or operational pressure. The consequences of that fragmentation tend to surface later, when organisations are asked to explain past decisions that cut across customers, products, and contracts at a specific moment in time.

These organisations discover the same hard truth: You can build beautiful SCD2 history for Customer, Account, Product, or Contract in isolation; and still fail when a regulator, auditor, or remediation programme asks a question that spans all of them, at a point in time.

Questions like:

  • “What did you believe about this customer, their accounts, and related contracts on 31 March 2021?”
  • “Which party was the beneficial owner of this account when these transactions occurred?”
  • “Which product definition applied to this contract when you charged those fees?”

These are multi-domain temporal questions.
They can’t be answered reliably by treating each domain as a silo with its own SCD2, its own keys, and its own idea of “current”.

This article explores how to design and operate a cross-domain temporal backbone across Customer, Account, Party, Product, and Contract — in a way that is:

  • technically realistic for lakehouse platforms
  • aligned with SCD2 and PIT principles from the rest of this series
  • defensible under PRA/FCA scrutiny
  • usable by risk, finance, AML, conduct, and data science teams

2. Why Single-Domain SCD2 Is Not Enough

Slowly Changing Dimensions are well understood and widely used, but they are usually applied in isolation. The limitations of this approach become apparent when historical questions span multiple domains that were never designed to align temporally.

A lot of data platform work in FS starts with a single domain:

  • “Let’s build a proper SCD2 Customer dimension.”
  • “Let’s clean up our Account master.”
  • “Let’s fix Product hierarchy history.”

Each of these is valuable. But regulatory, risk, and conduct questions rarely stop at one domain:

  • AML wants to know customer + account + party + transactions + product.
  • Risk wants to know customer + exposure + product + collateral.
  • Conduct wants to know customer + contract + product features over time.
  • Remediation wants to know customer + account + advice + contract at the time of sale.

If each domain has its own:

  • SCD2 logic
  • keys and surrogate identifiers
  • change detection pattern
  • effective dating semantics
  • time zones and granularities

…then cross-domain questions often produce:

  • double-counting
  • missing links
  • impossible PIT joins
  • “current” joins disguised as history
  • and, ultimately, answers that do not stand up under review.

The challenge is simple to state and hard to implement:

How do we make Customer, Account, Party, Product, and Contract history align temporally and structurally enough to answer cross-domain questions reliably?

That is the subject of this article.

2.1 Design Contract Used in This Article

Any meaningful discussion of temporal data relies on a shared set of assumptions. Making those assumptions explicit up front avoids ambiguity later, particularly when different domains and use cases are brought together.

This article assumes a simple but strict design contract:

  • every entity and relationship in scope can be queried consistently as-of a given date;
  • effective date semantics are defined and shared across domains;
  • stable business identifiers are used to link domains over time;
  • precedence and lineage rules are explicit and explainable.

The goal is not theoretical perfection, but answers that can be defended under regulatory and audit scrutiny.

3. The Core Domains: Customer, Account, Party, Product, Contract

Although naming conventions differ between firms, most Financial Services organisations model a broadly similar set of core business domains. Understanding how each behaves over time is a prerequisite for aligning them into a coherent temporal structure.

Every firm has its own taxonomy, but in practice the same patterns appear.

3.1 Customer

Customer data represents the firm’s understanding of who it is dealing with at any given point in time. That understanding evolves continuously as circumstances, risk assessments, and regulatory classifications change.

Usually “the entity we have a relationship with”:

  • retail individual
  • SME
  • corporate
  • intermediary

Things that change over time:

  • contact details
  • risk ratings
  • KYC/AML attributes
  • segmentation
  • vulnerability and conduct-related flags

3.2 Account

Accounts act as operational containers through which financial activity is recorded and controlled. While often treated as relatively static, their status, configuration, and ownership can change significantly over their lifecycle.

A “container” for balances and transactions:

  • current accounts
  • savings accounts
  • credit cards
  • loan accounts
  • investment accounts

Things that change over time:

  • status (open, closed, charged off)
  • limits, interest rates, fees
  • ownership and signatories
  • linked products and services

3.3 Party

The concept of Party provides a way to represent people and legal entities independently of specific products or relationships. This abstraction becomes essential once ownership structures, guarantees, and related-party considerations are introduced.

The generic actor:

  • customers
  • guarantors
  • directors
  • beneficiaries
  • counterparties
  • related parties

Party often sits under or alongside Customer, enabling:

  • shared parties across multiple customers
  • beneficial ownership structures
  • corporate hierarchies

3.4 Product

Products define the commercial and regulatory characteristics of what is being offered. Over time, product definitions evolve in response to market conditions, pricing changes, and regulatory intervention.

The definition of what is being offered:

  • interest rate schemes
  • fee structures
  • eligibility criteria
  • disclosure and documentation variants

Products evolve:

  • new versions, features, and pricing
  • regulatory-driven changes (e.g., overdraft reforms, mortgage rules)
  • closure of old variants, launch of new ones

3.5 Contract

Contracts formalise the agreement between parties under a given product definition. They introduce their own timeline, often with variations and renegotiations that must be understood in the context of both customer state and product rules.

The actual agreement with a customer/party for a product:

  • mortgage contract
  • loan agreement
  • policy
  • card agreement
  • overdraft facility
  • investment mandate

Contracts are inherently temporal:

  • start date, end date
  • renegotiations, variations, renewals
  • fee and rate changes
  • break clauses

The important observation:

Each domain has its own history, but the relationships between them also change over time.

3.6 Transactions and Sales: Bi-Temporal Facts, Not Static Events

Transactional data is often assumed to be simple and final once recorded. In practice, many Financial Services transactions evolve as information is enriched or corrected, creating temporal behaviour that must be handled deliberately.

For instance, in wealth and investment management, transactions and sales cannot be treated as simple immutable events.

More broadly across financial services — including insurance, banking, and capital markets — transactional data sits on a spectrum of temporal behaviour. Some transactions are fully specified and final at the point they are recorded. Others are only partially known initially and are subsequently enriched, adjusted, or corrected as additional information becomes available.

A common pattern is that a transaction is notified before it is fully known: price, consideration, fees, or even execution details may arrive hours or days later, and may be corrected post-trade or post-settlement. Where a given transaction type sits on this spectrum varies by sector, product, and process.

As a result, transactions can exhibit temporal state of their own, including:

  • what happened, and when (event time);
  • what was known, and when it was known (knowledge time);
  • how the transaction’s attributes evolved as late or corrected information arrived.

In practice this is often implemented using paired event-time and knowledge-time (or asserted-at) fields, allowing transactions to be reconstructed both as they occurred and as they were understood at any given point.

These are not entity-style SCD2 dimensions, but bi-temporal facts whose history must be preserved to support reconciliation, best-execution analysis, client reporting, and regulatory review. They differ from entity SCD2 in that the underlying business event remains stable, while the attributes describing that event evolve as information is enriched or corrected over time.

Crucially, these transactional histories must be resolved against the same cross-domain temporal backbone described in this article — so that prices, products, contracts, customers, and parties are all aligned as-of the appropriate event and knowledge dates. Treating transactions as bi-temporal facts within a consistent temporal model — rather than trying to force them into entity-style SCD2 dimensions — keeps the architecture clearer and the resulting analyses more defensible.

4. Temporal Relationships: It’s Not Just Entities that Change

Focusing solely on entity history overlooks a critical source of complexity. In many regulatory and investigative scenarios, it is the timing and nature of relationships between entities that matter most.

Most SCD2 designs focus on entities:

  • “Version the Customer row when the address changes.”
  • “Version the Account when the limit changes.”

But in multi-domain reality, relationships are frequently the more important part:

  • Customer ↔ Party (e.g., household, director link)
  • Customer ↔ Account (ownership, mandate, signatory rights)
  • Party ↔ Contract (guarantor, beneficiary)
  • Contract ↔ Product (product version applied to this contract)
  • Account ↔ Product (fee/interest structure over time)

Each relationship is:

  • temporal (it begins, may change, and may end)
  • typed (primary holder, joint holder, guarantor, power-of-attorney, etc.)
  • directional or labelled

A robust multi-domain temporal model therefore needs:

  • SCD2 for key entities and
  • SCD2 (or at least effective dating) for relationships.

Without that, point-in-time questions will always be suspect.

5. Designing a Multi-Domain Temporal Model

Aligning multiple domains over time requires more than applying SCD2 repeatedly. A small number of shared design principles can dramatically improve consistency, explainability, and reusability across the platform.

There is no single perfect pattern, but a few design principles help.

5.1 Consistent Temporal Fields

Temporal modelling quickly breaks down when each domain defines time differently. A minimal level of consistency enables reliable point-in-time reasoning without forcing unnecessary precision.

For all SCD2 entities and relationships:

  • effective_from
  • effective_to
  • is_current

or your chosen equivalents.

They don’t have to be identical to the last microsecond, but:

  • they should be defined in a coherent way;
  • all domains should support PIT queries with a common contract:
    • effective_from <= as_of < effective_to

5.2 Stable Business Keys and Surrogates

Temporal alignment depends on being able to identify the same real-world entity across time. Separating stable identifiers from versioned representations provides flexibility without sacrificing traceability.

Each entity domain should have:

  • a business key (e.g., customer_id, account_id, party_id, product_code, contract_id)
  • a surrogate key for SCD2 versions (e.g., customer_sk, account_sk)

Relationship tables should link via business keys or stable identifiers, not directly via SCD2 surrogates. That way, entity versions can evolve without breaking relationships.

Example relationship table:

REL_CUSTOMER_ACCOUNT:

  • customer_id
  • account_id
  • relationship_type (primary_holder, joint_holder, etc.)
  • effective_from
  • effective_to

You can then join to SCD2 entity tables as-of a date.

Surrogate keys may still be used internally for performance or lineage, but relationships must be expressed in terms of stable business identifiers so that point-in-time resolution remains possible across evolving entity versions.

5.3 Separate Entity and Relationship History

Entity attributes and inter-entity relationships change for different reasons and on different timelines. Modelling them separately avoids hidden coupling and makes historical reconstruction more transparent.

Do not try to cram relationship history into entity tables. Instead:

  • entity SCD2: holds the attributes of the entity itself
  • relationship SCD2: holds the links and roles between entities

This makes:

  • relationship changes independent of attribute changes
  • PIT queries clearer
  • debugging easier when investigating complex ownership structures.

5.4 A Cross-Domain Temporal “Hub”

As the number of domains and relationships grows, ad hoc joins become increasingly fragile. Centralising temporal relationship resolution provides a stable foundation for downstream analysis and investigation.

Many mature FS platforms end up with something akin to:

  • a Party graph: Party nodes linked to Customers, Accounts, Contracts
  • or a Relationship hub: multiple link tables anchored in a core Party/Customer structure

The key idea is to have a central place where multi-domain relationships are resolved and versioned, so that:

  • a single PIT filter can be applied across the graph;
  • investigators and analysts can walk the relationships easily;
  • downstream models don’t each invent their own joining logic.

In practice, this most often takes the form of a Party-anchored relationship hub, where Party acts as the stable node linking Customers, Accounts, Contracts, and Products via temporal relationship tables.

Some firms express this explicitly as a Party–Role–Relationship pattern, but the underlying principle is the same: a stable anchor with temporally versioned links.

This allows investigators and downstream models to start from a person or legal entity and walk outward across domains using a single, consistent point-in-time filter.

6. Point-in-Time Joins Across Domains

Having temporal history stored is only part of the problem. Consistent and well-defined point-in-time access patterns are what make that history usable in practice.

Once you have SCD2 entities and relationships, you still need to design how PIT joins are done.

6.1 Single “As Of” Date vs Multi-Date

Not all questions share the same notion of time. Distinguishing between different temporal perspectives avoids subtle errors in interpretation and reporting.

Many use cases require:

  • a single as_of date (e.g., end of reporting period)

Others require:

  • separate event date vs knowledge date (e.g., when something happened vs when we knew about it)

A cross-domain temporal layer should be clear about which notion it supports:

  • “State as known on date X” — knowledge-based temporal perspective
  • “State as of event date X” — event-based perspective

Ideally, both.

6.2 PIT View Patterns

Repeatedly reimplementing point-in-time logic leads to inconsistency and mistakes. Standard patterns help ensure that temporal joins behave predictably across domains and use cases.

A common pattern:

  1. Choose a reference as_of date.
  2. For each entity:
SELECT *
FROM entity_scd2
WHERE effective_from <= :as_of
  AND effective_to   > :as_of;
  1. For relationships:
SELECT *
FROM relationship_scd2
WHERE effective_from <= :as_of
  AND effective_to   > :as_of;
  1. Join PIT-constrained entities and relationships together.

The critical bit: all domains must accept the same as_of and must have well-defined effective date semantics.

6.3 Temporal Grain Alignment

Different domains often operate at different temporal resolutions. Agreeing how those differences are reconciled is more important than eliminating them entirely.

Different domains may have:

  • different grain (daily, intraday, timestamp)
  • different processing latency

The PIT layer needs a contract:

  • e.g., “we represent PIT at end-of-day granularity for regulatory reporting”;
  • or “for fraud, we use transaction timestamp as-of logic, with knowledge date for KYC attributes”.

Being explicit matters more than being “perfect”.

7. Use Cases that Demand Cross-Domain Temporal Consistency

The value of a multi-domain temporal backbone becomes most visible when it is applied to real regulatory and business questions. These use cases illustrate where misalignment typically causes the most damage.

A few examples illustrate why this matters.

7.1 AML & Financial Crime

Financial crime analysis depends on understanding who was connected to what, and when. Temporal inconsistencies can materially alter the interpretation of suspicious behaviour.

  • Identify the parties and accounts involved in suspicious transactions.
  • Determine their KYC history and risk profiles at the time of the transactions.
  • Understand associated products and contracts to assess exposure and typologies.

Requires:

  • Transaction → Account → Customer/Party → Product/Contract, all as-of event time.

7.2 Consumer Duty & Conduct Risk

Assessing fairness and appropriateness requires reconstructing the firm’s view of the customer and the product at the moment decisions were made. Small temporal mismatches can undermine entire reviews.

  • Reconstruct what you knew about a customer’s circumstances, vulnerabilities, and product features when a sale or recommendation occurred.
  • Assess whether the product and conduct were appropriate given the situation at that time.

Requires:

  • Customer/Party attributes + Product features + Contract terms, aligned temporally at sale/variation dates.

7.3 Credit Risk & Capital

Risk and capital calculations rely on historical states being internally consistent across exposure, customer, and product dimensions. Temporal drift between domains introduces hard-to-detect errors.

  • For IFRS 9, IRB, stress testing:
    • exposures, PDs, LGDs, segmentation, limits, collateral, guarantees, all at the relevant date(s).

Requires:

  • Customer → Account → Contract → Product → Collateral, all correct and consistent as-of the calculation date.

7.4 Remediation & Redress

Remediation exercises demand a defensible reconstruction of past states under intense scrutiny. Temporal shortcuts that were tolerable operationally often fail under this level of examination.

  • For PPI, mortgages, motor finance, card charges, etc.:
    • reconstruct the full state across Customer, Account, Product, Contract when a decision was made.

Any misalignment between domains can lead to:

  • incorrect redress amounts
  • inconsistent customer treatment
  • unconvincing regulatory explanations.

8. Implementation Patterns on a Lakehouse

Modern data platforms provide flexible tooling, but they do not remove the need for clear temporal design. Practical implementation patterns help translate conceptual models into maintainable systems.

The concepts are platform-agnostic, but a few patterns tend to work well on Delta, Snowflake, Iceberg, BigQuery, Fabric, etc.

8.1 SCD2 Bronze Per Domain + Relationship Tables

Capturing raw historical change per domain provides a durable foundation. Treating relationships as first-class temporal data at this stage avoids downstream rework.

For each domain:

  • BRONZE_CUSTOMER_SCD2
  • BRONZE_ACCOUNT_SCD2
  • BRONZE_PARTY_SCD2
  • BRONZE_PRODUCT_SCD2
  • BRONZE_CONTRACT_SCD2

For relationships:

  • BRONZE_REL_CUSTOMER_ACCOUNT_SCD2
  • BRONZE_REL_PARTY_CONTRACT_SCD2
  • BRONZE_REL_ACCOUNT_PRODUCT_SCD2
  • etc.

Each table:

  • follows consistent effective dating;
  • includes source, precedence, and lineage metadata;
  • is built via hybrid SCD2 patterns from previous articles.

8.2 Temporal “Integration” Views in Silver

Most consumers do not want to reason directly about SCD2 mechanics. Integration layers provide consistent temporal access without hiding important semantics.

Create Silver PIT views that expose:

  • customer-centric views (Customer + Accounts + Contracts)
  • account-centric views (Account + Customers + Products)
  • contract-centric views (Contract + Customer/Party + Product)

Each PIT view:

  • accepts an as_of parameter (or is materialised daily);
  • joins across domains using effective dating;
  • hides SCD2 complexity from most consumers.

These Silver PIT views become:

  • the default entry point for risk, conduct, AML, and remediation teams;
  • building blocks for Gold and Platinum layers.

8.3 Materialised PIT Snapshots for Critical Dates

Some questions are asked repeatedly under time pressure. Persisting carefully defined snapshots can reduce operational risk without compromising traceability.

For regulatory and remediation purposes, many institutions:

  • materialise PIT snapshots on key dates (month-end, quarter-end, dates of interest);
  • store them as static tables or partitions;
  • tag them carefully with metadata and lineage.

This allows them to:

  • answer “state as known on date X” very quickly;
  • avoid complex dynamic PIT queries during high-pressure reviews.

9. Common Pitfalls and Anti-Patterns

Many temporal failures are not caused by lack of sophistication, but by well-intentioned shortcuts. Recognising these patterns early can prevent long-term structural issues.

9.1 Domain-Centric, Fragmented SCD2

Local optimisation within domains often creates global inconsistency. Temporal misalignment rarely announces itself until a cross-domain question is asked.

Each domain team builds its own SCD2 with:

  • different effective date definitions
  • different “current” flags
  • different rules for late data

Cross-domain queries then silently misalign.

Fix: agree a small set of platform-wide temporal conventions.

9.2 Relationships Without Temporal Attributes

Timeless relationships simplify models at the cost of accuracy. Once historical reasoning is required, that simplification becomes a liability.

Many models track relationships as if they were timeless:

CUSTOMER_ACCOUNT_LINK(customer_id, account_id)

This is fatal for temporal questions.

Fix: treat relationships as temporal citizens:

CUSTOMER_ACCOUNT_LINK(customer_id, account_id, relationship_type, effective_from, effective_to)

9.3 “Current Join” Disguised as History

Using current-state joins to answer historical questions is a common and subtle failure mode. It often produces plausible but incorrect results.

Joining Customer, Account, Product using only is_current = true and calling it “as-of” is a common shortcut.

It fails the first serious PIT question.

Fix: always use effective dating for history. Reserve is_current for convenience.

9.4 Over-Complex Graphs, Under-Defined Semantics

Complex structures do not automatically produce better answers. Without clear semantics, even well-designed graphs become difficult to explain and defend.

It’s possible to design beautiful, graph-heavy models that no-one can explain to a regulator.

Fix: optimise for clarity and explainability, not maximum graph-theory elegance. A few well-chosen relationship tables with clear semantics are better than an opaque, dense graph.

10. Example: A Multi-Domain Point-in-Time Investigation

A concrete scenario helps illustrate how these concepts come together in practice. This example mirrors the kinds of questions commonly raised during reviews and investigations.

A concrete scenario:

You are asked:
“For customer C123, explain why they were sold product P456 under contract K789 on 12 March 2020, and whether their circumstances and the product features at that time made it an appropriate sale.”

A defensible answer requires:

  1. Customer & Party state at 12 March 2020
    • demographics, income, vulnerability indicators, risk flags, KYC status.
  2. Account state at 12 March 2020
    • existing accounts, balances, arrears, utilisation, limits.
  3. Product definition at 12 March 2020
    • pricing, fees, eligibility criteria, risk classification, regulatory disclosures.
  4. Contract details at 12 March 2020
    • terms, amount, schedule, key rates and fees, documentation version.
  5. Relationships at 12 March 2020
    • which parties were involved (joint borrower, guarantor, intermediary);
    • how accounts were linked to the contract and product.

A well-designed multi-domain temporal layer allows you to:

  • issue a single PIT query (or compose a view) at as_of = '2020-03-12';
  • pull together Customer, Party, Account, Product, Contract, and their relationships;
  • show how each attribute was derived, from which source, under which precedence rule;
  • overlay the sales/advice event;
  • and then test appropriateness and compliance.

Without that, you will end up with:

  • one-off SQL queries;
  • multiple inconsistent extracts;
  • weeks of manual reconstruction;
  • and a brittle narrative under regulatory questioning.

The output is not just a dataset, but a coherent, reproducible narrative explaining why the decision made sense — or failed — based on the information available at the time.

11. Summary: From Islands of History to a Connected Temporal Backbone

Isolated pockets of historical data provide limited protection under scrutiny. A connected temporal backbone turns fragmented history into a coherent, explainable record of past state and decision-making.

Building SCD2 history for Customer, Account, Party, Product, and Contract individually is necessary — but not sufficient.

A modern FS data platform, particularly in a UK regulatory context, needs:

  1. Consistent SCD2 semantics across domains
    • effective dates, flags, and temporal behaviour.
  2. Temporal relationships, not just entities
    • Customer ↔ Account ↔ Party ↔ Product ↔ Contract, all with their own effective dating.
  3. Point-in-time integration patterns
    • PIT views and/or snapshots that expose cross-domain state at a given time.
  4. Clear multi-domain designs
    • stable keys and surrogates
    • relationship hubs or graphs
    • understandable join logic.
  5. Alignment with SCD2, precedence, and PIT principles
    • as covered in the rest of this series.

When you can:

take a date, a customer, an account, or a contract, and reconstruct the entire relevant cross-domain state with clear lineage and rules,

you have moved from a set of domain islands to a connected temporal backbone.

That backbone is what makes:

  • regulatory reviews easier to handle
  • risk and conduct models more trustworthy
  • remediation programmes more accurate
  • and analytical work more reliable and reusable.

It is also, in practice, what differentiates a genuinely mature FS data platform from one that merely has a lakehouse diagram.

This entry was posted in article and tagged AML data, bi temporal data, conduct risk, customer account product modelling, Data Architecture, Data Governance, FCA PRA, Financial Services Data, Lakehouse Architecture, point in time analysis, regulatory reporting, remediation data, SCD2, temporal data modelling, transaction history on December 24, 2025 by Wayne Horkan.

Post navigation

← Shakespeare Is My Meat; I Sup Upon A Classicalist

Posts on Page

  • Multi-Domain Temporal Data: How to Avoid Single-Domain SCD2 Failures



Recent Posts

  • Multi-Domain Temporal Data: How to Avoid Single-Domain SCD2 Failures
  • Shakespeare Is My Meat; I Sup Upon A Classicalist
  • Gold & Platinum Layer Architecture After Silver
  • Managing a Rapidly Growing SCD2 Bronze Layer on Snowflake: Best Practices and Architectural Guidance
  • Managing a Rapidly Growing SCD2 Bronze Layer on Databricks: Best Practices and Practical Guidance ready for AI Workloads

On This Day

  • The Theory of the Leisure Class: An Analysis and Critique
    2024
  • links for 2008-12-24
    2008

Recent Comments

  1. Wayne H on My Years at Sun Microsystems: From Dream Job to Oracle Redundancy
  2. Scott Fairbanks on My Years at Sun Microsystems: From Dream Job to Oracle Redundancy
  3. Wayne H on Curiosity, Cats, and Rabies: A Thought from Tenerife
  4. Lim on Curiosity, Cats, and Rabies: A Thought from Tenerife
  5. Wayne H on West Midlands Cyber Hub Diaries: Day One (Or Perhaps Day Sixty)

Archives

  • December 2025 (23)
  • November 2025 (1)
  • October 2025 (15)
  • September 2025 (21)
  • August 2025 (8)
  • July 2025 (20)
  • June 2025 (28)
  • May 2025 (36)
  • April 2025 (30)
  • March 2025 (20)
  • February 2025 (22)
  • January 2025 (36)
  • December 2024 (39)
  • November 2024 (30)
  • October 2024 (20)
  • September 2024 (5)
  • August 2024 (24)
  • July 2024 (55)
  • June 2024 (10)
  • May 2024 (2)
  • April 2024 (1)
  • March 2024 (4)
  • February 2024 (12)
  • January 2024 (5)
  • December 2023 (7)
  • November 2023 (9)
  • October 2023 (57)
  • September 2023 (132)
  • August 2023 (27)
  • July 2023 (9)
  • June 2023 (10)
  • May 2023 (4)
  • November 2022 (1)
  • May 2022 (1)
  • December 2021 (6)
  • April 2017 (1)
  • September 2015 (2)
  • September 2009 (7)
  • August 2009 (3)
  • July 2009 (16)
  • June 2009 (3)
  • May 2009 (13)
  • April 2009 (6)
  • March 2009 (17)
  • February 2009 (31)
  • January 2009 (37)
  • December 2008 (9)
  • November 2008 (17)
  • October 2008 (7)
  • September 2008 (14)
  • August 2008 (19)
  • July 2008 (1)
  • June 2008 (1)
  • May 2008 (5)
  • April 2008 (5)
  • March 2008 (19)
  • February 2008 (9)
  • January 2008 (10)
  • December 2007 (1)
  • November 2007 (5)
  • October 2007 (4)
  • September 2007 (5)
  • August 2007 (7)
  • July 2007 (3)
  • June 2007 (20)
  • May 2007 (12)
  • April 2007 (19)

Categories

  • article (357)
  • blog (93)
  • blog-post (42)
  • chess (24)
  • facial-recognition (2)
  • film (6)
  • history-of-cheltenham (11)
  • home (34)
  • irish-unification (1)
  • language (1)
  • life (19)
  • link (88)
  • management-consulting (6)
  • music (7)
  • n4s-learning (37)
  • neurodiversity (37)
  • open-source (2)
  • personality-types (21)
  • programming (2)
  • quotation (1)
  • rip (1)
  • search (8)
  • site-design (1)
  • site-update (4)
  • social-media (5)
  • social-technology (2)
  • socio-technical (2)
  • socio-technicalogical (0)
  • talks (2)
  • tech (98)
  • trading (9)
  • uncategorized (160)
  • virtual-book (1)
  • west-midlands-cyber-hub (1)
  • wordpress (4)
  • work (23)

Social

  • Wayne Horkan
  • Wayne Horkan

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Tags

AI and cybersecurity AI Safety bollocks CIISec critical infrastructure cyber cyber academia cyber clusters cyber commercialisation cyber communities cyber education Cyber Governance Cyber Hubs cyber inclusion cyber infrastructure Cyber Innovation cyber investment cyber leadership cyber policy cyber procurement cyber regulation Cyber Resilience cyber risk Cyber Runway Cyber Runway Scale cyber scaleups cybersecurity Cyber Skills cyber standards Cyber Startups defence cyber Digital Resilience DSIT national cyber strategy NCSC ncsc-for-startups neurodiversity public sector cyber Secure by Design sun-microsystems-blog UKCSC UK cyber strategy UK cyber workforce UK government cyber UK tech ecosystem women in cybersecurity

Breadcrumb

Home » Multi-Domain Temporal Data: How to Avoid Single-Domain SCD2 Failures

Popular

Categories

  • article
  • blog
  • blog-post
  • chess
  • facial-recognition
  • film
  • history-of-cheltenham
  • home
  • irish-unification
  • language
  • life
  • link
  • management-consulting
  • music
  • n4s-learning
  • neurodiversity
  • open-source
  • personality-types
  • programming
  • quotation
  • rip
  • search
  • site-design
  • site-update
  • social-media
  • social-technology
  • socio-technical
  • talks
  • tech
  • trading
  • uncategorized
  • virtual-book
  • west-midlands-cyber-hub
  • wordpress
  • work

Links

Proudly powered by WordPress