industries
Customer 360 Data Model for Retail Banking: Entities, Identity Keys and a Sample Schema
By Art Kukharenko · Published · Updated
Browse this industry resourcesA customer 360 banking data model describes the entities a bank needs to see one customer consistently across products and channels: the party, household, accounts, product holdings, transactions, interactions, consents, risk flags, cases and campaign exposures, tied together by identity keys and survivorship rules. In a customer data platform (CDP) it is a governed, derived view of the customer; the cores remain the system of record.
This page is for data architects, governance leads and DPOs. It gives the entities, keys, retention rules, PII tags, sample schemas and event names, then maps them to BIAN. It belongs to the financial services hub; the platform and regulatory context is in customer data platforms for banks.
Entities and relationships
Scroll horizontally to compare all columns ↔
| Entity | What it represents | Key attributes | Authority |
|---|---|---|---|
| Party | Individual or organisation with a relationship: customer, prospect, guarantor, signatory | party_id, type, legal name, birth date or registration number, residency, status | KYC and customer master |
| Household or relationship group | Parties linked by joint accounts, shared address, family or ownership | group_id, members, relationship type, valid from/to | CDP-derived from core links |
| Account | Contractual container for balances and postings | account_id, product code, status, open and close dates, currency | Core banking |
| Product holding | A party's role on a product | holding_id, party_id, account_id, role, start and end | Core or product processor |
| Transaction | A posted movement | txn_id, account_id, booking date, amount, currency, category | Core; CDP keeps coarse derived features |
| Interaction or event | Digital, branch or contact-centre touch | event_id, party_id, channel, event_name, timestamp, properties | Channel systems |
| Consent and preference | Purpose-level permission and contact preference | consent_id, party_id, purpose, channel, status, source, timestamp | CDP ledger for marketing consent |
| Risk and KYC flag | Restriction markers: KYC status, sanctions hit, vulnerability, deceased | flag_type, status, effective dates, visibility class | KYC, AML and case systems |
| Servicing case | Complaint, dispute or request | case_id, party_id, type, status, opened and closed | Case management |
| Campaign exposure | What a party was shown or sent, and the outcome | exposure_id, party_id, offer_id, channel, time, outcome | CDP and decision engine |
Three modelling rules keep the structure honest. Product holding is a separate entity so that joint accounts and signatories are not forced into a single owner field. Household is a relationship with validity dates, not a merged party. Every record carries its source system and both valid time and recorded time, so the bank can reconstruct what it knew on a given date.
Identity keys and survivorship rules
Scroll horizontally to compare all columns ↔
| Key | Type | Use | Caution |
|---|---|---|---|
| Bank party ID (customer number) | Deterministic | Anchor per line of business | Retail, wealth and corporate often hold different IDs for one person |
| Cross-line master party ID | Assigned after match | Links the line-of-business IDs | Never reused; merges are logged and reversible |
| Online-banking user ID | Deterministic | Authenticated digital key | One person may have several |
| Verified email or mobile | Deterministic when verified | Contact and matching | Unverified values are low confidence |
| Device and cookie IDs | Pre-login only | Anonymous continuity | Link on login; expire |
| Tax or national ID | Restricted | Matching inside the KYC zone | Do not propagate to the CDP |
Match deterministically first. Use probabilistic matching only for non-regulated marketing analytics, with review, and never to merge identities that carry KYC status. Treat household inference as a relationship, not a merge. See identity resolution explained.
Scroll horizontally to compare all columns ↔
| Attribute | Survivorship rule | Reason |
|---|---|---|
| Legal name, birth date | KYC system wins; the CDP never overwrites | Regulatory identity |
| Postal address | Latest verified; keep KYC address separate from mailing preference | Legal versus marketing use |
| Email and mobile | Latest verified and consented; keep history | Contact permissions differ by channel |
| Marketing consent | Latest event per purpose and channel; withdrawal wins ties | Safe default |
| Risk and vulnerability flags | Most restrictive wins; any source can suppress | Fair treatment |
| Customer status | Core status wins; deceased propagates at once | Avoids contact errors |
| Segment, score, lifecycle stage | Recomputed, never survived | Derived data |
Golden record versus operational truth
The golden record is a derived, point-in-time view with provenance, not a replacement for the cores. The cores stay authoritative for balances, postings, product terms and KYC status. The CDP is authoritative for marketing consent, campaign exposure and its own derived attributes. Three practices follow.
- Set freshness per attribute. Consent and deceased status need near-real-time propagation; segment membership can tolerate batch.
- Keep history. Store previous and new values with timestamps and the user or process that changed them. Salesforce's guide for APRA-regulated firms makes the same point about reconstructing consent status before a campaign 1.
- Snapshot decisions. Record the exact features and rule versions used at decision time, so a decision can be replayed even after the profile changes.
Write-back to cores should be limited to governed APIs for specific attributes, such as contact preferences, and never for KYC fields. See single customer view for the regulatory uses of a unified view.
Retention and legal hold
Scroll horizontally to compare all columns ↔
| Data | Driver | CDP handling |
|---|---|---|
| Customer due diligence documents and transaction records | EU: five years after the relationship ends, extendable by up to five years under national law 2; US Bank Secrecy Act records: five years 3 | Keep in the compliance system of record; the CDP holds no copy beyond a flag |
| Marketing profile attributes | Storage limitation (Art. 5(1)(e)) 4 | Delete or anonymise when the purpose ends | | Behavioural events | Purpose and consent | Short window; aggregate before archiving | | Campaign exposure | Complaint handling and fair-treatment evidence | Retain for a period set in policy |
PII classification tags
Scroll horizontally to compare all columns ↔
| Tag | Examples | Handling |
|---|---|---|
| Direct identifier | Name, email, phone, national ID | Field-level encryption, role-based access, processor limits |
| Quasi-identifier | Postcode, birth date, device ID | Generalise in analytics |
| Financial account data | Account number, IBAN, balance | Tokenised reference; not exported |
| Sensitive authentication data | CVV, PIN, track data | Blocked at ingestion (PCI DSS 3.3.1) 5 |
| Special category | Health, beliefs, biometrics | Not ingested or inferred (GDPR Art. 9) |
| Restricted compliance | KYC status, AML alerts, SAR existence | Compliance zone only; suppression flag at most |
| Behavioural | Clickstream, app events | Short retention; consent-bound |
| Derived or model output | Scores, segments | Model inventory; reason fields |
Enforce tags in a schema registry: the collector rejects untagged fields, retention jobs read the tag, and egress policy references it.
Sample schema tables
These tables are illustrative, not a complete physical model.
party
Scroll horizontally to compare all columns ↔
| Field | Type | PII tag | Note |
|---|---|---|---|
| party_id | string | Internal key | Cross-line master ID |
| source_ids | array of {system, id} | Quasi-identifier | Line-of-business IDs |
| party_type | enum | None | individual, organisation |
| legal_name | string | Direct identifier | KYC authority |
| birth_date | date | Quasi-identifier | KYC authority |
| status | enum | None | active, closed, deceased, restricted |
| valid_from, valid_to, recorded_at | timestamp | None | Bitemporal |
product_holding
Scroll horizontally to compare all columns ↔
| Field | Type | PII tag | Note |
|---|---|---|---|
| holding_id | string | None | |
| party_id | string | Internal key | |
| account_ref | token | Financial account data | Token, not number |
| product_type | enum | None | current, savings, mortgage, card |
| role | enum | None | owner, joint, signatory, beneficiary |
| opened_on, closed_on | date | None |
consent_record
Scroll horizontally to compare all columns ↔
| Field | Type | PII tag | Note |
|---|---|---|---|
| consent_id | string | None | |
| party_id | string | Internal key | |
| purpose | enum | None | marketing_email, marketing_push, offer_profiling |
| channel | enum | None | |
| status | enum | None | granted, withdrawn, objected |
| previous_status | enum | None | Supports reconstruction |
| source | enum | None | web_form, app, branch, call |
| captured_at, policy_version, evidence_ref | timestamp, string | None |
interaction_event
Scroll horizontally to compare all columns ↔
| Field | Type | PII tag | Note |
|---|---|---|---|
| event_id | string | None | |
| party_id | string, nullable | Internal key | Null before login |
| anonymous_id | string | Quasi-identifier | Expires |
| channel | enum | None | |
| event_name | string | None | From taxonomy |
| occurred_at | timestamp | None | |
| properties | JSON | Validated per event | No PAN or authentication data |
| consent_ref | string | None | Lawful-basis link |
Event taxonomy examples
Name events as object_action in snake case, version each schema, validate properties at ingestion, and allow no free text.
Scroll horizontally to compare all columns ↔
| Event | Trigger | Key properties | Used for |
|---|---|---|---|
| session_authenticated | Login succeeds | channel, method | Link anonymous to party |
| application_started | Product application opened | product_type, channel | Funnel, follow-up |
| application_abandoned | Application idle past threshold | product_type, last_step | Recovery, suppression |
| account_opened | Account activated | product_type | Onboarding journey |
| card_activated | Card activated | card_type | Onboarding |
| payment_initiated | Payment submitted | channel, amount_band | Engagement, not content |
| offer_presented | Offer shown | offer_id, channel, decision_id | Exposure, frequency |
| offer_declined | Offer dismissed | offer_id, reason_code | Suppression |
| consent_changed | Preference updated | purpose, channel, status | Ledger |
| complaint_opened | Case created | case_type | Suppress marketing |
How BIAN and industry models relate
BIAN, the Banking Industry Architecture Network, is a membership body of more than 100 banks, software vendors and consultancies, and its portal describes a service landscape (version 14.0 announced on 13 March 2026) 6. BIAN is a capability and API model. It names what a bank does and where responsibilities sit; it does not give you a physical schema. FIBO, the Financial Industry Business Ontology, is hosted by the EDM Council and standardised by OMG; it defines financial business concepts and their relationships in OWL and can give shared meaning to data models 7. Vendor models also exist, for example Salesforce's Financial Services Data Kit, which provides data model objects for core banking and insurance 8.
A pragmatic approach: use BIAN to name domains and set ownership boundaries, FIBO for vocabulary where definitions are disputed, and keep the CDP's physical model small. The service-domain names below come from BIAN's version 12 landscape 9.
Scroll horizontally to compare all columns ↔
| CDP entity | Closest BIAN service domain |
|---|---|
| Party and lifecycle | Party Lifecycle Management |
| Interaction or event | Customer Event History |
| Segment, score | Customer Behavior Insights; Customer Behavior Models |
| Campaign exposure | Customer Campaign Execution; Customer Offer |
| Servicing case | Customer Case Management |
| Authentication | Party Authentication |
Governance checklist
- Every entity has a named authority system and a data owner.
- Every field has a PII tag, enforced at ingestion.
- Survivorship rules are documented, versioned and tested.
- Merges and unmerges are logged with reason and actor.
- Consent changes keep previous values and evidence.
- Retention clocks run per purpose; legal hold blocks deletion.
- Freshness targets exist for consent, status and deceased flags.
- No PAN, authentication data or KYC documents are ingested.
- The model inventory lists every score and segment used in a decision.
- Row- and field-level access follows line-of-business boundaries.
- Schema changes pass change management with downstream impact review.
- Data-quality metrics (match rate, duplicate rate, verified-contact coverage) are reported monthly.
What a Customer 360 enables: dashboards and metrics
Scroll horizontally to compare all columns ↔
| Dashboard | Example metrics | Source entities | Caveat |
|---|---|---|---|
| Relationship depth | Products per party, primary-account share, household coverage | Party, holding, household | Depends on match quality |
| Consent coverage | Share of parties with valid consent by purpose and channel | Consent | Measure per purpose, not overall |
| Data quality | Match rate, duplicate rate, verified-contact coverage | Party, source IDs | Publish definitions |
| Onboarding funnel | Started, completed, funded, first-use | Events, holding | Needs session-to-party linkage |
| Servicing | Open cases per 1,000 parties, repeat contacts | Case, interaction | Mind complaint reporting rules |
| Offer effectiveness | Exposure, response, suppression rate | Campaign exposure | Needs holdout groups |
Next-best-action decisions consume the same entities; see real-time next best action inside the bank. For the wider pipeline, see customer data platform architecture and consent withdrawal across channels.
To review how this model would sit on your own infrastructure, request a private infrastructure review.
Frequently asked questions
What is a customer 360 data model in banking?
It is the set of entities, relationships, identity keys and rules that describe one customer across products and channels: party, household, accounts, holdings, transactions, interactions, consents, risk flags, cases and campaign exposures. It is a governed view built from authoritative systems.
What is the difference between a golden record and operational truth?
A golden record is a derived, point-in-time view assembled with survivorship rules. Operational truth is what the authoritative system holds now, such as the core for balances or the KYC system for legal identity. The golden record should never overwrite operational truth.
Should a customer data platform store full transactions?
Usually not. Keep posting-level data in the core or warehouse and give the CDP coarse derived features, such as salary-credit detected or product inactive for a stated period. This limits PII exposure and billing, and keeps the platform out of PCI DSS scope.
How long should customer 360 data be kept?
It depends on purpose. Due diligence and transaction records follow anti-money-laundering rules: five years after the relationship in the EU, extendable by national law 2. Marketing data follows storage limitation and the bank's policy, set per purpose rather than per system. Legal hold overrides deletion jobs.
Is BIAN required for a customer 360?
No. BIAN is a reference for naming capabilities and APIs, and it is useful for ownership boundaries, but it does not prescribe a physical schema. Many banks map their model to BIAN service domains without adopting it fully. Use it where it helps architects agree names and boundaries.
How is a customer 360 different from a single customer view?
They overlap. A single customer view stresses one reconciled picture of the customer for regulatory and servicing uses, such as identifying all of a customer's accounts. A customer 360 adds interactions, consents and campaign exposure so marketing and service teams share one context. Many banks use the terms interchangeably; see single customer view.
Sources
- Salesforce Australia, "APRA, Audits, AI Agents: The New CDP Test for Finance Teams" Open source
- Directive (EU) 2015/849, Art. 40 Open source
- 31 CFR 1010.430 Open source
- Regulation (EU) 2016/679 (GDPR) Open source
- PCI SSC, PCI DSS overview Open source
- BIAN Open source
- EDM Council, FIBO Open source
- Salesforce, Data 360 for financial services Open source
- BIAN Service Landscape V12.0, customer-related view Open source
Put this evaluation into practice.
Request an architecture reviewThis article is general information, not legal advice.
Further reading
- CDP for Banks: On-Prem & VPC
- Demo and architecture review
- Email Suppression List Management Across
- CDP for Banks: Why Most Projects Fail
- Next Best Action Banking: Real-Time
Published: · Updated:
Publication date recorded for the approved release. Editorial updates do not establish legal approval or a customer result.