Understanding instrument lifecycle events emitted by LUSID

Prev Next

LUSID can automatically emit lifecycle events for supported term instruments with maturity dates, enabling you to handle those events in a seamless and consistent manner.

Important: Instrument events are disabled by default. To enable them, register a recipe with every portfolio you wish events to impact. More information.

For example, LUSID emits a BondCouponEvent each time a bond coupon is due. No user input is required, providing you have mastered the underlying instrument as either type Bond, ComplexBond or InflationLinkedBond in the LUSID Security Master. In addition:

  • LUSID provides a BondCouponEvent default transaction template that automatically generates a transaction representing the coupon amount on the ex-date. You can override this default template if you wish, but it is not necessary.

  • You must implement a BondCoupon transaction type to confer a suitable economic impact on automatically-generated coupon transactions. We provide a recommendation, which you can either implement as-is or change if desired.

Note: Instruments of type Equity do not have a lifecycle in the normal sense but you can load a stream of corporate actions and trigger LUSID to emit appropriate events. More information.

With the transaction type in place, for each portfolio with a holding in the bond instrument on the ex-date of each coupon, LUSID automatically:

  1. Generates an output transaction scaled to your holding in that portfolio, and enriched with extra information such as gain/loss or a tax calculation.

  2. Implements the economic impact prescribed by the transaction type, for example adding the coupon amount to a particular cash balance.

Recommended reading: Handling bond coupon, principal and maturity events.

The following lifecycle events are available or planned. For more information, start by calling the GetTransactionTemplateSpecification API for that event.

LUSID instrument type

Lifecycle events emitted by LUSID

Transaction types needing implementation (click for recommendations)

Notes (see also Troubleshooting)

Status

Bond, ComplexBond, InflationLinkedBond

BondCouponEvent

BondCoupon

For a Bond example, see this tutorial.

To override a particular bond coupon or principal payment amount, manually load an appropriate event. More information coming soon.

To handle a bond default and terminate lifecycle events, manually load a BondDefaultEvent.

Available

BondPrincipalEvent

BondPrincipal

EarlyRedemptionEvent

  • BondEarlyRedemption (if elected)

  • BondEarlyRedemptionAccrued (if elected and interest > 0)

MaturityEvent

Maturity

MBS (modelled as a ComplexBond)

MbsCouponEvent

MbsCoupon

Available

MbsPrincipalEvent

MbsPrincipal

MbsPrincipalWriteOffEvent

MbsPrincipalWriteOff

MbsInterestShortfallEvent

MbsInterestShortfall

MbsInterestDeferralEvent

MbsInterestDeferral

MaturityEvent

Maturity

CdsIndex, CreditDefaultSwap

CreditPremiumCashFlowEvent

CreditPremiumCashFlow

For a CdsIndex example, see this tutorial.

Available

ProtectionPayoutCashFlowEvent

ProtectionPayoutCashFlow

MaturityEvent

Maturity

EquityOption, ExchangeTradedOption

OptionExerciseCashEvent

CashSettledOptionExercise (if cash settled)

For an ExchangeTradedOption example, see this tutorial.

Available

OptionExercisePhysicalEvent

ExpiryEvent

Expiry

EquitySwap

MaturityEvent

Maturity

Available

FlexibleDeposit

DepositInterestPaymentEvent

DepositInterestPayment

Available

UpdateDepositAmountEvent

UpdateDepositAmount

DepositCloseEvent

  • DepositCloseInterestPayment

  • DepositCloseFinalBalanceRepayment

  • DepositClose

FlexibleLoan

LoanInterestRepaymentEvent

LoanInterestRepayment

Available

LoanPrincipalRepaymentEvent

LoanBalanceReduction

RevolvingLoanFacility (if revolving loan)

TermLoanFacilityLimitDecrease (if term loan)

ForwardRateAgreement

MaturityEvent

Maturity

Available

Future

FutureMarkToMarketEvent

FutureMarkToMarket

For an example, see this tutorial.

Available

FutureExpiryEvent

FutureCashSettlement

FxForward

FxForwardSettlementEvent

For a deliverable FxForward example, see this tutorial.

Available

MaturityEvent

Maturity

FxSwap

FxForwardSettlementEvent

FxForwardPrincipal

Available

MaturityEvent

Maturity

InflationSwap

SwapCashFlowEvent

SwapCashFlow

Available

MaturityEvent

Maturity

InterestRateSwap

SwapCashFlowEvent

SwapCashFlow

Available

SwapPrincipalEvent

SwapPrincipal

MaturityEvent

Maturity

Repo

MaturityEvent

Maturity

Available

TermDeposit

TermDepositInterestEvent

TermDepositInterest

Available

TermDepositPrincipalEvent

TermDepositPrincipal

MaturityEvent

Maturity

TotalReturnSwap

MaturityEvent

Maturity

Available