Understanding instrument lifecycle events emitted by LUSID

Prev Next

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

Important: To enable instrument events, register a recipe with every portfolio you wish events to impact. More information.

For example, LUSID automatically 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 each coupon amount on its 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 bond 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 BondCoupon 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 bond coupon amount to a particular cash balance.

Note: If an event does not generate an output transaction, the issue usually relates to transaction type scopes and sources. Troubleshooting guide.

Bond, ComplexBond and InflationLinkedBond (but not MBS)

Recommended reading: Handling bond coupon, principal and maturity events

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

BankruptcyEvent

❌ Must be manually loaded

❌

N/A

BondCouponEvent

✅ Can also be manually loaded

✅

BondCoupon

BondDefaultEvent

❌ Must be manually loaded

❌

N/A

BondPrincipalEvent

✅ Can also be manually loaded

✅

BondPrincipal

ChangeEvent

❌ Must be manually loaded

✅

  • ChangeAssimilationDebit

  • ChangeAssimilationCredit

ConsentEvent

❌ Must be manually loaded

✅

ConsentAccept

ConversionEvent

❌ Must be manually loaded

✅

DrawingEvent (not ILB)

❌ Must be manually loaded

✅

BondDrawing

DutchAuctionEvent (not ILB)

❌ Must be manually loaded

✅

  • DutchAuctionRemoveExisting

  • DutchAuctionReceiveUnits

  • DutchAuctionCashSettlement

  • DutchAuctionCashInLieu

EarlyRedemptionEvent

❌ Must be manually loaded

✅

ExchangeOfferEvent (not ILB)

❌ Must be manually loaded

✅

  • ExchangeRemoveExisting

  • ExchangeReceiveUnits

  • ExchangeCashInLieu

  • ExchangeOfferBuyUp

  • ExchangeReceiveCash

InterestPaymentEvent

❌ Must be manually loaded

✅

InterestPayment

LiquidationPaymentEvent (not ILB)

❌ Must be manually loaded

✅

  • LiquidationCash

  • LiquidationCashFinal

MaturityEvent

✅

✅

Maturity

PariPassuEvent

❌ Must be manually loaded

✅

  • PariPassuAssimilationDebit

  • PariPassuAssimilationCredit

PartialDefeasanceEvent

❌ Must be manually loaded

❌

N/A

PutRedemptionEvent

❌ Must be manually loaded

✅

RepurchaseOfferEvent

❌ Must be manually loaded

✅

  • RepurchaseOfferEventChooseCash

  • RepurchaseOfferEventCashAccrued

  • RepurchaseOfferEventChooseTender

  • RepurchaseOfferEventTenderAccrued

SecurityWriteOffEvent (not ILB)

❌ Must be manually loaded

✅

Worthless

SpinOffEvent

❌ Must be manually loaded

✅

TenderEvent

❌ Must be manually loaded

✅

WorthlessEvent (not ILB)

❌ Must be manually loaded

✅

Worthless

MBS (modelled as a ComplexBond)

To convert, default or redeem an MBS early, contact Technical Support.

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

MbsCouponEvent

✅

✅

MbsCoupon

MbsInterestDeferralEvent

✅

✅

MbsInterestDeferral

MbsInterestShortfallEvent

✅

✅

MbsInterestShortfall

MbsPrincipalEvent

✅

✅

MbsPrincipal

MbsPrincipalWriteOffEvent

✅

✅

MbsPrincipalWriteOff

MaturityEvent

✅

✅

Maturity

PIK bond (modelled as a ComplexBond)

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

PaymentInKindEvent

❌ Must be manually loaded

❌

N/A

PikBondCashCouponEvent

✅

✅

BondCoupon

PikBondCouponEvent

❌ Must be manually loaded

❌

N/A

PikBondInterestCapitalisationEvent

✅

✅

BondInterestCapitalisation

PikBondInterestEvent

✅

✅

  • PikBondInterest

  • PikBondInterestNewUnits

  • PikBondInterestCashInLieu

PikBondPrincipalEvent

✅

✅

PikBondPrincipal

