Skip to main content

Module mm

Module mm 

Expand description

Money-market templates: deposits (MoneyMarket) and rate futures (RateFuture). Money-market templates — the mm group covers single-currency front-end instruments quoted as tagged pillars: deposits (type = "MoneyMarket", a simple accrual to a convention-advanced maturity), rate futures (type = "RateFuture", a forward accrual over a fixed contract length), and forward-rate agreements (type = "FRA", a forward accrual on a projection curve).

All three are product-bearing: a rate-future template builds a RateFuture, a FRA template builds a ForwardRateAgreement, and a deposit template builds a MoneyMarketDeposit, each priced through the ordinary market context.

Each group reached that state separately, and the deposit reached it last. The futures and FRA groups were pillar-only for a while — the conventions were complete and the calibration helpers consumed them, but the product builder rejected them, so a curve could be calibrated from a contract nobody could hold.

The deposit group was pillar-only on purpose, and that decision has now been reversed rather than eroded. The argument for it was that building a product from a convention-only template should fail loud rather than silently produce something, and it was sound for exactly as long as nothing could price a deposit. Once something can, refusing to build one stops protecting a caller and starts withholding the market’s standard short-end pillar: without it a real bootstrap loses about five orders of magnitude of agreement at every pillar it has.

A previous version of this paragraph claimed the pillar-only status was “asserted by the registry-wide parity check”. No such check existed — the only code that distinguished the group was the binding’s family_of, naming it in an error message. The claim is deleted rather than moved. What observes a group’s status now is that each family has a constructor test: tests/money_market_deposit.rs builds a deposit from USD-SOFR-DEPO and calibrates with it, which a convention-only group could not pass.

Statics§

MM_DEPOSIT
Registry rows for this template group.
MM_FRA
Registry rows for this template group.
MM_FUTURE
Registry rows for this template group.

Functions§

cad_corra_3m_fut
CAD-CORRA-3M-FUT template.
chf_saron_3m_fut
CHF-SARON-3M-FUT template.
deposit 🔒
Builder for a money-market deposit template. name doubles as the registry code.
eur_estr_3m_fut
EUR-ESTR-3M-FUT template.
eur_estr_depo
EUR-ESTR-DEPO template.
eur_euribor_3m_fra
EUR-EURIBOR-3M-FRA template.
eur_euribor_3m_fut
EUR-EURIBOR-3M-FUT template.
eur_euribor_6m_fra
EUR-EURIBOR-6M-FRA template.
fra 🔒
Builder for a forward-rate-agreement template. name doubles as the registry code; the index conventions (forward-curve name, accrual period, day-count) are resolved from the index registry by index_code, so the FRA pins the same forward curve as the index’s vanilla swap.
gbp_sonia_3m_fut
GBP-SONIA-3M-FUT template.
gbp_sonia_depo
GBP-SONIA-DEPO template.
ibor_index 🔒
Resolves a term (IBOR) index by code, panicking on a wiring error (caught by the registry round-trip test).
rate_future 🔒
Builder for a rate-future template. name doubles as the registry code; the underlying index is resolved from the index registry by index_code, so index_name carries the projection-curve key the contract’s forwards belong to (the join key projection-side futures pillars validate against); the contract accrual length is period_months months. contract_notional and contract_accrual are the published contract specification, and contract_accrual is the exchange’s fixed period fraction — not the accrual of day_count over the real contract dates. See FutureTemplate::contract_accrual for why conflating the two misprices the contract’s bp value by 1.1%–2.2%. averaged says the contract settles on the average of its daily prints; see [FutureTemplate::averaged].
rate_index_name_and_currency 🔒
Resolves any rate index (overnight or term) by code to its curve name — the projection-namespace key ("SOFR", "EURIBOR"), panicking on a wiring error (caught by the registry round-trip test). The projection-curve key and ISO currency of any rate index (overnight or term), resolved by code. The currency is not recoverable from the name — "SOFR" does not say USD — so a template that needs both takes both from one lookup.
usd_effr_1m_fut
USD-EFFR-1M-FUT template.
usd_sofr_1m_fut
USD-SOFR-1M-FUT template.
usd_sofr_3m_fut
USD-SOFR-3M-FUT template.
usd_sofr_depo
USD-SOFR-DEPO template.