# Sourcing and reconciling data across custodians and vendors
A single 10-year US Treasury bond can show four different prices at 4:00 PM on the same day. Bloomberg says 98.42. Refinitiv says 98.39. ICE says 98.45. Your custodian's overnight file says 98.40. None of them are wrong. They are just different snapshots, priced at different times, from different contributors, under different conventions. The job of the data function is to know which one hits the books, why, and to catch the day the gap is not three cents but three points.
This lesson shows you where portfolio and pricing data actually comes from, how the major vendors differ, and how to build a reconciliation waterfall that flags breaks before they corrupt the NAV.
Asset managers do not own most of the data they run on. They rent it or receive it. Three categories dominate.
Market data vendors. These price the instruments.
"Evaluated price" means a model-derived price for instruments that do not trade every second, like most corporate and municipal bonds. A human or model estimates fair value from comparable trades, spreads, and yield curves. This is why the four prices above differ: each vendor's model and contributor set is different.
Custodians. These are the banks that legally hold your assets and produce the official record: State Street, BNY, JPMorgan, Northern Trust, Citi. Their overnight position and price files are frequently treated as the "golden source" for holdings, though not always for prices.
Reference and entity data. Static descriptive data: identifiers (ISIN, CUSIP, FIGI), issuer hierarchies, ratings, maturity, coupon, day-count conventions. A single wrong day-count convention silently misprices a whole sleeve of bonds.
For a grounding in how instruments are identified across these feeds, the Association of National Numbering Agencies overview of the ISIN standard is a clean free reference.
Four honest reasons a price breaks across sources:
1. Snapshot time. Bloomberg may stamp 4:00 PM ET, the custodian may use a 3:00 PM regional close.
2. Clean vs dirty price. Clean price excludes accrued interest; dirty price includes it. Mix these up and you get a break equal to the accrued.
3. Contributor set. ICE and Bloomberg poll different dealers.
4. Convention. Price per 100 face vs price in fractions (Treasuries often quote in 32nds).
Rule one of reconciliation: never compare two numbers until you have normalized time, price type, and convention.
A reconciliation waterfall is a sequence of checks, cheapest and most certain first, that a position must pass. Each stage either clears the position or routes it to an exception queue. The point is to eliminate the easy 95 percent automatically so analysts only touch the genuine 5 percent.
Does the custodian hold the position your book says it holds? Match on identifier. Watch for the classic trap: CUSIP is US and Canada only, ISIN is global, FIGI is Bloomberg's open identifier. A position keyed on CUSIP in one system and ISIN in another will look like a break when it is just a mapping gap.
Compare face amount or share count. Quantity breaks are usually corporate actions (a bond called, a partial paydown on a mortgage-backed security) that one system processed and the other did not. Quantity breaks are more dangerous than small price breaks because they compound.
Here is the core. You do not flag every difference. You set a tolerance and only escalate breaks that exceed it.
A simple worked example. Suppose your tolerance policy is: flag any bond price break greater than 0.50 percent OR greater than 25 basis points of yield, whichever is tighter for that asset class.
Bond: 10Y corporate, USD
Book price (from ICE): 101.20
Custodian price: 100.55
Break = |101.20 - 100.55| = 0.65
Percent break = 0.65 / 101.20 = 0.642%
Tolerance = 0.50%
0.642% > 0.50% -> FLAG for reviewA 0.642 percent break exceeds the 0.50 percent band, so it goes to the exception queue. Had the custodian shown 100.90, the break would be 0.30 percent, below tolerance, and it clears silently.
Tolerances should be tighter for liquid instruments (a US Treasury breaking 0.50 percent is alarming) and wider for illiquid ones (a private high-yield bond legitimately varies more between vendors). Set them per asset class, not one global number.
When a price breaks against the custodian, do not assume either is right. Pull the third and fourth sources. If Bloomberg, Refinitiv, and ICE cluster around 101.2 and only the custodian shows 100.55, the custodian file is the likely culprit (often a stale price carried over from the prior day). If the three vendors themselves disagree widely, you have a genuinely hard-to-price instrument and need a documented pricing hierarchy.
A pricing hierarchy is a written, governed rule: for asset class X, use source A; if A is missing or stale, fall back to B, then C. Auditors and regulators expect this to be documented, not improvised.
You cannot manage what you do not measure. The data function tracks its own quality with a small set of hard metrics. These are governed under frameworks influenced by BCBS 239 (the Basel Committee's principles for risk data aggregation, still the reference standard for data governancedata governanceData governance is the set of policies, roles, and processes that ensure data is accurate, secure, well-defined, and used responsibly across an organization.View full definition → in 2026) and, in Europe, expectations from ESMA and national regulators around NAV accuracy for funds under UCITS and AIFMD.
Core metrics to track daily:
These are internal operational metrics, not the invented kind. Set your own targets from your own baseline. A common practice is to review break rate and stale rate trend lines weekly rather than obsessing over a single day.
Knowledge check
1. The lesson emphasizes that when four vendors show four different prices for the same Treasury bond, 'none of them are wrong.' What is the primary conceptual reason for this?
2. Why is 'evaluated pricing' particularly relevant for instruments like corporate and municipal bonds rather than for exchange-traded equities?
3. According to the lesson, what is the core job of the data function when reconciling prices across sources?
4. Select ALL correct answers about the distinction between market data vendors and custodians described in the lesson.
Select all the correct answers.
5. Select ALL correct answers describing why a reconciliation waterfall is valuable in the pricing process.
Select all the correct answers.
NAV is Net Asset Value, the per-share value struck for a fund, usually daily. It is the number investors buy and sell on, so a wrong price is not academic: it can mean investors transact at the wrong value, triggering compensation.
Consider a real-shaped scenario (illustrative, not a specific event). A fund holds an illiquid convertible bond. The vendor feed misses it one night, so the accounting system carries forward yesterday's price. The stale price rate metric spikes for that one position. The waterfall's Stage 3 does not catch it (price did not change, so no break), but the stale price check in the quality layer does. That is why completeness and stale checks sit alongside break tolerance, not instead of it. A break-only process is blind to prices that are wrong precisely because they did not move.
This is the practical lesson: a single tolerance band is not a reconciliation program. You need existence, quantity, break tolerance, cross-vendor triangulation, and stale detection working together.