An inflation swap on a YY leg cannot be stored

Table of Contents

This page is a capture in the inbox bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

1. What

Give the inflation swap's year-on-year leg the treatment the CPI leg just got: read Index, BaseCPI and ObservationLag from YYLegData on import, and write that group back on export. The alternative is a named refusal, so a YY document reads as a product the family does not model rather than as a raw check violation.

2. Why

The rates review's finding 2 was that an inflation swap cannot be stored, and that is fixed for a CPI leg. A year-on-year swap states the same three values on a YY leg, and neither direction of the mapper has a YY branch, so the fact row's inflation_index_code stays empty and the table's non-empty check refuses the insert. The trade is then left half-written exactly as before: a trade row and a rate_instruments header, no fact, no legs.

No document in the corpus uses a YY leg, which is why nothing noticed, and the same absence of a witness is the reason the CPI half survived so long. ORE's schema makes YY a first-class alternative to CPI, so this is a product the family routes and cannot store.

3. References

4. See also

Emacs 29.3 (Org mode 9.6.15)