Story: Add a server-side rate-history endpoint for chart panels
Table of Contents
This page documents a story in Product backlog — inbox, carried unfinished from Sprint 24 at close. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Add a real server-side history endpoint (component/schema TBD —
likely ores.marketdata or ores.telemetry, wherever tick/rate
persistence already lives) that returns a bounded time series of
past values for a given series key (e.g. a CRM pair + crm_name, or a
feed binding's symbol) over a requested window/resolution. Chart-style
UI panels (starting with the CRM cross-rates matrix's "FX Pair
Overview" sparkline) currently have no way to show a trend — the CRM
matrix panel's sparkline today is built entirely client-side from
this one session's own manual/auto reloads, which means it's empty
on first open and forgotten on window close.
The CRM cross-rates matrix's reference mockup (a chart panel per selected pair) is a shape we'll want to repeat across other trading-related UIs, not a one-off. Building each chart's data source ad hoc (client-side rolling buffer, per panel) doesn't scale and gives a worse experience than a proper endpoint would.
Status
| Field | Value |
|---|---|
| State | BACKLOG |
| Carried from | Sprint 24 (unfinished at close) |
| Now | Not yet started. |
| Waiting on | Nothing. |
| Next | Decide which component owns the endpoint (ores.marketdata vs ores.telemetry). |
| Last touched | 2026-07-21 |
Acceptance
- A server-side history endpoint exists, returning a bounded time series of past values for a given series key over a requested window/resolution.
- The CRM cross-rates matrix's sparkline widget consumes the endpoint instead of its client-side-only rolling buffer, so history is available on first open, not just accumulated during the current session.
- The endpoint is reusable by other chart-style UI panels, not bespoke to the CRM matrix.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
Decisions
Out of scope
References
projects/ores.qt/marketdata/src/CrmCrossRatesMatrixMdiWindow.cpp(CrmRateSparklineWidget, the current client-side-only rolling buffer this story replaces).
See also
- Market Data Architecture — the producer/authority/consumer remap pattern relevant to where this endpoint should live.