Understanding instrument lifecycle events emitted by LUSID

LUSID is transitioning to a system where it automatically emits lifecycle events for supported instruments that have 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 bond coupon event each time a coupon is due. No user input is required, providing you have mastered the instrument as type Bond in the LUSID Security Master. In addition, we provide:

  • A default bond coupon transaction template that automatically generates a transaction for the coupon amount.

  • Recommendations for a bond coupon transaction type that confers a suitable economic impact for a transaction representing a bond coupon.

You can use the default transaction template for bond coupon events, or create your own. You can configure the transaction type to have any economic impact you like.

When you enable this feature in your LUSID environment, for each portfolio with a holding in the bond instrument, 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.

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.

LUSID instrument type

Lifecycle event(s)

Transaction type(s) mandated by default transaction template *

Notes

Status

Bond

BondCouponEvent

BondCoupon

For a worked 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

ComplexBond

BondCouponEvent

BondCoupon

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

InflationLinkedBond

BondCouponEvent

BondCoupon

Available

BondPrincipalEvent

BondPrincipal

EarlyRedemptionEvent

  • BondEarlyRedemption (if elected)

  • BondEarlyRedemptionAccrued (if elected and interest > 0)

MaturityEvent

Maturity

CdsIndex

CreditPremiumCashFlowEvent

CreditPremiumCashFlow

Available

ProtectionPayoutCashFlowEvent

ProtectionPayoutCashFlow

CreditDefaultSwap

CreditPremiumCashFlowEvent

CreditPremiumCashFlow

Available

ProtectionPayoutCashFlowEvent

ProtectionPayoutCashFlow

EquityOption

OptionExerciseCashEvent

CashSettledOptionExercise (if cash settled)

Available

OptionExercisePhysicalEvent

ExpiryEvent

Expiry

EquitySwap

MaturityEvent

Maturity

Available

ExchangeTradedOption

OptionExerciseCashEvent

CashSettledOptionExercise (if cash settled)

Available

OptionExercisePhysicalEvent

ExpiryEvent

Expiry

ForwardRateAgreement

MaturityEvent

Maturity

Available

Future

FutureMarkToMarketEvent

FutureMarkToMarket

For a worked example, see this tutorial.

Available

FutureExpiryEvent

FutureCashSettlement

FxForward

FxForwardSettlementEvent

For a worked example of a deliverable FxForward, 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

* If you use the default transaction template for an event you must ensure the transaction type(s) exists in the default scope and source. You can nominate a different transaction type, perhaps in another scope and source, by creating your own custom transaction template.