Skip to content

v1.11.0 — Derived transparency, cheaper latest-value fetches, hot-path performance

Latest

Choose a tag to compare

@AnthonyPuggs AnthonyPuggs released this 14 Jun 16:41
· 6 commits to main since this release
eea819e

v1.11.0 — Derived transparency, cheaper latest-value fetches, hot-path performance

This release closes the three open items from the latest code review: it makes the
derived layer's alignment method machine-readable, stops the "latest print" path
from downloading full history, and removes wasted work on the request hot path.
All changes are additive and backward-compatible.

Added

  • alignment_method on every derived series. metadata.derived now carries an
    explicit alignment_method — one of locf, exact_month, period_intersection,
    or year_ended_lag — so a consumer can tell how a derived indicator's operands were
    aligned (e.g. last-observation-carried-forward, which can bias spreads and ratios
    around turning points). Declared on all 16 derived concepts and added to the
    response JSON Schema. (#65)

Changed

  • Real-rate concepts now state their ex-post basis. real_cash_rate,
    real_10y_bond_yield, real_bank_bill_rate, real_business_lending_rate, and
    real_mortgage_rate descriptions now make explicit that they are ex-post real rates
    (nominal less realised year-ended CPI inflation), not the ex-ante Fisher
    definition. (#65)
  • Response contract: derived_metadata in schemas/response.schema.json gains a
    required alignment_method field. This is additive — existing fields and tool
    signatures are unchanged. (#65)

Performance

  • Cheaper latest-value fetches. get_latest_observations for ABS now requests
    only the most recent observations upstream via SDMX lastNObservations, keyed
    distinctly in the cache, instead of downloading the full dataflow and truncating
    client-side. The expert get_abs_data tool is unchanged. (#66)
  • Hot-path pass. Derived-operand fetches now run concurrently (asyncio.gather);
    payload copying is centralised in the cache (the request hot path drops from two
    deep copies to one); cache disk I/O is offloaded off the event loop; and concurrent
    identical upstream fetches are coalesced with a single-flight helper so a burst of
    duplicate requests hits the source only once. (#67)

Fixed

  • real_business_lending_rate now aligns its lending-rate and inflation operands by
    (year, month), so the RBA monthly end-of-month series and the ABS monthly CPI
    series intersect correctly instead of yielding an empty result.