Skip to content

[7dev] Alston Antao BusinessEvent and TradeState Creation - Missing activityDate in closedState when creating a Termination #3969 (Updated Expectations)#4504

Open
Chuks-Ajeh wants to merge 8 commits intofinos:masterfrom
rosetta-models:aanta_677ea5142b8d666852cae77-3969-TerminationFix-CDM7dev_UpExp
Open

[7dev] Alston Antao BusinessEvent and TradeState Creation - Missing activityDate in closedState when creating a Termination #3969 (Updated Expectations)#4504
Chuks-Ajeh wants to merge 8 commits intofinos:masterfrom
rosetta-models:aanta_677ea5142b8d666852cae77-3969-TerminationFix-CDM7dev_UpExp

Conversation

@Chuks-Ajeh
Copy link
Copy Markdown
Contributor

No description provided.

@Chuks-Ajeh Chuks-Ajeh requested a review from a team as a code owner March 5, 2026 09:20
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 5, 2026

Deploy Preview for finos-cdm ready!

Name Link
🔨 Latest commit eef8783
🔍 Latest deploy log https://app.netlify.com/projects/finos-cdm/deploys/69bac145ed3e060008d7ac61
😎 Deploy Preview https://deploy-preview-4504--finos-cdm.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@CDM-ReleaseManagement-OT
Copy link
Copy Markdown
Contributor

@aantao-isda this is the 7dev PR for your issue #3969. Can you please update the release notes with any of the feedback?

@CDM-ReleaseManagement-OT
Copy link
Copy Markdown
Contributor

@finos/cdm-maintainers can someone please review?

@CDM-ReleaseManagement-OT
Copy link
Copy Markdown
Contributor

@finos/cdm-maintainers can someone please review the PR and release notes?


alias terminationDate: <"Use effective Date in absence of eventDate, if it exists">
if primitiveInstruction -> quantityChange -> change -> effectiveDate exists
then ResolveAdjustableDate(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@aantao-isda - the date-adjustment function is currently a code-implemented function available only in the Java distribution.
Is it actually required here?
Should we assume, or effectively require, that users always build termination instructions using adjusted or unadjusted effective dates?

@CDM-ReleaseManagement-OT
Copy link
Copy Markdown
Contributor

@tomhealey-icma, @annamunoz, @manel-martos please review the PR.

@aantao-isda
Copy link
Copy Markdown

Background

Issue link #3969

CDM does not populate the activityDate in the closedState of a TradeState when using the Create_TerminationInstruction function, thus always creating a TradeState with validation errors
[TradeState → state → closedState → activityDate]

Activity date cannot be added automatically from Create_TradeState as the activityDate exist in the Create_BusinessEvent and is not passed down to Create_TradeState

This change creates a provision for the activityDate by setting the effectiveDate of the QuantityChange when setting zero amounts in the Create_TerminationInstruction

Impact: the new parameter added to Create_TerminationInstruction has to be supported by all other functions calling it

What is being released?

#3969 (comment)

Primary Change:
Add input parameter in Create_TerminationInstruction
effectiveDate AdjustableOrRelativeDate (0..1) <"Date of Termination">

Assign activityDate in closed state of a Terminated TradeState
Assumption: All quantityChange instructions in the business event will be the same

Impact Changes:

functions using Create_TerminationInstruction need to supply the additional parameter effectiveDate

func Create_RollPrimitiveInstruction
use effectiveRollDate as the effectivDate for termination

func Create_OnDemandRateChangePrimitiveInstruction
use effectiveDate for termination

func Create_CancellationPrimitiveInstruction
use cancellationDate as the effectivDate for termination

func Create_RepricePrimitiveInstruction
use effectiveRepriceDate as the effectivDate for termination

func Create_AdjustmentPrimitiveInstruction
use effectiveRepriceDate as the effectivDate for termination

func Create_ShapingInstruction
use empty as the effectivDate for termination
no suitable date value to repurpose, issue will still exist

func Create_PartialDeliveryPrimitiveInstruction
use empty as the effectivDate for termination
no suitable date value to repurpose, issue will still exist

PS: This solution needs to be further tested and discusses

Review Directions

Changes can be reviewed in PR: #3969

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing activityDate in closedState when creating a Termination (CDM 5,6&7), affecting Terminations/Novations/Splits etc.

4 participants