8000 JEAN BAPTISTE ZIADE update initial PR cf Comments in PR 3366 by regnosys-prod-user · Pull Request #3637 · finos/common-domain-model · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

JEAN BAPTISTE ZIADE update initial PR cf Comments in PR 3366 #3637

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: 6.x.x
Choose a base branch
from

Conversation

regnosys-prod-user
Copy link
Collaborator
@regnosys-prod-user regnosys-prod-user commented Apr 10, 2025

Supersedes #3366

@regnosys-prod-user regnosys-prod-user requested a review from a team as a code owner April 10, 2025 15:04
@regnosys-prod-user regnosys-prod-user added the Rosetta Pull requests which can be viewed in Rosetta label Apr 10, 2025
@regnosys-prod-user
Copy link
Collaborator Author

update initial PR cf Comments in PR 3366 - update initial PR cf Comments in PR 3366

Background

update initial PR cf Comments in PR 3366

What is being released?

update initial PR cf Comments in PR 3366

Review directions

Changes can be reviewed in PR: #3637

Note

This comment was generated via Rosetta.

@CDM-ReleaseManagement-OT
Copy link
Contributor

This is a follow on from #3366. The master branch has moved on since the initial contribution so a second PR was created.

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

have modified enum EventIntentEnum to better distinguished between kinds of unwinds (partial, full before maturity, full at maturity), then have modified as well enum FeeTypeEnum for harmonization purposes

Note

This comment was generated via Rosetta.

@JBZ-Fragmos
Copy link
Contributor
JBZ-Fragmos commented Apr 11, 2025

@lolabeis

FYI - in last Contrib just sent today, have modified these two types :

  • enum EventIntentEnum to better distinguished between kinds of unwinds (partial, full before maturity, full at maturity)
  • then have modified as well enum FeeTypeEnum for harmonization purposes

but since there are still issues when pushing Contrib, kindly check you can see these last changesd ?

if Contrib has worked, you should see as below :
image
image

@@ -7801,7 +7801,7 @@ synonym source FpML_5_Confirmation_To_TradeState extends FpML
[value "AssignmentFee"]
+ Increase
[value "IncreaseFee"]
+ PartialTermination
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

java code fails to compile as this field is renamed , changes would have to applied to fix this

@lolabeis lolabeis linked an issue Apr 11, 2025 that may be closed by this pull request
@lolabeis lolabeis moved this to Current in CDM CRWG Apr 11, 2025
@lolabeis lolabeis changed the title JEAN BAPTISTE ZIADE update initial PR cf Comments in PR 3366 - update initial PR cf Comments in PR 3366 JEAN BAPTISTE ZIADE update initial PR cf Comments in PR 3366 Apr 11, 2025
@JBZ-Fragmos
Copy link
Contributor

@lolabeis
you may check again, now all looks good, i beleive you can see last up-to-date version,

thanks

Copy link
Contributor
@lolabeis lolabeis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The extra changes to FeeIntentEnum and EventIntentEnum (renaming / splitting of enum values for Decrease) were not part of the originally proposed design, and do not appear related to corporate action. As raised by the maintenance team, they also bear some negative downstream impact which may delay this contribution.

The recommendation is to take that change out of this PR and raise a separate issue for it, to be discussed at the CRWG.

Also the CRWG should opine on the recommended removal of PositionEventIntentEnum, which is being fused into EventIntentEnum.

Further detailed review comment provided below.

tenorTillMaturity number (1..1) <"The duration between last fixing date and the payment date of accruals, calculated in accordance with the appropriate DayCountFraction.">
dayCountFraction DayCountFractionEnum (1..1) <"The enumerated values to specify the day count fraction.">
shortStubInterpolationRate FloatingRate (0..1) <"Describes the rate and related tenor for the short stub when the accrualRate optionnaly results from an interpolation method.">
longStubInterpolationRate FloatingRate (0..1) <"Describes the rate and related tenor for the long stub when the accrualRate optionnaly results from an interpolation method.">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The previous suggestion was to use FloatingRateIndex (small object) for these 2 attributes, not FloatingRate (larger)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, all in all i agree but anyway realized had to refactor this part because what needs to be represented is the stub tenor, and also the fact you migh use either floating rate, or given rate separatly agreed... so cannot do this no,w but will refactor type AccrualFactorCalculationTerms - please check it in next contrib

@lolabeis lolabeis requested a review from mgratacos April 11, 2025 13:33
@lolabeis
Copy link
Contributor

I would like @mgratacos and team to opine on the removal of PositionEventIntentEnum and its fusing into EventIntentEnum (which I recommended).

@JBZ-Fragmos
Copy link
Contributor
JBZ-Fragmos commented Apr 11, 2025

@lolabeis

dully understand rationale why "extra-change" (out of initial scope driven by corporate action refactoring) should be reviewed by CRWG main cause for that being in my view because we also propose in PR, as you suggested it, a bigger extra-change than the ones have initiall^y proposed, that is removal of PositionEventIntentEnum (with which i fully agreed)

