Rates¶
Beside prices, bars, trades and quotes, the lake keeps
rates: reference-rate fixings such as SOFR and €STR, their averages,
index levels such as the SOFR Index, and the points of a curve such as a
government par yield curve. A data plugin records them from the publisher,
and a reporting, portfolio, compliance or signal plugin reads them,
point in time, as it reads prices.
What a rate is¶
A rate is one row, with the envelope every lake row has, and:
| Field | What |
|---|---|
kind |
fixing, average, index_level, par_yield, benchmark_yield, zero, discount or coupon_equivalent |
value |
A UnitValue: a decimal with its unit. 3.87 per cent is 3.87 percent, never an amount of money. The units are a closed list (percent, basis_points, index with its base period, and a few counts and ratios), or a UCUM code for a physical unit |
convention |
The rate's day count (act_360, act_365_fixed, act_act, thirty_360, bus_252) and compounding (simple, compounded with its periods a year, continuous or discount), as the publisher states them |
tenor or maturity_date |
A curve's point by its tenor, a count and a unit (ON, 3M, 10Y), or by an exact maturity date |
preliminary |
A fixing published as preliminary, made final by a later version |
volume, transaction_count, percentiles |
Where the publisher states them, as SOFR's volume and its 1st, 25th, 75th and 99th percentiles |
A benchmark's yield beside the par yield. benchmark_yield is an
on-the-run benchmark's yield as its publisher states it, recorded on the
curve's record at its tenor with the publisher's convention, apart from the
par yield fitted at the same tenor: a read naming a kind answers each, and
one naming none answers both. The analytics component's par curve reads
par yields alone, so a benchmark is never fitted in as one. A data plugin
records it with rates.Feed.rate(..., "benchmark_yield", ...) on SDK
0.36.0.
What a publisher leaves out is no row. A tenor not published that day is not recorded, and reads as the source silent, never as zero.
A curve is one record, its points rows. A curve's subject is one record; each point is a row with its tenor, and the curve for a date is its rows on that business date. Two conventions for one tenor, a bill's discount rate and its coupon-equivalent yield, are two rows. A single-point series that is another source's curve point is recorded against the curve's record with its tenor, so both sit under the deployment's source priority.
Their subjects¶
A rate is about a referential record: an INS- record of the asset
class referential, of one of three types.
| Type | For |
|---|---|
interest_rate |
A reference rate: SOFR, EFFR, OBFR, the SOFR averages, €STR and its averages; each bound of a target range a record of its own |
rate_curve |
A curve: a government's nominal and real par curves, its bill rates, a zero curve |
index |
An index level: the SOFR Index, €STR's compounded index |
The platform seeds these records, as it seeds calendars and venues, each
named by the administrator's code at its source and, where one exists, a
FIGI or an ISIN. A deployment resolves one by its administrator's code where
the platform's licence list names that
administrator: the New York Fed, the Federal Reserve Board, the ECB and the
US Treasury, from chart 0.1.311. Core ships the platform's templates for the
three types, so a record names its template before its first pull. A
referential record names what the lake observes and is
never held: an entry moving a position in one is refused, invalid,
naming instrument_id, and no order names one. See
One ID per instrument.
Recorded once, revised by the publisher¶
Every rate carries its published time, where the publisher states it. A publisher's revision, a preliminary fixing made final or a value corrected, is the next version of the same row, ordered by published time; a version whose only change is its raw reference is a confirmation, recorded and not counted as a restatement. The row key names the series, kind, tenor or maturity, convention, business date and subject, never the published time.
Reading them¶
list_rates reads rates as
list_prices reads prices: the
latest in force at a valid time, a business date, or a range of valid
times; as of a recorded time; from the deployment's source priority, named
datasets, or every entitled dataset side by side; narrowed by kind and
tenor.
By publication time. Beside the recorded-time cut, a read may ask what
the source had published by a moment (published_as_of_ns): the
version in force by published time among the rows recorded by the cut. A
backfill recorded today then still answers what was known on an earlier
date. The recorded-time cut stays the default, and the audit answer.
Heard. A new rate is delivered as rates_recorded, conflated: the
latest value first per subject, dataset, kind, tenor, maturity and
convention, since every rate is daily or slower. The bounded query,
query_lake, takes the kind
rates too, for the roles that read them.
Which source first. A deployment admin orders the datasets a default read of rates takes on the Data sources page's priority, as for prices, bars, trades and quotes (see License and entitle a dataset).
Who records and reads them¶
The public publishers' plugins record them: the New York Fed's reference rates, the US Treasury's curves, the Federal Reserve Board's H.15 rates and zero curve, the ECB's €STR, and FRED's copies of them, each recorded against the publisher's record (see Using a data plugin).
| Role | Does |
|---|---|
data |
Records rates (record_rates) |
reporting, portfolio, compliance, signal |
Read them, hear them, and query them |
A dataset of rates is licensed, entitled and counted as any other: see Licences and entitlements. Filings and reported facts are kinds of their own: see Companies and corporate actions.
Related¶
- Record rates in a data plugin.
- The lake: datasets, versions, reads and wants.
- The lake's data dictionary.