Task: Survey MDDL and FIX as additional market data notations
Table of Contents
This page documents a task in the Market data notation: design an ORE Studio canonical URN mapping to ORE/Bloomberg/Reuters story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Extend External market data identifiers with two more schemes beyond RIC/Bloomberg/ORE: MDDL (Market Data Definition Language, FISD/SIIA) and FIX (Financial Information eXchange, FIX Trading Community). For each: locate and download the authoritative specification with full data lineage, add a knowledge doc covering what it is, its version history, and its content model, and extend the comparative-analysis document's per-instrument sections (FX, rates, swaptions, equities, credit, commodities) to cover both schemes using the same representative instrument as each section's existing RIC/Bloomberg/ORE row.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Market data notation: design an ORE Studio canonical URN mapping to ORE/Bloomberg/Reuters |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-26 |
Acceptance
- MDDL's authoritative specification is located (mddl.org is defunct;
retrieved via the Internet Archive's Wayback Machine capture) and its
last full release (3.0-beta, 2007-03-01) is downloaded with full data
lineage (
manifest.jsonwith per-file source URL/sha256/size,methodology.txt,README.md) underexternal/mddl/. - FIX's Market Data data dictionaries (FIX 4.4, FIX 5.0 SP2) are
downloaded with the same data-lineage treatment under
external/fix/, sourced from a pinned commit of the QuickFIX open-source engine project (redistributing the FIX Trading Community's own definitions). - A knowledge doc exists for each scheme (
market_data_definition_language.org,financial_information_exchange_protocol.org), covering what it is, version history, content model (domains/entities for MDDL; message family/symbology for FIX), and current industry status, cross-linked bidirectionally withexternal_market_data_identifiers.organd wired intoknowledge.org. - Every instrument section of the comparative-analysis document (FX, Interest rates, Swaptions, Equities and indices, Credit, Commodities) has MDDL and FIX comparative-analysis bullets using the same instrument as that section's existing RIC/Bloomberg/ORE row, with worked XML (MDDL) and tag=value (FIX) org-mode source-block examples where a table cell cannot convey a full record.
Plan
(Implementation strategy. Written when work starts; key decisions
are distilled into the parent story's * Decisions at close, but the
plan itself stays — it is the historical record of what we did.)
Notes
Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
PRs
| PR | Title |
|---|---|
| #1699 | [knowledge] Survey MDDL and FIX as additional market data notations |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | Story task-list row stale (STARTED, no end date) after task closed DONE | story.org | Accepted | Fixed in 0aa289ac1 — synced the row to DONE / 2026-07-26 |
| 2 | "Eight domains" prose contradicts the 9-row table below it | market_data_definition_language.org | Accepted | Fixed — corrected to "Nine domains" |
| 3 | knowledge.org index entry still describes the doc as 3-scheme (RIC/Bloomberg/ORE) after this PR extended it to 5 | knowledge.org | Accepted | Fixed — updated to describe all five schemes |
| 4 | No `* Decisions` entry added for this task | story.org | Declined | Nothing from this survey-and-extend task rose to a story-level design decision; the story's Decisions section already correctly reflects only the prior design-bearing tasks |
| 5 | FIX examples' BodyLength/CheckSum look like real computed values | external_market_data_identifiers.org | Accepted | Fixed — added an explicit note that both are illustrative placeholders, not computed from message bytes |
| 6 | Apple-adapted MDDL example caveat understates that a code scheme URI also changed, not just values | external_market_data_identifiers.org | Accepted | Fixed — caveat now explains the ticker-vs-local-exchange-code scheme substitution explicitly |
Result
Shipped:
- Archived MDDL 3.0-beta (schemas, technical spec PDF, license PDF,
changelog, a real worked equity example) under
external/mddl/with a manifest recording source URL, sha256, and size per file — plus an Apple-adapted variant of that worked example, inline in the comparative-analysis doc (not a separate archived file), for like-for-like comparison with the doc's Apple row. Located via a Wayback Machine capture since mddl.org itself is now defunct. - Archived FIX 4.4 and FIX 5.0 SP2 XML data dictionaries under
external/fix/, sourced from a pinned commit of the QuickFIX open-source engine project, with the same manifest/methodology treatment. - Added Market Data Definition Language (MDDL)
and Financial Information
eXchange (FIX) Protocol knowledge docs, each with a detailed content
model section (MDDL's eight domains and
instrumentIdentifierwrapping; FIX's Market Data message family andSecurityIDSourcesymbology), cross-linked with each other and withexternal_market_data_identifiers.org, and wired intoknowledge.org. - Extended every instrument section of External market data identifiers with MDDL and FIX comparative-analysis bullets, matched to each section's existing representative instrument (EUR/USD spot, USD 5Y IRS, EUR swaption vol, Apple, iTraxx Europe 5Y CDS, gold spot), with worked XML/FIX-message examples in org-mode source blocks for the cases where a compact table cell can't convey a full record — and an honest "no documented convention found" statement for swaptions and credit, where neither MDDL nor FIX has one.
- Fixed a related site-serving issue found during review (single-threaded
http.serverqueuing concurrent viewers) by switchingcompass site servetoThreadingHTTPServer— committed separately since it is unrelated to this task's content.
All acceptance criteria met.