Story: Trade Blotter
Table of Contents
This page documents a story in Product backlog — inbox. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Build the Trade Blotter: the primary front-office screen from which traders, sales, and middle office view, manage, and act on the live book of trades – booking new deals, amending existing ones, and routing trades through their lifecycle (expiry, fixing, delivery, exercise, settlement). See the target-state reference: Trade Blotter (knowledge doc) – multi-panel architecture, deal grid, deal actions, STP panel, Expiry/Fixing Manager, Barrier Management, Delta Jump Screen, Spike Map.
This story depends on Workspaces: finish the feature: production
trade import (Track 2 of the original import-tracks design) needs a
temporary holding location for trades – the Pending Book – before
they are explicitly "promoted" into the Live workspace. That mechanism
was fully designed but never implemented (see * Decisions); this
story is where it gets built, alongside the wider blotter UI.
Status
| Field | Value |
|---|---|
| State | BACKLOG |
| Parent sprint | Product backlog — inbox |
| Now | Not yet started; blocked on the workspace story's audit landing first. |
| Waiting on | Workspaces: finish the feature |
| Next | Recover and re-validate the prior design analysis. |
| Last touched | 2026-08-04 |
Acceptance
- Prior design analysis recovered, re-read, and re-validated against the current codebase (see design task below) before any implementation is scoped – this story needs real design work, not a resumed half-finished plan taken at face value.
- Design confirms/updates the Pending Book + temporary-holding-area mechanism and its exact promotion path into the Live workspace.
- Resulting scope is broken into its own implementation tasks once the design task lands (not defined yet – deliberately left open until the design work happens).
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Design: recover and re-validate the prior blotter/import analysis | BACKLOG | Re-read the prior blotter/import design analysis (Data Import Session and Workflow Partial-Success plan), re-establish its connection to workspaces (Track 2: a temporary holding location for trades – the Pending Book – before promotion into the Live workspace), and produce an updated design reflecting the current codebase state before implementation is scoped. |
Decisions
- The prior analysis lives in
Data Import Session and Workflow Partial-Success (STATUS: MINED
2026-05-25, but only Track 1 – ORE sample import into a workspace –
was ever converted into shipped work; Track 2 below was not).
Contains, in full: the Pending Book concept (a system-defined book
holding imported trades before enrichment/promotion), the
is_livemarker pattern for non-trade reference data, thependingtrade FSM state and booking transition, thecompleted_with_warningsworkflow outcome, a full Data Import Session window UI design (batch/unit selectors, Trades tab with filter/action bars and inspector panel, per-data-type tabs for market data/conventions/curves/pricing), and a detailed analysis of the ORE examples directory structure used to drive the original ORE-sample importer. Re-read this in full as part of the design task below – it is detailed and largely still applicable, not a blank-slate redesign. - Track 2 (production import: FpML, CSV, other TMS -> Pending Book -> promoted to Live) is the part that was never built. Track 1 (ORE sample import -> isolated workspace) was completed in Sprint 18 and is out of scope here (already working).
- The target-state UI vision for the blotter itself (deal grid, colour coding, deal actions, STP panel, lifecycle management screens) is documented separately in the Trade Blotter knowledge doc – a domain reference, not an implementation plan. The design task should reconcile it with the import-session plan above into one coherent design.
- Loosely related backlog captures that may fold into this story's
scope once design work happens (not yet triaged in):
- Positions domain model (next bucket) – positions aggregate net exposure derived from the trade blotter.
- Separate trade and instrument detail dialogs (next bucket) – blotter UX, needs its own brainstorm.
- Extend ores.workflow: trade-expiry workflow (deferred bucket) – backend for the blotter's Expiry Manager.
Out of scope
- Positions domain model, trade/instrument dialog separation, and the trade-expiry workflow (listed above) stay in the backlog as separate captures until the design task determines whether/how they fold in.