You can model a repurchase agreement as a buyer or a seller using the FlexibleRepo
instrument type in LUSID. See how to do this.
LUSID provides the following instrument lifecycle events for a FlexibleRepo
, which you can handle or trigger as required:
FlexibleRepoCashFlowEvent
. This event is automatically emitted on the start date and again on the maturity date specified in the instrument definition. More information.FlexibleRepoCollateralEvent
. This event is automatically emitted on the start date and again on the maturity date. More information.FlexibleRepoInterestPaymentEvent
. This event is automatically emitted for anOpenRepo
on the interest payment date for each window. More information coming soon.FlexibleRepoPartialClosureEvent
. This event is not automatically emitted by LUSID, but can be manually loaded to trigger a partial closure. More information coming soon.FlexibleRepoFullClosureEvent
. This event is not automatically emitted by LUSID, but can be manually loaded to close anOpenRepo
. More information coming soon.MaturityEvent
. This event is automatically emitted on the maturity date. More information coming soon.
Mastering instruments and establishing positions
Imagine we have two portfolios in LUSID with holdings in the following instruments:
Each has a
FlexibleRepo
instrument that is identical except one has arepoType
ofBuyer
and the otherSeller
.Each has the the same fixed-rate
Bond
instrument with monthly coupons specified as collateral usingMasteredInstrument
.
See how to set this scenario up. In summary:
Instrument type | Positions |
---|---|
| Units: 1 Transaction date: 1 January 2025 Start date: 2 January 2025 Maturity date: 31 March 2025 Length of contract: 88 days Purchase price: £1,000,000 Repurchase price: £1,012,054.79 Bond collateral coupons: Seller keeps |
| Units: 3 Transaction date: 1 January 2025 Coupon date: 28th of each month Coupon amount: Approximately £20.80 per unit held |
Since the date of a transaction to establish a position in a FlexibleRepo
must be before the start date of the instrument, our holdings on 1 January 2025 are the identical as follows (click to enlarge):
Buyer portfolio | Seller portfolio |
---|---|
Handling cash transfer on start and maturity dates
LUSID emits FlexibleRepoCashFlowEvent
on the:
Start date specified in the instrument definition to transfer the purchase price from the buyer to the seller.
Maturity date to transfer the repurchase price from the seller to the buyer.
To handle this event, you must create a FlexibleRepoCashTransfer
transaction type in the default
scope and default
source. See our recommendation.
Start date
On 2 January 2025 we examine holdings to see that LUSID has transferred £1,000,000 from the buyer to the seller:
Buyer portfolio | Seller portfolio |
---|---|
We can examine the output transaction automatically generated by FlexibleRepoCashFlowEvent
in each portfolio to implement this transfer:
Buyer portfolio | Seller portfolio |
---|---|
Maturity date
On 31 March 2025 we examine holdings to see that LUSID has transferred £1,012,054.79 from the seller to the buyer:
Buyer portfolio | Seller portfolio |
---|---|
We can examine the output transaction automatically generated by FlexibleRepoCashFlowEvent
in each portfolio to implement this transfer:
Buyer portfolio | Seller portfolio |
---|---|
Handling collateral transfer on start and maturity dates
LUSID emits FlexibleRepoCollateralEvent
on the:
Start date specified in the instrument definition to transfer collateral unit(s) from the buyer to the seller.
Maturity date to transfer collateral unit(s) from the seller to the buyer.
To handle this event, you must create a FlexibleRepoCollateralTransfer
transaction type in the default
scope and default
source. See our recommendation.
Note: If you do not want to transfer collateral units between buyer and seller you can simply ignore this event by not creating the
FlexibleRepoCollateralTransfer
transaction type.
Start date
On 2 January 2025 we examine holdings to see that LUSID has transferred one Bond
collateral unit from the seller to the buyer:
Buyer portfolio | Seller portfolio |
---|---|
We can examine the output transaction automatically generated by FlexibleRepoCollateralEvent
in each portfolio to implement this transfer:
Buyer portfolio | Seller portfolio |
---|---|
Maturity date
On 31 March 2025 we examine holdings to see that LUSID has transferred one Bond
collateral unit from the buyer to the seller:
Buyer portfolio | Seller portfolio |
---|---|
We can examine the output transaction automatically generated by FlexibleRepoCollateralEvent
in each portfolio to implement this transfer:
Buyer portfolio | Seller portfolio |
---|---|
Understanding cashflow ownership for collateral transferred
In our example, coupons for the Bond
collateral during the lifetime of the FlexibleRepo
are due on the following dates: 28 January, 28 February, 28 March.
Providing LUSID is set up to handle BondCouponEvent
, a coupon for approximately £20.80 per bond collateral unit held is automatically generated, so for example on 28 January:
In the buyer portfolio with four units held, LUSID generates a coupon for £83.33.
In the seller portfolio with two units held, LUSID generates a coupon for £41.67.
However, since the FlexibleRepo
is set up for the seller to keep bond coupon payments, LUSID automatically handles refunding the seller the coupon for the transferred unit.
If we examine holdings on 28 January we see we have equal bond coupon payments of £62.50, despite the Bond
collateral units held being different:
Buyer portfolio | Seller portfolio |
---|---|
We can examine the output transaction generated by FlexibleRepoCashFlowEvent
in each portfolio to implement this refund. Note the Manufactured
tag in the transaction ID:
Buyer portfolio | Seller portfolio |
---|---|
Handling intermediate interest payments for an open repo
More information coming soon
Partially closing a repo
More information coming soon
Fully closing an open repo
More information coming soon
Handling repo maturity
More information coming soon