Financial Instrument Data Platform

Moody'sSolo UX Designer2025–Present · 1 UX Designer, 2 PMs, 2 Dev Squads

Designing for the Long Tail of Data Complexity

* Product details and visuals have been generalized to respect organizational confidentiality.

TL;DR

I designed a rule-based data workflow that protects integrity in complex financial systems by treating rare, high-impact edge cases as first-class—not afterthoughts.

Overview

An internal platform for creating and maintaining structured financial instrument records that feed downstream rating and research systems. Errors here compound across the ecosystem. As the solo designer, I owned record creation flows, interaction logic, UI specs, and cross-functional alignment.

Problem Space

Complexity here doesn't come from happy-path forms. It comes from the long tail: fields are tightly interdependent, validation stacks in layers, and lifecycle actions change what downstream systems are allowed to assume.

Standard assumptions cover most volume—but edge cases are where failures are most likely and most costly, because stewards and systems are least prepared for them.

Governing Input Correctness

Once pricing and risk consume a value, correcting it is slow and visible. This section is only about validation: how rules are timed, where they fire, and how the same logic stays consistent across instrument sections—so stewards fix problems while the cost is still local.

1Prevent

System-driven defaults and derivations so users never have to type values that would always be wrong or inconsistent—remove whole classes of mistakes before they appear.

2Guide

Rules that run while the user edits: formats, allowed ranges, ordering between related inputs, and dependencies where one field constrains another.

3Enforce

Hard gates on commit: required values, invalid sequences, and row-level completeness that cannot ship without an explicit fix or override path.

4Reuse

Each pattern is authored once in the system, then bound to different fields and instrument sections by configuration—the same validator, multiple attach points.

Currency change — worked example

Below are real validation rules from the currency change schedule on the form.

Currency change schedule: validation rules tagged by stack (Prevent, Guide, Enforce, Reuse) and trigger timing.
StackFieldRuleWhen
PreventFace AmtAuto-populates when Eff. Date ≤ todayImmediate
GuideCurrencyRequired when Face Amount is filledImmediate
GuideEff. DateMust match previous row’s Term. DateImmediate
GuideEff. / Term.Picker limited to 50yr past – 100yr futureOn pick
EnforceTerm. DateMust be after Eff. Date (≥ 1 day)Immediate
EnforceTerm. DateRequired except on last rowSubmit
ReuseCoupon, Dividend, …Same row + date-span validators as above attach to other sections—Coupon and Dividend (and similar schedules) bind different field names to one shared pattern.

Record Management & System Communication

Lifecycle · Staging · Integration surface

Lifecycle states

Routine field edits are fundamentally different from lifecycle transitions — events that change a record's availability across the entire ecosystem. "Inactive" alone isn't sufficient: withdrawal after a credit event, deal cancellation, temporary hold, and maturity each carry different reactivation rules and downstream consequences. Each transition requires explicit confirmation with cross-system impact surfaced before execution.

Instrument lifecycle: Created → Active → Inactive → Archived, with Cancel branch and terminal states

Staging

Edits go through a staging layer before they reach the canonical record. Each staged revision is bound to a single rating transaction — the record stays Active throughout, and multiple analysts can stage changes to the same instrument without colliding. Two design decisions anchor the experience:

Staging flow: canonical live record branches into transaction-bound staged records that merge on approval
Instrument debt record in live/canonical editing mode

Integration surface

The instrument search surface is built to work inside other systems. Connected platforms embed it as an iframe, passing entity context and pre-filled search criteria so users land already scoped to the right records. The same layout handles it: search absorbs pre-filled filters, the table supports multi-select for bulk operations, and action buttons reflect the current selection. No separate "embedded mode" — the design absorbs integration constraints without a parallel codebase.

Instrument search surface embedded in a host system via iframe, showing prefilled search criteria and bulk selection

Low-Frequency, High-Impact Events

A small fraction of cases drive disproportionate risk. The UI uses progressive disclosure so everyday work stays quiet while edge cases stay reachable without workarounds.

For example, certain fields require a dedicated dynamic section that only appears when an external source triggers an update requiring additional input. The section stays hidden during routine editing — it surfaces only when the data context demands it.

A Step Beyond · AI-Assisted Data Intake

Rules and staging reduce wrong commits—they don't remove manual lookup or discovery work. I explored structured logic and automation that shifts stewards from raw entry toward validation and supervision; that line of thinking fed directly into the AI and semantic search work in the next case.

Document parsing workflow

Reflection

Rule-based systems excel at correctness until the task requires external data retrieval or deciding whether an entity already exists—places where deterministic rules alone can't carry the load. That gap is where AI-assisted patterns belong: inside the workflow, not as a replacement for it.