Task: Document currency pairs and conventions in the user manual

Table of Contents

This page documents a task in the Currency pair support in reference data story. It captures the goal, current status, acceptance, and any notes or results.

Goal

Currency pairs and currency pair conventions have no coverage in the user manual. Add a section (following the manual's existing chapter/screenshot-placeholder conventions) covering: what a currency pair is (pair_code derived live from Base/Quote and locked after create, classification), what a currency pair convention is (pair_code — a flagged combo picking an existing pair, locked after create — pip_factor, tick_size, decimal_places, advance_calendar, business_day_convention, spot_relative, end_of_month), and how to manage both from the Qt client — including the duplicate/inverted-pair rejection on create and the "Conventions" cross-navigation toolbar button.

Deliverability (deliverable=/=settlement_currency) was modelled, then dropped this sprint — a single boolean/optional-currency pair can't express real FX settlement conventions. See Model FX settlement type per currency pair for the future-work capture — do not document deliverable/NDF/settlement currency as current behaviour; that's not shipped.

Status

Field Value
State DONE
Parent story Currency pair support in reference data
Now Complete — chapter written, wired in, all five screenshots captured, manual PDF and Qt help rebuilt.
Waiting on Nothing.
Next None.
Last touched 2026-07-10

Acceptance

  • [X] User manual has a Currency Pairs section explaining pair_code derivation/immutability, classification, and duplicate/inverted-pair rejection on create.
  • [X] User manual has a Currency Pair Conventions section explaining the pair_code picker (create-only, locked after) and pip_factor/tick_size/decimal_places/advance_calendar/business day convention/spot_relative/end_of_month, plus the Conventions cross-navigation toolbar button.
  • [X] No mention of deliverable/NDF/settlement currency as current, shipped behaviour.
  • [X] Screenshots (or placeholders) included per the manual's existing convention.
  • [X] Manual PDF rebuilds cleanly with the new content.

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

PRs

PR Title
#1494 [doc] Currency Pairs manual chapter, screenshot capture recipes, and env port fix

Review

# Comment summary File Decision Notes
1 "seven" leftover should say "five" (screenshot task description) task_currency-pair-manual-screenshots.org Applied Fixed in ea480f107.
2 Stale OreStudio (unspaced) branding in newly-added recipe text how_do_i_document_an_entity.org Applied Fixed in ea480f107 (3 instances).
3 _scan_ports has no upper bound; ~13th worktree re-enters the ephemeral range env_init.py Applied Fixed in ea480f107 — raises RuntimeError at EPHEMERAL_PORT_FLOOR instead of silently colliding.
4 Task State STARTED / Acceptance unchecked despite chapter shipping task_currency-pair-manual-chapter.org Applied Fixed in ea480f107 — flipped to DONE with Result.
5 story.org rows for both tasks out of sync with their own task docs story.org Applied Fixed in ea480f107 — both rows synced to DONE with dates.

Result

Shipped chapter_5b_currency_pairs.org, covering base/quote precedence, major/minor/exotic/commodity classification, pip/tick/ settlement conventions (sourced from the Currency pairs domain hub), and the Qt UI for both currency_pair and currency_pair_convention — including the duplicate/inverted-pair rejection and the Conventions cross-navigation toolbar button. Deliverability/NDF explicitly scoped out as unshipped per the Goal above. All five screenshot placeholders captured and wired in (see the sibling screenshots task); manual PDF and Qt-embedded HTML help both rebuild cleanly. Along the way, this work also generalised the authoring process into two recipes (How do I document an entity?, How do I capture screenshots for a manual chapter?) and a skill (doc-add-entity-chapter) chaining them, and fixed an unrelated NATS port-collision bug in the dev environment scheme discovered while readying up the environment for screenshot capture.

Emacs 29.3 (Org mode 9.6.15)