Why reference data is the hardest problem in agentic finance

Everyone wants to talk about the agent. The orchestration graph, the tool calls, the clever prompt that gets an LLM to reconcile a break. Almost nobody wants to talk about the thing that decides whether any of it works: the reference data sitting underneath.

This is the part of capital markets technology that doesn't demo well. There's no glamour in a clean LEI hierarchy or a correctly mastered instrument record. But it's the difference between an agent that quietly does its job and one that confidently produces nonsense.

The failure mode nobody screenshots

When an agentic workflow goes wrong in production, the post-mortem rarely lands on "the model couldn't reason." It lands somewhere far more boring:

  • Two systems disagreed on what counted as the same counterparty.
  • An instrument identifier was reused after a corporate action.
  • A "golden" record was golden in one region and stale in another.

The agent reasoned perfectly over the wrong inputs. Garbage in, confident garbage out — now at machine speed.

Governance before glamour

If you're putting agents anywhere near a regulated flow — EMIR, MiFIR, SFTR, take your pick — the order of operations matters. You earn the right to automate by first making the underlying data trustworthy, lineage-traceable, and explainable. Not the other way around.

That means the unglamorous work comes first: data quality scoring, lineage capture, golden-record mastering, and a real exception-management loop where a human can see why the system made a call. An agent that can't show its working is a liability dressed up as a productivity gain.

What I'm building toward

The thesis behind MERIDIAN is simple: treat reference data as the first-class agentic surface, not an afterthought. Agents for data quality, lineage, enrichment, mastering, and exceptions — composed so that the boring layer is the strong layer.

Get that right and the clever orchestration on top becomes almost uneventful. Which, in production, is exactly what you want.


More on the exception-management agent next week — including why "ask a human" is itself a design decision, not a fallback.

> ./comments --thread
Comments not wired up yet.
1. Enable Discussions on your GitHub repo (Settings → Features).
2. Install the giscus app: github.com/apps/giscus.
3. Go to giscus.app, enter your repo, and copy the four values it generates.
4. Paste them into .env.local (see .env.example) and redeploy.
> cd ..