background : "extra-changes" were induced by other prior changes in EventIntentEnum which were fully driven by the refactoring of CorporateAction, so all in all, the "extra-changes" do not come from nowhere and I suggest to minimize adminstrative burden linked to separate PR for that

i mean, all in all, let's present to CRWG all these changes as a whole, provide context

  • then if CRWG is OK we can stay/proceed with unique PR
  • if not or if CRWG also agree with you that separate PR is necessary, will do per CRWG decision

@lolabeis
Copy link
Contributor

i mean, all in all, let's present to CRWG all these changes as a whole, provide context

No. The fact that the same EventIntentEnum is being touched in the present PR is irrelevant. This is new issue and as such should go through the triage queue before being aired at the CRWG. The next CRWG is quite packed already with many issues to get through first, so let's not shoe-horn a different one.

Please present a PR that is ready to be reviewed for the specific issue that was previously approved, to allow your final change to be ratified at the next CRWG.

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

removed changes which impacted PositionEventIntentEnum and EventIntentEnum, so for these two types, should be no change wirh regards to current CDM Prod v5

Note

This comment was generated via Rosetta.

@PayalKhanna
Copy link
Contributor

replaced with #3642

@lolabeis
Copy link
Contributor

@JBZ-Fragmos
It seems that you left an enum change in FeeTypeEnum that should have been removed too. I also posted detailed inline comments in my previous review, some of them still need to be addressed.
Could you please resubmit accordingly - ideally before tomorrow's WG so we can get it ratified there?

@lolabeis
Copy link
Contributor

Note for @mgratacos and @manel-martos:
This new contribution no longer includes changes to EventIntentEnum or the removal of PositionEventIntentEnum.

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

removed changes in FeeTypeEnum (so should be re-aligned with CDM Prod v5)

Note

This comment was generated via Rosetta.

@JBZ-Fragmos
Copy link
Contributor
JBZ-Fragmos commented Apr 14, 2025 via email

@lolabeis
Copy link
Contributor

have just sent contrib for removing any changes in FeeTypeEnum

Thanks @JBZ-Fragmos. Please also address outstanding inline review comments and provide detailed release notes (as requested by @PayalKhanna on the Release PR) in comment.

@JBZ-Fragmos
Copy link
Contributor

@lolabeis @PayalKhanna

Release Note is drafted in #3642

@lolabeis
Copy link
Contributor

Approved at the CDM Contribution Review Working Group - April 15th, 2025, provided the outstanding review comments (inline) are addressed.

@JBZ-Fragmos
Copy link
Contributor

@lolabeis
about stub rate, actually there is already a type that exists for representing stubs so we shall re-use it, that is StubValue

image

however, in constext where stub rates are supposed to represent the terms of the calculation for the interpolation rate, no stubAmount shall be permitted (obviously, this component does not represent a possible input in a rate calculation)

besides, i've noticed there may be a need to optionnally represent the exact duration of stub period (notably when the intent is to document the calculation details, then Period is needed... say, time till maturity is 2.88 years, and stubRate is elected for 2.5 years initial and 3 years long... parties may need to indicate such exact duration for each stub segment, if not, interpolation rate calculation terms would be incomplete...)

in accordance with above problem statement

  • have added stubPeriod Period to StubValue
  • then have used type StubValue in local component we are discussing that is AccrualFactorCalculationTerms

beleive there is benefit at both levels :

  • as regards 'StubValue' it enriches existing type with optional attribute that was fairly missing so far
  • for AccrualFactorCalculationTerms, this permits simplifying prior conditions

image

image

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

per last Comments in #3642, modify some names in Merger and SpinOff types, also add optional attribute to existing type StubeValue and then re-use such type as attribute in AccrualFactorCalculation

Note

This comment was generated via Rosetta.

@JBZ-Fragmos
Copy link
Contributor

@lolabeis
have just pushed last PR versions, with changes made in accordance with all the above last Comments
thks

@lolabeis
Copy link
Contributor

