Back to Blog
Reconciliation by Kofi Mensah

Reconciling RWA Ownership Data Across Custodians: What Actually Breaks and Why

The problem is not that custodians send wrong data. The problem is that they each send correct data in a format that is incompatible with every other custodian. Here is what that looks like in practice and how a canonical data layer resolves it.

Reconciling RWA ownership data across custodians

When we talk to back-office teams about multi-custodian reconciliation, the conversation almost always starts with the same misconception: they think the problem is bad data. In practice, the problem is incompatible good data.

Each custodian runs a complete, internally consistent record-keeping system. State Street records what State Street knows. A prime broker records what it knows. When an asset manager holds positions at three custodians, all three sets of records can be accurate in isolation and still produce irreconcilable discrepancies when placed side by side. Understanding why that happens is the first step to building infrastructure that handles it systematically.

The Identifier Problem Is Worse Than You Think

The most common place reconciliation breaks down is identifier mapping. A single real-world asset, say a tokenized municipal bond issued in Q4 2024, might be identified by its ISIN in one custodian feed, by a CUSIP in a second, and by an internal reference number in a third. None of these are wrong. But when your reconciliation process is comparing position quantities, it has to first agree on what it is comparing.

The naive solution is to maintain a mapping table: ISIN X maps to CUSIP Y maps to internal ID Z. The problem is that this table has to be maintained continuously, it breaks on corporate actions, and it silently fails when a new instrument is issued without a corresponding entry. We have seen reconciliation processes where a new position opened during the month would not appear in the break report until someone manually added the identifier mapping. The break was invisible, not resolved.

A canonical data layer addresses this at the ingest stage. Every position record from every feed gets assigned a canonical instrument identifier before it enters the reconciliation engine. That assignment uses a priority hierarchy: ISIN where available, CUSIP as fallback, then internal identifiers that have been resolved through the instrument reference database. Any record that cannot be mapped triggers an exception immediately, rather than failing silently downstream.

Timing Differences Are Structural, Not Accidental

Even with identifier resolution solved, most multi-custodian breaks are timing breaks. Position data is a point-in-time snapshot, and custodians take those snapshots at different points in time, using different settlement assumptions.

Consider a straightforward example. An asset manager initiates a transfer of a real estate tokenization position from one sub-account to another on the afternoon of a given business day. Custodian A records the outgoing leg immediately on trade date. Custodian B, which holds the receiving account, records the incoming leg on settlement date, which under standard terms is T+2. On the night of trade date, the manager's consolidated ownership statement shows a discrepancy: the position has left one custodian and not yet arrived at the other. Nothing is wrong. The discrepancy is an artifact of how two systems apply different settlement conventions to the same economic event.

The reconciliation engine needs to know this. It needs to carry a settlement-state field on each position record, and it needs to understand that a trade-date position at one custodian should be compared against a settlement-date position at another only after applying a known offset. Without that logic, the break report fills up with noise, and the real breaks get buried.

Corporate Actions: Where Things Get Serious

If identifier divergence is a nuisance and timing differences are structural, corporate action handling is where reconciliation genuinely goes wrong in ways that matter for compliance.

Take a yield distribution on a real estate trust. The trust declares the distribution on one date, sets a record date, and pays on a third date. Each custodian applies this event to ownership records at a slightly different point in its processing cycle. One custodian may adjust position values the morning of pay date. Another may not update its records until end-of-day processing completes. A third may book the distribution as a pending credit that does not appear in the main position view until the next morning.

During the window between the first custodian's update and the last, the manager's aggregate ownership record is incorrect. Not because anyone made an error, but because the event has been partially applied. If the manager generates a regulatory ownership report during that window, the numbers will not match the state of the world.

The right approach is to hold corporate action records separately from position records, with their own processing status, and to generate consolidated views only after confirming that all custodian feeds have reflected the event. This requires tracking which events are pending, which are confirmed, and which have produced exceptions that need human review.

What a Systematic Reconciliation Layer Actually Requires

From our work building OpenAssets, we identified four capabilities that separate a reconciliation layer from a reconciliation spreadsheet.

Feed normalization with provenance tracking. Every position record that enters the system carries metadata identifying its source, the timestamp of that source's snapshot, and the identifier type used. The normalized record is distinct from the source record. You can always trace a normalized position back to the raw custodian data that produced it.

Exception classification, not just exception flagging. A reconciliation engine that only tells you two numbers do not match is not much better than a VLOOKUP. A useful engine classifies the exception: is this a timing break, an identifier ambiguity, a corporate action lag, or a genuine discrepancy requiring investigation? The classification determines the workflow.

Break aging and escalation. Not all breaks are equally urgent. A timing break on a pending settlement that will resolve in two days is not the same as a quantity discrepancy on a position that should have been static for three months. The system needs to track when a break opened, whether it has grown or shrunk, and whether it has crossed a threshold that requires escalation.

Audit-grade event logging. Every reconciliation event, every exception, every human resolution, every system-generated match needs to be logged with a timestamp and a user or process attribution. When a regulator or auditor asks to reconstruct the ownership record as of a specific date, the system has to be able to reproduce that view and show exactly how each component was validated.

The Counter-Argument Worth Taking Seriously

We should be direct about one thing: a canonical reconciliation layer is not a substitute for accurate custodian data. If a custodian is recording positions incorrectly at the source, normalizing those records through a common schema will produce normalized incorrect data. The canonical layer resolves structural incompatibilities. It does not fix content errors.

This matters for how you use exception reports. A break in the reconciliation engine is an input to an investigation, not a verdict. Some breaks will resolve on examination because they were timing artifacts. Some will turn out to be system classification issues. A few will be genuine discrepancies where someone made an error. The operational discipline to distinguish these consistently, and to document each resolution, is at least as important as the technology layer that surfaces them.

Practical Starting Points

For teams that are currently reconciling ownership data through manual comparison of custodian export files, the first structural improvement is almost always identifier normalization. Before you can measure how large your reconciliation problem is, you need to know that you are comparing the same things. Start there.

The second step is to get your timing model explicit. Document, for each custodian relationship, what the snapshot time is for end-of-day positions, what settlement convention is used for each asset class, and when corporate action updates typically hit. This documentation exists almost nowhere in written form at most asset managers. Creating it gives you a baseline for what a reconciled state should mean before you start trying to achieve it systematically.

The infrastructure work follows once you have clarity on the data model. Building the system before the model is defined is the most common reason reconciliation projects fail to deliver the reduction in manual effort they were designed to produce.

See OpenAssets in practice

Request early access to see how the platform handles your specific custody structure and reconciliation workflow.

Request Early Access

More from the OpenAssets Blog