User Journey: Read a pair's FX forward ladder
Table of Contents
This page documents a user journey: A trader or quant reads their party's published forward set of a pair at an as-of: outrights, discount factors, forward points and swap points, with the inputs and the approval behind them.
A user journey describes what one person is trying to do, before anything is built. It is a design document that outlives any sprint, so it names the screens, the entity fields each screen shows, and the operations and messages each step needs.
1. Goal
"I want my party's forward curve of this pair at this as-of, in whatever measure I need: forward rate, discount factors, forward points or swap points. I want to know what it was built from and who approved it." The journey is done when the person has read the ladder in the measure they need and can name the spot, the two curves and the approval behind it.
2. Actor and trigger
The actor is the trader or the quant, and it can be anyone who reads market data for the party. The trigger is a price to check, a hedge to size, an FX option's forward to confirm, or a published curve that has just changed. The journey starts at Market data / FX forward ladder and ends when the person leaves the page.
The journey reads and changes nothing. A forward set is a published record of the session's party: a person raised it, another approved it, or the tenant's auto-approval closed it. So every number on the page is one somebody approved, and it reads the same after the market moves.
3. Steps
- Open the ladder. The person opens Market data / FX forward ladder. The system lists the pairs the party can read and opens the last pair the person read, as the address states.
- Choose the pair and the as-of. The person picks a USD pair or a cross with a convention, and an as-of. The system answers the party's newest published set of that pair at or before the as-of.
- Read what it is built from. The system states the spot, each spot observation it read (one for a USD pair, the two USD legs for a cross), the spot date, the convention version with its pip and calendars, the method, and each funding curve with the set it came from. A curve withdrawn since says so. A statement says the rates hold no cross-currency basis. Each input links to its own record.
- Read how it was approved. The system states who raised the set, who decided it, the decision's comment and who published it, and links the request. A set closed by auto-approval says so and names the rule; the decision's comment names who turned the rule on.
- Read the ladder. The system shows one row per tenor: near date, value date, forward rate, forward points, swap points and both discount factors. The short dates come first, and each states its own two dates.
- Choose the measure. The person picks forward rate, discount factors, forward points or swap points. The chart draws that measure by tenor, and the matching column is highlighted. No new read is needed.
- Change the start. The person starts the ladder from spot, today or tomorrow. The system sets the near date of the tenors after S/N, recomputes their swap points and marks those rows. The short dates keep their own dates.
- Read a forward-forward. The person picks a near and a far tenor. The system states both forward rates, the swap points between them and the days. The ladder does not change.
- Meet a refusal. If the party has published no set of the pair at or before the as-of, the system shows no numbers and says so.
- Leave. The address holds the pair, the as-of, the start, the measure and the forward-forward tenors, so the person can send this exact view to someone else.
4. Screens and wireframes
One read-only page. Controls come first, then what the numbers rest on, then the chart and the ladder, so the person never reads a number without its inputs.
Figure 1: FX forward ladder: controls, inputs, chart, the ladder of all measures, and a forward-forward.
| Step | Shape on the screen | Judgement |
|---|---|---|
| Open the ladder | Breadcrumb, title, one sentence, Refresh | The standard draws it, RS-LIST-01 to RS-LIST-03 |
| Choose the pair and the as-of | Two pickers | A view no rule draws yet: it is one derived read and not a list of records |
| Read what it is built from | Labelled values, each a link | The standard draws it, RS-PAGE-05 |
| Read how it was approved | Labelled values, a notice under auto-approval | The standard draws it, RS-PAGE-05 |
| Read the ladder | Table with fixed rows | A view no rule draws yet: rows are tenors, not records, so no search, sort or pager applies |
| Choose the measure | Segmented control over a chart | A view no rule draws yet; the client holds all four measures |
| Change the start | Segmented control, marked rows | A view no rule draws yet; the client recomputes from the rates it holds |
| Read a forward-forward | Two pickers and four values | A view no rule draws yet |
| Meet a refusal | Alert that says no set is published | The standard draws it |
| Leave | Address holds the state | The standard draws it, RS-LIST-20 |
The steps keep no state across a reply, so no workflow is needed.
The owner signed off this journey and its prototype on 2026-11-09.
Placements the prototype decides:
- The page is under Market data, at
/market-data/fx-forwards, beside Published curves. - A curve name links to its page in Published curves, a spot and the convention to the pair's page, and the request to its own page.
- The chart spaces the tenors evenly and not by time.
5. Prototype
A static page at doc/prototypes/market_data/fx-forward-ladder/index.html: mock data only, no backend, no build step and no session. It argues that one page can show all four measures of a ladder, always beside the inputs they rest on.
- States
ok,stale-spot,no-spot,no-curve,no-convention,cross- Address
?pair=&asof=&start=&measure=&near=&far=&state- Source
doc/prototypes/market_data/fx-forward-ladder/index.html- Open
/OreStudio/doc/prototypes/market_data/fx-forward-ladder/once the site is built, or the file directly
6. Entities composed
| Entity | What it contributes | Model |
|---|---|---|
fx_forward_publish |
The published set: its subject, its provenance and its publication | ores.marketdata.fx_forward_publish |
fx_forward_publish_point, fx_forward_publish_spot |
The tenors as published, and the spots the set read | the same model |
approval_request, approval_decision |
Who raised and decided the set, and the rule that closed it | the inbox models |
currency_pair_convention |
The pairs offered, the pip factor and the decimal places | ores.refdata.currency_pair_convention |
currency |
The spot days of each currency | ores.refdata.currency |
curve_publish |
The published set of each currency, its as-of and its publisher | ores.marketdata.curve_publish |
ir_curve_bootstrap_config |
The name and currency of each funding curve | ores.refdata.ir_curve_bootstrap_config |
A forward is read from its published set and never computed for display; see ORE Studio publishes FX forwards derived from published curves.
7. Operations and messages
| Step | Operation | Subject | Status |
|---|---|---|---|
| Open the ladder | List the pair conventions | refdata.v1.currency_pair_conventions.list |
exists |
| Choose the pair and the as-of | Read the party's published set of one pair at or before one as-of | marketdata.v1.ops.get_published_fx_forward |
exists |
| Read what it is built from, and how it was approved | Part of the same reply | marketdata.v1.ops.get_published_fx_forward |
exists |
| Open a curve | Read the published sets of one curve | marketdata.v1.ops.get_published_curve_sets |
exists |
The start, the measure and the forward-forward need no read. The reply states each tenor's dates and forward rate, so the client computes the rest.
8. What is missing
- A party has no set until one is published. Provisioning will publish a set of every pair each party can build; Publish FX forward curves in provisioning records the work.
- The screen does not raise a publish. A person publishes from the shell, with
fx_forward_operation publish-fx-forward.
9. Related journeys
- Withdraw or replace a published curve — change a curve that this ladder rests on.
- Check a curve's fit — check a curve before trusting its forwards.
- Calibrate or refresh a surface — a surface reads the same forwards.
- Author an FX price feed — where a spot comes from.
10. Related knowledge
- FX forwards — the structure note for this domain.
- Covered Interest Parity and FX Forward Pricing — the relation the numbers follow.
- Forward Ladder — the surface this page draws.
11. See also
- Read FX forwards for a pair — the compute the publish uses.
- Publish FX forward curves with their provenance — the record this page reads.