@JBZ-Fragmos Thanks for your latest commit. The only outstanding question relates to stub (I've marked the other comments as resolved).

about stub rate, actually there is already a type that exists for representing stubs so we shall re-use it, that is StubValue

Reusing the existing StubValue type looks sensible. Note that this component is already designed to contain the long and short rates, as illustrated by the cardinality of its floatingRate attribute:

floatingRate StubFloatingRate (0..2)

Also each StubFloatingRate already includes a tenor attribute, so it shouldn't need to be added again in StubValue.

Eventually, this suggests a more appropriate implementation using StubValue would be:

type AccrualFactorCalculationTerms:
  tenorTillMaturity number (1..1)
  dayCountFraction DayCountFractionEnum (1..1)
  stub StubValue (0..1)

Your condition that both long and short should exist could be added directly in StubValue, which I believe was the intention behind the (0..2) cardinality:

if floatingRate exists then floatingRate count = 2

@JBZ-Fragmos
Copy link
Contributor

@lolabeis

I agree with your last proposal in terms of type structure, only the name for component stub is not sufficiently explicit in context, because accrual factor may be calculated with interpolation or not, meaning usage of interpolation is an optional sub-case, and i really belive that from User standpoint, having a "stub" attribute with optional card does not clearly indicates that this component "is meant to be used for interpolation"....

well just to say right name should be explicit interpolationTerms

also when reading it with description, it makes sense :

interpolationTerms StubValue (0..1) <"Describes the rate, tenor, period duration for the short and long stubs, when the accrualRate optionnaly results from an interpolation method.">

@JBZ-Fragmos
Copy link
Contributor
JBZ-Fragmos commented Apr 17, 2025

@lolabeis

actually, there is still one issue to solve for re-using properly the StubValue component with only (0..1) card at AccrualRateCalculationTerms level :

indeed, with current StubValue structure, the only "resolvable" method that is permited is when you calculate interpolation using floating rates, which themselves have to be resolved, at least say they have to be observed, because as such, they are not "resolved" number...

as a result, you can see that one use case is obviously missing, that is "resolvable" method using fixed rates i.e. when the short stub rate and the long stub rate are given as "resolved", for being used to calculate a "resolvable" interpolation rate

for now stubRate exists inside StubValue but this component would corresponds to the "resolved" interpolation rate itself, also cardinality is bouded to 1, so we cannot re-use this component as such for the purpose of modelling interpolation composed of two fixed rates...

also we cannot simply add straight attribute such as interpolationFixedRate number (0..2) for instance, because this does not permit to associate the Period per each of the two rates...

so as a conclusion, have enriched StubValue as below :

  • adding new attribute made of a new type interpolationFixedRate (0..2) (very simple, is made of : number + Period)
  • renaming floatingRate to interpolationFloatingRate which per se clarifies business meaning of the component with regards to current description
  • and of course, have amended condition accordingly...

see below changes being highlighted :
image

overall, for me the whole structure looks well balanced, and very readable - see below how this looks like :

image

10000

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

enriched StubValue as below :

  • adding new attribute made of a new type interpolationFixedRate (0..2) (very simple, is made of : number + Period)
  • renaming floatingRate to interpolationFloatingRate which per se clarifies business meaning of the component with regards to current description
  • amended conditions accordingly...

Note

This comment was generated via Rosetta.

@lolabeis
Copy link
Contributor
lolabeis commented Apr 17, 2025

@JBZ-Fragmos Thanks for the analysis.

Overall you're making sensible suggestions regarding stub. However, I'm now a little uncomfortable reviewing and approving those additional changes, given that this latest scope creep wasn't part of the design originally discussed and approved by the CRWG. Enabling the stub component to handle interpolation between fixed rates has potential application beyond the corp action use case and, as such, is worthy of proper scrutiny.

Therefore my recommendation is to progress with your changes where StubValue is used "as-is" in AccrualFactorCalculationTerms (with your proposed attribute name: interpolationTerms). This is a good incremental change in relation to corp action to release in CDM 7.

A separate issue should be raised to deal specifically with the fixed-rate interpolation case for the stub component.

+@llynhiavu FYI.

@JBZ-Fragmos
Copy link
Contributor
JBZ-Fragmos commented Apr 17, 2025 via email

@lolabeis
Copy link
Contributor

@JBZ-Fragmos
Indeed, scope expansion is sometimes a necessary outcome of the process: as stones are being turned, new issues are being uncovered that need solving. My point is that this latest stone being turned in relation to 'stub' merits airing at the CRWG, because it wasn't previously scrutinised, and also because of its broader implication.

So you have 2 options:

  1. Either we hold off the entire proposal, plan for discussing 'stub' at one upcoming CRWG session, and then proceed with the PR once the 'stub' proposal has been reviewed there and approved.
  2. Or we proceed with the PR minus the stub modification, and then separately discuss the stub (still driven by the corp action use case) at an upcoming CRWG session and release this independently.

I'm advocating for 2 because it registers a first win more quickly, especially considering how busy the CRWG queue is already. Regardless of the chosen option and given the broader application of the 'stub' component, I would recommend a separate PR for it with its own release notes anyway.

@regnosys-prod-user
Copy link
Collaborator Author

What is being released?

have removed prior changed proposed for type StubValue

Note

This comment was generated via Rosetta.

@JBZ-Fragmos
Copy link
Contributor

@lolabeis

OK, then will follow your advice, let's go for "n°2"

  • have just re-sent PR where the type StubValue is pushed back as it was before any changes

please confirm you have all your need to merge PR as it is now ?

please ensure this one is processed with relevant status in "queue"

thank you

Copy link
Contributor
@lolabeis lolabeis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your latest revision and for raising the follow-on issue, and your overall contribution to the corp action topic.

I am now approving those changes, subject to further review and approval of the release notes.

@lolabeis lolabeis moved this from Current to Approved in CDM CRWG Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Rosetta Pull requests which can be viewed in Rosetta
Projects
Status: Approved
Development

Successfully merging this pull request may close these issues.

FRAGMOS - enrichment of CorporateAction
5 participants
0