MaturityEvent

✅

✅

Maturity

CdsIndex and CreditDefaultSwap

Recommended reading: Handling premium, credit and maturity events

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

CreditPremiumCashFlowEvent

✅

✅

CreditPremiumCashFlow

MaturityEvent

✅

✅

Maturity

ProtectionPayoutCashFlowEvent

❌ Triggered by loading CdxCreditEvent or CdsCreditEvent

✅

ProtectionPayoutCashFlow

EquityOption, ExchangeTradedOption, ToBeAnnouncedOption, CdsOption, InterestRateSwaption

Recommended reading: Handling exercise or expiry events

Note for an ETO the underlying must be an Equity or Future. Other underlyings do not support instrument events.

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

OptionExerciseCashEvent

(if cash-settled)

❌ Triggered by event instruction

✅

CashSettledOptionExercise

OptionExercisePhysicalEvent

(if physically-settled)

❌ Triggered by event instruction

✅

MergerEvent
(EquityOption only)

❌ Must be manually loaded

✅

ExpiryEvent

✅ Only if unexercised

✅ Only if unexercised

Expiry

WarrantsExerciseEvent
(EquityOption only)

❌ Must be manually loaded

✅

  • WarrantExercise

  • WarrantSurrender

  • WarrantLapse

FlexibleRepo

Recommended reading: Handling cashflow, collateral, payment and closure events

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

FlexibleRepoCashFlowEvent

✅

✅

FlexibleRepoCashTransfer

FlexibleRepoCollateralEvent

✅

✅

FlexibleRepoCollateralTransfer

FlexibleRepoInterestPaymentEvent

✅

✅

FlexibleRepoInterestPayment

FlexibleRepoFullClosureEvent

❌ Must be manually loaded

❌

N/A

FlexibleRepoPartialClosureEvent

❌ Must be manually loaded

❌

N/A

MaturityEvent

✅

✅

Maturity

FundShareClass

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

CashDividendEvent

❌ Must be manually loaded

✅

DividendIncome

ChangeEvent

❌ Must be manually loaded

✅

  • ChangeAssimilationDebit

  • ChangeAssimilationCredit

Future

Recommended reading: Handling mark to market and expiry events

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

FutureMarkToMarketEvent

✅

✅

FutureMarkToMarket

FutureExpiryEvent

✅

✅

FutureCashSettlement

FxForward

Recommended reading: Handling settlement and close out events for deliverable forwards

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

FxForwardSettlementEvent

✅

✅

EarlyCloseOutEvent

❌ Must be manually loaded

✅

EarlyCloseOutSettlement

MaturityEvent

✅

✅

Maturity

InterestRateSwap

Recommended reading: Handling cashflow and principal events

Lifecycle event

Automatically emitted by LUSID?

Event generates output transactions?

Transaction types requiring implementation

CancelSwapEvent

❌ Must be manually loaded

✅

CancelSwapClose

SwapCashFlowEvent

✅

✅

SwapCashFlow

SwapPrincipalEvent

✅

✅

SwapPrincipal

MaturityEvent

✅

✅

Maturity

Other instrument types

LUSID instrument type

Lifecycle event

Automatically emitted by LUSID?

Event generates transactions?

Transaction types requiring implementation

BondForward

BondForwardCashSettlementEvent

✅

✅

BondForwardCashSettlement

BondForwardTerminationEvent

❌ Must be manually loaded

✅

BondForwardTermination

MaturityEvent

✅

✅

Maturity

BondOption

BondOptionTerminationEvent

✅

✅

  • BondOptionTermination

  • BondOptionTerminationSettlement

OptionExerciseCashEvent

❌ Triggered by event instruction

✅

CashSettledOptionExercise

ExpiryEvent

✅ Only if unexercised

✅ Only if unexercised

Expiry

CapFloor

CapletFloorletCashFlowEvent

✅

✅

CapletFloorletCashFlow

MaturityEvent

✅

✅

Maturity

CapitalInterest

AmendCommitmentEvent

✅

PEAmendCommitment

CapitalCallEvent

✅

