Background
CashPrice is meant to represent attributes of a cash payment arising from an unscheduled ("priced") event, whereas Cashflow is used to represent a cashflow arising from a scheduled (payout-generated) event. Therefore, it appears that cashPrice should not be an attribute of Cashflow
If cashPrice is no longer an attribute of Cashflow, then CashPrice becomes redundant as a type (it isn't used in Transfer, only its underlying components are)
With the removal of CashPrice, its corresponding value in the PriceTypeEnum should also be removed and replaced with Premium. Premium can then be removed from PriceSubTypeEnum
Furthermore, the CashFlow type can be revised and rationalised. More attributes can be moved to the common ancestor of Cashflow and Transfer - AsserFlowBase. Because the CashFlow type now supports non-cash assets, it can be renamed to AssetFlow.
Task Details
Removal of CashPrice
- Remove
CashPrice type and remove it from Cashflow
- Remove
PremiumExpression as it is only used in CashPrice.
- Replace
CashPrice with Premium in PriceTypeEnum, and remove Premium and Fee from PriceSubTypeEnum
- Update the
PriceQuantityTriangulation function to correctly use AssetPrice
Renaming Cashflow to AssetFlow and commonizing elements with Transfer
- Rename
CashFlow to AssetFlow to make it more generic.
- Add an
assetFlowType attribute of type ScheduledTransferEnum
- Remove
paymentDiscounting and add it to AssetFlowBase so it is common between Transfer and AssetFlow
- Remove
CashFlowType type
Each of the subsequent attributes are handled in PriceSchedule
CashPrice
priceSubType exists in PriceSchedule
PremiumExpression
premiumType exists in PriceSchedule
pricePerOption or percentageOfNotional can be handled in priceExpression or perUnitOf & Measure
Parent Feature
No response
Additional Context
No response
Background
CashPriceis meant to represent attributes of a cash payment arising from an unscheduled ("priced") event, whereasCashflowis used to represent a cashflow arising from a scheduled (payout-generated) event. Therefore, it appears thatcashPriceshould not be an attribute ofCashflowIf
cashPriceis no longer an attribute ofCashflow, thenCashPricebecomes redundant as a type (it isn't used inTransfer, only its underlying components are)With the removal of
CashPrice, its corresponding value in thePriceTypeEnumshould also be removed and replaced with Premium. Premium can then be removed fromPriceSubTypeEnumFurthermore, the
CashFlowtype can be revised and rationalised. More attributes can be moved to the common ancestor ofCashflowandTransfer-AsserFlowBase. Because theCashFlowtype now supports non-cash assets, it can be renamed toAssetFlow.Task Details
Removal of CashPrice
CashPricetype and remove it fromCashflowPremiumExpressionas it is only used inCashPrice.CashPricewithPremiuminPriceTypeEnum, and remove Premium and Fee fromPriceSubTypeEnumPriceQuantityTriangulationfunction to correctly useAssetPriceRenaming Cashflow to AssetFlow and commonizing elements with Transfer
CashFlowtoAssetFlowto make it more generic.assetFlowTypeattribute of typeScheduledTransferEnumpaymentDiscountingand add it toAssetFlowBaseso it is common betweenTransferandAssetFlowCashFlowTypetypeEach of the subsequent attributes are handled in
PriceScheduleCashPrice
priceSubTypeexists inPriceSchedulePremiumExpression
premiumTypeexists inPriceSchedulepricePerOptionorpercentageOfNotionalcan be handled inpriceExpressionorperUnitOf&MeasureParent Feature
No response
Additional Context
No response