Skip to content

Commit

Permalink
PTRR - Portfolio Rebalancing
Browse files Browse the repository at this point in the history
For the EMIR jurisdiction, there are some reportable fields regarding PTRR (Post-Trade Risk Reduction) events. This release introduces support to allow the reporting for one of these PTRR events, specifically for the Portfolio Rebalancing, by adding its corresponding value to the intent enumeration and a specific qualification function for this event.
  • Loading branch information
ebataller committed Nov 16, 2023
1 parent ebf021a commit 25524dc
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
1 change: 1 addition & 0 deletions rosetta-source/src/main/rosetta/event-common-enum.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ enum EventIntentEnum: <"The enumeration values to qualify the intent associated
OptionExercise <"The intent is to Exercise a contract that is made of one or several option payout legs. For clarity, such intentEnum value shall not be used whenever an optional right is exercised in relation with a Trade which composition includes other types of payout legs e.g. right to call or to cancel before Termination Date as part of any kind of Early Termination terms other than genuine bermuda or american style features described in option payout. ">
OptionalExtension <"The intent is to extend the trade through exercise of an optional right as defined within the CDM OptionProvision data type.">
OptionalCancellation <"The intent is to cancel the trade through exercise of an optional right as defined within the CDM OptionProvision data type.">
PortfolioRebalancing <"The intent is to rebalance a portfolio, by inserting new derivatives transactions into portfolios of participants to reduce risks linked to those trades. These are offsetting trades that rebalance relationships between different counterparties when it comes to exposure of portfolios to certain types of risk, such as interest rate risk.">
PrincipalExchange <"The intent is to pay or to receive a cash transfer, in accordance with Principal Exchange features.">
Reallocation <"The intent is to reallocate one or more trades as part of an allocated block trade.">
Repurchase <"The intent is to close a repo transaction through repurchase.">
Expand Down
14 changes: 13 additions & 1 deletion rosetta-source/src/main/rosetta/event-qualification-func.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ func Qualify_Compression: <"The qualification of a compression event from the fa
set is_event:
businessEvent -> instruction -> primitiveInstruction -> execution count = 1 and businessEvent -> instruction -> primitiveInstruction -> quantityChange count > 1

func Qualify_PortfolioRebalancing: <"The qualification of a portfolio rebalancing event from the fact that (i) the intent is PortfolioRebalancing, and (ii) the execution primitive exists">
[qualification BusinessEvent]
inputs:
businessEvent BusinessEvent (1..1)
output:
is_event boolean (1..1)
set is_event:
businessEvent -> intent = EventIntentEnum -> PortfolioRebalancing
and businessEvent -> instruction -> primitiveInstruction -> execution exists
//Pending to enhance the logic once portfolios are supported in the model

func Qualify_Exercise: <"The qualification of an exercise event from the fact that (i) the only primitive is the exercise, and (ii) the remaining quantity = 0, and (iv) the closedState of the contract is Terminated.">
[qualification BusinessEvent]
inputs:
Expand Down Expand Up @@ -315,7 +326,8 @@ func Qualify_Execution: <"The qualification of an execution event from the fact
alias primitiveInstruction:
businessEvent -> instruction -> primitiveInstruction only-element
set is_event:
(primitiveInstruction -> execution only exists
businessEvent -> intent is absent
and (primitiveInstruction -> execution only exists
or (primitiveInstruction -> execution, primitiveInstruction -> transfer) only exists)

func Qualify_ContractFormation: <"Qualifies a business event as a contract formation from the fact that the only component is a single Contract Formation Primitive.">
Expand Down

0 comments on commit 25524dc

Please sign in to comment.