PEDrawdown

FundDistributionEvent

✅

  • PEDistributionNonRecallable

  • PEDistributionRecallable

NavReportEvent

CommodityCalendarSwap

CommodityCalendarSwapCashFlowEvent

✅

✅

CommodityCalendarSwapCashFlow

MaturityEvent

✅

✅

Maturity

CommodityForward

CommodityForwardCashSettlementEvent

✅

✅

CommodityForwardCashSettlement

CommodityForwardPhysicalSettlementEvent

✅

✅

  • CommodityForwardPhysicalClose

  • CommodityForwardPhysicalDelivery

MaturityEvent

✅

✅

Maturity

ContractForDifference

MaturityEvent

✅

✅

Maturity

EquitySwap

MaturityEvent

✅

✅

Maturity

FlexibleDeposit

DepositInterestPaymentEvent

✅ Can also be manually loaded

✅

  • DepositInterestPayment

  • DepositInterestPaymentBalanceAdjustment

UpdateDepositAmountEvent

❌ Must be manually loaded

✅

UpdateDepositAmount

DepositRollEvent

❌ Must be manually loaded

✅

  • DecreaseBalance

  • IncreaseBalance

  • WithdrawInterest

  • ReinvestInterest

DepositSweepEvent

❌ Must be manually loaded

✅

DepositSweep

DepositCloseEvent

❌ Must be manually loaded

✅

  • DepositCloseInterestPayment

  • DepositCloseFinalBalanceRepayment

  • DepositClose

FlexibleLoan

LoanInterestRepaymentEvent

✅ Can also be manually loaded

✅

LoanInterestRepayment

LoanPrincipalRepaymentEvent

✅ Can also be manually loaded

✅

  • LoanBalanceReduction

  • LoanLimitReduction

  • TermLoanFacilityLimitDecrease

  • RevolvingLoanFacility

ForwardRateAgreement

MaturityEvent

✅

✅

Maturity

FxSwap

FxForwardSettlementEvent

✅

✅

FxForwardPrincipal

MaturityEvent

✅

✅

Maturity

InflationSwap

SwapCashFlowEvent

✅

✅

SwapCashFlow

MaturityEvent

✅

✅

Maturity

LoanFacility

ContractInitialisationEvent

❌ Must be manually loaded

✅

InitialiseContract

AdjustGlobalCommitmentEvent

❌ Must be manually loaded

✅

AdjustGlobalCommitment

DrawdownEvent

❌ Must be manually loaded

✅

  • DrawdownFacilityBalance

  • IncreaseContractBalance

LoanInterestRepaymentEvent

✅ Can also be manually loaded

✅

LoanInterestRepayment

LoanFacilityContractRolloverEvent

❌ Must be manually loaded

❌

N/A

LoanPrincipalRepaymentEvent

✅ Can also be manually loaded

✅

  • LoanBalanceReduction

  • LoanLimitReduction

  • TermLoanFacilityLimitDecrease

  • RevolvingLoanFacility

LoanFacilityDelayedCompensationPaymentEvent

❌ Must be manually loaded

✅

LoanFacilityDelayedCompensationPayment

PreferredShare

BondCouponEvent

✅ Can also be manually loaded

✅

BondCoupon

BondPrincipalEvent

✅ Can also be manually loaded

✅

BondPrincipal

BonusIssueEvent

❌ Must be manually loaded

✅

CapitalDistributionEvent

❌ Must be manually loaded

✅

DistributionIncome

ConversionEvent

❌ Must be manually loaded

✅

EarlyRedemptionEvent

❌ Must be manually loaded

✅

StockSplitEvent

❌ Must be manually loaded

✅

TermDeposit

TermDepositInterestEvent

✅

✅

TermDepositInterest

TermDepositPrincipalEvent

✅

✅

TermDepositPrincipal

MaturityEvent

✅

✅

Maturity

TotalReturnSwap

TerminationEvent

✅

✅

TerminationSettlement

MaturityEvent

✅

✅

Maturity

VolatilitySwap

MaturityEvent

✅

✅

Maturity