Cftc Ois Curve
Implementation details
Class names
| Model name | Parameters class | Data class |
|---|---|---|
CftcOisCurve | CftcOisCurveQueryParams | CftcOisCurveData |
Import Statement
from openbb_core.provider.standard_models. import (
CftcOisCurveData,
CftcOisCurveQueryParams,
)
Parameters
- standard
- cftc
currency: str | None
Default: USD
Currency of the swap curve. Each maps to that currency's overnight benchmark rate. Currencies whose overnight index swaps are too thinly reported to bootstrap a curve are not offered. CNY builds from FR007 fixed-float swaps, backstopped by the CFETS daily bulletin's traded curve.
curve_type: str | None
Default: par
Which representation of the curve to return in rate: the par swap rate or the annually compounded zero rate. The forward curve is a separate endpoint, ois_forward_curve.
source: str | None
Default: search
Where the trades come from. 'search' queries a window of dissemination days and prices each tenor from the most recent day it traded in depth. 'slice' uses a single day's cumulative file, walking a weekend or holiday back to the most recent day that priced this currency, which still leaves sparse tenors missing.
date: date | None
Dissemination date (UTC). With source='search' this ends the lookback window, and defaults to today. With source='slice' it selects the most recent day on or before it that priced this currency, defaulting to the latest. History is retained for 366 days.
lookback_days: int | None
Default: 7
Number of dissemination days to look back over, ending on date. With source='search' a longer window fills in more tenors, at the cost of pricing the thin ones further from today; check staleness_days and cap it with max_staleness_days. A thinly traded currency reaches a full curve only over a long window - the search chains 180-day sub-windows up to the one-year horizon. With source='slice' it is how far back to walk for the most recent day that priced this currency.
max_staleness_days: int | None
Drop any node whose freshest print is older than this many days, measured from the curve's own date. A wide lookback_days fills thin tenors but resurrects some that last traded months ago in a different rate regime; capping staleness keeps the curve current rather than a mosaic of old levels. Only meaningful with source='search'. None keeps every live node and reports its age in staleness_days. Nodes that have already matured by the curve date are always dropped, cap or none.
granularity: str | None
Default: benchmark
Tenor axis of the curve. 'benchmark' snaps trades to standard nodes; 'observed' emits a node for every distinct tenor traded, including broken dates.
aggregation: str | None
Default: median
How each node's executed rates are reduced to a par rate. Median is the default because notionals above the reporting cap are disseminated at the cap, which biases notional-weighted averages.
min_trades: int | None
Default: 1
Drop nodes priced by fewer than this many trades on their as-of day. The default keeps every node, because one executed trade is still a price; num_trades, min_rate and max_rate say how thin it is. Raise it to admit only nodes several trades agree on, at the cost of losing the tenors a thin currency never trades in depth on any single day.
cleared: bool | None
Default: False
Keep only centrally cleared or intent-to-clear trades, dropping the bilateral uncleared prints that carry most of the off-market noise. Most useful with granularity='observed', where thin nodes are exposed to it.
interpolation: str | None
Default: log_linear
How discount factors are interpolated between pillars, on the log of the discount factor. 'log_linear' is piecewise linear, giving piecewise-flat instantaneous forwards. 'log_cubic' is a monotone Hermite cubic, giving smooth forwards without overshooting into negative rates.
overnight_anchor: bool | None
Default: False
Anchor the curve's front end with the benchmark's latest published overnight fixing, as a 1-day node. The fixing is a realized rate, so the node carries no trades and its own as-of date.
use_cache: bool | None
Default: True
Cache the source data locally. Closed dissemination days are immutable and are never re-fetched; daily files are revalidated against the source ETag.
Data
- standard
- cftc
date: date | str
Date of the curve, being that of its freshest node.
currency: str
Currency of the curve.
benchmark: str
Overnight benchmark rate the swaps reference (SOFR, ESTR, ...).
index: str
Curve index plotted on the chart and used as the row index: the tenor label under 'benchmark' granularity, else the node's maturity date under 'observed' granularity.
as_of_date: date | None
Dissemination date the node's trades were reported on. Nodes are priced from the most recent day that cleared min_trades, so a thin tenor is dated earlier than a deep one.
staleness_days: int | None
Days between the node's as-of date and the curve's date. Zero on the freshest nodes.
tenor: str
Tenor of the curve node.
tenor_days: int
Tenor of the node, in days.
tenor_years: float
Tenor of the node, in years, on an ACT/365F basis.
maturity_date: date
Maturity date implied by the node's tenor, from its as-of date. Under 'observed' granularity this is also the curve's index.
rate: float | None
Rate of the selected curve_type at the node, in percent (4.32 is 4.32%): the par swap rate or the annually compounded zero rate. In percent rather than a decimal so the chart axis reads as a rate - the grid formatter is not applied to the chart. Omitted where the bootstrap degenerates.
curve_type: str
Which representation rate holds: par or zero.
discount_factor: float | None
Discount factor bootstrapped to the node's maturity.
day_count: str | None
Fixed-leg day count convention the node's trades reported, used to accrue the fixed leg in the bootstrap. ACT/360 for USD, EUR, CHF, MXN, COP and CLP; ACT/365F for GBP, JPY, CAD, SGD, INR, ZAR, THB, ILS, AUD and NZD. BRL reports BUS/252, recovered to the same year fraction on calendar days.
num_trades: int
Number of executed trades aggregated into the node.
total_notional: float | None
Sum of the leg 1 notional of the node's trades.
min_rate: float | None
Lowest executed rate at the node, in percent (4.32 is 4.32%).
max_rate: float | None
Highest executed rate at the node, in percent (4.32 is 4.32%).
is_capped: bool | None
Whether any trade at the node had its notional disseminated at the reporting cap.