Class: PriceSchedule
Specifies the price of a financial instrument in a trade as a schedule of measures. A price generically expresses the value of an exchange as a ratio: it measures the amount of one thing needed to be exchanged for 1 unit of another thing (e.g. cash in a specific currency in exchange for a bond or share). This generic representation can be used to support any type of financial price beyond just cash price: e.g. an interest rate, a foreign exchange rate, etc. This data type is generically based on a schedule and can also be used to represent a price as a single value.
URI: common_domain_model:PriceSchedule
classDiagram
class PriceSchedule
click PriceSchedule href "../PriceSchedule/"
MeasureBase <|-- PriceSchedule
click MeasureBase href "../MeasureBase/"
PriceSchedule <|-- Price
click Price href "../Price/"
PriceSchedule : arithmeticOperator
PriceSchedule --> "0..1" ArithmeticOperationEnum : arithmeticOperator
click ArithmeticOperationEnum href "../ArithmeticOperationEnum/"
PriceSchedule : composite
PriceSchedule --> "0..1" PriceComposite : composite
click PriceComposite href "../PriceComposite/"
PriceSchedule : datedValue
PriceSchedule --> "*" DatedValue : datedValue
click DatedValue href "../DatedValue/"
PriceSchedule : derivedQuantity
PriceSchedule --> "0..1" NonNegativeQuantitySchedule : derivedQuantity
click NonNegativeQuantitySchedule href "../NonNegativeQuantitySchedule/"
PriceSchedule : perUnitOf
PriceSchedule --> "0..1" UnitType : perUnitOf
click UnitType href "../UnitType/"
PriceSchedule : premiumType
PriceSchedule --> "0..1" PremiumTypeEnum : premiumType
click PremiumTypeEnum href "../PremiumTypeEnum/"
PriceSchedule : priceExpression
PriceSchedule --> "0..1" PriceExpressionEnum : priceExpression
click PriceExpressionEnum href "../PriceExpressionEnum/"
PriceSchedule : priceSubType
PriceSchedule --> "0..1" PriceSubTypeEnum : priceSubType
click PriceSubTypeEnum href "../PriceSubTypeEnum/"
PriceSchedule : priceType
PriceSchedule --> "1" PriceTypeEnum : priceType
click PriceTypeEnum href "../PriceTypeEnum/"
PriceSchedule : unit
PriceSchedule --> "0..1" UnitType : unit
click UnitType href "../UnitType/"
PriceSchedule : value
Inheritance
Section titled “Inheritance”- Schedule
- MeasureBase
- PriceSchedule
- MeasureBase
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| perUnitOf | 0..1 UnitType |
Provides an attribute to define the unit of the thing being priced | direct |
| priceType | 1 PriceTypeEnum |
Specifies the price type as an enumeration: interest rate, exchange rate, ass… | direct |
| priceSubType | 0..1 PriceSubTypeEnum |
Allows further classification of the chosen price type | direct |
| priceExpression | 0..1 PriceExpressionEnum |
(Optionally) Specifies whether the price is expressed in absolute or percenta… | direct |
| composite | 0..1 PriceComposite |
(Optionally) Specifies the underlying price components if the price can be ex… | direct |
| arithmeticOperator | 0..1 ArithmeticOperationEnum |
(Optionally) When the price is to be understood as an operator to apply to an… | direct |
| premiumType | 0..1 PremiumTypeEnum |
(Optionally) Additional attribute that can further define any premium to the … | direct |
| derivedQuantity | 0..1 NonNegativeQuantitySchedule |
Specifies the derived quantity associated with the price | direct |
| unit | 0..1 UnitType |
Qualifies the unit by which the amount is measured | MeasureBase |
| value | 0..1 Decimal |
The initial rate or amount, as the case may be | Schedule |
| datedValue | * DatedValue |
The schedule of step date and value pairs | Schedule |
Expressions & Logic
All Of
Section titled “All Of”The class must satisfy all of:
- AnonymousClassExpression({ ‘description’: (’From Schedule. ValueExists: A schedule may be specified as a single value or ’ ’as a set of date-value pairs. Both attributes may be specified, in which ’ ‘case the single amount number is the initial value.’), ‘any_of’: [AnonymousClassExpression({ ‘slot_conditions’: {‘value’: SlotDefinition({‘name’: ‘value’, ‘value_presence’: PresenceEnum(text=‘PRESENT’)})} }), AnonymousClassExpression({ ‘slot_conditions’: {‘datedValue’: SlotDefinition({‘name’: ‘datedValue’, ‘value_presence’: PresenceEnum(text=‘PRESENT’)})} })] })
- AnonymousClassExpression({ ‘description’: (’Choice: The price can be specified mutually exclusively as an operator (e.g. ’ ‘a spread or multiplier) or a composite.’), ‘exactly_one_of’: [AnonymousClassExpression({ ‘slot_conditions’: {‘arithmeticOperator’: SlotDefinition({‘name’: ‘arithmeticOperator’, ‘value_presence’: PresenceEnum(text=‘PRESENT’)})} }), AnonymousClassExpression({ ‘slot_conditions’: {‘composite’: SlotDefinition({‘name’: ‘composite’, ‘value_presence’: PresenceEnum(text=‘PRESENT’)})} }), AnonymousClassExpression({ ‘all_of’: [AnonymousClassExpression({ ‘slot_conditions’: {‘arithmeticOperator’: SlotDefinition({‘name’: ‘arithmeticOperator’, ‘value_presence’: PresenceEnum(text=‘ABSENT’)})} }), AnonymousClassExpression({ ‘slot_conditions’: {‘composite’: SlotDefinition({‘name’: ‘composite’, ‘value_presence’: PresenceEnum(text=‘ABSENT’)})} })] })] })
None Of
Section titled “None Of”The class must not satisfy any of:
- AnonymousClassExpression({ ‘description’: ‘ArithmeticOperator: Operator must not be subtract or divide.’, ‘slot_conditions’: {‘arithmeticOperator’: SlotDefinition({ ‘name’: ‘arithmeticOperator’, ‘value_presence’: PresenceEnum(text=‘PRESENT’), ‘equals_string’: ‘Subtract’ })} })
- AnonymousClassExpression({ ‘description’: ‘ArithmeticOperator: Operator must not be subtract or divide.’, ‘slot_conditions’: {‘arithmeticOperator’: SlotDefinition({ ‘name’: ‘arithmeticOperator’, ‘value_presence’: PresenceEnum(text=‘PRESENT’), ‘equals_string’: ‘Divide’ })} })
Usages
Section titled “Usages”| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| any_of | [{'slot_conditions': {'priceType': {'equals_string': 'Variance'}}}, {'slot_conditions': {'priceType': {'equals_string': 'Volatility'}}}, {'slot_conditions': {'priceType': {'equals_string': 'Correlation'}}}] |
||
| slot_conditions | {'unit': {'value_presence': 'ABSENT'}, 'perUnitOf': {'value_presence': 'ABSENT'}} |
{'unit': {'value_presence': 'PRESENT'}, 'perUnitOf': {'value_presence': 'PRESENT'}} |
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'premiumType': {'value_presence': 'PRESENT'}} |
{'priceType': {'equals_string': 'Premium'}} |
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'arithmeticOperator': {'value_presence': 'PRESENT', 'equals_string': 'Add'}} |
||
| any_of | [{'slot_conditions': {'priceType': {'equals_string': 'AssetPrice'}}}, {'slot_conditions': {'priceType': {'equals_string': 'InterestRate'}}}] |
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| any_of | [{'slot_conditions': {'priceSubType': {'value_presence': 'PRESENT', 'equals_string': 'Fee'}}}, {'slot_conditions': {'priceSubType': {'value_presence': 'PRESENT', 'equals_string': 'Rebate'}}}] |
||
| slot_conditions | {'priceType': {'equals_string': 'InterestRate'}} |
Comments
Section titled “Comments”- Rosetta condition PositiveAssetPrice is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and arithmeticOperator is absent then value > 0 or datedValue -> value all > 0
- Rosetta condition PositiveSpotRate is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and composite -> baseValue exists then composite -> baseValue > 0
- Rosetta condition PositivePremium is not stated in LinkML: if priceType = Premium then value > 0
- Rosetta condition CurrencyUnitForInterestRate is not stated in LinkML: if priceType = PriceTypeEnum -> InterestRate then unit -> currency exists
- Rosetta condition ForwardPoint is not stated in LinkML: if composite -> operandType = ForwardPoint then priceType = ExchangeRate
- Rosetta condition AccruedInterest is not stated in LinkML: if composite -> operandType = AccruedInterest then priceType = AssetPrice
- Rosetta condition DerivedQuantityMultiplier is not stated in LinkML: derivedQuantity -> multiplier is absent
- Rosetta condition DerivedQuantityUnit is not stated in LinkML: if derivedQuantity exists and unit exists then derivedQuantity -> unit = unit
- Rosetta condition DerivedQuantityCurrency is not stated in LinkML: if derivedQuantity exists and unit is absent then derivedQuantity -> unit -> currency exists
Identifier and Mapping Information
Section titled “Identifier and Mapping Information”Schema Source
Section titled “Schema Source”- from schema: https://w3id.org/lmodel/common-domain-model
Mappings
Section titled “Mappings”| Mapping Type | Mapped Value |
|---|---|
| self | common_domain_model:PriceSchedule |
| native | common_domain_model:PriceSchedule |
LinkML Source
Section titled “LinkML Source”Direct
Section titled “Direct”name: PriceScheduledescription: 'Specifies the price of a financial instrument in a trade as a schedule of measures. A price generically expresses the value of an exchange as a ratio: it measures the amount of one thing needed to be exchanged for 1 unit of another thing (e.g. cash in a specific currency in exchange for a bond or share). This generic representation can be used to support any type of financial price beyond just cash price: e.g. an interest rate, a foreign exchange rate, etc. This data type is generically based on a schedule and can also be used to represent a price as a single value.'comments:- 'Rosetta condition PositiveAssetPrice is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and arithmeticOperator is absent then value > 0 or datedValue -> value all > 0'- 'Rosetta condition PositiveSpotRate is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and composite -> baseValue exists then composite -> baseValue > 0'- 'Rosetta condition PositivePremium is not stated in LinkML: if priceType = Premium then value > 0'- 'Rosetta condition CurrencyUnitForInterestRate is not stated in LinkML: if priceType = PriceTypeEnum -> InterestRate then unit -> currency exists'- 'Rosetta condition ForwardPoint is not stated in LinkML: if composite -> operandType = ForwardPoint then priceType = ExchangeRate'- 'Rosetta condition AccruedInterest is not stated in LinkML: if composite -> operandType = AccruedInterest then priceType = AssetPrice'- 'Rosetta condition DerivedQuantityMultiplier is not stated in LinkML: derivedQuantity -> multiplier is absent'- 'Rosetta condition DerivedQuantityUnit is not stated in LinkML: if derivedQuantity exists and unit exists then derivedQuantity -> unit = unit'- 'Rosetta condition DerivedQuantityCurrency is not stated in LinkML: if derivedQuantity exists and unit is absent then derivedQuantity -> unit -> currency exists'from_schema: https://w3id.org/lmodel/common-domain-modelis_a: MeasureBaseattributes: perUnitOf: name: perUnitOf description: Provides an attribute to define the unit of the thing being priced. For example, {amount, unitOfAmount, PerUnitOfAmount} = [10, EUR, Shares] = (10.00 EUR/SHARE) * (300,000 SHARES) = EUR 3,000,000.00 (Shares cancel out in the calculation). from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: UnitType priceType: name: priceType description: 'Specifies the price type as an enumeration: interest rate, exchange rate, asset price etc. This attribute is mandatory so that prices can always be clasiffied according to their type. The price type implies some constraints on the price''s units.' from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: PriceTypeEnum required: true priceSubType: name: priceSubType description: Allows further classification of the chosen price type. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: PriceSubTypeEnum priceExpression: name: priceExpression description: (Optionally) Specifies whether the price is expressed in absolute or percentage terms. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: PriceExpressionEnum composite: name: composite description: '(Optionally) Specifies the underlying price components if the price can be expressed as a composite: e.g. dirty price = clean price + accrued.' from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule - FxFeature range: PriceComposite arithmeticOperator: name: arithmeticOperator description: (Optionally) When the price is to be understood as an operator to apply to an observable, i.e. a spread, multiplier or min/max. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset domain_of: - PriceComposite - PriceSchedule range: ArithmeticOperationEnum premiumType: name: premiumType description: (Optionally) Additional attribute that can further define any premium to the price. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: PremiumTypeEnum derivedQuantity: name: derivedQuantity description: Specifies the derived quantity associated with the price. For instance when the price is an asset price expressed in a currency, the primary quantity is the asset's quantity while the derived quantity is the corresponding monetary amount in that currency. When the price is an exchange rate, both the primary quantity and the derived quantity are monetary amounts, in the 2 currencies of the exchange rate. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 domain_of: - PriceSchedule range: NonNegativeQuantitySchedulerules:- preconditions: any_of: - slot_conditions: priceType: name: priceType equals_string: Variance - slot_conditions: priceType: name: priceType equals_string: Volatility - slot_conditions: priceType: name: priceType equals_string: Correlation postconditions: slot_conditions: unit: name: unit value_presence: ABSENT perUnitOf: name: perUnitOf value_presence: ABSENT elseconditions: slot_conditions: unit: name: unit value_presence: PRESENT perUnitOf: name: perUnitOf value_presence: PRESENT description: 'UnitOfAmountExists: Requires that a unit of amount must be specified for price unless price type is Variance, Volatility or Correlation.'- preconditions: slot_conditions: premiumType: name: premiumType value_presence: PRESENT postconditions: slot_conditions: priceType: name: priceType equals_string: Premium description: 'Premium: If we are applying a premium to the price then we must define this as a premium in priceType.'- preconditions: slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Add postconditions: any_of: - slot_conditions: priceType: name: priceType equals_string: AssetPrice - slot_conditions: priceType: name: priceType equals_string: InterestRate description: 'SpreadPrice: A spread type can only be specified when the price type is an asset price or an interest rate.'- preconditions: any_of: - slot_conditions: priceSubType: name: priceSubType value_presence: PRESENT equals_string: Fee - slot_conditions: priceSubType: name: priceSubType value_presence: PRESENT equals_string: Rebate postconditions: slot_conditions: priceType: name: priceType equals_string: InterestRate description: 'InterestRateFeeType: If a lending fee or rebate fee is specified then the price type must be InterestRate.'none_of:- description: 'ArithmeticOperator: Operator must not be subtract or divide.' slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Subtract- description: 'ArithmeticOperator: Operator must not be subtract or divide.' slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Divideall_of:- description: 'From Schedule. ValueExists: A schedule may be specified as a single value or as a set of date-value pairs. Both attributes may be specified, in which case the single amount number is the initial value.' any_of: - slot_conditions: value: name: value value_presence: PRESENT - slot_conditions: datedValue: name: datedValue value_presence: PRESENT- description: 'Choice: The price can be specified mutually exclusively as an operator (e.g. a spread or multiplier) or a composite.' exactly_one_of: - slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT - slot_conditions: composite: name: composite value_presence: PRESENT - all_of: - slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: ABSENT - slot_conditions: composite: name: composite value_presence: ABSENTInduced
Section titled “Induced”name: PriceScheduledescription: 'Specifies the price of a financial instrument in a trade as a schedule of measures. A price generically expresses the value of an exchange as a ratio: it measures the amount of one thing needed to be exchanged for 1 unit of another thing (e.g. cash in a specific currency in exchange for a bond or share). This generic representation can be used to support any type of financial price beyond just cash price: e.g. an interest rate, a foreign exchange rate, etc. This data type is generically based on a schedule and can also be used to represent a price as a single value.'comments:- 'Rosetta condition PositiveAssetPrice is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and arithmeticOperator is absent then value > 0 or datedValue -> value all > 0'- 'Rosetta condition PositiveSpotRate is not stated in LinkML: if (priceType = ExchangeRate or priceType = AssetPrice) and composite -> baseValue exists then composite -> baseValue > 0'- 'Rosetta condition PositivePremium is not stated in LinkML: if priceType = Premium then value > 0'- 'Rosetta condition CurrencyUnitForInterestRate is not stated in LinkML: if priceType = PriceTypeEnum -> InterestRate then unit -> currency exists'- 'Rosetta condition ForwardPoint is not stated in LinkML: if composite -> operandType = ForwardPoint then priceType = ExchangeRate'- 'Rosetta condition AccruedInterest is not stated in LinkML: if composite -> operandType = AccruedInterest then priceType = AssetPrice'- 'Rosetta condition DerivedQuantityMultiplier is not stated in LinkML: derivedQuantity -> multiplier is absent'- 'Rosetta condition DerivedQuantityUnit is not stated in LinkML: if derivedQuantity exists and unit exists then derivedQuantity -> unit = unit'- 'Rosetta condition DerivedQuantityCurrency is not stated in LinkML: if derivedQuantity exists and unit is absent then derivedQuantity -> unit -> currency exists'from_schema: https://w3id.org/lmodel/common-domain-modelis_a: MeasureBaseattributes: perUnitOf: name: perUnitOf description: Provides an attribute to define the unit of the thing being priced. For example, {amount, unitOfAmount, PerUnitOfAmount} = [10, EUR, Shares] = (10.00 EUR/SHARE) * (300,000 SHARES) = EUR 3,000,000.00 (Shares cancel out in the calculation). from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: UnitType priceType: name: priceType description: 'Specifies the price type as an enumeration: interest rate, exchange rate, asset price etc. This attribute is mandatory so that prices can always be clasiffied according to their type. The price type implies some constraints on the price''s units.' from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: PriceTypeEnum required: true priceSubType: name: priceSubType description: Allows further classification of the chosen price type. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: PriceSubTypeEnum priceExpression: name: priceExpression description: (Optionally) Specifies whether the price is expressed in absolute or percentage terms. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: PriceExpressionEnum composite: name: composite description: '(Optionally) Specifies the underlying price components if the price can be expressed as a composite: e.g. dirty price = clean price + accrued.' from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule - FxFeature range: PriceComposite arithmeticOperator: name: arithmeticOperator description: (Optionally) When the price is to be understood as an operator to apply to an observable, i.e. a spread, multiplier or min/max. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset owner: PriceSchedule domain_of: - PriceComposite - PriceSchedule range: ArithmeticOperationEnum premiumType: name: premiumType description: (Optionally) Additional attribute that can further define any premium to the price. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: PremiumTypeEnum derivedQuantity: name: derivedQuantity description: Specifies the derived quantity associated with the price. For instance when the price is an asset price expressed in a currency, the primary quantity is the asset's quantity while the derived quantity is the corresponding monetary amount in that currency. When the price is an exchange rate, both the primary quantity and the derived quantity are monetary amounts, in the 2 currencies of the exchange rate. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_observable_asset rank: 1000 owner: PriceSchedule domain_of: - PriceSchedule range: NonNegativeQuantitySchedule unit: name: unit description: Qualifies the unit by which the amount is measured. Optional because a measure may be unit-less (e.g. when representing a ratio between amounts in the same unit). from_schema: https://w3id.org/lmodel/common-domain-model rank: 1000 owner: PriceSchedule domain_of: - MeasureBase range: UnitType value: name: value description: The initial rate or amount, as the case may be. An initial rate of 5% would be represented as 0.05. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_base_math owner: PriceSchedule domain_of: - DatedValue - Schedule - Taxonomy - TaxonomyClassification - CodeValue - AccrualFactor - AdjustmentFactor - ClauseLibraryVariableSet - CSAMinimumTransferAmountVariableSet - CSAThresholdVariableSet - DisputeResolution - OtherEligibleAndPostedSupport range: decimal datedValue: name: datedValue description: The schedule of step date and value pairs. On each step date the associated step value becomes effective. A list of steps may be ordered in the document by ascending step date. An FpML document containing an unordered list of steps is still regarded as a conformant document. from_schema: https://w3id.org/lmodel/common-domain-model/cdm_base_math rank: 1000 owner: PriceSchedule domain_of: - Schedule range: DatedValue multivalued: truerules:- preconditions: any_of: - slot_conditions: priceType: name: priceType equals_string: Variance - slot_conditions: priceType: name: priceType equals_string: Volatility - slot_conditions: priceType: name: priceType equals_string: Correlation postconditions: slot_conditions: unit: name: unit value_presence: ABSENT perUnitOf: name: perUnitOf value_presence: ABSENT elseconditions: slot_conditions: unit: name: unit value_presence: PRESENT perUnitOf: name: perUnitOf value_presence: PRESENT description: 'UnitOfAmountExists: Requires that a unit of amount must be specified for price unless price type is Variance, Volatility or Correlation.'- preconditions: slot_conditions: premiumType: name: premiumType value_presence: PRESENT postconditions: slot_conditions: priceType: name: priceType equals_string: Premium description: 'Premium: If we are applying a premium to the price then we must define this as a premium in priceType.'- preconditions: slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Add postconditions: any_of: - slot_conditions: priceType: name: priceType equals_string: AssetPrice - slot_conditions: priceType: name: priceType equals_string: InterestRate description: 'SpreadPrice: A spread type can only be specified when the price type is an asset price or an interest rate.'- preconditions: any_of: - slot_conditions: priceSubType: name: priceSubType value_presence: PRESENT equals_string: Fee - slot_conditions: priceSubType: name: priceSubType value_presence: PRESENT equals_string: Rebate postconditions: slot_conditions: priceType: name: priceType equals_string: InterestRate description: 'InterestRateFeeType: If a lending fee or rebate fee is specified then the price type must be InterestRate.'none_of:- description: 'ArithmeticOperator: Operator must not be subtract or divide.' slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Subtract- description: 'ArithmeticOperator: Operator must not be subtract or divide.' slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT equals_string: Divideall_of:- description: 'From Schedule. ValueExists: A schedule may be specified as a single value or as a set of date-value pairs. Both attributes may be specified, in which case the single amount number is the initial value.' any_of: - slot_conditions: value: name: value value_presence: PRESENT - slot_conditions: datedValue: name: datedValue value_presence: PRESENT- description: 'Choice: The price can be specified mutually exclusively as an operator (e.g. a spread or multiplier) or a composite.' exactly_one_of: - slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: PRESENT - slot_conditions: composite: name: composite value_presence: PRESENT - all_of: - slot_conditions: arithmeticOperator: name: arithmeticOperator value_presence: ABSENT - slot_conditions: composite: name: composite value_presence: ABSENT