Skip to content

The qualification logic for Terminations doesn't align with the changes expected for this event #3798

@gtarres

Description

@gtarres

Issue Summary

The logic to qualify terminations includes a check to ensure that the quantities in the tradeLot have been decreased to zero. This is done by the function CompareTradeLotToAmount (called within the QuantityDecreasedToZero function).

This function only returns true if all quantities in the tradeLot have been reduced to zero:

Image

This is missaligned with the Termination event, since for certain products (e.g. bond options), there are values in the TradeLot that are not reduced to zero, and we do not expect them to be reduced.

To solve the issue, we should look into the logic applied by the function UpdateAmountForEachMatchingQuantity to select the tradeLots where the quantity is to be reduced to zero and apply the same criteria at the qualification stage.

Steps to Reproduce

In a IR Debt Option, there are the following quantities in the tradeLot:

  • The notional amount: total traded notional amount of the underlying debt option trade
  • The option entitlement (this is the name in FpML): The number of units of underlyer per option comprised in the option transaction.

The option entitlement it's a feature of the product, therefore, we do not expect this quantity to be reduced to zero. Being the notional amount the only quantity we expect to be reduced to zero. However, then the event is not qualified as a termination.

This behaviour can be proven in the following sample (mock up):
ir-option-debt-option-ex01-output-term-cdm-proposed.json

Where the quantities are:

  • The notional amount: 600000000 USD
  • The option entitlement: 100000000 USD

Expected Behaviour

Should qualify as Termination, even if one of the quantities on the tradeLot is not zero.

Actual Behaviour

Doesn't qualify as Termination.

Compatibility

This change is backward compatible.

Release

CDM 7dev.

Metadata

Metadata

Assignees

Labels

backward-incompatibleLikely to be backward-incompatible; must be on Steering WG roadmap; 2 maintainers to approve

Type

Projects

Status

Follow-up

Status

Follow-up

Relationships

None yet

Development

No branches or pull requests

Issue actions