ores.refdata.ir_curve_bootstrap_pillar
Table of Contents
One row of a bootstrap config's pillar list: which tenor period,
priced/bootstrapped as which curve role (deposit-equivalent,
FRA-equivalent, swap-equivalent – see
Curve Role), in what order. Same one-parent-many-children shape
ir_curve_template_entry uses for ores.synthetic's generation
recipe, but source-independent: this names the pillar list a
bootstrap reads from the raw instrument grid, not a generation
recipe. start_tenor_code=/=end_tenor_code are soft (undeclared)
tenor references, matching ir_curve_template_entry's own tenor
columns exactly – tenor validation happens through the
tenor_resolution machinery at the application layer, not a
per-consumer DB-level FK.
The pillar names the market series it reads, as market_series_id: a
soft reference to ores.marketdata.market_series, per
A pillar names the market
series it reads. The dependency is stated where a person reads it,
and a pillar can read any series the party holds: a synthetic feed's,
a vendor's, an official fixing's, or one seeded for a scenario.
Only the series is named. The term of the point a pillar reads stays derived, because the pillar's end tenor and the parent config's tenor convention are what say where the point falls.
1. Flags
2. Columns
2.1. id
Surrogate UUID uniquely identifying this pillar row.
2.2. party_id
Owning party (legal entity) this pillar's config belongs to.
ctx.generate_uuid()
2.3. bootstrap_config_id
Parent ir_curve_bootstrap_config this pillar contributes to.
ctx.generate_uuid()
2.4. sequence_index
Zero-based ordinal of this pillar within its parent's list (short-end to long-end).
faker::number::integer(0, 20)
2.5. start_tenor_code
Tenor label marking the start of this pillar's period (references
tenor.code). 'SPOT' for point instruments (deposits, swaps); the
period's own front tenor (e.g. '3M') for interval instruments
(FRAs) – same convention as ir_curve_template_entry.
std::string("SPOT")
2.6. end_tenor_code
Tenor label marking the end (maturity) of this pillar's period
(references tenor.code, e.g. "1M", "2Y").
std::string("1Y")
2.7. curve_role_code
Instrument-pricing role this tenor bootstraps as (references
curve_role.code: DEPOSIT, FRA, or SWAP – see
Curve Role) – determines which inverse-pricing derivation the
bootstrapping engine applies at this pillar.
std::string("SWAP")
2.8. market_series_id
Soft reference to the market_series (in ores.marketdata) whose
observation at the as-of is this pillar's quote. Named by the caller
from the series its desk already holds; no operation composes it.
The read resolves the datum's term from end_tenor_code through the
parent config's tenor_convention_code, so the named series and the
pillar's end tenor together say which observation the pillar reads.
One series holds a ladder: every pillar that starts at the same place
and stands for the same index reads the same series at its own term.
ctx.generate_uuid()
3. SQL
3.1. Flags
3.2. Checks
| expression |
|---|
| "start_tenor_code" <> '' |
| "end_tenor_code" <> '' |
| "curve_role_code" <> '' |
4. Foreign keys
4.1. bootstrap_config_id
5. Insert trigger
5.1. Validations
| column | validation_function |
|---|---|
| curve_role_code | ores_refdata_validate_curve_role_fn |
6. C++
6.1. Flags
6.2. Repository
6.3. Domain includes
#include <boost/uuid/uuid.hpp> #include <string>
6.4. Entity includes
#include <string>
6.5. Conventions
6.6. Custom repository methods
7. See also
- IR Curve Bootstrap Config – the parent this pillar belongs to.
- Curve Role – the instrument-pricing role this pillar carries.
- A pillar names the market series it reads – the decision that this row gains a soft reference to the series it reads.
- ores.refdata – component group overview.