Task: FOMC bootstrap segment: pillars SPOT->1F..8F->1Y under one config

Table of Contents

This page documents a task in the FOMC-dated OIS short end: calendar-event model and flat-forward pillars story. It captures the goal, current status, acceptance, and any notes or results.

Goal

Bootstrap the SOFR OIS short end off consecutive FOMC-meeting-dated pillars with flat-forward (step) interpolation, transitioning to a continuous method at the long-end swap pillars, split at a defined tenor – as one configuration of the existing curve_bootstrap_engine and config schema, not special-cased engine code (story * Decisions D3).

Status

Field Value
State DONE
Parent story FOMC-dated OIS short end: calendar-event model and flat-forward pillars
Now Nothing.
Waiting on Feed lifecycle harmonization (folder cascade + control-plane).
Next Nothing.
Last touched 2026-08-10

Acceptance

  • ir_curve_bootstrap_pillars rows SPOT->1F, 1F->2F, …, 8F->1Y under one ir_curve_bootstrap_configs with interpolation_method FLAT_FORWARD_THEN_LOG_LINEAR and split_tenor_code = 1Y marking the boundary (settled 2026-08-10: n = 8; 1Y is the codegen default, where the Fixed-vs-Compounded-SOFR swap grid begins).
  • The IR Rates synthetic feed publishes raw-grid observations at the FOMC point ids (1F..nF), so curve_republish_resolver's point-id lookup succeeds.
  • The bootstrapped short end is flat (step function) between consecutive FOMC pillars and continuous beyond the split tenor; the FOMC-to-FOMC fixing schedule falls out of the pillar order.
  • Provable as one configuration of the existing engine – no engine code change, no schema change beyond the event-store and resolution tasks.

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

Blocked on the feed lifecycle harmonization story (Feed lifecycle harmonization: asset-class-agnostic feed control-plane), 2026-08-11. The remaining verification (feed end-to-end start, republish chain) needs the folder-scoped cascade to cover IR curve configs — until then the FOMC config can only be started by raw per-config requests. DB recreate and spot-checks are done; config, pillars, and market_series are seeded and live.

Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario, run through the QA Validation Runner panel) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

PRs

PR Title
#1953 [marketdata,refdata,synthetic] FOMC bootstrap segment: SPOT-1F..8F-1Y pillars

Review

Comment summary File Decision Notes
       

Result

Implemented and merged via PR #1953 (2026-08-11):

  • One ir_curve_bootstrap_configs row for the FOMC short end with interpolation_method FLAT_FORWARD_THEN_LOG_LINEAR and split_tenor_code 1Y, and the ir_curve_bootstrap_pillars rows SPOT->1F, 1F->2F, …, 8F->1Y under it (decision D3) – one configuration of the existing engine; no engine code change, no schema change beyond D1/D2.
  • Raw-grid quotes at the FOMC point ids: the IR Rates synthetic feed template entries and market_series rows for 1F..=8F= are seeded, so curve_republish_resolver's point-id lookup resolves.
  • Verified: full build green, DB recreated (schema 0.0.25, segment seeded and live), compass build rat green, PR CI green.
  • The branch also carried the template-driven ZZ sentinel fix for eventing-test FK parents (calendar_rule/calendar_exception), which makes those tests pass in an isolated test tenant.
  • Remaining end-to-end verification (feed start, republish chain) needs the folder cascade to cover IR curve configs; tracked by task folder-cascade-all-asset-classes in the feed lifecycle harmonization story (see * Notes).

Emacs 29.3 (Org mode 9.6.15)