diff --git a/ReadMe.md b/ReadMe.md index 91c3384..827db7e 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -23,12 +23,12 @@ These instructions will get you a copy of the demo up and running on your local ### Linux: ```sh # actus-core/ -mvn clean install -Dmaven.test.failure.ignore=true +mvn clean install ``` ### Windows: ```sh # actus-core/ -mvn clean install "-Dmaven.test.failure.ignore=true" +mvn clean install ``` ## Set up local environment diff --git a/build.gradle b/build.gradle index e787ab1..17c3a4a 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,6 @@ dependencies { implementation('org.springframework.boot:spring-boot-starter-data-mongodb') implementation('org.springframework.boot:spring-boot-starter-web') testImplementation('org.springframework.boot:spring-boot-starter-test') - compile('org.actus:actus-core:1.0-alpha-3') + compile('org.actus:actus-core:1.0-alpha-5') } diff --git a/data/actus-dictionary.json b/data/actus-dictionary.json deleted file mode 100644 index 78ee9ab..0000000 --- a/data/actus-dictionary.json +++ /dev/null @@ -1,2339 +0,0 @@ -{ - "taxonomy": { - "annuity": { - "identifier": "annuity", - "name": "Annuity", - "accronym": "ANN", - "family": "Basic", - "class": "Fixed Income", - "description": "Principal payment fully at IED and interest plus principal repaid periodically in constant amounts till MD. If variable rate, total amount for interest and principal is recalculated to be fully matured at MD.", - "coverage": "Classical level payment mortgages, leasing contracts etc.", - "status": "Implemented, tested" - }, - "callMoney": { - "identifier": "callMoney", - "name": "Call Money", - "accronym": "CLM", - "family": "Basic", - "class": "Fixed Income", - "description": "Lonas that are rolled over as long as they are not called. Once called it has to be paid back after the stipulated notice period.", - "coverage": "Inerbank loans with call features.", - "status": "Implemented, tested" - }, - "cash": { - "identifier": "cash", - "name": "Cash", - "accronym": "CSH", - "family": "Basic", - "class": "Ownership", - "description": "Cash or cash equivalent position", - "coverage": "Cash, deposits at central bank.", - "status": "Implemented, tested" - }, - "commodity": { - "identifier": "commodity", - "name": "Commodity", - "accronym": "COM", - "family": "Basic", - "class": "Ownership", - "description": "This is not a financial contract in its propper sense. However it traks movements of commodities such as oil, gas or even houses. Such commodities can serve as underlyings of commodity futures, guarantees or simply asset positions.", - "coverage": "Oil, gas, electricity, houses etc.", - "status": "Implemented, tested" - }, - "exoticLinearAmortizer": { - "identifier": "exoticLinearAmortizer", - "name": "Exotic Linear Amortizer", - "accronym": "LAX", - "family": "Basic", - "class": "Fixed Income", - "description": "Exotic version of LAM. However step ups with respect to (i) Principal, (ii) Interest rates are possible. Highly flexible to match totally irregular principal payments. Principal can also be paid out in steps.", - "coverage": "A special version of this kind are teaser rate loans and mortgages.", - "status": "Implemented, tested" - }, - "foreignExchangeOutright": { - "identifier": "foreignExchangeOutright", - "name": "Foreign Ex-change Outright", - "accronym": "FXOUT", - "family": "Combined", - "class": "Symmetric", - "description": "Two parties agree to exchange two fixed cash flows in different currencies at a certain point in time in future.", - "coverage": "Any FX-outright transaction at a future date. This is also the underlying of FX-options and FX futures.", - "status": "Implemented, tested" - }, - "linearAmortizer": { - "identifier": "linearAmortizer", - "name": "Linear Amortizer", - "accronym": "LAM", - "family": "Basic", - "class": "Fixed Income", - "description": "Principal payment fully at IED. Principal repaid periodically in constant amounts till MD. Interest gets reduced accordingly. If variable rate, only interest payment is recalculated. Fixed and variable rates.", - "coverage": "Many amortizing loans.", - "status": "Implemented, tested" - }, - "negativeAmortizer": { - "identifier": "negativeAmortizer", - "name": "Negative Amortizer", - "accronym": "NAM", - "family": "Basic", - "class": "Fixed Income", - "description": "Similar as ANN. However when resetting rate, total amount (interest plus principal) stay constant. MD shifts. Only variable rates.", - "coverage": "Special class of ARM´s (adjustable rate mortgages), Certain loans.", - "status": "Implemented, tested" - }, - "plainVanillaSwap": { - "identifier": "plainVanillaSwap", - "name": "Plain Vanilla Swap", - "accronym": "SWPPV", - "family": "Combined", - "class": "Symmetric", - "description": "Plain vanilla swaps where the underlyings are always two identical PAM´s however with one leg fixed and the other variable.", - "coverage": "More than 90% of all interest rate swaps follow this simple pattern.", - "status": "Implemented, tested" - }, - "principalAtMaturity": { - "identifier": "principalAtMaturity", - "name": "Principal at Maturity", - "accronym": "PAM", - "family": "Basic", - "class": "Fixed Income", - "description": "Principal payment fully at Initial Exchange Date (IED) and repaid at Maturity Date (MD). Fixed and variable rates.", - "coverage": "All kind of bonds, term deposits, bullet loans and mortgages etc.", - "status": "Implemented, tested" - }, - "stock": { - "identifier": "stock", - "name": "Stock", - "accronym": "STK", - "family": "Basic", - "class": "Ownership", - "description": "Any instrument which is bought at a certain amount (market price normally) and then follows an index.", - "coverage": "All straight stocks.", - "status": "Implemented, tested" - }, - "undefinedMaturityProfile": { - "identifier": "undefinedMaturityProfile", - "name": "Undefined Maturity Profile", - "accronym": "UMP", - "family": "Basic", - "class": "Fixed Income", - "description": "Principal paid in and out at any point in time without prefixed schedule. Interest calculated on outstanding and capitalized periodically. Needs link to a behavioral function describing expected flows.", - "coverage": "Saving products of all kind, current accounts. In some countries even variable rate mortgages can be represented with this CT.", - "status": "Implemented, tested" - } - }, - "terms": { - "accruedInterest": { - "identifier": "accruedInterest", - "group": "Interest", - "name": "Accrued Interest", - "accronym": "IPAC", - "type": "Real", - "allowedValues": [], - "default": "", - "description": "Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments." - }, - "amortizationDate": { - "identifier": "amortizationDate", - "group": "Notional Principal", - "name": "Amortization Date", - "accronym": "AMD", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD." - }, - "arrayCycleAnchorDateOfInterestPayment": { - "identifier": "arrayCycleAnchorDateOfInterestPayment", - "group": "Interest", - "name": "Array Cycle Anchor Date Of Interest Payment", - "accronym": "ARIPANXi", - "type": "Timestamp[]", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Same like IPANX but as array" - }, - "arrayCycleAnchorDateOfPrincipalRedemption": { - "identifier": "arrayCycleAnchorDateOfPrincipalRedemption", - "group": "Notional Principal", - "name": "Array Cycle Anchor Date Of Principal Redemption", - "accronym": "ARPRANXj", - "type": "Timestamp[]", - "allowedValues": [], - "default": "", - "description": "Same like PRANX but as array" - }, - "arrayCycleAnchorDateOfRateReset": { - "identifier": "arrayCycleAnchorDateOfRateReset", - "group": "Rate Reset", - "name": "Array Cycle Anchor Date Of Rate Reset", - "accronym": "ARRRANX", - "type": "Timestamp[]", - "allowedValues": [], - "default": "", - "description": "Same like RRANX but as array" - }, - "arrayCycleOfInterestPayment": { - "identifier": "arrayCycleOfInterestPayment", - "group": "Interest", - "name": "Array Cycle Of Interest Payment", - "accronym": "ARIPCLi", - "type": "Cycle[]", - "allowedValues": [], - "default": "", - "description": "Same like IPCL but as array" - }, - "arrayCycleOfPrincipalRedemption": { - "identifier": "arrayCycleOfPrincipalRedemption", - "group": "Notional Principal", - "name": "Array Cycle Of Principal Redemption", - "accronym": "ARPRCLj", - "type": "Cycle[]", - "allowedValues": [], - "default": "", - "description": "Same like PRCL but as array" - }, - "arrayCycleOfRateReset": { - "identifier": "arrayCycleOfRateReset", - "group": "Rate Reset", - "name": "Array Cycle Of Rate Reset", - "accronym": "ARRRCL", - "type": "Cycle[]", - "allowedValues": [], - "default": "", - "description": "Same like RRCL but as array" - }, - "arrayFixedVariable": { - "identifier": "arrayFixedVariable", - "group": "Rate Reset", - "name": "Array Fixed Variable", - "accronym": "ARFIXVAR", - "type": "Enum[]", - "allowedValues": [ - "F", - "V" - ], - "default": "", - "description": "For array-type rate reset schedules, this attributes defines the meaning of ARRATE." - }, - "arrayIncreaseDecrease": { - "identifier": "arrayIncreaseDecrease", - "group": "Notional Principal", - "name": "Array Increase Decrease", - "accronym": "ARINCDEC", - "type": "Enum[]", - "allowedValues": [ - "INC", - "DEC" - ], - "default": "", - "description": "Indicates whether a certain PRNXT element in ARPRNX increases the principal (NT) or decreases it.\nApplies only for ANX, NAX, LAX Maturity CTs. For all other Maturity CTs the first principal payment is always in the opposite direction of all other (following) payments." - }, - "arrayNextPrincipalRedemptionPayment": { - "identifier": "arrayNextPrincipalRedemptionPayment", - "group": "Notional Principal", - "name": "Array Next Principal Redemption Payment", - "accronym": "ARPRNXTj", - "type": "Real[]", - "allowedValues": [], - "default": "", - "description": "Same like PRNXT but as array" - }, - "arrayRate": { - "identifier": "arrayRate", - "group": "Rate Reset", - "name": "Array Rate", - "accronym": "ARRATE", - "type": "Real[]", - "allowedValues": [], - "default": "", - "description": "For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP." - }, - "businessDayConvention": { - "identifier": "businessDayConvention", - "group": "Calendar", - "name": "Business Day Convention", - "accronym": "BDC", - "type": "Enum", - "allowedValues": [ - "NOS", - "SCF", - "SCMF", - "CSF", - "CSMF", - "SCP", - "SCMP", - "CSP", - "CSMP" - ], - "default": "SCF\n", - "description": "BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly." - }, - "calendar": { - "identifier": "calendar", - "group": "Calendar", - "name": "Calendar", - "accronym": "CLDR", - "type": "Enum", - "allowedValues": [ - "NoCalendar", - "MondayToFriday", - "" - ], - "default": "NoCalendar", - "description": "Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC." - }, - "capitalizationEndDate": { - "identifier": "capitalizationEndDate", - "group": "Interest", - "name": "Capitalization End Date", - "accronym": "IPCED", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur." - }, - "clearingHouse": { - "identifier": "clearingHouse", - "group": "Margining", - "name": "Clearing House", - "accronym": "MRCLH", - "type": "Enum", - "allowedValues": [ - "Y", - "N" - ], - "default": "", - "description": "Indicates wheter LEIRC takes a clearing house function or not. In other word, whether LEIRC receive margins (MRIM, MRVM)." - }, - "contractDealDate": { - "identifier": "contractDealDate", - "group": "Notional Principal", - "name": "Contract Deal Date", - "accronym": "CDD", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future." - }, - "contractID": { - "identifier": "contractID", - "group": "Contract identification", - "name": "Contract Identifier", - "accronym": "CID", - "type": "Varchar", - "allowedValues": [], - "default": "", - "description": "Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required." - }, - "contractPerformance": { - "identifier": "contractPerformance", - "group": "Counterparty", - "name": "Contract Performance", - "accronym": "PRF", - "type": "Enum", - "allowedValues": [ - "PF", - "DL", - "DQ", - "DF" - ], - "default": "PF", - "description": "Indicates the current contract performance status. Different states of the contract range from performing to default." - }, - "contractRole": { - "identifier": "contractRole", - "group": "Contract identification", - "name": "Contract Role", - "accronym": "CNTRL", - "type": "Enum", - "allowedValues": [ - "RPA", - "RPL", - "LG", - "ST", - "RFL", - "PFL", - "BUY", - "SEL", - "GUA", - "OBL" - ], - "default": "", - "description": "CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document." - }, - "contractStructure": { - "identifier": "contractStructure", - "group": "Contract identification", - "name": "Contract Structure", - "accronym": "CTS", - "type": "ContractStructure", - "allowedValues": [], - "default": "", - "description": "A structure identifying individual or sets of underlying contracts. E.g. for FUTUR, this structure identifies the single underlying contract, for SWAPS, the FirstLeg and SecondLeg are identified, or for CEG, CEC the structure identifies Covered and Covering contracts." - }, - "contractType": { - "identifier": "contractType", - "group": "Contract identification", - "name": "Contract Type", - "accronym": "CT", - "type": "Enum", - "allowedValues": [ - "PAM", - "ANN", - "NAM", - "LAM", - "LAX", - "CLM", - "UMP", - "CSH", - "STK", - "COM", - "SWAPS", - "SWPPV", - "FXOUT", - "CAPFL", - "FUTUR", - "OPTNS", - "CEG", - "CEC" - ], - "default": "", - "description": "The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis." - }, - "counterpartyID": { - "identifier": "counterpartyID", - "group": "Counterparty", - "name": "Counterparty Identifier", - "accronym": "CPID", - "type": "Varchar", - "allowedValues": [], - "default": "", - "description": "LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled." - }, - "coverageOfCreditEnhancement": { - "identifier": "coverageOfCreditEnhancement", - "group": "Counterparty", - "name": "Coverage Of Credit Enhancement", - "accronym": "CECV", - "type": "Real", - "allowedValues": ["(0,1)"], - "default": "1.0", - "description": "Defines which percentage of the exposure is covered" - }, - "creatorID": { - "identifier": "creatorID", - "group": "Contract identification", - "name": "Creator Identifier", - "accronym": "CRID", - "type": "Varchar", - "allowedValues": [], - "default": "", - "description": "This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk." - }, - "creditLineAmount": { - "identifier": "creditLineAmount", - "group": "Notional Principal", - "name": "Credit Line Amount", - "accronym": "CLA", - "type": "Real", - "allowedValues": ["Positive"], - "default": "", - "description": "If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts)." - }, - "currency": { - "identifier": "currency", - "group": "Notional Principal", - "name": "Currency", - "accronym": "CUR", - "type": "Varchar", - "allowedValues": [], - "default": "", - "description": "The currency of the cash flows." - }, - "currency2": { - "identifier": "currency2", - "group": "Notional Principal", - "name": "Currency 2", - "accronym": "CUR2", - "type": "Varchar", - "allowedValues": [], - "default": "", - "description": "Currency attribute for the second leg of FXOUT contracts." - }, - "cycleAnchorDateOfDividend": { - "identifier": "cycleAnchorDateOfDividend", - "group": "Dividend", - "name": "Cycle Anchor Date Of Dividend", - "accronym": "DVANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the dividend payment date schedule is calculated according to the cycle length. The first dividend payment event takes place on this anchor." - }, - "cycleAnchorDateOfFee": { - "identifier": "cycleAnchorDateOfFee", - "group": "Fees", - "name": "Cycle Anchor Date Of Fee", - "accronym": "FEANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor." - }, - "cycleAnchorDateOfInterestCalculationBase": { - "identifier": "cycleAnchorDateOfInterestCalculationBase", - "group": "Interest", - "name": "Cycle Anchor Date Of Interest Calculation Base", - "accronym": "IPCBANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor." - }, - "cycleAnchorDateOfInterestPayment": { - "identifier": "cycleAnchorDateOfInterestPayment", - "group": "Interest", - "name": "Cycle Anchor Date Of Interest Payment", - "accronym": "IPANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor." - }, - "cycleAnchorDateOfMargining": { - "identifier": "cycleAnchorDateOfMargining", - "group": "Margining", - "name": "Cycle Anchor Date Of Margining", - "accronym": "MRANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the margin call date schedule is calculated according to the cycle length. The first margin call event takes place on this anchor." - }, - "cycleAnchorDateOfOptionality": { - "identifier": "cycleAnchorDateOfOptionality", - "group": "Optionality", - "name": "Cycle Anchor Date Of Optionality", - "accronym": "OPANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period." - }, - "cycleAnchorDateOfPrincipalRedemption": { - "identifier": "cycleAnchorDateOfPrincipalRedemption", - "group": "Notional Principal", - "name": "Cycle Anchor Date Of Principal Redemption", - "accronym": "PRANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor." - }, - "cycleAnchorDateOfRateReset": { - "identifier": "cycleAnchorDateOfRateReset", - "group": "Rate Reset", - "name": "Cycle Anchor Date Of Rate Reset", - "accronym": "RRANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor." - }, - "cycleAnchorDateOfScalingIndex": { - "identifier": "cycleAnchorDateOfScalingIndex", - "group": "Notional Principal", - "name": "Cycle Anchor Date Of Scaling Index", - "accronym": "SCANX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor." - }, - "cycleOfDividend": { - "identifier": "cycleOfDividend", - "group": "Dividend", - "name": "Cycle Of Dividend", - "accronym": "DVCL", - "type": "Period", - "allowedValues": [], - "default": "", - "description": "Defines in combination with DVANX the payment points of dividends. The dividend payment schedule will start at DVANX and end at MaximumProjectionPeriod (cf. sheet Modeling Parameters)." - }, - "cycleOfFee": { - "identifier": "cycleOfFee", - "group": "Fees", - "name": "Cycle Of Fee", - "accronym": "FECL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Defines in combination with FEANX the payment points of fees" - }, - "cycleOfInterestCalculationBase": { - "identifier": "cycleOfInterestCalculationBase", - "group": "Interest", - "name": "Cycle Of Interest Calculation Base", - "accronym": "IPCBCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base." - }, - "cycleOfInterestPayment": { - "identifier": "cycleOfInterestPayment", - "group": "Interest", - "name": "Cycle Of Interest Payment", - "accronym": "IPCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC." - }, - "cycleOfMargining": { - "identifier": "cycleOfMargining", - "group": "Margining", - "name": "Cycle Of Margining", - "accronym": "MRCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Defines together with MRANX the points where margins can be called." - }, - "cycleOfOptionality": { - "identifier": "cycleOfOptionality", - "group": "Optionality", - "name": "Cycle Of Optionality", - "accronym": "OPCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC." - }, - "cycleOfPrincipalRedemption": { - "identifier": "cycleOfPrincipalRedemption", - "group": "Notional Principal", - "name": "Cycle Of Principal Redemption", - "accronym": "PRCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC." - }, - "cycleOfRateReset": { - "identifier": "cycleOfRateReset", - "group": "Rate Reset", - "name": "Cycle Of Rate Reset", - "accronym": "RRCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC." - }, - "cycleOfScalingIndex": { - "identifier": "cycleOfScalingIndex", - "group": "Notional Principal", - "name": "Cycle Of Scaling Index", - "accronym": "SCCL", - "type": "Cycle", - "allowedValues": [], - "default": "", - "description": "Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC." - }, - "cyclePointOfInterestPayment": { - "identifier": "cyclePointOfInterestPayment", - "group": "Interest", - "name": "Cycle Point Of Interest Payment", - "accronym": "IPPNT", - "type": "Enum", - "allowedValues": [ - "B", - "E" - ], - "default": "E", - "description": "Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B." - }, - "cyclePointOfRateReset": { - "identifier": "cyclePointOfRateReset", - "group": "Rate Reset", - "name": "Cycle Point Of Rate Reset", - "accronym": "RRPNT", - "type": "Enum", - "allowedValues": [ - "B", - "E" - ], - "default": "B", - "description": "Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued." - }, - "dayCountConvention": { - "identifier": "dayCountConvention", - "group": "Interest", - "name": "Day Count Convention", - "accronym": "IPDC", - "type": "Enum", - "allowedValues": [ - "A/AISDA", - "A/360", - "A/365", - "30E/360ISDA", - "30E/360", - "B/252", - "" - ], - "default": "", - "description": "Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations." - }, - "delinquencyPeriod": { - "identifier": "delinquencyPeriod", - "group": "Counterparty", - "name": "Delinquency Period", - "accronym": "DLP", - "type": "Period", - "allowedValues": [], - "default": "0D", - "description": "If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor." - }, - "delinquencyRate": { - "identifier": "delinquencyRate", - "group": "Counterparty", - "name": "Delinquency Rate", - "accronym": "DLR", - "type": "Real", - "allowedValues": ["Positive"], - "default": "0.0", - "description": "Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod" - }, - "deliverySettlement": { - "identifier": "deliverySettlement", - "group": "Settlement", - "name": "Delivery Settlement", - "accronym": "DS", - "type": "Enum", - "allowedValues": [ - "S", - "D" - ], - "default": "D", - "description": "Indicates whether the contract is settled in cash or physical delivery.\nIn case of “physical delivery”, the underlying contract and associated (future) cash flows are effectively exchanged. In case of “cash” settlement, the current market value of the underlying contract determines the cash flow exchanged." - }, - "endOfMonthConvention": { - "identifier": "endOfMonthConvention", - "group": "Calendar", - "name": "End Of Month Convention", - "accronym": "EOMC", - "type": "Enum", - "allowedValues": [ - "EOM", - "SD" - ], - "default": "SD", - "description": "When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day." - }, - "exDividendDate": { - "identifier": "exDividendDate", - "group": "Dividend", - "name": "Ex Dividend Date", - "accronym": "DVEX", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"], - "default": "", - "description": "In case contract is traded between DVEX and next DV payment date (i.e. PRD>DVEX & PRD" - ], - "default": "", - "description": "The physical unit of the contract. Example: “Barrels” for an Oil COM CT." - }, - "variationMargin": { - "identifier": "variationMargin", - "group": "Margining", - "name": "Variation Margin", - "accronym": "MRVM", - "type": "Real", - "allowedValues": ["Positive"], - "default": "", - "description": "MRVM reflects the accrued but not yet paid margin as per SD. \nOpen traded positions are revalued by the exchange at the end of every trading day using mark-to-market valuation. Often clearing members do not credit or debit their clients daily with MRVM, but rather use a Maintenance Margin. If the balance falls outside MRMML (and MRMMU), then capital must be added (is refunded) to reach the original margin amount MRIM. We can also say that MVO+MRVM is equal to the reference value as per last margin update." - }, - "xDayNotice": { - "identifier": "xDayNotice", - "group": "Notional Principal", - "name": "X Day Notice", - "accronym": "XDN", - "type": "Period", - "allowedValues": [], - "default": "", - "description": "Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days." - } - }, - "applicability": { - "annuity": { - "contract": "annuity", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(8,1,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x(,,)", - "cycleOfInterestPayment": "x(,,)", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "capitalizationEndDate": "x", - "cycleAnchorDateOfInterestCalculationBase": "x(3,4 ,)", - "cycleOfInterestCalculationBase": "x(3,4 ,)", - "interestCalculationBase": "x(3,0,)", - "interestCalculationBaseAmount": "NN(3,3 ,)", - "currency": "NN", - "amortizationDate": "x", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "premiumDiscountAtIED": "x", - "maturityDate": "x", - "notionalPrincipal": "NN", - "cycleAnchorDateOfPrincipalRedemption": "x(4,2,)2", - "cycleOfPrincipalRedemption": "x(4,2,)2", - "nextPrincipalRedemptionPayment": "x", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "creditLineAmount": "x", - "marketObjectCodeOfScalingIndex": "NN(7,1,)", - "scalingIndexAtStatusDate": "NN(7,1,)", - "cycleAnchorDateOfScalingIndex": "x(7,2,)", - "cycleOfScalingIndex": "x(7,2,)", - "scalingEffect": "x(7,0,)", - "marketValueObserved": "x", - "optionExerciseEndDate": "x(8,1,)", - "cycleAnchorDateOfOptionality": "x(8,1,)", - "cycleOfOptionality": "x(8,1,)", - "penaltyType": "x(8,1,)", - "penaltyRate": "x(8,1,)", - "prepaymentEffect": "x(8,0,)", - "cycleAnchorDateOfRateReset": "x(9,0,)2", - "cycleOfRateReset": "x(9,0,)2", - "rateSpread": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)", - "lifeCap": "x(9,1,)", - "lifeFloor": "x(9,1,)", - "periodCap": "x(9,1,)", - "periodFloor": "x(9,1,)", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "callMoney": { - "contract": "callMoney", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x", - "cycleOfInterestPayment": "x", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "maturityDate": "x", - "notionalPrincipal": "NN", - "xDayNotice": "NN", - "cycleAnchorDateOfRateReset": "x(9,0,)", - "cycleOfRateReset": "x(9,0,)", - "rateSpread": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "capFloor": { - "contract": "capFloor", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "contractStructure": "NN", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "currency": "NN*", - "contractDealDate": "NN(,,1)", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "lifeCap": "x(7,2,)", - "lifeFloor": "x(7,2,)" - }, - "cash": { - "contract": "cash", - "contractType": "NN", - "statusDate": "NN", - "contractRole": "NN", - "creatorID": "NN", - "contractID": "NN", - "currency": "NN", - "notionalPrincipal": "NN" - }, - "collateral": { - "contract": "collateral", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "contractStructure": "NN", - "counterpartyID": "NN(,,2)", - "guaranteedExposure": "NN", - "coverageOfCreditEnhancement": "x", - "contractDealDate": "NN" - }, - "commodity": { - "contract": "commodity", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "x", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "quantity": "NN", - "unit": "NN", - "purchaseDate": "NN", - "priceAtPurchaseDate": "NN", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x" - }, - "exoticLinearAmortizer": { - "contract": "exoticLinearAmortizer", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(8,1,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "arrayCycleAnchorDateOfInterestPayment": "x(2,0,)", - "arrayCycleOfInterestPayment": "x(2,0,)", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "capitalizationEndDate": "x", - "cycleAnchorDateOfInterestCalculationBase": "x(3,4 ,)", - "cycleOfInterestCalculationBase": "x(3,4 ,)", - "interestCalculationBase": "x(3,0,)", - "interestCalculationBaseAmount": "NN(3,3 ,)", - "cyclePointOfInterestPayment": "x(2,1,)1", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "premiumDiscountAtIED": "x", - "maturityDate": "x", - "notionalPrincipal": "NN", - "arrayCycleAnchorDateOfPrincipalRedemption": "NN(4,0,)", - "arrayCycleOfPrincipalRedemption": "x(4,0,)", - "arrayNextPrincipalRedemptionPayment": "x(4,0,)", - "arrayIncreaseDecrease": "x(4,0,)", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketObjectCodeOfScalingIndex": "NN(7,1,)", - "scalingIndexAtStatusDate": "NN(7,1,)", - "cycleAnchorDateOfScalingIndex": "x(7,2,)", - "cycleOfScalingIndex": "x(7,2,)", - "scalingEffect": "x(7,0,)", - "marketValueObserved": "x", - "optionExerciseEndDate": "x(8,1,)", - "cycleAnchorDateOfOptionality": "x(8,1,)", - "cycleOfOptionality": "x(8,1,)", - "penaltyType": "x(8,1,)", - "penaltyRate": "x(8,1,)", - "prepaymentEffect": "x(8,0,)", - "arrayCycleAnchorDateOfRateReset": "x(9,0,)", - "arrayCycleOfRateReset": "x(9,1,)", - "arrayRate": "NN(9,1,)", - "arrayFixedVariable": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)", - "lifeCap": "x(9,1,)", - "lifeFloor": "x(9,1,)", - "periodCap": "x(9,1,)", - "periodFloor": "x(9,1,)", - "cyclePointOfRateReset": "x(9,1,)1", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "foreignExchangeOutright": { - "contract": "foreignExchangeOutright", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "currency": "NN", - "currency2": "NN", - "contractDealDate": "NN(,,1)", - "maturityDate": "NN", - "notionalPrincipal": "NN", - "notionalPrincipal2": "NN", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "settlementDate": "x(,,1)", - "deliverySettlement": "x(,,1)" - }, - "future": { - "contract": "future", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "contractStructure": "NN", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "clearingHouse": "NN(1,1,)", - "initialMargin": "x(1,0,)", - "maintenanceMarginLowerBound": "x(1,1,)", - "maintenanceMarginUpperBound": "x(1,1,)", - "cycleAnchorDateOfMargining": "x(1,1,)", - "cycleOfMargining": "x(1,1,)", - "variationMargin": "x(1,1,)", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "purchaseDate": "NN(,,2)", - "priceAtPurchaseDate": "NN(,,2)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "settlementDate": "NN(,,1)", - "deliverySettlement": "x(,,1)", - "futuresPrice": "NN" - }, - "guarantee": { - "contract": "guarantee", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "contractStructure": "NN", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x", - "nonPerformingDate": "x", - "guaranteedExposure": "NN", - "coverageOfCreditEnhancement": "x", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "currency": "NN", - "contractDealDate": "NN", - "maturityDate": "x", - "notionalPrincipal": "x", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)" - }, - "linearAmortizer": { - "contract": "linearAmortizer", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(8,1,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x(2,0,)", - "cycleOfInterestPayment": "x(2,0,)", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "capitalizationEndDate": "x", - "cycleAnchorDateOfInterestCalculationBase": "x(3,4 ,)", - "cycleOfInterestCalculationBase": "x(3,4 ,)", - "interestCalculationBase": "x(3,0,)", - "interestCalculationBaseAmount": "NN(3,3 ,)", - "cyclePointOfInterestPayment": "x(2,1,)1", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "premiumDiscountAtIED": "x", - "maturityDate": "x", - "notionalPrincipal": "NN", - "cycleAnchorDateOfPrincipalRedemption": "x(4,2,)", - "cycleOfPrincipalRedemption": "x(4,2,)", - "nextPrincipalRedemptionPayment": "x", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "creditLineAmount": "x", - "marketObjectCodeOfScalingIndex": "NN(7,1,)", - "scalingIndexAtStatusDate": "NN(7,1,)", - "cycleAnchorDateOfScalingIndex": "x(7,2,)", - "cycleOfScalingIndex": "x(7,2,)", - "scalingEffect": "x(7,0,)", - "marketValueObserved": "x", - "optionExerciseEndDate": "x(8,1,)", - "cycleAnchorDateOfOptionality": "x(8,1,)", - "cycleOfOptionality": "x(8,1,)", - "penaltyType": "x(8,1,)", - "penaltyRate": "x(8,1,)", - "prepaymentEffect": "x(8,0,)", - "cycleAnchorDateOfRateReset": "x(9,0,)", - "cycleOfRateReset": "x(9,0,)", - "rateSpread": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)", - "lifeCap": "x(9,1,)", - "lifeFloor": "x(9,1,)", - "periodCap": "x(9,1,)", - "periodFloor": "x(9,1,)", - "cyclePointOfRateReset": "x(9,1,)1", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "negativeAmortizer": { - "contract": "negativeAmortizer", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(8,1,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x", - "cycleOfInterestPayment": "x", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "capitalizationEndDate": "x", - "cycleAnchorDateOfInterestCalculationBase": "x(3,4 ,)", - "cycleOfInterestCalculationBase": "x(3,4 ,)", - "interestCalculationBase": "x(3,0,)", - "interestCalculationBaseAmount": "NN(3,3 ,)", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "premiumDiscountAtIED": "x", - "maturityDate": "x", - "notionalPrincipal": "NN", - "cycleAnchorDateOfPrincipalRedemption": "x(4,2,)", - "cycleOfPrincipalRedemption": "x(4,2,)", - "nextPrincipalRedemptionPayment": "NN", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "creditLineAmount": "x", - "marketObjectCodeOfScalingIndex": "NN(7,1,)", - "scalingIndexAtStatusDate": "NN(7,1,)", - "cycleAnchorDateOfScalingIndex": "x(7,2,)", - "cycleOfScalingIndex": "x(7,2,)", - "scalingEffect": "x(7,0,)", - "marketValueObserved": "x", - "optionExerciseEndDate": "x(8,1,)", - "cycleAnchorDateOfOptionality": "x(8,1,)", - "cycleOfOptionality": "x(8,1,)", - "penaltyType": "x(8,1,)", - "penaltyRate": "x(8,1,)", - "prepaymentEffect": "x(8,0,)", - "cycleAnchorDateOfRateReset": "x(9,2,)", - "cycleOfRateReset": "x(9,2,)", - "rateSpread": "NN", - "marketObjectCodeRateReset": "NN", - "lifeCap": "x(9,1,)", - "lifeFloor": "x(9,1,)", - "periodCap": "x(9,1,)", - "periodFloor": "x(9,1,)", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "option": { - "contract": "option", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "contractStructure": "NN", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "purchaseDate": "NN(,,2)", - "priceAtPurchaseDate": "NN(,,2)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "optionExecutionType": "NN", - "optionExerciseEndDate": "NN", - "optionStrike1": "NN", - "optionStrike2": "x", - "optionType": "NN", - "cycleAnchorDateOfOptionality": "x", - "cycleOfOptionality": "x", - "settlementDate": "x(,,1)", - "deliverySettlement": "x(,,1)" - }, - "plainVanillaSwap": { - "contract": "plainVanillaSwap", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfInterestPayment": "x(2,0,)", - "cycleOfInterestPayment": "NN(2,0,)", - "nominalInterestRate": "NN", - "nominalInterestRate2": "NN", - "dayCountConvention": "NN", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "maturityDate": "NN", - "notionalPrincipal": "NN", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "cycleAnchorDateOfRateReset": "x(9,2,)", - "cycleOfRateReset": "x(9,2,)", - "rateSpread": "NN", - "marketObjectCodeRateReset": "NN", - "cyclePointOfRateReset": "x(9,1,)1", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)", - "deliverySettlement": "x(,,1)" - }, - "principalAtMaturity": { - "contract": "principalAtMaturity", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(8,1,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x(2,0,)", - "cycleOfInterestPayment": "x(2,0,)", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "capitalizationEndDate": "x", - "cyclePointOfInterestPayment": "x(2,1,)1", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "premiumDiscountAtIED": "x", - "maturityDate": "NN", - "notionalPrincipal": "NN", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "creditLineAmount": "x", - "marketObjectCodeOfScalingIndex": "NN(7,1,)", - "scalingIndexAtStatusDate": "NN(7,1,)", - "cycleAnchorDateOfScalingIndex": "x(7,2,)", - "cycleOfScalingIndex": "x(7,2,)", - "scalingEffect": "x(7,0,)", - "marketValueObserved": "x", - "optionExerciseEndDate": "x(8,1,)", - "cycleAnchorDateOfOptionality": "x(8,1,)", - "cycleOfOptionality": "x(8,1,)", - "penaltyType": "x(8,1,)", - "penaltyRate": "x(8,1,)", - "prepaymentEffect": "x(8,0,)", - "cycleAnchorDateOfRateReset": "x(9,0,)", - "cycleOfRateReset": "x(9,0,)", - "rateSpread": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)", - "lifeCap": "x(9,1,)", - "lifeFloor": "x(9,1,)", - "periodCap": "x(9,1,)", - "periodFloor": "x(9,1,)", - "cyclePointOfRateReset": "x(9,1,)1", - "fixingDays": "x(9,1,)", - "nextResetRate": "x(9,1,)", - "rateMultiplier": "x(9,1,)" - }, - "stock": { - "contract": "stock", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN(,,1)", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "counterpartyID": "NN(,,2)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "cycleAnchorDateOfDividend": "NN(1,1,)", - "cycleOfDividend": "x(1,0,)", - "nextDividendPaymentAmount": "x(1,0,)", - "exDividendDate": "x(1,1,)", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "quantity": "NN(,,3)", - "purchaseDate": "NN", - "priceAtPurchaseDate": "NN", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x" - }, - "swap": { - "contract": "swap", - "contractType": "NN", - "statusDate": "NN(,,1)", - "contractRole": "NN", - "creatorID": "NN(,,1)", - "contractID": "NN", - "marketObjectCode": "x", - "contractStructure": "NN", - "counterpartyID": "NN(,,1)", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "purchaseDate": "x(5,0,1)", - "priceAtPurchaseDate": "NN(5,1,1)", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "marketValueObserved": "x", - "deliverySettlement": "x(,,1)" - }, - "undefinedMaturityProfile": { - "contract": "undefinedMaturityProfile", - "calendar": "x", - "businessDayConvention": "x", - "endOfMonthConvention": "x", - "contractType": "NN", - "statusDate": "NN", - "contractRole": "NN", - "creatorID": "NN", - "contractID": "NN", - "counterpartyID": "NN", - "contractPerformance": "x(,,1)", - "seniority": "x(,,1)", - "nonPerformingDate": "x(,,1)", - "prepaymentPeriod": "x(,,1)", - "gracePeriod": "x(,,1)", - "delinquencyPeriod": "x(,,1)", - "delinquencyRate": "x(,,1)", - "cycleAnchorDateOfFee": "x(1,2, )", - "cycleOfFee": "x(1,2, )", - "feeBasis": "NN(1,1, )", - "feeRate": "x(1,0, )", - "feeAccrued": "x(1,1, )", - "cycleAnchorDateOfInterestPayment": "x", - "cycleOfInterestPayment": "x", - "nominalInterestRate": "NN", - "dayCountConvention": "NN", - "accruedInterest": "x", - "currency": "NN", - "contractDealDate": "NN(,,1)", - "initialExchangeDate": "NN", - "notionalPrincipal": "NN", - "terminationDate": "x(6,0,1)", - "priceAtTerminationDate": "NN(6,1,1)", - "xDayNotice": "x", - "maximumPenaltyFreeDisbursement": "x", - "cycleAnchorDateOfRateReset": "x(9,0,)", - "cycleOfRateReset": "x(9,0,)", - "rateSpread": "NN(9,1,)", - "marketObjectCodeRateReset": "NN(9,1,)" - } - }, - "eventType": { - "analysis": { - "identifier": "analysis", - "name": "Analysis", - "accronym": "AD", - "description": "Analysis of contract. Evaluates all contract states", - "sequence": 22 - }, - "creditEvent": { - "identifier": "creditEvent", - "name": "Credit Event", - "accronym": "CD", - "description": "Credit event of counterparty to a contract", - "sequence": 10 - }, - "dividendPayment": { - "identifier": "dividendPayment", - "name": "Dividend Payment", - "accronym": "DV", - "description": "Scheduled dividend payment", - "sequence": 13 - }, - "execution": { - "identifier": "execution", - "name": "Execution", - "accronym": "XD", - "description": "Execution of a contractual feature such as optionality", - "sequence": 19 - }, - "feePayment": { - "identifier": "feePayment", - "name": "Fee Payment", - "accronym": "FP", - "description": "Scheduled fee payment", - "sequence": 2 - }, - "initialExchange": { - "identifier": "initialExchange", - "name": "Initial Exchange", - "accronym": "IED", - "description": "Scheduled date of first principal event, start of accrual calculation", - "sequence": 1 - }, - "interestCalculationBaseFixing": { - "identifier": "interestCalculationBaseFixing", - "name": "Interest Calculation Base Fixing", - "accronym": "IPCB", - "description": "Scheduled re-fixing of the interest calculation base", - "sequence": 18 - }, - "interestCapitalization": { - "identifier": "interestCapitalization", - "name": "Interest Capitalization", - "accronym": "IPCI", - "description": "Scheduled interest capitalization. Interest is capitalized instead of paid out", - "sequence": 9 - }, - "interestPayment": { - "identifier": "interestPayment", - "name": "Interest Payment", - "accronym": "IP", - "description": "Scheduled interest payment", - "sequence": 8 - }, - "marginCallPayment": { - "identifier": "marginCallPayment", - "name": "Margin Call Payment", - "accronym": "MR", - "description": "Scheduled margin call payment", - "sequence": 15 - }, - "maturity": { - "identifier": "maturity", - "name": "Maturity", - "accronym": "MD", - "description": "Scheduled maturity of a contract", - "sequence": 21 - }, - "penaltyPayment": { - "identifier": "penaltyPayment", - "name": "Penalty Payment", - "accronym": "PY", - "description": "Payment of a penalty", - "sequence": 6 - }, - "principal Drawing": { - "identifier": "principal Drawing", - "name": "Principal Drawing", - "accronym": "PD", - "description": "Drawing of principal amount\n", - "sequence": 4 - }, - "principalPaymentAmountFixing": { - "identifier": "principalPaymentAmountFixing", - "name": "Principal Payment Amount Fixing", - "accronym": "PRF", - "description": "Scheduled re-fixing of principal payment amount", - "sequence": 5 - }, - "principalPrepayment": { - "identifier": "principalPrepayment", - "name": "Principal Prepayment", - "accronym": "PP", - "description": "Unscheduled early repayment of principal", - "sequence": 7 - }, - "principalRedemption": { - "identifier": "principalRedemption", - "name": "Principal Redemption", - "accronym": "PR", - "description": "Scheduled principal redemption payment", - "sequence": 3 - }, - "purchase": { - "identifier": "purchase", - "name": "Purchase", - "accronym": "PRD", - "description": "Purchase of a contract", - "sequence": 14 - }, - "rateResetFixed": { - "identifier": "rateResetFixed", - "name": "Rate Reset Fixed", - "accronym": "RRF", - "description": "Scheduled variable rate fixing with new rate already fixed", - "sequence": 11 - }, - "rateResetVariable": { - "identifier": "rateResetVariable", - "name": "Rate Reset Variable", - "accronym": "RR", - "description": "Scheduled variable rate fixing with new rate fixed at event time", - "sequence": 12 - }, - "scalingIndexRevision": { - "identifier": "scalingIndexRevision", - "name": "Scaling Index Revision", - "accronym": "SC", - "description": "Scheduled re-fixing of a scaling index", - "sequence": 17 - }, - "settlement": { - "identifier": "settlement", - "name": "Settlement", - "accronym": "STD", - "description": "Settlement of contractual claim", - "sequence": 20 - }, - "termination": { - "identifier": "termination", - "name": "Termination", - "accronym": "TD", - "description": "Termination of a contract", - "sequence": 16 - } - }, - "states": { - "contractPerformance": { - "identifier": "contractPerformance", - "name": "Contract Performance", - "accronym": "PRF", - "description": "Indicates the current contract performance status. Different states of the contract range from performing to default.", - "type": "Enum", - "allowedValues": [ - "PF", - "DL", - "DQ", - "DF" - ] - }, - "interestCalculationBase": { - "identifier": "interestCalculationBase", - "name": "Interest Calculation Base", - "accronym": "ICB", - "description": "The basis at which interest is being accrued. Potentially different from NVL.", - "type": "Real", - "allowedValues": [] - }, - "interestScalingMultiplier": { - "identifier": "interestScalingMultiplier", - "name": "Interest Scaling Multiplier", - "accronym": "ISC", - "description": "The multiplier being applied to interest cash flows", - "type": "Real", - "allowedValues": [] - }, - "lastEventDate": { - "identifier": "lastEventDate", - "name": "Last Event Date", - "accronym": "LED", - "description": "The date of the most recent Contract Event", - "type": "Timestamp", - "allowedValues": ["ISO8601 Datetime"] - }, - "nextPrincipalRedemptionPayment": { - "identifier": "nextPrincipalRedemptionPayment", - "name": "Next Principal Redemption Payment", - "accronym": "NPR", - "description": "The value at which principal is being repaid. This may be including or excluding of interest depending on the Contract Type", - "type": "Real", - "allowedValues": [] - }, - "nominalAccrued": { - "identifier": "nominalAccrued", - "name": "Nominal Accrued", - "accronym": "NAC", - "description": "The current value of nominal interest accrued", - "type": "Real", - "allowedValues": [] - }, - "nominalRate": { - "identifier": "nominalRate", - "name": "Nominal Rate", - "accronym": "NRT", - "description": "The applicable nominal rate", - "type": "Real", - "allowedValues": [] - }, - "nominalValue": { - "identifier": "nominalValue", - "name": "Nominal Value", - "accronym": "NVL", - "description": "The outstanding nominal value", - "type": "Real", - "allowedValues": [] - }, - "notionalScalingMultiplier": { - "identifier": "notionalScalingMultiplier", - "name": "Notional Scaling Multiplier", - "accronym": "NSC", - "description": "The multiplier being applied to principal cash flows", - "type": "Real", - "allowedValues": [] - }, - "payoffAtSettlement": { - "identifier": "payoffAtSettlement", - "name": "Payoff At Settlement", - "accronym": "POS", - "description": "The payoff of the contract if fixed at event time.", - "type": "Real", - "allowedValues": [] - } - } -} - diff --git a/data/demos/.Rhistory b/data/demos/.Rhistory deleted file mode 100644 index e69de29..0000000 diff --git a/data/demos/csv/ANN_TestBed.xls b/data/demos/csv/ANN_TestBed.xls deleted file mode 100755 index dc7529a..0000000 Binary files a/data/demos/csv/ANN_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/FXOUT_TestBed.xls b/data/demos/csv/FXOUT_TestBed.xls deleted file mode 100755 index e8822df..0000000 Binary files a/data/demos/csv/FXOUT_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/LAM_TestBed.xls b/data/demos/csv/LAM_TestBed.xls deleted file mode 100755 index 8ba64b7..0000000 Binary files a/data/demos/csv/LAM_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/LAX_TestBed.xls b/data/demos/csv/LAX_TestBed.xls deleted file mode 100755 index a3f01ff..0000000 Binary files a/data/demos/csv/LAX_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/NAM_TestBed.xls b/data/demos/csv/NAM_TestBed.xls deleted file mode 100755 index c0f4859..0000000 Binary files a/data/demos/csv/NAM_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/PAM_TestBed.xls b/data/demos/csv/PAM_TestBed.xls deleted file mode 100755 index 0ada717..0000000 Binary files a/data/demos/csv/PAM_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/STK_TestBed.xls b/data/demos/csv/STK_TestBed.xls deleted file mode 100755 index f597459..0000000 Binary files a/data/demos/csv/STK_TestBed.xls and /dev/null differ diff --git a/data/demos/csv/SWPPV_TestBed.xls b/data/demos/csv/SWPPV_TestBed.xls deleted file mode 100755 index becdcba..0000000 Binary files a/data/demos/csv/SWPPV_TestBed.xls and /dev/null differ diff --git a/data/demos/json/ANN/demo_ann101.json b/data/demos/json/ANN/demo_ann101.json deleted file mode 100644 index d73b214..0000000 --- a/data/demos/json/ANN/demo_ann101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann101","label":"CT 101: Long position in a 5-year Annuity with annual Annu","contractType":"ANN","version":"20190902","description":"Long position in a 5-year Annuity with annual Annuity payments based on a fixed Nominal Rate of 5%.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","rateSpread":0}} diff --git a/data/demos/json/ANN/demo_ann102.json b/data/demos/json/ANN/demo_ann102.json deleted file mode 100644 index 6dc4ad6..0000000 --- a/data/demos/json/ANN/demo_ann102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann102","label":"CT 102: Same as case 101 but a short position.","contractType":"ANN","version":"20190902","description":"Same as case 101 but a short position.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":102,"nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","rateSpread":0}} diff --git a/data/demos/json/ANN/demo_ann103.json b/data/demos/json/ANN/demo_ann103.json deleted file mode 100644 index 8095b75..0000000 --- a/data/demos/json/ANN/demo_ann103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann103","label":"CT 103: Short position in a 10-year Annuity with annual An","contractType":"ANN","version":"20190902","description":"Short position in a 10-year Annuity with annual Annuity payments based on a fixed Nominal Rate of 5%.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":103,"nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","rateSpread":0}} diff --git a/data/demos/json/ANN/demo_ann104.json b/data/demos/json/ANN/demo_ann104.json deleted file mode 100644 index d569a0d..0000000 --- a/data/demos/json/ANN/demo_ann104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann104","label":"CT 104: Same as case 104 but based on a variable interest ","contractType":"ANN","version":"20190902","description":"Same as case 104 but based on a variable interest rate bi-annually updated as forward rate from the observed reference yield curve adding a spread of 5%.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":104,"nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","cycleAnchorDateOfRateReset":"2016-01-01T00:00:00","cycleOfRateReset":"2Y+","rateSpread":0.05,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/ANN/demo_ann105.json b/data/demos/json/ANN/demo_ann105.json deleted file mode 100644 index f546834..0000000 --- a/data/demos/json/ANN/demo_ann105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann105","label":"CT 105: Same as case 105 but with Principal Redemption per","contractType":"ANN","version":"20190902","description":"Same as case 105 but with Principal Redemption period starting only after a 2-year Interest Payment period.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":105,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2017-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","cycleAnchorDateOfRateReset":"2016-01-01T00:00:00","cycleOfRateReset":"2Y+","rateSpread":0.05,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/ANN/demo_ann106.json b/data/demos/json/ANN/demo_ann106.json deleted file mode 100644 index f8ca4be..0000000 --- a/data/demos/json/ANN/demo_ann106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann106","label":"CT 106: Same as case 105 but with Principal Redemption per","contractType":"ANN","version":"20190902","description":"Same as case 105 but with Principal Redemption period starting only after a 2-year Interest Capitalization period.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":106,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","capitalizationEndDate":"2017-01-01T00:00:00","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2018-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","cycleAnchorDateOfRateReset":"2016-01-01T00:00:00","cycleOfRateReset":"2Y+","rateSpread":0.05,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/ANN/demo_ann107.json b/data/demos/json/ANN/demo_ann107.json deleted file mode 100644 index 999b190..0000000 --- a/data/demos/json/ANN/demo_ann107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_ann107","label":"CT 107: Same as case 104 but with Annuity payments linked ","contractType":"ANN","version":"20190902","description":"Same as case 104 but with Annuity payments linked to a Reference Index.","terms":{"contractType":"ANN","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":107,"nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-01T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"IN0"}} diff --git a/data/demos/json/ANN/demo_ann108.json b/data/demos/json/ANN/demo_ann108.json deleted file mode 100644 index bcbcf92..0000000 --- a/data/demos/json/ANN/demo_ann108.json +++ /dev/null @@ -1 +0,0 @@ -{"Identifier":"demo_ann108","Label":"CT 108: Same as case 104 but with Annuity payments linked ","ContractType":"ANN","Version":"20190118","Description":"Same as case 104 but with Annuity payments linked to a Reference Index.","Terms":{"ContractType":"ANN","StatusDate":"2015-01-01T00:00:00","ContractRole":"RPL","ContractID":108,"LegalEntityIDCounterparty":"TEST_LEI_CT","NominalInterestRate":0.05,"DayCountConvention":"30E/360","InterestCalculationBase":"NT","Currency":"USD","AmortizationDate":"2025-01-02T00:00:00","ContractDealDate":"2015-01-01T00:00:00","InitialExchangeDate":"2015-01-02T00:00:00","NotionalPrincipal":1000,"CycleAnchorDateOfPrincipalRedemption":"2016-01-01T00:00:00","CycleOfPrincipalRedemption":"1Y+","MarketObjectCodeOfScalingIndex":"CPI.USD","ScalingIndexAtStatusDate":100,"CycleAnchorDateOfScalingIndex":"2016-01-01T00:00:00","CycleOfScalingIndex":"1Y+","ScalingEffect":"IN0","FixingDays":"0D","RateMultiplier":1,"MarketValueObserved":20,"PremiumDiscountAtIED":0}} diff --git a/data/demos/json/FXOUT/demo_fxout101.json b/data/demos/json/FXOUT/demo_fxout101.json deleted file mode 100644 index d37fd3e..0000000 --- a/data/demos/json/FXOUT/demo_fxout101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout101","label":"CT 101: A simple FX-out agreement on the exchange of USD 1","contractType":"FXOUT","version":"20190902","description":"A simple FX-out agreement on the exchange of USD 1000 (receive) agains EUR 900 (pay) in 1 year's time, i.e. on 2015-12-31T00.","terms":{"contractType":"FXOUT","contractID":101,"contractRole":"RFL","currency":"USD","currency2":"EUR","notionalPrincipal":1000,"notionalPrincipal2":900,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00"}} diff --git a/data/demos/json/FXOUT/demo_fxout102.json b/data/demos/json/FXOUT/demo_fxout102.json deleted file mode 100644 index d0ff6b9..0000000 --- a/data/demos/json/FXOUT/demo_fxout102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout102","label":"CT 102: Same as case 101 but now with ContractRole=”PFL” (","contractType":"FXOUT","version":"20190902","description":"Same as case 101 but now with ContractRole=”PFL” (pay first leg), i.e. the USD leg is now paid and the EUR leg received.","terms":{"contractType":"FXOUT","contractID":102,"contractRole":"PFL","currency":"USD","currency2":"EUR","notionalPrincipal":1000,"notionalPrincipal2":900,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00"}} diff --git a/data/demos/json/FXOUT/demo_fxout103.json b/data/demos/json/FXOUT/demo_fxout103.json deleted file mode 100644 index 9d82570..0000000 --- a/data/demos/json/FXOUT/demo_fxout103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout103","label":"CT 103: Same as case 101 where the pay leg is in CHF curre","contractType":"FXOUT","version":"20190902","description":"Same as case 101 where the pay leg is in CHF currency and amounts to CHF 950 now.","terms":{"contractType":"FXOUT","contractID":103,"contractRole":"RFL","currency":"USD","currency2":"CHF","notionalPrincipal":1000,"notionalPrincipal2":950,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00"}} diff --git a/data/demos/json/FXOUT/demo_fxout104.json b/data/demos/json/FXOUT/demo_fxout104.json deleted file mode 100644 index 8be9fa4..0000000 --- a/data/demos/json/FXOUT/demo_fxout104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout104","label":"CT 104: Same as case 101 but now the cash flows are not be","contractType":"FXOUT","version":"20190902","description":"Same as case 101 but now the cash flows are not being paid in their respective currencies but settled in “first leg” currency, i.e. SettlementDate where before Maturity happened.","terms":{"contractType":"FXOUT","contractID":104,"contractRole":"RFL","currency":"USD","currency2":"EUR","notionalPrincipal":1000,"notionalPrincipal2":900,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00","settlementDate":"2015-12-31T00:00:00"}} diff --git a/data/demos/json/FXOUT/demo_fxout105.json b/data/demos/json/FXOUT/demo_fxout105.json deleted file mode 100644 index 37d529e..0000000 --- a/data/demos/json/FXOUT/demo_fxout105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout105","label":"CT 105: Same as case 101 with a Purchase “on the run” at a","contractType":"FXOUT","version":"20190902","description":"Same as case 101 with a Purchase “on the run” at a price of USD 55.","terms":{"contractType":"FXOUT","contractID":105,"contractRole":"RFL","currency":"USD","currency2":"EUR","notionalPrincipal":1000,"notionalPrincipal2":900,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00","purchaseDate":"2015-03-11T00:00:00","priceAtPurchaseDate":55}} diff --git a/data/demos/json/FXOUT/demo_fxout106.json b/data/demos/json/FXOUT/demo_fxout106.json deleted file mode 100644 index 33ebd7f..0000000 --- a/data/demos/json/FXOUT/demo_fxout106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_fxout106","label":"CT 106: Same as case 105 with Termination “on the run” sho","contractType":"FXOUT","version":"20190902","description":"Same as case 105 with Termination “on the run” shortly after Purchase at a price of USD 63.","terms":{"contractType":"FXOUT","contractID":106,"contractRole":"RFL","currency":"USD","currency2":"EUR","notionalPrincipal":1000,"notionalPrincipal2":900,"statusDate":"2014-12-30T00:00:00","contractDealDate":"2014-12-31T00:00:00","maturityDate":"2015-12-31T00:00:00","purchaseDate":"2015-03-11T00:00:00","priceAtPurchaseDate":55,"terminationDate":"2015-03-21T00:00:00","priceAtTerminationDate":63}} diff --git a/data/demos/json/LAM/demo_lam101.json b/data/demos/json/LAM/demo_lam101.json deleted file mode 100644 index 2a9ad6e..0000000 --- a/data/demos/json/LAM/demo_lam101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam101","label":"CT 101: Long position in a Linear Amortizer at Notional of","contractType":"LAM","version":"20190902","description":"Long position in a Linear Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments based on a fixed Nominal Rate of 5%.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam102.json b/data/demos/json/LAM/demo_lam102.json deleted file mode 100644 index eec24eb..0000000 --- a/data/demos/json/LAM/demo_lam102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam102","label":"CT 102: Same as case 101 but short position.","contractType":"LAM","version":"20190902","description":"Same as case 101 but short position.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":102,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam103.json b/data/demos/json/LAM/demo_lam103.json deleted file mode 100644 index cd4ede5..0000000 --- a/data/demos/json/LAM/demo_lam103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam103","label":"CT 103: Same as case 101 but with Maturity forced after 4 ","contractType":"LAM","version":"20190902","description":"Same as case 101 but with Maturity forced after 4 years.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":103,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2018-12-31T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam104.json b/data/demos/json/LAM/demo_lam104.json deleted file mode 100644 index efe0460..0000000 --- a/data/demos/json/LAM/demo_lam104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam104","label":"CT 104: Long position in a Linear Amortizer at Notional of","contractType":"LAM","version":"20190902","description":"Long position in a Linear Amortizer at Notional of USD 1000.0 with annual amortizing payments amounting to USD 100.0 and interest payments based on a fixed Nominal Rate of 5%.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":104,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam105.json b/data/demos/json/LAM/demo_lam105.json deleted file mode 100644 index 897e72b..0000000 --- a/data/demos/json/LAM/demo_lam105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam105","label":"CT 105: Same as case 104 but with Interest Payments being ","contractType":"LAM","version":"20190902","description":"Same as case 104 but with Interest Payments being calculated on lagged Notional amount.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":105,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","cycleAnchorDateOfInterestCalculationBase":"2019-01-01T00:00:00","cycleOfInterestCalculationBase":"3Y+","interestCalculationBase":"NTL","interestCalculationBaseAmount":1000,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam106.json b/data/demos/json/LAM/demo_lam106.json deleted file mode 100644 index 0b02e6a..0000000 --- a/data/demos/json/LAM/demo_lam106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam106","label":"CT 106: Same as case 104 but with Interest Payments being ","contractType":"LAM","version":"20190902","description":"Same as case 104 but with Interest Payments being calculated on the basis of a fixed amount (the Notional amount at Initial Exchange here).","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":106,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NTIED","interestCalculationBaseAmount":1000,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"rateSpread":0}} diff --git a/data/demos/json/LAM/demo_lam107.json b/data/demos/json/LAM/demo_lam107.json deleted file mode 100644 index d33c511..0000000 --- a/data/demos/json/LAM/demo_lam107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam107","label":"CT 107: Same as case 104 but based on variable interest ra","contractType":"LAM","version":"20190902","description":"Same as case 104 but based on variable interest rate calculated as the forward rate from a reference yield curve and spread of 1%.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":107,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.01,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/LAM/demo_lam108.json b/data/demos/json/LAM/demo_lam108.json deleted file mode 100644 index f36abdd..0000000 --- a/data/demos/json/LAM/demo_lam108.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam108","label":"CT 108: Same as case 107 but based on a spread of 12%. The","contractType":"LAM","version":"20190902","description":"Same as case 107 but based on a spread of 12%. The Interest payments being decoupled from Principal Redemption payments, this has no effect on the Redemption of Notional (compare to the Negative Amortizer).","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":108,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.12,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/LAM/demo_lam109.json b/data/demos/json/LAM/demo_lam109.json deleted file mode 100644 index 7448b48..0000000 --- a/data/demos/json/LAM/demo_lam109.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam109","label":"CT 109: Same as case 104 but with Interest and Principal p","contractType":"LAM","version":"20190902","description":"Same as case 104 but with Interest and Principal payments linked to a Reference Index.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":109,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleOfScalingIndex":"1Y+","scalingEffect":"IN0"}} diff --git a/data/demos/json/LAM/demo_lam110.json b/data/demos/json/LAM/demo_lam110.json deleted file mode 100644 index 8e64d45..0000000 --- a/data/demos/json/LAM/demo_lam110.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam110","label":"CT 110: Same as case 109 but with only Interest payments l","contractType":"LAM","version":"20190902","description":"Same as case 109 but with only Interest payments linked to a Reference Index.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":110,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleOfScalingIndex":"1Y+","scalingEffect":"I00"}} diff --git a/data/demos/json/LAM/demo_lam111.json b/data/demos/json/LAM/demo_lam111.json deleted file mode 100644 index 6d368f3..0000000 --- a/data/demos/json/LAM/demo_lam111.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lam111","label":"CT 111: Same as case 109 but with only Principal Redemptio","contractType":"LAM","version":"20190902","description":"Same as case 109 but with only Principal Redemption payments linked to a Reference Index.","terms":{"contractType":"LAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":111,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleOfScalingIndex":"1Y+","scalingEffect":"0N0"}} diff --git a/data/demos/json/LAX/demo_lax101.json b/data/demos/json/LAX/demo_lax101.json deleted file mode 100644 index 4e9d585..0000000 --- a/data/demos/json/LAX/demo_lax101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax101","label":"CT 101: Long position in an Exotic Linear Amortizer at Not","contractType":"LAX","version":"20190902","description":"Long position in an Exotic Linear Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments based on a fixed Nominal Rate of 5% (this instrument is essentially the same as case 101 of the Linear Amortizer).","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+","arrayNextPrincipalRedemptionPayment":"200","arrayIncreaseDecrease":"DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax102.json b/data/demos/json/LAX/demo_lax102.json deleted file mode 100644 index e6199e5..0000000 --- a/data/demos/json/LAX/demo_lax102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax102","label":"CT 102: Same as case 101 but with annual amortizing paymen","contractType":"LAX","version":"20190902","description":"Same as case 101 but with annual amortizing payments of USD 100.0 for the first 3 years, USD 200.0 for the next 2 years, and 300.0 for the last year.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":102,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"100,200,300","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax103.json b/data/demos/json/LAX/demo_lax103.json deleted file mode 100644 index 4e8123b..0000000 --- a/data/demos/json/LAX/demo_lax103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax103","label":"CT 103: Same as case 101 but with amortizing payments of U","contractType":"LAX","version":"20190902","description":"Same as case 101 but with amortizing payments of USD 100.0 for the first 4 years bi-annually, USD 100.0 for the subsequent 4 years annually, and USD 100.0 for the remaining 2 years semi-annually.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":103,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2020-01-01T00,2024-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"2Y+,1Y+,6M+","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax104.json b/data/demos/json/LAX/demo_lax104.json deleted file mode 100644 index 843e257..0000000 --- a/data/demos/json/LAX/demo_lax104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax104","label":"CT 104: Same as case 103 but with Maturity forced after 8 ","contractType":"LAX","version":"20190902","description":"Same as case 103 but with Maturity forced after 8 years.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":104,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2022-07-01T00:00:00","notionalPrincipal":1000,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2020-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"2Y+,1Y+,6M+","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax105.json b/data/demos/json/LAX/demo_lax105.json deleted file mode 100644 index 370628d..0000000 --- a/data/demos/json/LAX/demo_lax105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax105","label":"CT 105: Same as case 101 but with a notional step-up patte","contractType":"LAX","version":"20190902","description":"Same as case 101 but with a notional step-up pattern of USD 500.0 annually for the first 3 years, and a step-down pattern of USD 300.0 for the subsequent 5 years.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":105,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax106.json b/data/demos/json/LAX/demo_lax106.json deleted file mode 100644 index f4c1042..0000000 --- a/data/demos/json/LAX/demo_lax106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax106","label":"CT 106: Same as case 105 but with Interest Payments being ","contractType":"LAX","version":"20190902","description":"Same as case 105 but with Interest Payments being calculated on lagged Notional amount.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":106,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","cycleAnchorDateOfInterestCalculationBase":"2019-01-01T00:00:00","cycleOfInterestCalculationBase":"3Y+","interestCalculationBase":"NTL","interestCalculationBaseAmount":500,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax107.json b/data/demos/json/LAX/demo_lax107.json deleted file mode 100644 index 69f4b4c..0000000 --- a/data/demos/json/LAX/demo_lax107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax107","label":"CT 107: Same as case 105 but with Interest Payments being ","contractType":"LAX","version":"20190902","description":"Same as case 105 but with Interest Payments being calculated on the basis of a fixed amount (USD 1000.0 in this case).","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":107,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NTIED","interestCalculationBaseAmount":1000,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax108.json b/data/demos/json/LAX/demo_lax108.json deleted file mode 100644 index 921f325..0000000 --- a/data/demos/json/LAX/demo_lax108.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax108","label":"CT 108: Same as case 105 but based on variable interest ra","contractType":"LAX","version":"20190902","description":"Same as case 105 but based on variable interest rate calculated as the forward rate from a reference yield curve and spread of 5%.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":108,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayCycleAnchorDateOfRateReset":"2016-01-01T00:00:00","arrayCycleOfRateReset":"1Y+","arrayRate":"0.050000000000000003","arrayFixedVariable":"VAR"}} diff --git a/data/demos/json/LAX/demo_lax109.json b/data/demos/json/LAX/demo_lax109.json deleted file mode 100644 index 87be543..0000000 --- a/data/demos/json/LAX/demo_lax109.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax109","label":"CT 109: Same as case 105 but based on a Nominal Rate of 1%","contractType":"LAX","version":"20190902","description":"Same as case 105 but based on a Nominal Rate of 1% (as per Initial Exchange Date) and a set of variable interest rates fixed at ContractDealDate. Specifically, the rate is reset bi-annually with following rates (in this order) [2%, 4%, 8%].","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":109,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.01,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayCycleAnchorDateOfRateReset":"2017-01-01T00,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfRateReset":"NULL,NULL,2Y+","arrayRate":"0.02,0.04,0.08","arrayFixedVariable":"FIX,FIX,VAR"}} diff --git a/data/demos/json/LAX/demo_lax110.json b/data/demos/json/LAX/demo_lax110.json deleted file mode 100644 index fe60eb0..0000000 --- a/data/demos/json/LAX/demo_lax110.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax110","label":"CT 110: Same as case 105 but with Interest and Principal p","contractType":"LAX","version":"20190902","description":"Same as case 105 but with Interest and Principal payments linked to a Reference Index.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":110,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-01T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"IN0","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax111.json b/data/demos/json/LAX/demo_lax111.json deleted file mode 100644 index bf53a11..0000000 --- a/data/demos/json/LAX/demo_lax111.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax111","label":"CT 111: Same as case 110 but with only Interest payments l","contractType":"LAX","version":"20190902","description":"Same as case 110 but with only Interest payments linked to a Reference Index.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":111,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-01T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"I00","arrayRate":"0"}} diff --git a/data/demos/json/LAX/demo_lax112.json b/data/demos/json/LAX/demo_lax112.json deleted file mode 100644 index dcc7c6e..0000000 --- a/data/demos/json/LAX/demo_lax112.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_lax112","label":"CT 112: Same as case 110 but with only Principal payments ","contractType":"LAX","version":"20190902","description":"Same as case 110 but with only Principal payments linked to a Reference Index.","terms":{"contractType":"LAX","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":112,"arrayCycleAnchorDateOfInterestPayment":"2016-01-01T00:00:00","arrayCycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":500,"arrayCycleAnchorDateOfPrincipalRedemption":"2016-01-01T00,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"1Y+,1Y+","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-01T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"0N0","arrayRate":"0"}} diff --git a/data/demos/json/NAM/demo_nam101.json b/data/demos/json/NAM/demo_nam101.json deleted file mode 100644 index d580ed4..0000000 --- a/data/demos/json/NAM/demo_nam101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam101","label":"CT 101: Long position in a Negative Amortizer at Notional ","contractType":"NAM","version":"20190902","description":"Long position in a Negative Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam102.json b/data/demos/json/NAM/demo_nam102.json deleted file mode 100644 index d1c87a3..0000000 --- a/data/demos/json/NAM/demo_nam102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam102","label":"CT 102: Same as case 101 but short position.","contractType":"NAM","version":"20190902","description":"Same as case 101 but short position.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":102,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam103.json b/data/demos/json/NAM/demo_nam103.json deleted file mode 100644 index 71fa376..0000000 --- a/data/demos/json/NAM/demo_nam103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam103","label":"CT 103: Same as case 101 but with Maturity forced after 4 ","contractType":"NAM","version":"20190902","description":"Same as case 101 but with Maturity forced after 4 years.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":103,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2018-12-31T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":200,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam104.json b/data/demos/json/NAM/demo_nam104.json deleted file mode 100644 index 4a6688f..0000000 --- a/data/demos/json/NAM/demo_nam104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam104","label":"CT 104: Long position in a Negative Amortizer at Notional ","contractType":"NAM","version":"20190902","description":"Long position in a Negative Amortizer at Notional of USD 1000.0 with annual amortizing payments amounting to USD 100.0 and interest payments at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":104,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam105.json b/data/demos/json/NAM/demo_nam105.json deleted file mode 100644 index f19e3d5..0000000 --- a/data/demos/json/NAM/demo_nam105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam105","label":"CT 105: Same as case 104 but with Interest Payments being ","contractType":"NAM","version":"20190902","description":"Same as case 104 but with Interest Payments being calculated on lagged Notional amount.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":105,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","cycleAnchorDateOfInterestCalculationBase":"2019-01-01T00:00:00","cycleOfInterestCalculationBase":"3Y+","interestCalculationBase":"NTL","interestCalculationBaseAmount":1000,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam106.json b/data/demos/json/NAM/demo_nam106.json deleted file mode 100644 index 75bedc0..0000000 --- a/data/demos/json/NAM/demo_nam106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam106","label":"CT 106: Same as case 104 but with Interest Payments being ","contractType":"NAM","version":"20190902","description":"Same as case 104 but with Interest Payments being calculated on the basis of a fixed amount (the Notional amount at Initial Exchange here).","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":106,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NTIED","interestCalculationBaseAmount":1000,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/NAM/demo_nam107.json b/data/demos/json/NAM/demo_nam107.json deleted file mode 100644 index c926d6c..0000000 --- a/data/demos/json/NAM/demo_nam107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_nam107","label":"CT 107: Same as case 104 but based on a spread of 12%. The","contractType":"NAM","version":"20190902","description":"Same as case 104 but based on a spread of 12%. The Interest payments come out to be higher than the Redemption amount, hence, capitalizing additional Interest to the outstanding Notional.","terms":{"contractType":"NAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":107,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","interestCalculationBase":"NT","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfPrincipalRedemption":"2016-01-02T00:00:00","cycleOfPrincipalRedemption":"1Y+","nextPrincipalRedemptionPayment":100,"cycleOfRateReset":"1Y+","rateSpread":0.12,"marketObjectCodeRateReset":"YC.USA.TREASURY"}} diff --git a/data/demos/json/PAM/demo_pam101.json b/data/demos/json/PAM/demo_pam101.json deleted file mode 100644 index e4c6570..0000000 --- a/data/demos/json/PAM/demo_pam101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam101","label":"CT 101: Long position of a 3-month Zero Coupon Bond starti","contractType":"PAM","version":"20190902","description":"Long position of a 3-month Zero Coupon Bond starting at 01/02/2015 with Notional of 1000 and Discount at Purchase of 100.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"nominalInterestRate":0,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2015-04-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":-5}} diff --git a/data/demos/json/PAM/demo_pam102.json b/data/demos/json/PAM/demo_pam102.json deleted file mode 100644 index e32e6a4..0000000 --- a/data/demos/json/PAM/demo_pam102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam102","label":"CT 102: Same as case 101 but short position.","contractType":"PAM","version":"20190902","description":"Same as case 101 but short position.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":102,"nominalInterestRate":0,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2015-04-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":-5}} diff --git a/data/demos/json/PAM/demo_pam103.json b/data/demos/json/PAM/demo_pam103.json deleted file mode 100644 index 5ef19e8..0000000 --- a/data/demos/json/PAM/demo_pam103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam103","label":"CT 103: Same as case 101 but with single coupon payment at","contractType":"PAM","version":"20190902","description":"Same as case 101 but with single coupon payment at fixed Nominal Rate of 1% instead of Discount at Purchase.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":103,"nominalInterestRate":0.01,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2015-04-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam104.json b/data/demos/json/PAM/demo_pam104.json deleted file mode 100644 index 794d8e4..0000000 --- a/data/demos/json/PAM/demo_pam104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam104","label":"CT 104: Long position of a 5-year Coupon Bearing Bond star","contractType":"PAM","version":"20190902","description":"Long position of a 5-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at fixed Nominal Rate of 2% using Day Count Convention 30/360.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":104,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam105.json b/data/demos/json/PAM/demo_pam105.json deleted file mode 100644 index b4a6ea2..0000000 --- a/data/demos/json/PAM/demo_pam105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam105","label":"CT 105: Same as case 104 but short position.","contractType":"PAM","version":"20190902","description":"Same as case 104 but short position.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":105,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam106.json b/data/demos/json/PAM/demo_pam106.json deleted file mode 100644 index aa692f5..0000000 --- a/data/demos/json/PAM/demo_pam106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam106","label":"CT 106: Same as case 104 but with semi-annually Coupon pay","contractType":"PAM","version":"20190902","description":"Same as case 104 but with semi-annually Coupon payments.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":106,"cycleAnchorDateOfInterestPayment":"2015-07-02T00:00:00","cycleOfInterestPayment":"6M+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam107.json b/data/demos/json/PAM/demo_pam107.json deleted file mode 100644 index 167c8c3..0000000 --- a/data/demos/json/PAM/demo_pam107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam107","label":"CT 107: Same as case 104 but using A/A-ISDA Day Count Conv","contractType":"PAM","version":"20190902","description":"Same as case 104 but using A/A-ISDA Day Count Convention.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":107,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"A/AISDA","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam108.json b/data/demos/json/PAM/demo_pam108.json deleted file mode 100644 index 9cddb64..0000000 --- a/data/demos/json/PAM/demo_pam108.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam108","label":"CT 108: Same as case 104 but applying a Weekday-Calendar a","contractType":"PAM","version":"20190902","description":"Same as case 104 but applying a Weekday-Calendar and Shift-Calculate-Forward BusinessDayConvention.","terms":{"calendar":"WEEKDAY","businessDayConvention":"SCF","contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":108,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam109.json b/data/demos/json/PAM/demo_pam109.json deleted file mode 100644 index 854e407..0000000 --- a/data/demos/json/PAM/demo_pam109.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam109","label":"CT 109: Same as case 104 but uneven last coupon period is ","contractType":"PAM","version":"20190902","description":"Same as case 104 but uneven last coupon period is handled differently (short stub).","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":109,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y-","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam110.json b/data/demos/json/PAM/demo_pam110.json deleted file mode 100644 index 63663a2..0000000 --- a/data/demos/json/PAM/demo_pam110.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam110","label":"CT 110: Same as case 104 but with an Interest Capitalizati","contractType":"PAM","version":"20190902","description":"Same as case 104 but with an Interest Capitalization period up to 01/02/2017.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":110,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","capitalizationEndDate":"2016-12-31T00:00:00","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam111.json b/data/demos/json/PAM/demo_pam111.json deleted file mode 100644 index cb31b43..0000000 --- a/data/demos/json/PAM/demo_pam111.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam111","label":"CT 111: Long position of a 10-year Coupon Bearing Bond sta","contractType":"PAM","version":"20190902","description":"Long position of a 10-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":111,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleOfRateReset":"1Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY","premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam112.json b/data/demos/json/PAM/demo_pam112.json deleted file mode 100644 index ad120c3..0000000 --- a/data/demos/json/PAM/demo_pam112.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam112","label":"CT 112: Same as case 112 but with variable rates being fix","contractType":"PAM","version":"20190902","description":"Same as case 112 but with variable rates being fixed bi-annually.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":112,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleOfRateReset":"2Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY","premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam113.json b/data/demos/json/PAM/demo_pam113.json deleted file mode 100644 index 37f7a2e..0000000 --- a/data/demos/json/PAM/demo_pam113.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam113","label":"CT 113: Same as case 113 but with variable rates being fix","contractType":"PAM","version":"20190902","description":"Same as case 113 but with variable rates being fixed within Coupon periods.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":113,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.02,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleOfRateReset":"2Y+","rateSpread":0.02,"marketObjectCodeRateReset":"YC.USA.TREASURY","premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam114.json b/data/demos/json/PAM/demo_pam114.json deleted file mode 100644 index d87b55e..0000000 --- a/data/demos/json/PAM/demo_pam114.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam114","label":"CT 114: Long position of a 10-year Coupon Bearing Bond sta","contractType":"PAM","version":"20190902","description":"Long position of a 10-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at fixed (base) Nominal Rate of 5% and linked to a Reference Index.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":114,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-02T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"I00","rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam115.json b/data/demos/json/PAM/demo_pam115.json deleted file mode 100644 index 941d567..0000000 --- a/data/demos/json/PAM/demo_pam115.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_pam115","label":"CT 115: Same as case 115 but also Notional amount is linke","contractType":"PAM","version":"20190902","description":"Same as case 115 but also Notional amount is linked to the Reference Index.","terms":{"contractType":"PAM","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":115,"cycleAnchorDateOfInterestPayment":"2016-01-02T00:00:00","cycleOfInterestPayment":"1Y+","nominalInterestRate":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"marketObjectCodeOfScalingIndex":"CPI.USD","scalingIndexAtStatusDate":100,"cycleAnchorDateOfScalingIndex":"2016-01-02T00:00:00","cycleOfScalingIndex":"1Y+","scalingEffect":"IN0","rateSpread":0,"premiumDiscountAtIED":0}} diff --git a/data/demos/json/PAM/demo_pam116.json b/data/demos/json/PAM/demo_pam116.json deleted file mode 100644 index f88524c..0000000 --- a/data/demos/json/PAM/demo_pam116.json +++ /dev/null @@ -1 +0,0 @@ -{"Identifier":"demo_pam116","Label":"CT 116: Same as case 115 but also Notional amount is linke","ContractType":"PAM","Version":"20190118","Description":"Same as case 115 but also Notional amount is linked to the Reference Index.","Terms":{"ContractType":"PAM","StatusDate":"2015-01-01T00:00:00","ContractRole":"RPA","ContractID":116,"LegalEntityIDCounterparty":"TEST_LEI_CP","CycleAnchorDateOfInterestPayment":"2015-12-31T00:00:00","CycleOfInterestPayment":"1Y+","NominalInterestRate":0.05,"DayCountConvention":"30E/360","CyclePointOfInterestPayment":1,"Currency":"USD","ContractDealDate":"2015-01-01T00:00:00","InitialExchangeDate":"2015-01-02T00:00:00","MaturityDate":"2025-01-02T00:00:00","NotionalPrincipal":1000,"MarketObjectCodeOfScalingIndex":"CPI.USD","ScalingIndexAtStatusDate":100,"CycleAnchorDateOfScalingIndex":"2016-01-02T00:00:00","CycleOfScalingIndex":"1Y+","ScalingEffect":"IN0","RateSpread":0,"CyclePointOfRateReset":0,"RateMultiplier":1,"MarketValueObserved":10,"PremiumDiscountAtIED":0}} diff --git a/data/demos/json/STK/demo_stk101.json b/data/demos/json/STK/demo_stk101.json deleted file mode 100644 index 8a5e547..0000000 --- a/data/demos/json/STK/demo_stk101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk101","label":"CT 101: Long position of a Stock instrument purchased at 0","contractType":"STK","version":"20190902","description":"Long position of a Stock instrument purchased at 01/02/2015 at a price of USD 90.0.","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":101,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","purchaseDate":"2015-01-02T00:00:00","priceAtPurchaseDate":90}} diff --git a/data/demos/json/STK/demo_stk102.json b/data/demos/json/STK/demo_stk102.json deleted file mode 100644 index a837cc2..0000000 --- a/data/demos/json/STK/demo_stk102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk102","label":"CT 102: Long position of a Stock instrument purchased at 0","contractType":"STK","version":"20190902","description":"Long position of a Stock instrument purchased at 01/02/2015 at a price of USD 90.0 and sold again 2 weeks later at a price of USD 110.0.","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":102,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","purchaseDate":"2015-01-02T00:00:00","priceAtPurchaseDate":90,"terminationDate":"2015-01-16T00:00:00","priceAtTerminationDate":110}} diff --git a/data/demos/json/STK/demo_stk103.json b/data/demos/json/STK/demo_stk103.json deleted file mode 100644 index 2add2c4..0000000 --- a/data/demos/json/STK/demo_stk103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk103","label":"CT 103: Same as 102 but a short position.","contractType":"STK","version":"20190902","description":"Same as 102 but a short position.","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPL","contractID":103,"currency":"USD","contractDealDate":"2015-01-01T00:00:00","purchaseDate":"2015-01-02T00:00:00","priceAtPurchaseDate":90,"terminationDate":"2015-01-16T00:00:00","priceAtTerminationDate":110}} diff --git a/data/demos/json/STK/demo_stk104.json b/data/demos/json/STK/demo_stk104.json deleted file mode 100644 index 17cad3e..0000000 --- a/data/demos/json/STK/demo_stk104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk104","label":"CT 104: Same as 101 but with (expected) annual Dividend pa","contractType":"STK","version":"20190902","description":"Same as 101 but with (expected) annual Dividend payments of 3% of the reference Notional amount (USD 1000.0 here).","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":104,"cycleOfDividend":"1Y+","currency":"USD","contractDealDate":"2015-01-01T00:00:00","purchaseDate":"2015-01-02T00:00:00","priceAtPurchaseDate":90}} diff --git a/data/demos/json/STK/demo_stk105.json b/data/demos/json/STK/demo_stk105.json deleted file mode 100644 index 18cabe3..0000000 --- a/data/demos/json/STK/demo_stk105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk105","label":"CT 105: Same as 104 but with Purchase date in the past.","contractType":"STK","version":"20190902","description":"Same as 104 but with Purchase date in the past.","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":105,"cycleOfDividend":"1Y+","currency":"USD","contractDealDate":"2014-12-01T00:00:00","purchaseDate":"2014-12-02T00:00:00","priceAtPurchaseDate":90}} diff --git a/data/demos/json/STK/demo_stk106.json b/data/demos/json/STK/demo_stk106.json deleted file mode 100644 index 15da5b7..0000000 --- a/data/demos/json/STK/demo_stk106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_stk106","label":"CT 106: Same as 104 but Dividend payments linked to a (sto","contractType":"STK","version":"20190902","description":"Same as 104 but Dividend payments linked to a (stochastic) reference risk factor.","terms":{"contractType":"STK","statusDate":"2015-01-01T00:00:00","contractRole":"RPA","contractID":106,"cycleOfDividend":"1Y+","currency":"USD","contractDealDate":"2015-01-01T00:00:00","purchaseDate":"2015-01-02T00:00:00","priceAtPurchaseDate":90}} diff --git a/data/demos/json/SWPPV/demo_swppv101.json b/data/demos/json/SWPPV/demo_swppv101.json deleted file mode 100644 index be5ea28..0000000 --- a/data/demos/json/SWPPV/demo_swppv101.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv101","label":"CT 101: A 3-month fixed-rate seller swap.","contractType":"SWPPV","version":"20190902","description":"A 3-month fixed-rate seller swap.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"PF","contractID":101,"cycleAnchorDateOfInterestPayment":"2015-02-01T00:00:00:00:00","cycleOfInterestPayment":"1M-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2015-04-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-01-01T00:00:00:00:00","cycleOfRateReset":"1M-","rateSpread":0,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv102.json b/data/demos/json/SWPPV/demo_swppv102.json deleted file mode 100644 index 1959142..0000000 --- a/data/demos/json/SWPPV/demo_swppv102.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv102","label":"CT 102: A 3-month fixed-rate buyer swap.","contractType":"SWPPV","version":"20190902","description":"A 3-month fixed-rate buyer swap.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"RF","contractID":102,"cycleAnchorDateOfInterestPayment":"2015-03-01T00:00:00:00:00","cycleOfInterestPayment":"1Q-","nominalInterestRate":0.05,"nominalInterestRate2":0.05,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2015-04-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-03-01T00:00:00:00:00","cycleOfRateReset":"1Q-","rateSpread":0,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv103.json b/data/demos/json/SWPPV/demo_swppv103.json deleted file mode 100644 index 0eaaaff..0000000 --- a/data/demos/json/SWPPV/demo_swppv103.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv103","label":"CT 103: A 5-year fixed-rate payer swap.","contractType":"SWPPV","version":"20190902","description":"A 5-year fixed-rate payer swap.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"PF","contractID":103,"cycleAnchorDateOfInterestPayment":"2015-03-01T00:00:00:00:00","cycleOfInterestPayment":"1Q-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-03-01T00:00:00:00:00","cycleOfRateReset":"1Q-","rateSpread":0.01,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv104.json b/data/demos/json/SWPPV/demo_swppv104.json deleted file mode 100644 index 8d98069..0000000 --- a/data/demos/json/SWPPV/demo_swppv104.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv104","label":"CT 104: A 5-year fixed-rate seller swap.","contractType":"SWPPV","version":"20190902","description":"A 5-year fixed-rate seller swap.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"RF","contractID":104,"cycleAnchorDateOfInterestPayment":"2015-03-01T00:00:00:00:00","cycleOfInterestPayment":"1Q-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-03-01T00:00:00:00:00","cycleOfRateReset":"1Q-","rateSpread":0.01,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv105.json b/data/demos/json/SWPPV/demo_swppv105.json deleted file mode 100644 index 50bc21c..0000000 --- a/data/demos/json/SWPPV/demo_swppv105.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv105","label":"CT 105: A 5-year fixed-rate payer swap with bi-annually pa","contractType":"SWPPV","version":"20190902","description":"A 5-year fixed-rate payer swap with bi-annually payment.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"PF","contractID":105,"cycleAnchorDateOfInterestPayment":"2015-07-01T00:00:00:00:00","cycleOfInterestPayment":"1H-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-07-01T00:00:00:00:00","cycleOfRateReset":"6M-","rateSpread":0.02,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv106.json b/data/demos/json/SWPPV/demo_swppv106.json deleted file mode 100644 index c94da81..0000000 --- a/data/demos/json/SWPPV/demo_swppv106.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv106","label":"CT 106: A 5-year fixed-rate seller swap with bi-annually p","contractType":"SWPPV","version":"20190902","description":"A 5-year fixed-rate seller swap with bi-annually payment and zero spread over the reference rate.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"RF","contractID":106,"cycleAnchorDateOfInterestPayment":"2015-07-01T00:00:00:00:00","cycleOfInterestPayment":"1H-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2020-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-07-01T00:00:00:00:00","cycleOfRateReset":"6M-","rateSpread":0,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv107.json b/data/demos/json/SWPPV/demo_swppv107.json deleted file mode 100644 index d806643..0000000 --- a/data/demos/json/SWPPV/demo_swppv107.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv107","label":"CT 107: A 10-year fixed-rate seller swap with bi-annually ","contractType":"SWPPV","version":"20190902","description":"A 10-year fixed-rate seller swap with bi-annually payment and zero spread over the reference rate.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"RF","contractID":107,"cycleAnchorDateOfInterestPayment":"2015-07-01T00:00:00:00:00","cycleOfInterestPayment":"1H-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-07-01T00:00:00:00:00","cycleOfRateReset":"6M-","rateSpread":0,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv108.json b/data/demos/json/SWPPV/demo_swppv108.json deleted file mode 100644 index c91cda0..0000000 --- a/data/demos/json/SWPPV/demo_swppv108.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv108","label":"CT 108: A 10-year fixed-rate seller swap with monthly paym","contractType":"SWPPV","version":"20190902","description":"A 10-year fixed-rate seller swap with monthly payment.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"PF","contractID":108,"cycleAnchorDateOfInterestPayment":"2015-01-01T00:00:00:00:00","cycleOfInterestPayment":"1M-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-01-01T00:00:00:00:00","cycleOfRateReset":"1M-","rateSpread":0.02,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/SWPPV/demo_swppv109.json b/data/demos/json/SWPPV/demo_swppv109.json deleted file mode 100644 index aa6d56b..0000000 --- a/data/demos/json/SWPPV/demo_swppv109.json +++ /dev/null @@ -1 +0,0 @@ -{"identifier":"demo_swppv109","label":"CT 109: A 10-year fixed-rate seller swap with quarterly pa","contractType":"SWPPV","version":"20190902","description":"A 10-year fixed-rate seller swap with quarterly payment.","terms":{"contractType":"SWPPV","statusDate":"2015-01-01T00:00:00","contractRole":"PF","contractID":109,"cycleAnchorDateOfInterestPayment":"2015-03-01T00:00:00:00:00","cycleOfInterestPayment":"1Q-","nominalInterestRate":0.05,"nominalInterestRate2":0.08,"dayCountConvention":"30E/360","currency":"USD","contractDealDate":"2015-01-01T00:00:00","initialExchangeDate":"2015-01-02T00:00:00","maturityDate":"2025-01-02T00:00:00","notionalPrincipal":1000,"cycleAnchorDateOfRateReset":"2015-03-01T00:00:00:00:00","cycleOfRateReset":"1Q-","rateSpread":0,"marketObjectCodeRateReset":"USD_Treasury","deliverySettlement":"D"}} diff --git a/data/demos/json/demo_ann101.json b/data/demos/json/demo_ann101.json new file mode 100644 index 0000000..c4f8598 --- /dev/null +++ b/data/demos/json/demo_ann101.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_ann101", + "label": "CT 101: Long position in a 5-year Annuity with annual Annu", + "contractType": "ANN", + "version": "20201006", + "description": "Long position in a 5-year Annuity with annual Annuity payments based on a fixed Nominal Rate of 5%.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "rateSpread": 0, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_ann102.json b/data/demos/json/demo_ann102.json new file mode 100644 index 0000000..37d0063 --- /dev/null +++ b/data/demos/json/demo_ann102.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_ann102", + "label": "CT 102: Same as case 101 but a short position.", + "contractType": "ANN", + "version": "20201006", + "description": "Same as case 101 but a short position.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 102, + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "rateSpread": 0, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_ann103.json b/data/demos/json/demo_ann103.json new file mode 100644 index 0000000..8b79e05 --- /dev/null +++ b/data/demos/json/demo_ann103.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_ann103", + "label": "CT 103: Short position in a 10-year Annuity with annual An", + "contractType": "ANN", + "version": "20201006", + "description": "Short position in a 10-year Annuity with annual Annuity payments based on a fixed Nominal Rate of 5%.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 103, + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "rateSpread": 0, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_ann104.json b/data/demos/json/demo_ann104.json new file mode 100644 index 0000000..9010ff8 --- /dev/null +++ b/data/demos/json/demo_ann104.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_ann104", + "label": "CT 104: Same as case 104 but based on a variable interest ", + "contractType": "ANN", + "version": "20201006", + "description": "Same as case 104 but based on a variable interest rate bi-annually updated as forward rate from the observed reference yield curve adding a spread of 5%.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 104, + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "cycleAnchorDateOfRateReset": "2016-01-01T00:00:00", + "cycleOfRateReset": "P2YL0", + "rateSpread": 0.05, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY", + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_ann105.json b/data/demos/json/demo_ann105.json new file mode 100644 index 0000000..7901872 --- /dev/null +++ b/data/demos/json/demo_ann105.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_ann105", + "label": "CT 105: Same as case 105 but with Principal Redemption per", + "contractType": "ANN", + "version": "20201006", + "description": "Same as case 105 but with Principal Redemption period starting only after a 2-year Interest Payment period.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 105, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2017-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "cycleAnchorDateOfRateReset": "2016-01-01T00:00:00", + "cycleOfRateReset": "P2YL0", + "rateSpread": 0.05, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_ann106.json b/data/demos/json/demo_ann106.json new file mode 100644 index 0000000..558c5e5 --- /dev/null +++ b/data/demos/json/demo_ann106.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_ann106", + "label": "CT 106: Same as case 105 but with Principal Redemption per", + "contractType": "ANN", + "version": "20201006", + "description": "Same as case 105 but with Principal Redemption period starting only after a 2-year Interest Capitalization period.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 106, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "capitalizationEndDate": "2017-01-01T00:00:00", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2018-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "cycleAnchorDateOfRateReset": "2016-01-01T00:00:00", + "cycleOfRateReset": "P2YL0", + "rateSpread": 0.05, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_ann107.json b/data/demos/json/demo_ann107.json new file mode 100644 index 0000000..68b714f --- /dev/null +++ b/data/demos/json/demo_ann107.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_ann107", + "label": "CT 107: Same as case 104 but with Annuity payments linked ", + "contractType": "ANN", + "version": "20201006", + "description": "Same as case 104 but with Annuity payments linked to a Reference Index.", + "contract": { + "contractType": "ANN", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 107, + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleAnchorDateOfScalingIndex": "2016-01-01T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "INO", + "scalingIndexAtContractDealDate": 100, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0" + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_fxout101.json b/data/demos/json/demo_fxout101.json new file mode 100644 index 0000000..6be12a0 --- /dev/null +++ b/data/demos/json/demo_fxout101.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_fxout101", + "label": "CT 101: A simple FX-out agreement on the exchange of USD 1", + "contractType": "FXOUT", + "version": "20201006", + "description": "A simple FX-out agreement on the exchange of USD 1000 (receive) agains EUR 900 (pay) in 1 year's time, i.e. on 2015-12-31T00.", + "contract": { + "contractType": "FXOUT", + "contractID": 101, + "contractRole": "RFL", + "currency": "USD", + "currency2": "EUR", + "notionalPrincipal": 1000, + "notionalPrincipal2": 900, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_fxout102.json b/data/demos/json/demo_fxout102.json new file mode 100644 index 0000000..b856b6e --- /dev/null +++ b/data/demos/json/demo_fxout102.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_fxout102", + "label": "CT 102: Same as case 101 but now with ContractRole=”PFL” (", + "contractType": "FXOUT", + "version": "20201006", + "description": "Same as case 101 but now with ContractRole=”PFL” (pay first leg), i.e. the USD leg is now paid and the EUR leg received.", + "contract": { + "contractType": "FXOUT", + "contractID": 102, + "contractRole": "PFL", + "currency": "USD", + "currency2": "EUR", + "notionalPrincipal": 1000, + "notionalPrincipal2": 900, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_fxout103.json b/data/demos/json/demo_fxout103.json new file mode 100644 index 0000000..4d2c76a --- /dev/null +++ b/data/demos/json/demo_fxout103.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_fxout103", + "label": "CT 103: Same as case 101 where the pay leg is in CHF curre", + "contractType": "FXOUT", + "version": "20201006", + "description": "Same as case 101 where the pay leg is in CHF currency and amounts to CHF 950 now.", + "contract": { + "contractType": "FXOUT", + "contractID": 103, + "contractRole": "RFL", + "currency": "USD", + "currency2": "CHF", + "notionalPrincipal": 1000, + "notionalPrincipal2": 950, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_fxout104.json b/data/demos/json/demo_fxout104.json new file mode 100644 index 0000000..8feacf9 --- /dev/null +++ b/data/demos/json/demo_fxout104.json @@ -0,0 +1,21 @@ +{ + "identifier": "demo_fxout104", + "label": "CT 104: Same as case 101 but now the cash flows are not be", + "contractType": "FXOUT", + "version": "20201006", + "description": "Same as case 101 but now the cash flows are not being paid in their respective currencies but settled in “first leg” currency, i.e. SettlementDate where before Maturity happened.", + "contract": { + "contractType": "FXOUT", + "contractID": 104, + "contractRole": "RFL", + "currency": "USD", + "currency2": "EUR", + "notionalPrincipal": 1000, + "notionalPrincipal2": 900, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00", + "settlementDate": "2015-12-31T00:00:00" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_fxout105.json b/data/demos/json/demo_fxout105.json new file mode 100644 index 0000000..5f1ba9a --- /dev/null +++ b/data/demos/json/demo_fxout105.json @@ -0,0 +1,22 @@ +{ + "identifier": "demo_fxout105", + "label": "CT 105: Same as case 101 with a Purchase “on the run” at a", + "contractType": "FXOUT", + "version": "20201006", + "description": "Same as case 101 with a Purchase “on the run” at a price of USD 55.", + "contract": { + "contractType": "FXOUT", + "contractID": 105, + "contractRole": "RFL", + "currency": "USD", + "currency2": "EUR", + "notionalPrincipal": 1000, + "notionalPrincipal2": 900, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00", + "purchaseDate": "2015-03-11T00:00:00", + "priceAtPurchaseDate": 55 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_fxout106.json b/data/demos/json/demo_fxout106.json new file mode 100644 index 0000000..fa1f358 --- /dev/null +++ b/data/demos/json/demo_fxout106.json @@ -0,0 +1,24 @@ +{ + "identifier": "demo_fxout106", + "label": "CT 106: Same as case 105 with Termination “on the run” sho", + "contractType": "FXOUT", + "version": "20201006", + "description": "Same as case 105 with Termination “on the run” shortly after Purchase at a price of USD 63.", + "contract": { + "contractType": "FXOUT", + "contractID": 106, + "contractRole": "RFL", + "currency": "USD", + "currency2": "EUR", + "notionalPrincipal": 1000, + "notionalPrincipal2": 900, + "statusDate": "2014-12-30T00:00:00", + "contractDealDate": "2014-12-31T00:00:00", + "maturityDate": "2015-12-31T00:00:00", + "purchaseDate": "2015-03-11T00:00:00", + "priceAtPurchaseDate": 55, + "terminationDate": "2015-03-21T00:00:00", + "priceAtTerminationDate": 63 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam101.json b/data/demos/json/demo_lam101.json new file mode 100644 index 0000000..6061db6 --- /dev/null +++ b/data/demos/json/demo_lam101.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lam101", + "label": "CT 101: Long position in a Linear Amortizer at Notional of", + "contractType": "LAM", + "version": "20201006", + "description": "Long position in a Linear Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments based on a fixed Nominal Rate of 5%.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam102.json b/data/demos/json/demo_lam102.json new file mode 100644 index 0000000..a1d9f88 --- /dev/null +++ b/data/demos/json/demo_lam102.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lam102", + "label": "CT 102: Same as case 101 but short position.", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 101 but short position.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 102, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam103.json b/data/demos/json/demo_lam103.json new file mode 100644 index 0000000..97ddea7 --- /dev/null +++ b/data/demos/json/demo_lam103.json @@ -0,0 +1,29 @@ +{ + "identifier": "demo_lam103", + "label": "CT 103: Same as case 101 but with Maturity forced after 4 ", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 101 but with Maturity forced after 4 years.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 103, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2018-12-31T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam104.json b/data/demos/json/demo_lam104.json new file mode 100644 index 0000000..f3238aa --- /dev/null +++ b/data/demos/json/demo_lam104.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lam104", + "label": "CT 104: Long position in a Linear Amortizer at Notional of", + "contractType": "LAM", + "version": "20201006", + "description": "Long position in a Linear Amortizer at Notional of USD 1000.0 with annual amortizing payments amounting to USD 100.0 and interest payments based on a fixed Nominal Rate of 5%.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 104, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam105.json b/data/demos/json/demo_lam105.json new file mode 100644 index 0000000..8a6694b --- /dev/null +++ b/data/demos/json/demo_lam105.json @@ -0,0 +1,31 @@ +{ + "identifier": "demo_lam105", + "label": "CT 105: Same as case 104 but with Interest Payments being ", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 104 but with Interest Payments being calculated on lagged Notional amount.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 105, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "cycleAnchorDateOfInterestCalculationBase": "2019-01-01T00:00:00", + "cycleOfInterestCalculationBase": "P3YL0", + "interestCalculationBase": "NTL", + "interestCalculationBaseAmount": 1000, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam106.json b/data/demos/json/demo_lam106.json new file mode 100644 index 0000000..bdf41f0 --- /dev/null +++ b/data/demos/json/demo_lam106.json @@ -0,0 +1,29 @@ +{ + "identifier": "demo_lam106", + "label": "CT 106: Same as case 104 but with Interest Payments being ", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 104 but with Interest Payments being calculated on the basis of a fixed amount (the Notional amount at Initial Exchange here).", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 106, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NTIED", + "interestCalculationBaseAmount": 1000, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "rateSpread": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lam107.json b/data/demos/json/demo_lam107.json new file mode 100644 index 0000000..d453842 --- /dev/null +++ b/data/demos/json/demo_lam107.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_lam107", + "label": "CT 107: Same as case 104 but based on variable interest ra", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 104 but based on variable interest rate calculated as the forward rate from a reference yield curve and spread of 1%.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 107, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.01, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_lam108.json b/data/demos/json/demo_lam108.json new file mode 100644 index 0000000..7d89dd1 --- /dev/null +++ b/data/demos/json/demo_lam108.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_lam108", + "label": "CT 108: Same as case 107 but based on a spread of 12%. The", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 107 but based on a spread of 12%. The Interest payments being decoupled from Principal Redemption payments, this has no effect on the Redemption of Notional (compare to the Negative Amortizer).", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 108, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.12, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_lam109.json b/data/demos/json/demo_lam109.json new file mode 100644 index 0000000..1c9e3f8 --- /dev/null +++ b/data/demos/json/demo_lam109.json @@ -0,0 +1,42 @@ +{ + "identifier": "demo_lam109", + "label": "CT 109: Same as case 104 but with Interest and Principal p", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 104 but with Interest and Principal payments linked to a Reference Index.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 109, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "INO", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_lam110.json b/data/demos/json/demo_lam110.json new file mode 100644 index 0000000..3dd7201 --- /dev/null +++ b/data/demos/json/demo_lam110.json @@ -0,0 +1,42 @@ +{ + "identifier": "demo_lam110", + "label": "CT 110: Same as case 109 but with only Interest payments l", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 109 but with only Interest payments linked to a Reference Index.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 110, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "IOO", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_lam111.json b/data/demos/json/demo_lam111.json new file mode 100644 index 0000000..6175680 --- /dev/null +++ b/data/demos/json/demo_lam111.json @@ -0,0 +1,42 @@ +{ + "identifier": "demo_lam111", + "label": "CT 111: Same as case 109 but with only Principal Redemptio", + "contractType": "LAM", + "version": "20201006", + "description": "Same as case 109 but with only Principal Redemption payments linked to a Reference Index.", + "contract": { + "calendar": "NC", + "contractType": "LAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 111, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "ONO", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_lax101.json b/data/demos/json/demo_lax101.json new file mode 100644 index 0000000..b1af139 --- /dev/null +++ b/data/demos/json/demo_lax101.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lax101", + "label": "CT 101: Long position in an Exotic Linear Amortizer at Not", + "contractType": "LAX", + "version": "20201006", + "description": "Long position in an Exotic Linear Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments based on a fixed Nominal Rate of 5% (this instrument is essentially the same as case 101 of the Linear Amortizer).", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0", + "arrayNextPrincipalRedemptionPayment": "200", + "arrayIncreaseDecrease": "DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax102.json b/data/demos/json/demo_lax102.json new file mode 100644 index 0000000..e1596ad --- /dev/null +++ b/data/demos/json/demo_lax102.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lax102", + "label": "CT 102: Same as case 101 but with annual amortizing paymen", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 101 but with annual amortizing payments of USD 100.0 for the first 3 years, USD 200.0 for the next 2 years, and 300.0 for the last year.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 102, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2019-01-01T00:00:00,2021-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "100,200,300", + "arrayIncreaseDecrease": "DEC,DEC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax103.json b/data/demos/json/demo_lax103.json new file mode 100644 index 0000000..b49d3b7 --- /dev/null +++ b/data/demos/json/demo_lax103.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lax103", + "label": "CT 103: Same as case 101 but with amortizing payments of U", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 101 but with amortizing payments of USD 100.0 for the first 4 years bi-annually, USD 100.0 for the subsequent 4 years annually, and USD 100.0 for the remaining 2 years semi-annually.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 103, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2020-01-01T00:00:00,2024-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P2YL0,P1YL0,P6ML0", + "arrayNextPrincipalRedemptionPayment": "100,100,100", + "arrayIncreaseDecrease": "DEC,DEC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax104.json b/data/demos/json/demo_lax104.json new file mode 100644 index 0000000..bd332a5 --- /dev/null +++ b/data/demos/json/demo_lax104.json @@ -0,0 +1,29 @@ +{ + "identifier": "demo_lax104", + "label": "CT 104: Same as case 103 but with Maturity forced after 8 ", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 103 but with Maturity forced after 8 years.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 104, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2022-07-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2020-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P2YL0,P1YL0,P6ML0", + "arrayNextPrincipalRedemptionPayment": "100,100,100", + "arrayIncreaseDecrease": "DEC,DEC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax105.json b/data/demos/json/demo_lax105.json new file mode 100644 index 0000000..6d0c7b0 --- /dev/null +++ b/data/demos/json/demo_lax105.json @@ -0,0 +1,28 @@ +{ + "identifier": "demo_lax105", + "label": "CT 105: Same as case 101 but with a notional step-up patte", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 101 but with a notional step-up pattern of USD 500.0 annually for the first 3 years, and a step-down pattern of USD 300.0 for the subsequent 5 years.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 105, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax106.json b/data/demos/json/demo_lax106.json new file mode 100644 index 0000000..f3750fd --- /dev/null +++ b/data/demos/json/demo_lax106.json @@ -0,0 +1,31 @@ +{ + "identifier": "demo_lax106", + "label": "CT 106: Same as case 105 but with Interest Payments being ", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 105 but with Interest Payments being calculated on lagged Notional amount.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 106, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "cycleAnchorDateOfInterestCalculationBase": "2019-01-01T00:00:00", + "cycleOfInterestCalculationBase": "P3YL0", + "interestCalculationBase": "NTL", + "interestCalculationBaseAmount": 500, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax107.json b/data/demos/json/demo_lax107.json new file mode 100644 index 0000000..da47dfa --- /dev/null +++ b/data/demos/json/demo_lax107.json @@ -0,0 +1,29 @@ +{ + "identifier": "demo_lax107", + "label": "CT 107: Same as case 105 but with Interest Payments being ", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 105 but with Interest Payments being calculated on the basis of a fixed amount (USD 1000.0 in this case).", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 107, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NTIED", + "interestCalculationBaseAmount": 1000, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayRate": "0" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax108.json b/data/demos/json/demo_lax108.json new file mode 100644 index 0000000..57a9d26 --- /dev/null +++ b/data/demos/json/demo_lax108.json @@ -0,0 +1,31 @@ +{ + "identifier": "demo_lax108", + "label": "CT 108: Same as case 105 but based on variable interest ra", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 105 but based on variable interest rate calculated as the forward rate from a reference yield curve and spread of 5%.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 108, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayCycleAnchorDateOfRateReset": "2016-01-01T00:00:00", + "arrayCycleOfRateReset": "P1YL0", + "arrayRate": "0.050000000000000003", + "arrayFixedVariable": "V" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax109.json b/data/demos/json/demo_lax109.json new file mode 100644 index 0000000..6099ed9 --- /dev/null +++ b/data/demos/json/demo_lax109.json @@ -0,0 +1,31 @@ +{ + "identifier": "demo_lax109", + "label": "CT 109: Same as case 105 but based on a Nominal Rate of 1%", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 105 but based on a Nominal Rate of 1% (as per Initial Exchange Date) and a set of variable interest rates fixed at ContractDealDate. Specifically, the rate is reset bi-annually with following rates (in this order) [2%, 4%, 8%].", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 109, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayCycleAnchorDateOfRateReset": "2017-01-01T00:00:00,2019-01-01T00:00:00,2021-01-01T00:00:00", + "arrayCycleOfRateReset": "NULL,NULL,P2YL0", + "arrayRate": "0.02,0.04,0.08", + "arrayFixedVariable": "F,F,V" + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax110.json b/data/demos/json/demo_lax110.json new file mode 100644 index 0000000..a036872 --- /dev/null +++ b/data/demos/json/demo_lax110.json @@ -0,0 +1,32 @@ +{ + "identifier": "demo_lax110", + "label": "CT 110: Same as case 105 but with Interest and Principal p", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 105 but with Interest and Principal payments linked to a Reference Index.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 110, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "cycleAnchorDateOfScalingIndex": "2016-01-01T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "INO", + "arrayRate": "0", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax111.json b/data/demos/json/demo_lax111.json new file mode 100644 index 0000000..464ea58 --- /dev/null +++ b/data/demos/json/demo_lax111.json @@ -0,0 +1,32 @@ +{ + "identifier": "demo_lax111", + "label": "CT 111: Same as case 110 but with only Interest payments l", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 110 but with only Interest payments linked to a Reference Index.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 111, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "cycleAnchorDateOfScalingIndex": "2016-01-01T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "IOO", + "arrayRate": "0", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_lax112.json b/data/demos/json/demo_lax112.json new file mode 100644 index 0000000..b510ed7 --- /dev/null +++ b/data/demos/json/demo_lax112.json @@ -0,0 +1,32 @@ +{ + "identifier": "demo_lax112", + "label": "CT 112: Same as case 110 but with only Principal payments ", + "contractType": "LAX", + "version": "20201006", + "description": "Same as case 110 but with only Principal payments linked to a Reference Index.", + "contract": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 112, + "arrayCycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00", + "arrayCycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 500, + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "cycleAnchorDateOfScalingIndex": "2016-01-01T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "ONO", + "arrayRate": "0", + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_nam101.json b/data/demos/json/demo_nam101.json new file mode 100644 index 0000000..32d8de4 --- /dev/null +++ b/data/demos/json/demo_nam101.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_nam101", + "label": "CT 101: Long position in a Negative Amortizer at Notional ", + "contractType": "NAM", + "version": "20201006", + "description": "Long position in a Negative Amortizer at Notional of USD 1000.0, with annual amortizing payments amounting to USD 200.0 and interest payments at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam102.json b/data/demos/json/demo_nam102.json new file mode 100644 index 0000000..73cf95d --- /dev/null +++ b/data/demos/json/demo_nam102.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_nam102", + "label": "CT 102: Same as case 101 but short position.", + "contractType": "NAM", + "version": "20201006", + "description": "Same as case 101 but short position.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 102, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam103.json b/data/demos/json/demo_nam103.json new file mode 100644 index 0000000..b6a6901 --- /dev/null +++ b/data/demos/json/demo_nam103.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_nam103", + "label": "CT 103: Same as case 101 but with Maturity forced after 4 ", + "contractType": "NAM", + "version": "20201006", + "description": "Same as case 101 but with Maturity forced after 4 years.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 103, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2018-12-31T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 200, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam104.json b/data/demos/json/demo_nam104.json new file mode 100644 index 0000000..44a30da --- /dev/null +++ b/data/demos/json/demo_nam104.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_nam104", + "label": "CT 104: Long position in a Negative Amortizer at Notional ", + "contractType": "NAM", + "version": "20201006", + "description": "Long position in a Negative Amortizer at Notional of USD 1000.0 with annual amortizing payments amounting to USD 100.0 and interest payments at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 104, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam105.json b/data/demos/json/demo_nam105.json new file mode 100644 index 0000000..32c8b45 --- /dev/null +++ b/data/demos/json/demo_nam105.json @@ -0,0 +1,43 @@ +{ + "identifier": "demo_nam105", + "label": "CT 105: Same as case 104 but with Interest Payments being ", + "contractType": "NAM", + "version": "20201006", + "description": "Same as case 104 but with Interest Payments being calculated on lagged Notional amount.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 105, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "cycleAnchorDateOfInterestCalculationBase": "2019-01-01T00:00:00", + "cycleOfInterestCalculationBase": "P3YL0", + "interestCalculationBase": "NTL", + "interestCalculationBaseAmount": 1000, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam106.json b/data/demos/json/demo_nam106.json new file mode 100644 index 0000000..b2c13e8 --- /dev/null +++ b/data/demos/json/demo_nam106.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_nam106", + "label": "CT 106: Same as case 104 but with Interest Payments being ", + "contractType": "NAM", + "version": "20201006", + "description": "Same as case 104 but with Interest Payments being calculated on the basis of a fixed amount (the Notional amount at Initial Exchange here).", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 106, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NTIED", + "interestCalculationBaseAmount": 1000, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_nam107.json b/data/demos/json/demo_nam107.json new file mode 100644 index 0000000..f1cdda4 --- /dev/null +++ b/data/demos/json/demo_nam107.json @@ -0,0 +1,40 @@ +{ + "identifier": "demo_nam107", + "label": "CT 107: Same as case 104 but based on a spread of 12%. The", + "contractType": "NAM", + "version": "20201006", + "description": "Same as case 104 but based on a spread of 12%. The Interest payments come out to be higher than the Redemption amount, hence, capitalizing additional Interest to the outstanding Notional.", + "contract": { + "contractType": "NAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 107, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "interestCalculationBase": "NT", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfPrincipalRedemption": "2016-01-02T00:00:00", + "cycleOfPrincipalRedemption": "P1YL0", + "nextPrincipalRedemptionPayment": 100, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.12, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_pam101.json b/data/demos/json/demo_pam101.json new file mode 100644 index 0000000..32603fe --- /dev/null +++ b/data/demos/json/demo_pam101.json @@ -0,0 +1,24 @@ +{ + "identifier": "demo_pam101", + "label": "CT 101: Long position of a 3-month Zero Coupon Bond starti", + "contractType": "PAM", + "version": "20201006", + "description": "Long position of a 3-month Zero Coupon Bond starting at 01/02/2015 with Notional of 1000 and Discount at Purchase of 100.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "nominalInterestRate": 0, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2015-04-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": -5 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam102.json b/data/demos/json/demo_pam102.json new file mode 100644 index 0000000..e128e54 --- /dev/null +++ b/data/demos/json/demo_pam102.json @@ -0,0 +1,24 @@ +{ + "identifier": "demo_pam102", + "label": "CT 102: Same as case 101 but short position.", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 101 but short position.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 102, + "nominalInterestRate": 0, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2015-04-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": -5 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam103.json b/data/demos/json/demo_pam103.json new file mode 100644 index 0000000..cc1c702 --- /dev/null +++ b/data/demos/json/demo_pam103.json @@ -0,0 +1,24 @@ +{ + "identifier": "demo_pam103", + "label": "CT 103: Same as case 101 but with single coupon payment at", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 101 but with single coupon payment at fixed Nominal Rate of 1% instead of Discount at Purchase.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 103, + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2015-04-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam104.json b/data/demos/json/demo_pam104.json new file mode 100644 index 0000000..5e2daa9 --- /dev/null +++ b/data/demos/json/demo_pam104.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_pam104", + "label": "CT 104: Long position of a 5-year Coupon Bearing Bond star", + "contractType": "PAM", + "version": "20201006", + "description": "Long position of a 5-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at fixed Nominal Rate of 2% using Day Count Convention 30/360.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 104, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam105.json b/data/demos/json/demo_pam105.json new file mode 100644 index 0000000..49bfe42 --- /dev/null +++ b/data/demos/json/demo_pam105.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_pam105", + "label": "CT 105: Same as case 104 but short position.", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but short position.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 105, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam106.json b/data/demos/json/demo_pam106.json new file mode 100644 index 0000000..badffed --- /dev/null +++ b/data/demos/json/demo_pam106.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_pam106", + "label": "CT 106: Same as case 104 but with semi-annually Coupon pay", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but with semi-annually Coupon payments.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 106, + "cycleAnchorDateOfInterestPayment": "2015-07-02T00:00:00", + "cycleOfInterestPayment": "P6ML0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam107.json b/data/demos/json/demo_pam107.json new file mode 100644 index 0000000..cc3bea8 --- /dev/null +++ b/data/demos/json/demo_pam107.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_pam107", + "label": "CT 107: Same as case 104 but using A/A-ISDA Day Count Conv", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but using A/A-ISDA Day Count Convention.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 107, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "AA", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam108.json b/data/demos/json/demo_pam108.json new file mode 100644 index 0000000..2bc5bdb --- /dev/null +++ b/data/demos/json/demo_pam108.json @@ -0,0 +1,27 @@ +{ + "identifier": "demo_pam108", + "label": "CT 108: Same as case 104 but applying a Weekday-Calendar a", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but applying a Weekday-Calendar and Shift-Calculate-Forward BusinessDayConvention.", + "contract": { + "calendar": "MF", + "businessDayConvention": "SCF", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 108, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam109.json b/data/demos/json/demo_pam109.json new file mode 100644 index 0000000..9ab331d --- /dev/null +++ b/data/demos/json/demo_pam109.json @@ -0,0 +1,26 @@ +{ + "identifier": "demo_pam109", + "label": "CT 109: Same as case 104 but uneven last coupon period is ", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but uneven last coupon period is handled differently (short stub).", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 109, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL1", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam110.json b/data/demos/json/demo_pam110.json new file mode 100644 index 0000000..164928f --- /dev/null +++ b/data/demos/json/demo_pam110.json @@ -0,0 +1,27 @@ +{ + "identifier": "demo_pam110", + "label": "CT 110: Same as case 104 but with an Interest Capitalizati", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 104 but with an Interest Capitalization period up to 01/02/2017.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 110, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "capitalizationEndDate": "2016-12-31T00:00:00", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "rateSpread": 0, + "premiumDiscountAtIED": 0 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_pam111.json b/data/demos/json/demo_pam111.json new file mode 100644 index 0000000..48f50ba --- /dev/null +++ b/data/demos/json/demo_pam111.json @@ -0,0 +1,39 @@ +{ + "identifier": "demo_pam111", + "label": "CT 111: Long position of a 10-year Coupon Bearing Bond sta", + "contractType": "PAM", + "version": "20201006", + "description": "Long position of a 10-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at floating rates calculated as forward rates based on today's reference Yield Curve + a Spread of 2%.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 111, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleOfRateReset": "P1YL0", + "rateSpread": 0.02, + "premiumDiscountAtIED": 0, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.02 + } + ] + } + ] +} diff --git a/data/demos/json/demo_pam112.json b/data/demos/json/demo_pam112.json new file mode 100644 index 0000000..844c057 --- /dev/null +++ b/data/demos/json/demo_pam112.json @@ -0,0 +1,39 @@ +{ + "identifier": "demo_pam112", + "label": "CT 112: Same as case 112 but with variable rates being fix", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 112 but with variable rates being fixed bi-annually.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 112, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleOfRateReset": "P2YL0", + "rateSpread": 0.02, + "premiumDiscountAtIED": 0, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.02 + } + ] + } + ] +} diff --git a/data/demos/json/demo_pam113.json b/data/demos/json/demo_pam113.json new file mode 100644 index 0000000..e276da4 --- /dev/null +++ b/data/demos/json/demo_pam113.json @@ -0,0 +1,39 @@ +{ + "identifier": "demo_pam113", + "label": "CT 113: Same as case 113 but with variable rates being fix", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 113 but with variable rates being fixed within Coupon periods.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 113, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.02, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleOfRateReset": "P2YL0", + "rateSpread": 0.02, + "premiumDiscountAtIED": 0, + "marketObjectCodeOfRateReset": "YC.USA.TREASURY" + }, + "riskFactors": [ + { + "marketObjectCode": "YC.USA.TREASURY", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.02 + } + ] + } + ] +} diff --git a/data/demos/json/demo_pam114.json b/data/demos/json/demo_pam114.json new file mode 100644 index 0000000..c0a9e6b --- /dev/null +++ b/data/demos/json/demo_pam114.json @@ -0,0 +1,42 @@ +{ + "identifier": "demo_pam114", + "label": "CT 114: Long position of a 10-year Coupon Bearing Bond sta", + "contractType": "PAM", + "version": "20201006", + "description": "Long position of a 10-year Coupon Bearing Bond starting at 01/02/2015 with Notional of 1000. Coupon payments are made annually at fixed (base) Nominal Rate of 5% and linked to a Reference Index.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 114, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleAnchorDateOfScalingIndex": "2016-01-02T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "IOO", + "rateSpread": 0, + "premiumDiscountAtIED": 0, + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_pam115.json b/data/demos/json/demo_pam115.json new file mode 100644 index 0000000..2f38299 --- /dev/null +++ b/data/demos/json/demo_pam115.json @@ -0,0 +1,42 @@ +{ + "identifier": "demo_pam115", + "label": "CT 115: Same as case 115 but also Notional amount is linke", + "contractType": "PAM", + "version": "20201006", + "description": "Same as case 115 but also Notional amount is linked to the Reference Index.", + "contract": { + "calendar": "NC", + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 115, + "cycleAnchorDateOfInterestPayment": "2016-01-02T00:00:00", + "cycleOfInterestPayment": "P1YL0", + "nominalInterestRate": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "marketObjectCodeOfScalingIndex": "CPI.USD", + "cycleAnchorDateOfScalingIndex": "2016-01-02T00:00:00", + "cycleOfScalingIndex": "P1YL0", + "scalingEffect": "INO", + "rateSpread": 0, + "premiumDiscountAtIED": 0, + "scalingIndexAtContractDealDate": 100 + }, + "riskFactors": [ + { + "marketObjectCode": "CPI.USD", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 100 + } + ] + } + ] +} diff --git a/data/demos/json/demo_stk101.json b/data/demos/json/demo_stk101.json new file mode 100644 index 0000000..62605a5 --- /dev/null +++ b/data/demos/json/demo_stk101.json @@ -0,0 +1,19 @@ +{ + "identifier": "demo_stk101", + "label": "CT 101: Long position of a Stock instrument purchased at 0", + "contractType": "STK", + "version": "20201006", + "description": "Long position of a Stock instrument purchased at 01/02/2015 at a price of USD 90.0.", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 101, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "purchaseDate": "2015-01-02T00:00:00", + "priceAtPurchaseDate": 90, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_stk102.json b/data/demos/json/demo_stk102.json new file mode 100644 index 0000000..dfe2dfb --- /dev/null +++ b/data/demos/json/demo_stk102.json @@ -0,0 +1,21 @@ +{ + "identifier": "demo_stk102", + "label": "CT 102: Long position of a Stock instrument purchased at 0", + "contractType": "STK", + "version": "20201006", + "description": "Long position of a Stock instrument purchased at 01/02/2015 at a price of USD 90.0 and sold again 2 weeks later at a price of USD 110.0.", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 102, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "purchaseDate": "2015-01-02T00:00:00", + "priceAtPurchaseDate": 90, + "terminationDate": "2015-01-16T00:00:00", + "priceAtTerminationDate": 110, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_stk103.json b/data/demos/json/demo_stk103.json new file mode 100644 index 0000000..2b9ea21 --- /dev/null +++ b/data/demos/json/demo_stk103.json @@ -0,0 +1,21 @@ +{ + "identifier": "demo_stk103", + "label": "CT 103: Same as 102 but a short position.", + "contractType": "STK", + "version": "20201006", + "description": "Same as 102 but a short position.", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPL", + "contractID": 103, + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "purchaseDate": "2015-01-02T00:00:00", + "priceAtPurchaseDate": 90, + "terminationDate": "2015-01-16T00:00:00", + "priceAtTerminationDate": 110, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_stk104.json b/data/demos/json/demo_stk104.json new file mode 100644 index 0000000..6b17a57 --- /dev/null +++ b/data/demos/json/demo_stk104.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_stk104", + "label": "CT 104: Same as 101 but with (expected) annual Dividend pa", + "contractType": "STK", + "version": "20201006", + "description": "Same as 101 but with (expected) annual Dividend payments of 3% of the reference Notional amount (USD 1000.0 here).", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 104, + "cycleOfDividend": "P1YL0", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "purchaseDate": "2015-01-02T00:00:00", + "priceAtPurchaseDate": 90, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_stk105.json b/data/demos/json/demo_stk105.json new file mode 100644 index 0000000..62ead25 --- /dev/null +++ b/data/demos/json/demo_stk105.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_stk105", + "label": "CT 105: Same as 104 but with Purchase date in the past.", + "contractType": "STK", + "version": "20201006", + "description": "Same as 104 but with Purchase date in the past.", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 105, + "cycleOfDividend": "P1YL0", + "currency": "USD", + "contractDealDate": "2014-12-01T00:00:00", + "purchaseDate": "2014-12-02T00:00:00", + "priceAtPurchaseDate": 90, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_stk106.json b/data/demos/json/demo_stk106.json new file mode 100644 index 0000000..ec26f8e --- /dev/null +++ b/data/demos/json/demo_stk106.json @@ -0,0 +1,20 @@ +{ + "identifier": "demo_stk106", + "label": "CT 106: Same as 104 but Dividend payments linked to a (sto", + "contractType": "STK", + "version": "20201006", + "description": "Same as 104 but Dividend payments linked to a (stochastic) reference risk factor.", + "contract": { + "contractType": "STK", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RPA", + "contractID": 106, + "cycleOfDividend": "P1YL0", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "purchaseDate": "2015-01-02T00:00:00", + "priceAtPurchaseDate": 90, + "marketValueObserved": 100 + }, + "riskFactors": [] +} diff --git a/data/demos/json/demo_swap101.json b/data/demos/json/demo_swap101.json new file mode 100644 index 0000000..eeba822 --- /dev/null +++ b/data/demos/json/demo_swap101.json @@ -0,0 +1,68 @@ +{ + "identifier": "demo_swap101", + "label": "CT 101: 1-year Plain-Vanilla Payer Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Plain-Vanilla Payer Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 1 year. Interest ist paid at Maturity. The fixed leg pays 3%, the variable leg Reference_Rate_A plus 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "101", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps101-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps101-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ + { + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.015 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swap102.json b/data/demos/json/demo_swap102.json new file mode 100644 index 0000000..fb2bcc0 --- /dev/null +++ b/data/demos/json/demo_swap102.json @@ -0,0 +1,68 @@ +{ + "identifier": "demo_swap102", + "label": "CT 102: 1-year Plain-Vanilla Receiver Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Same as case 101 but a Receiver Swap.", + "contract": { + "contractType": "SWAPS", + "contractID": "102", + "contractRole": "RFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps102-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps102-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2016-01-01T00:00:00" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.015 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap103.json b/data/demos/json/demo_swap103.json new file mode 100644 index 0000000..716116a --- /dev/null +++ b/data/demos/json/demo_swap103.json @@ -0,0 +1,83 @@ +{ + "identifier": "demo_swap103", + "label": "CT 103: 2-year Plain-Vanilla Payer Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Plain-Vanilla Payer Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 2 years. Interest is paid semi-annually. The fixed leg pays 3%, the variable leg Reference_Rate_A plus 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "103", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps103-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps103-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P6ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.025 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap104.json b/data/demos/json/demo_swap104.json new file mode 100644 index 0000000..c612ce2 --- /dev/null +++ b/data/demos/json/demo_swap104.json @@ -0,0 +1,83 @@ +{ + "identifier": "demo_swap104", + "label": "CT 104: Same as CT 103 but with 5% spread on variable leg", + "contractType": "SWAPS", + "version": "20201020", + "description": "Plain-Vanilla Payer Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 2 years. Interest is paid semi-annually. The fixed leg pays 3%, the variable leg Reference_Rate_A plus 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "104", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps104-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps104-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P6ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.025 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap105.json b/data/demos/json/demo_swap105.json new file mode 100644 index 0000000..95d51bd --- /dev/null +++ b/data/demos/json/demo_swap105.json @@ -0,0 +1,142 @@ +{ + "identifier": "demo_swap105", + "label": "CT 105: 2-years Basis Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Basis Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 2 years. Interest is paid quarterly. Contract offers Reference_Rate__A + 2% and pays Reference_Rate_B.", + "contract": { + "contractType": "SWAPS", + "contractID": "105", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps105-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-04-01T00:00:00", + "cycleOfInterestPayment": "P3ML1" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps105-leg2", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.0, + "marketObjectCodeOfRateReset": "Reference_Rate_B", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-04-01T00:00:00", + "cycleOfInterestPayment": "P3ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.008 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.0 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.001 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.01 + } + ] + }, +{ + "marketObjectCode": "Reference_Rate_B", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.019 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.021 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.018 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.015 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.019 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.021 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.023 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap106.json b/data/demos/json/demo_swap106.json new file mode 100644 index 0000000..af2023c --- /dev/null +++ b/data/demos/json/demo_swap106.json @@ -0,0 +1,142 @@ +{ + "identifier": "demo_swap106", + "label": "CT 106: Same as CT 105 but with reversed legs", + "contractType": "SWAPS", + "version": "20201020", + "description": "Basis Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 2 years. Interest is paid quarterly. Contract offers Reference_Rate__B and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "106", + "contractRole": "RFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps106-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.0, + "marketObjectCodeOfRateReset": "Reference_Rate_B", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-04-01T00:00:00", + "cycleOfInterestPayment": "P3ML1" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps106-leg2", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2017-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-04-01T00:00:00", + "cycleOfInterestPayment": "P3ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.008 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.0 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.001 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.01 + } + ] + }, +{ + "marketObjectCode": "Reference_Rate_B", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.019 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.021 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.018 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.015 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.019 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.021 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.023 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap107.json b/data/demos/json/demo_swap107.json new file mode 100644 index 0000000..2b1e59d --- /dev/null +++ b/data/demos/json/demo_swap107.json @@ -0,0 +1,254 @@ +{ + "identifier": "demo_swap107", + "label": "CT 107: 1-year USD-EUR Cross-Currency Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "USD-EUR Cross-Currency Swap starting at 01/02/2015 with Maturity after 1 year. Interest is paid monthly. The contract offers Reference_Rate_A based on Nominal USD 1000.0 and pays Reference_Rate_B + 2% based on Nominal EUR 815.0.", + "contract": { + "contractType": "SWAPS", + "contractID": "107", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps107-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0.0, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", + "cycleOfInterestPayment": "P1ML1" + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps107-leg2", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "EUR", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 815, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_B", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", + "cycleOfInterestPayment": "P1ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-02-02T00:00:00", + "value": 0.005 + }, + { + "time": "2016-03-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.02 + }, + { + "time": "2016-05-02T00:00:00", + "value": 0.025 + }, + { + "time": "2016-06-02T00:00:00", + "value": 0.03 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-08-02T00:00:00", + "value": 0.018 + }, + { + "time": "2016-09-02T00:00:00", + "value": 0.021 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.022 + }, + { + "time": "2016-11-02T00:00:00", + "value": 0.029 + }, + { + "time": "2016-12-02T00:00:00", + "value": 0.02 + } + ] + }, +{ + "marketObjectCode": "Reference_Rate_B", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2016-01-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-02-02T00:00:00", + "value": 0.005 + }, + { + "time": "2016-03-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-04-02T00:00:00", + "value": 0.02 + }, + { + "time": "2016-05-02T00:00:00", + "value": 0.025 + }, + { + "time": "2016-06-02T00:00:00", + "value": 0.03 + }, + { + "time": "2016-07-02T00:00:00", + "value": 0.01 + }, + { + "time": "2016-08-02T00:00:00", + "value": 0.018 + }, + { + "time": "2016-09-02T00:00:00", + "value": 0.021 + }, + { + "time": "2016-10-02T00:00:00", + "value": 0.022 + } + { + "time": "2016-11-02T00:00:00", + "value": 0.029 + }, + { + "time": "2016-12-02T00:00:00", + "value": 0.02 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap108.json b/data/demos/json/demo_swap108.json new file mode 100644 index 0000000..94a6dd6 --- /dev/null +++ b/data/demos/json/demo_swap108.json @@ -0,0 +1,173 @@ +{ + "identifier": "demo_swap108", + "label": "CT 108: 1-year Step-up Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Step-up Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 1 year. Interest is paid monthly. The contract offers a linearly increasing rate starting at 1% and increasing by 1% every repricing period and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "108", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps108-leg1", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + + ], + "arrayCycleOfPrincipalRedemption": [ + + ], + "arrayNextPrincipalRedemptionPayment": [ + + ], + "arrayIncreaseDecrease": [ + + ], + "arrayCycleAnchorDateOfRateReset": [ + "2015-02-02T00:00:00", + "2015-03-02T00:00:00", + "2015-04-02T00:00:00", + "2015-05-02T00:00:00", + "2015-06-02T00:00:00", + "2015-07-02T00:00:00", + "2015-08-02T00:00:00", + "2015-09-02T00:00:00", + "2015-10-02T00:00:00", + "2015-11-02T00:00:00", + "2015-12-02T00:00:00" + ], + "arrayCycleOfRateReset": [ + + ], + "arrayRate": [ + "0.02", + "0.03", + "0.04", + "0.05", + "0.06", + "0.07", + "0.08", + "0.09", + "0.10", + "0.11", + "0.12" + ], + "arrayFixedVariable": [ + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX" + ] + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps108-leg2", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", + "cycleOfInterestPayment": "P1ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-11-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-12-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap109.json b/data/demos/json/demo_swap109.json new file mode 100644 index 0000000..8892269 --- /dev/null +++ b/data/demos/json/demo_swap109.json @@ -0,0 +1,173 @@ +{ + "identifier": "demo_swap109", + "label": "CT 109: 1-year Step-down Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Step-down Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 1 year. Interest is paid monthly. The contract offers a linearly decreasing rate starting at 7% and decreasing by 0.5% every repricing period and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "109", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps109-leg1", + "nominalInterestRate": 0.07, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + + ], + "arrayCycleOfPrincipalRedemption": [ + + ], + "arrayNextPrincipalRedemptionPayment": [ + + ], + "arrayIncreaseDecrease": [ + + ], + "arrayCycleAnchorDateOfRateReset": [ + "2015-02-02T00:00:00", + "2015-03-02T00:00:00", + "2015-04-02T00:00:00", + "2015-05-02T00:00:00", + "2015-06-02T00:00:00", + "2015-07-02T00:00:00", + "2015-08-02T00:00:00", + "2015-09-02T00:00:00", + "2015-10-02T00:00:00", + "2015-11-02T00:00:00", + "2015-12-02T00:00:00" + ], + "arrayCycleOfRateReset": [ + + ], + "arrayRate": [ + "0.07", + "0.065", + "0.06", + "0.055", + "0.05", + "0.045", + "0.04", + "0.035", + "0.03", + "0.025", + "0.02" + ], + "arrayFixedVariable": [ + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX", + "FIX" + ] + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "PAM", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps109-leg2", + "nominalInterestRate": 0.03, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-02T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0.02, + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1, + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", + "cycleOfInterestPayment": "P1ML1" + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-11-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-12-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap110.json b/data/demos/json/demo_swap110.json new file mode 100644 index 0000000..f37180b --- /dev/null +++ b/data/demos/json/demo_swap110.json @@ -0,0 +1,156 @@ +{ + "identifier": "demo_swap110", + "label": "CT 110: 1-year Amortizing Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Amortizing Interest Rate Swap of USD 1200.0 Notional, starting at 01/02/15 with Maturity after 1 year. Notional decreases gradually on a monthly basis to reach 0.0 at Maturity. Interest is paid monthly. The contract offers a fixed rate of 1% and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "110", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps110-leg1", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1200, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + "P1ML1" + ], + "arrayNextPrincipalRedemptionPayment": [ + "100" + ], + "arrayIncreaseDecrease": [ + "DEC" + ] + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps110-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1200, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + "P1ML1" + ], + "arrayNextPrincipalRedemptionPayment": [ + "100" + ], + "arrayIncreaseDecrease": [ + "DEC" + ], + "arrayCycleAnchorDateOfRateReset": [ + "2015-01-02T00:00:00" + ], + "arrayCycleOfRateReset": [ + "P1ML1" + ], + "arrayRate": [ + "0.02" + ], + "arrayFixedVariable": [ + "VAR" + ], + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1 + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-11-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-12-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap111.json b/data/demos/json/demo_swap111.json new file mode 100644 index 0000000..2435117 --- /dev/null +++ b/data/demos/json/demo_swap111.json @@ -0,0 +1,156 @@ +{ + "identifier": "demo_swap111", + "label": "CT 111: 1-year Amortizing Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Accrueing Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 1 year. Notional increases gradually on a monthly basis to reach 2200.0 at Maturity. Interest is paid monthly. The contract offers a fixed rate of 1% and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "111", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps111-leg1", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + "P1ML1" + ], + "arrayNextPrincipalRedemptionPayment": [ + "100" + ], + "arrayIncreaseDecrease": [ + "INC" + ] + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps111-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + "P1ML1" + ], + "arrayNextPrincipalRedemptionPayment": [ + "100" + ], + "arrayIncreaseDecrease": [ + "INC" + ], + "arrayCycleAnchorDateOfRateReset": [ + "2015-01-02T00:00:00" + ], + "arrayCycleOfRateReset": [ + "P1ML1" + ], + "arrayRate": [ + "0.02" + ], + "arrayFixedVariable": [ + "VAR" + ], + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1 + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-11-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-12-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swap112.json b/data/demos/json/demo_swap112.json new file mode 100644 index 0000000..b501672 --- /dev/null +++ b/data/demos/json/demo_swap112.json @@ -0,0 +1,216 @@ +{ + "identifier": "demo_swap112", + "label": "CT 112: 1-year Roller-Coaster Interest Rate Swap", + "contractType": "SWAPS", + "version": "20201020", + "description": "Roller-Coaster Interest Rate Swap of USD 1000.0 Notional, starting at 01/02/15 with Maturity after 1 year. Notional increases gradually on a monthly basis to reach 2200.0 after six months. Then, Notional decreases again to reach 0.0 at Maturity. Interest is paid monthly. The contract offers a fixed rate of 1% and pays Reference_Rate_A + 2%.", + "contract": { + "contractType": "SWAPS", + "contractID": "112", + "contractRole": "PFL", + "contractStructure": [ + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps112-leg1", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00", + "2015-03-01T00:00:00", + "2015-04-01T00:00:00", + "2015-05-01T00:00:00", + "2015-06-01T00:00:00", + "2015-07-01T00:00:00", + "2015-08-01T00:00:00", + "2015-09-01T00:00:00", + "2015-10-01T00:00:00", + "2015-11-01T00:00:00", + "2015-12-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + + ], + "arrayNextPrincipalRedemptionPayment": [ + "200", + "200", + "200", + "200", + "200", + "200", + "366", + "366", + "366", + "366", + "366" + ], + "arrayIncreaseDecrease": [ + "INC", + "INC", + "INC", + "INC", + "INC", + "INC", + "DEC", + "DEC", + "DEC", + "DEC", + "DEC" + ] + }, + "referenceType": "CNT", + "referenceRole": "FIL" + }, + { + "object": { + "contractType": "LAX", + "statusDate": "2015-01-01T00:00:00", + "contractID": "demo_swaps112-leg2", + "nominalInterestRate": 0.01, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2016-01-01T00:00:00", + "notionalPrincipal": 1000, + "arrayCycleAnchorDateOfInterestPayment": [ + "2015-02-01T00:00:00" + ], + "arrayCycleOfInterestPayment": [ + "P1ML1" + ], + "arrayCycleAnchorDateOfPrincipalRedemption": [ + "2015-02-01T00:00:00", + "2015-03-01T00:00:00", + "2015-04-01T00:00:00", + "2015-05-01T00:00:00", + "2015-06-01T00:00:00", + "2015-07-01T00:00:00", + "2015-08-01T00:00:00", + "2015-09-01T00:00:00", + "2015-10-01T00:00:00", + "2015-11-01T00:00:00", + "2015-12-01T00:00:00" + ], + "arrayCycleOfPrincipalRedemption": [ + + ], + "arrayNextPrincipalRedemptionPayment": [ + "200", + "200", + "200", + "200", + "200", + "200", + "366", + "366", + "366", + "366", + "366" + ], + "arrayIncreaseDecrease": [ + "INC", + "INC", + "INC", + "INC", + "INC", + "INC", + "DEC", + "DEC", + "DEC", + "DEC", + "DEC" + ], + "arrayCycleAnchorDateOfRateReset": [ + "2015-01-02T00:00:00" + ], + "arrayCycleOfRateReset": [ + "P1ML1" + ], + "arrayRate": [ + "0.02" + ], + "arrayFixedVariable": [ + "VAR" + ], + "marketObjectCodeOfRateReset": "Reference_Rate_A", + "rateMultiplier": 1 + }, + "referenceType": "CNT", + "referenceRole": "SEL" + } + ], + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "statusDate": "2015-01-01T00:00:00", + "deliverySettlement": "D" + }, + "riskFactors": [ +{ + "marketObjectCode": "Reference_Rate_A", + "base": 1, + "data": [ + { + "time": "2015-01-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-02-02T00:00:00", + "value": 0.006 + }, + { + "time": "2015-03-02T00:00:00", + "value": 0.007 + }, + { + "time": "2015-04-02T00:00:00", + "value": 0.008 + }, + { + "time": "2015-05-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-06-02T00:00:00", + "value": 0.005 + }, + { + "time": "2015-07-02T00:00:00", + "value": 0.003 + }, + { + "time": "2015-08-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-09-02T00:00:00", + "value": 0.015 + }, + { + "time": "2015-10-02T00:00:00", + "value": 0.02 + }, + { + "time": "2015-11-02T00:00:00", + "value": 0.01 + }, + { + "time": "2015-12-02T00:00:00", + "value": 0.005 + } + ] + } +] +} diff --git a/data/demos/json/demo_swppv101.json b/data/demos/json/demo_swppv101.json new file mode 100644 index 0000000..088cc9d --- /dev/null +++ b/data/demos/json/demo_swppv101.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv101", + "label": "CT 101: A 3-month fixed-rate seller swap.", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 3-month fixed-rate seller swap.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "PF", + "contractID": 101, + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", + "cycleOfInterestPayment": "P1ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2015-04-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv102.json b/data/demos/json/demo_swppv102.json new file mode 100644 index 0000000..edf95df --- /dev/null +++ b/data/demos/json/demo_swppv102.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv102", + "label": "CT 102: A 3-month fixed-rate buyer swap.", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 3-month fixed-rate buyer swap.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RF", + "contractID": 102, + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", + "cycleOfInterestPayment": "P3ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.05, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2015-04-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv103.json b/data/demos/json/demo_swppv103.json new file mode 100644 index 0000000..ff249b8 --- /dev/null +++ b/data/demos/json/demo_swppv103.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv103", + "label": "CT 103: A 5-year fixed-rate payer swap.", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 5-year fixed-rate payer swap.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "PF", + "contractID": 103, + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", + "cycleOfInterestPayment": "P3ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.01, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv104.json b/data/demos/json/demo_swppv104.json new file mode 100644 index 0000000..7c4b427 --- /dev/null +++ b/data/demos/json/demo_swppv104.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv104", + "label": "CT 104: A 5-year fixed-rate seller swap.", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 5-year fixed-rate seller swap.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RF", + "contractID": 104, + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", + "cycleOfInterestPayment": "P3ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0.01, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv105.json b/data/demos/json/demo_swppv105.json new file mode 100644 index 0000000..a4a10c7 --- /dev/null +++ b/data/demos/json/demo_swppv105.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv105", + "label": "CT 105: A 5-year fixed-rate payer swap with bi-annually pa", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 5-year fixed-rate payer swap with bi-annually payment.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "PF", + "contractID": 105, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", + "cycleOfRateReset": "P6ML1", + "rateSpread": 0.02, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv106.json b/data/demos/json/demo_swppv106.json new file mode 100644 index 0000000..5397763 --- /dev/null +++ b/data/demos/json/demo_swppv106.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv106", + "label": "CT 106: A 5-year fixed-rate seller swap with bi-annually p", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 5-year fixed-rate seller swap with bi-annually payment and zero spread over the reference rate.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RF", + "contractID": 106, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2020-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", + "cycleOfRateReset": "P6ML1", + "rateSpread": 0, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv107.json b/data/demos/json/demo_swppv107.json new file mode 100644 index 0000000..cc99ce0 --- /dev/null +++ b/data/demos/json/demo_swppv107.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv107", + "label": "CT 107: A 10-year fixed-rate seller swap with bi-annually ", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 10-year fixed-rate seller swap with bi-annually payment and zero spread over the reference rate.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "RF", + "contractID": 107, + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", + "cycleOfInterestPayment": "P6ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", + "cycleOfRateReset": "P6ML1", + "rateSpread": 0, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv108.json b/data/demos/json/demo_swppv108.json new file mode 100644 index 0000000..b39114a --- /dev/null +++ b/data/demos/json/demo_swppv108.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv108", + "label": "CT 108: A 10-year fixed-rate seller swap with monthly paym", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 10-year fixed-rate seller swap with monthly payment.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "PF", + "contractID": 108, + "cycleAnchorDateOfInterestPayment": "2015-01-01T00:00:00", + "cycleOfInterestPayment": "P1ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00", + "cycleOfRateReset": "P1ML1", + "rateSpread": 0.02, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/json/demo_swppv109.json b/data/demos/json/demo_swppv109.json new file mode 100644 index 0000000..9e4b166 --- /dev/null +++ b/data/demos/json/demo_swppv109.json @@ -0,0 +1,41 @@ +{ + "identifier": "demo_swppv109", + "label": "CT 109: A 10-year fixed-rate seller swap with quarterly pa", + "contractType": "SWPPV", + "version": "20201006", + "description": "A 10-year fixed-rate seller swap with quarterly payment.", + "contract": { + "calendar": "NC", + "contractType": "SWPPV", + "statusDate": "2015-01-01T00:00:00", + "contractRole": "PF", + "contractID": 109, + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", + "cycleOfInterestPayment": "P3ML1", + "nominalInterestRate": 0.05, + "nominalInterestRate2": 0.08, + "dayCountConvention": "30E360", + "currency": "USD", + "contractDealDate": "2015-01-01T00:00:00", + "initialExchangeDate": "2015-01-02T00:00:00", + "maturityDate": "2025-01-02T00:00:00", + "notionalPrincipal": 1000, + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", + "cycleOfRateReset": "P3ML1", + "rateSpread": 0, + "deliverySettlement": "D", + "marketObjectCodeOfRateReset": "USD_Treasury" + }, + "riskFactors": [ + { + "marketObjectCode": "USD_Treasury", + "base": 1, + "data": [ + { + "time": "2015-01-01T00:00:00", + "value": 0.05 + } + ] + } + ] +} diff --git a/data/demos/updateDemos.R b/data/demos/updateDemos.R new file mode 100644 index 0000000..f99634c --- /dev/null +++ b/data/demos/updateDemos.R @@ -0,0 +1,51 @@ +library(jsonlite) +library(readr) + +source_path <- "./jsonOld" +save_path <- "./json" + +# risk factor template +#rf_template = list(marketObjectCode = "", base = 1, data = list( list(time="2015-01-01T00:00:00", value="0.4"))) + +# read data csv demo files +file_names <- list.files(path = source_path,recursive = TRUE) + +for (file_name in file_names) { + json = fromJSON(paste0(source_path,"/",file_name)) + + # update json keys +# json$contract = json$terms +# json$terms = NULL + + # update term names +# json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate +# json$contract$scalingIndexAtStatusDate = NULL + + # add interest cycles to amortizing products + if(!is.null(json$contract$cycleAnchorDateOfPrincipalRedemption) && is.null(json$contract$cycleAnchorDateOfInterestPayment)) { + json$contract$cycleAnchorDateOfInterestPayment = json$contract$cycleAnchorDateOfPrincipalRedemption + } + if(!is.null(json$contract$cycleOfPrincipalRedemption) && is.null(json$contract$cycleOfInterestPayment)) { + json$contract$cycleOfInterestPayment = json$contract$cycleOfPrincipalRedemption + } + + # add riskfactor data + # riskFactors = list() + # if(!is.null(json$contract$marketObjectCodeRateReset)) { + # json$contract$marketObjectCodeOfRateReset = json$contract$marketObjectCodeRateReset + # json$contract$marketObjectCodeRateReset = NULL + # factor = rf_template + # factor$marketObjectCode = json$contract$marketObjectCodeOfRateReset + # factor$data = list( list(time=json$contract$statusDate, value=json$contract$nominalInterestRate) ) + # riskFactors = c(riskFactors, list(factor)) + # } + # if(!is.null(json$contract$marketObjectCodeOfScalingIndex)) { + # factor = rf_template + # factor$marketObjectCode = json$contract$marketObjectCodeOfScalingIndex + # factor$data = list( list(time=json$contract$statusDate, value=json$contract$scalingIndexAtContractDealDate) ) + # riskFactors = c(riskFactors, list(factor)) + # } + # json$riskFactors = riskFactors + + write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", file_name)) +} diff --git a/data/forms/Consolidated DD CTD v1.0.csv b/data/forms/Consolidated DD CTD v1.0.csv index 306cf2e..0beeaae 100644 --- a/data/forms/Consolidated DD CTD v1.0.csv +++ b/data/forms/Consolidated DD CTD v1.0.csv @@ -1,9 +1,9 @@ -,,,,,,,,,Basic Contract Types,,,,,,,,,,,,,,,,, +,,,,,,,,,Basic Contract Types,,,,,,,,,,,,,,,,, Group Name,ACTUS Name,"Short -Name",Data Format,Allowed Values,Default If NULL,CNTRL Sensitive,Cash Flow Algorithm relevant,Attribute Description,CSH,UMP,CLM,PAM,LAM,LAX,ANN,NAM,STK,COM,CEG,CEC,SWPPV,SWAPS,FXOUT,FUTUR,OPTNS,CAPFL +Name",Data Format,Allowed Values,Default If NULL,CNTRL Sensitive,Cash Flow Algorithm relevant,Attribute Description,CSH,UMP,CLM,PAM,LAM,LAX,ANN,NAM,STK,COM,CEG,CEC,SWPPV,SWAPS,FXOUT,FUTUR,OPTNS,CAPFL Calendar,Calendar,CLDR,Enum,"NoCalendar = No calendar MondayToFriday = Monday to Friday calendar - = wildcard that links to your own implementation of a calendar",NoCalendar (every day is a business day),,Y,Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.,,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, + = wildcard that links to your own implementation of a calendar",NoCalendar (every day is a business day),,Y,Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.,,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, Calendar,BusinessDayConvention,BDC,Enum,"SCF = Shift/Calculate following SCMF = Shift/Calculate modified following CSF = Calculate/Shift following @@ -15,10 +15,10 @@ CSMP = Calculate/Shift modified preceding ",[No Shift] (Cash flows fall on regul These two simple rules get refined twofold: - Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day. - Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round. -Attention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.",,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, +Attention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.",,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, Calendar,EndOfMonthConvention,EOMC,Enum,"EOM = end of month SD = same day","SD (Cycle will go to the same day if possible, else max day)",,Y,"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. -This logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.",,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, +This logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.",,x,x,x,x,x,x,x,x,,x,x,x,,x,x,x, Contract identification,ContractType,CT,Enum,"PAM = PrincipalAtMaturity ANN = Annuity NAM = Negative Amortizer @@ -36,8 +36,8 @@ CAPFL = Cap Floor FUTUR = Future OPTNS = Option CEG = Credit Enhancement Guarantee -CEC = Credit Enhancement Collateral",,,Y,The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN -Contract identification,StatusDate,SD,Timestamp,ISO8601 Datetime,,,Y,"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" +CEC = Credit Enhancement Collateral",,,Y,The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN +Contract identification,StatusDate,SD,Timestamp,ISO8601 Datetime,,,Y,"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" Contract identification,ContractRole,CNTRL,Enum,"RPA = Real Position Asset(Maturity CTs, UMP, STK) RPL = Real Position Liability (Maturity CTs, UMP, STK) LG = Long Position (Future) @@ -49,105 +49,105 @@ SEL = Seller (Option) GUA = Guarantor (Credit Enhancments) OBL = Obligor (Credit Enhancments)",,,Y,"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. Most contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. -The attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)",NN,NN,NN,NN,NN,NN,NN,NN +The attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)",NN,NN,NN,NN,NN,NN,NN,NN Contract identification,LegalEntityIDRecordCreator,LEIRC,Varchar," ",,,N,"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP. -LEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" +LEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" Contract identification,ContractID,CID,Integer,,,,Y,"Unique identifier of a contract. -If the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.",NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN +If the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.",NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN Contract identification,MarketObjectCode,MOC,Varchar,,No market reference available,,N,"Is pointing to the market value at SD (MarketObject). -Unique codes for market objects must be used.",,,,x,x,x,x,x,x,x,,,x,x,x,x,x,x -Contract identification,ContractStructure,CTS,ContractStructure,,,,Y,"A structure identifying individual or sets of underlying contracts. E.g. for FUTUR, this structure identifies the single underlying contract, for SWAPS, the FirstLeg and SecondLeg are identified, or for CEG, CEC the structure identifies Covered and Covering contracts.",,,,,,,,,,,NN,NN,,NN,,NN,NN,NN +Unique codes for market objects must be used.",,,,x,x,x,x,x,x,x,,,x,x,x,x,x,x +Contract identification,ContractStructure,CTS,ContractStructure,,,,Y,"A structure identifying individual or sets of underlying contracts. E.g. for FUTUR, this structure identifies the single underlying contract, for SWAPS, the FirstLeg and SecondLeg are identified, or for CEG, CEC the structure identifies Covered and Covering contracts.",,,,,,,,,,,NN,NN,,NN,,NN,NN,NN Counterparty,LegalEntityIDCounterparty,LEICP,Varchar,,,,Y,"LEICP identifies the counterparty to the LEIRC in this contract. -LEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.",,NN,"NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)",x,"NN(,,2)","NN(,,2)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" +LEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.",,NN,"NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)","NN(,,2)",x,"NN(,,2)","NN(,,2)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" Counterparty,ContractStatus,CTS,Enum,"PF = performant DL = delayed DQ = delinquent -DF = default",PF,,N,Indicates the current contract performance status. Different states of the contract range from performing to default.,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,x,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +DF = default",PF,,N,Indicates the current contract performance status. Different states of the contract range from performing to default.,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,x,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " Counterparty,Seniority,SEN,Enum,"S=Senior -J=Junior",,,N,Refers to the order of repayment in the event of a sale or default of the issuer. ,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " -Counterparty,NonPerformingDate,NPD,Timestamp,ISO8601 Datetime,Contract is performing,,N,The date at which the ContractStatus changed to DF (=Default).,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,x,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " -Counterparty,PrepaymentPeriod,PPP,Period,,0D,,N,"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.",,"x(,,1) ","x(,,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ",,,,,,,,,, -Counterparty,GracePeriod,GRP,Period,,0D,,N,"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.",,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " -Counterparty,DelinquencyPeriod,DLP,Period,,0D,,N,"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.",,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " -Counterparty,DelinquencyRate,DLR,Real,"(0, positive)",0,,Y,Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +J=Junior",,,N,Refers to the order of repayment in the event of a sale or default of the issuer. ,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +Counterparty,NonPerformingDate,NPD,Timestamp,ISO8601 Datetime,Contract is performing,,N,The date at which the ContractStatus changed to DF (=Default).,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,x,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +Counterparty,PrepaymentPeriod,PPP,Period,,0D,,N,"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.",,"x(,,1) ","x(,,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ","x(8,1,1) ",,,,,,,,,, +Counterparty,GracePeriod,GRP,Period,,0D,,N,"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.",,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +Counterparty,DelinquencyPeriod,DLP,Period,,0D,,N,"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.",,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " +Counterparty,DelinquencyRate,DLR,Real,"(0, positive)",0,,Y,Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ",,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) " Counterparty,GuaranteedExposure,CEGE,Enum,"NO=Nominal Value NI=Nominal plus Interst MV=Market Value",,,Y,"Defines which value of the exposure is covered: - NO: Nominal Value - NI: Nominal plus Interest -- MV: Market Value",,,,,,,,,,,NN,NN,,,,,, -Counterparty,CoverageOfCreditEnhancement,CECV,Real,"(0,1)",[1] (),,Y,Defines which percentage of the exposure is covered,,,,,,,,,,,x,x,,,,,, -Dividend,CycleAnchorDateOfDividend,DVANX,Timestamp,ISO8601 Datetime,[NULL] (No dividend),,Y,Date from which the dividend payment date schedule is calculated according to the cycle length. The first dividend payment event takes place on this anchor.,,,,,,,,,"NN(1,1,) ",,,,,,,,, -Dividend,CycleOfDividend,DVCL,Period,,,,Y,Defines in combination with DVANX the payment points of dividends. The dividend payment schedule will start at DVANX and end at MaximumProjectionPeriod (cf. sheet Modeling Parameters).,,,,,,,,,"x(1,0,) ",,,,,,,,, -Dividend,NextDividendPaymentAmount,DVNP,Real,"(0, Positive)",0,Y,Y,"Defines the next dividend payment (amount) whereas the date of dividend payment is defined through the DVANX/DVCL pair. If DVCL is defined, then this amount will be used as dividend payment for each future dividend payment date.",,,,,,,,,"x(1,0,)",,,,,,,,, -Dividend,ExDividendDate,DVEX,Timestamp,ISO8601 Datetime,DVEX same as next DV payment date according to DVANX/DVCL,,Y,"In case contract is traded between DVEX and next DV payment date (i.e. PRD>DVEX & PRDDVEX & PRD = wildcard for your own day count convention",,,Y,Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.,,NN,NN,NN,NN,NN,NN,NN,,,,,NN,,,,, -Interest,AccruedInterest,IPAC,Real,,[NULL] (Recalculated as per available IP information),Y,Y,"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.",,x,x,x,x,x,x,x,,,,,,,,,, -Interest,CapitalizationEndDate,IPCED,Timestamp,ISO8601 Datetime,[NULL] (No capitalization takes place),,Y,"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.",,,,x,x,x,x,x,,,,,,,,,, -Interest,CycleAnchorDateOfInterestCalculationBase,IPCBANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.,,,,,"x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ",,,,,,,,,, + = wildcard for your own day count convention",,,Y,Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.,,NN,NN,NN,NN,NN,NN,NN,,,,,NN,,,,, +Interest,AccruedInterest,IPAC,Real,,[NULL] (Recalculated as per available IP information),Y,Y,"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.",,x,x,x,x,x,x,x,,,,,,,,,, +Interest,CapitalizationEndDate,IPCED,Timestamp,ISO8601 Datetime,[NULL] (No capitalization takes place),,Y,"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.",,,,x,x,x,x,x,,,,,,,,,, +Interest,CycleAnchorDateOfInterestCalculationBase,IPCBANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.,,,,,"x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ",,,,,,,,,, Interest,CycleOfInterestCalculationBase,IPCBCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,"Concerning the format see PRCL. -Defines the subsequent adjustment points to NT of the interest payment calculation base.",,,,,"x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ",,,,,,,,,, +Defines the subsequent adjustment points to NT of the interest payment calculation base.",,,,,"x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ","x(3,4 ,) ",,,,,,,,,, Interest,InterestCalculationBase,IPCB,Enum,"NT= Calculation base always equal to NT NTIED = Notional remains constantamount as per IED NTL = Calculation base is notional base laged ",[NT] (NT is the base of interest calculation),Y,Y,"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. Alternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. -An intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.",,,,,"x(3,0,) ","x(3,0,) ","x(3,0,) ","x(3,0,) ",,,,,,,,,, -Interest,InterestCalculationBaseAmount,IPCBA,Real,Positive,,Y,Y,This is the amount used for the calculation of interest. Calculation base per SD.,,,,,"NN(3,3 ,) ","NN(3,3 ,) ","NN(3,3 ,) ","NN(3,3 ,) ",,,,,,,,,, +An intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.",,,,,"x(3,0,) ","x(3,0,) ","x(3,0,) ","x(3,0,) ",,,,,,,,,, +Interest,InterestCalculationBaseAmount,IPCBA,Real,Positive,,Y,Y,This is the amount used for the calculation of interest. Calculation base per SD.,,,,,"NN(3,3 ,) ","NN(3,3 ,) ","NN(3,3 ,) ","NN(3,3 ,) ",,,,,,,,,, Interest,CyclePointOfInterestPayment,IPPNT,Enum,"B = interest is paid at the beginning of the cycle (B, BeginningOf can be used interchangeably) E = interest is paid at the end of the cycle (E, EndOf can be used interchangeably) -","[E] (=EndOf, Interest is paid at the end of the cycle)",,Y,"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.",,,,"x(2,1,)1 ","x(2,1,)1 ","x(2,1,)1 ",,,,,,,,,,,, +","[E] (=EndOf, Interest is paid at the end of the cycle)",,Y,"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.",,,,"x(2,1,)1 ","x(2,1,)1 ","x(2,1,)1 ",,,,,,,,,,,, Margining,ClearingHouse,MRCLH,Enum,"Y = Yes -N = No",,,Y,"Indicates wheter LEIRC takes a clearing house function or not. In other word, whether LEIRC receive margins (MRIM, MRVM).",,,,,,,,,,,,,,,,"NN(1,1,)",, +N = No",,,Y,"Indicates wheter LEIRC takes a clearing house function or not. In other word, whether LEIRC receive margins (MRIM, MRVM).",,,,,,,,,,,,,,,,"NN(1,1,)",, Margining,InitialMargin,MRIM,Real,"0, positive, 2 decimals",[] ()No periodic margening,Y*,Y,"Margin to cover losses which may be incurred as a result of market fluctuations. -Upon contract closing or maturity, the MRIM is reimbursed.",,,,,,,,,,,,,,,,"x(1,0,) ",, -Margining,MaintenanceMarginLowerBound,MRMML,Real,"0, positive, 2 decimals",,,Y,"Defines the lower bound of the Maintenance Margin. If MRVM falls below MRMML, then capital must be added to reach the original MRIM.",,,,,,,,,,,,,,,,"x(1,1,) ",, -Margining,MaintenanceMarginUpperrBound,MRMMU,Real,"0, positive, 2 decimals",,,Y,"Defines the upper bound of the Maintenance Margin. If MRVM falls above MRMMU, then capital is refunded to reach the original MRIM.",,,,,,,,,,,,,,,,"x(1,1,) ",, -Margining,CycleAnchorDateOfMargining,MRANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the margin call date schedule is calculated according to the cycle length. The first margin call event takes place on this anchor.,,,,,,,,,,,,,,,,"x(1,1,) ",, -Margining,CycleOfMargining,MRCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,Defines together with MRANX the points where margins can be called.,,,,,,,,,,,,,,,,"x(1,1,) ",, +Upon contract closing or maturity, the MRIM is reimbursed.",,,,,,,,,,,,,,,,"x(1,0,) ",, +Margining,MaintenanceMarginLowerBound,MRMML,Real,"0, positive, 2 decimals",,,Y,"Defines the lower bound of the Maintenance Margin. If MRVM falls below MRMML, then capital must be added to reach the original MRIM.",,,,,,,,,,,,,,,,"x(1,1,) ",, +Margining,MaintenanceMarginUpperrBound,MRMMU,Real,"0, positive, 2 decimals",,,Y,"Defines the upper bound of the Maintenance Margin. If MRVM falls above MRMMU, then capital is refunded to reach the original MRIM.",,,,,,,,,,,,,,,,"x(1,1,) ",, +Margining,CycleAnchorDateOfMargining,MRANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the margin call date schedule is calculated according to the cycle length. The first margin call event takes place on this anchor.,,,,,,,,,,,,,,,,"x(1,1,) ",, +Margining,CycleOfMargining,MRCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,Defines together with MRANX the points where margins can be called.,,,,,,,,,,,,,,,,"x(1,1,) ",, Margining,VariationMargin,MRVM,Real,"0, positive, 2 decimals",,,Y,"MRVM reflects the accrued but not yet paid margin as per SD. -Open traded positions are revalued by the exchange at the end of every trading day using mark-to-market valuation. Often clearing members do not credit or debit their clients daily with MRVM, but rather use a Maintenance Margin. If the balance falls outside MRMML (and MRMMU), then capital must be added (is refunded) to reach the original margin amount MRIM. We can also say that MVO+MRVM is equal to the reference value as per last margin update.",,,,,,,,,,,,,,,,"x(1,1,) ",, -Notional Principal,Currency,CUR,Varchar,,,,Y,The currency of the cash flows.,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,,NN,NN,NN,NN,NN,NN* -Notional Principal,Currency2,CUR2,Varchar,,,,Y,Currency attribute for the second leg of FXOUT contracts.,,,,,,,,,,,,,,,NN,,, -Notional Principal,AmortizationDate,AMD,Timestamp,ISO8601 Datetime,[MD] (NT will reach zero at MD),,Y,This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.,,,,,,,x,,,,,,,,,,, -Notional Principal,ContractDealDate,CDD,Timestamp,ISO8601 Datetime,,,Y,"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.",,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" -Notional Principal,InitialExchangeDate,IED,Timestamp,ISO8601 Datetime,,,Y,Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.,,NN,NN,NN,NN,NN,NN,NN,,,,,NN,,,,, +Open traded positions are revalued by the exchange at the end of every trading day using mark-to-market valuation. Often clearing members do not credit or debit their clients daily with MRVM, but rather use a Maintenance Margin. If the balance falls outside MRMML (and MRMMU), then capital must be added (is refunded) to reach the original margin amount MRIM. We can also say that MVO+MRVM is equal to the reference value as per last margin update.",,,,,,,,,,,,,,,,"x(1,1,) ",, +Notional Principal,Currency,CUR,Varchar,,,,Y,The currency of the cash flows.,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,NN,,NN,NN,NN,NN,NN,NN* +Notional Principal,Currency2,CUR2,Varchar,,,,Y,Currency attribute for the second leg of FXOUT contracts.,,,,,,,,,,,,,,,NN,,, +Notional Principal,AmortizationDate,AMD,Timestamp,ISO8601 Datetime,[MD] (NT will reach zero at MD),,Y,This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.,,,,,,,x,,,,,,,,,,, +Notional Principal,ContractDealDate,CDD,Timestamp,ISO8601 Datetime,,,Y,"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.",,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)",NN,NN,"NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)","NN(,,1)" +Notional Principal,InitialExchangeDate,IED,Timestamp,ISO8601 Datetime,,,Y,Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.,,NN,NN,NN,NN,NN,NN,NN,,,,,NN,,,,, Notional Principal,PremiumDiscountAtIED,PDIED,Real,,[0] (No premium or discount at origination),Y,Y,"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). Negative value for discount and positive for premium. -Note, similar to interest the PDIED portion is part of P&L.",,,,x,x,x,x,x,,,,,,,,,, +Note, similar to interest the PDIED portion is part of P&L.",,,,x,x,x,x,x,,,,,,,,,, Notional Principal,MaturityDate,MD,Timestamp,ISO8601 Datetime,[NULL {only ANN}] (Value gets internally calculated),,Y,"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. This includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount -PRNXT). In this case it balloons.",,,x,NN,x,x,x,x,,,x,,NN,,NN,,, +PRNXT). In this case it balloons.",,,x,NN,x,x,x,x,,,x,,NN,,NN,,, Notional Principal,NotionalPrincipal,NT,Real,"0, positive, 2 decimals",,Y,Y,"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. Although initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED. -NT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.",NN,NN,NN,NN,NN,NN,NN,NN,,,x,,NN,,NN,,, -Notional Principal,NotionalPrincipal2,NT2,Real,"0, positive, 2 decimals",,"""-Y (!)",Y,Notional amount of the second currency to be exchanged in an FXOUT CT.,,,,,,,,,,,,,,,NN,,, +NT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.",NN,NN,NN,NN,NN,NN,NN,NN,,,x,,NN,,NN,,, +Notional Principal,NotionalPrincipal2,NT2,Real,"0, positive, 2 decimals",,"""-Y (!)",Y,Notional amount of the second currency to be exchanged in an FXOUT CT.,,,,,,,,,,,,,,,NN,,, Notional Principal,Quantity,QT,Real,Positive,[1] (NT reflects single contract),,Y,"This attribute relates either to physical contracts (COM) or underlyings of traded contracts. In case of physical contracts it holds the number of underlying units of the specific good (e.g. number of barrels of oil). -In case of well defined traded contracts it holds the number of defined underlying instruments. Example: QT of STK CTs underlying a FUTUR indicates the number of those specific STK CTs which underlie the FUTUR.",,,,,,,,,"NN(,,3)",NN,,,,,,,, +In case of well defined traded contracts it holds the number of defined underlying instruments. Example: QT of STK CTs underlying a FUTUR indicates the number of those specific STK CTs which underlie the FUTUR.",,,,,,,,,"NN(,,3)",NN,,,,,,,, Notional Principal,Unit,UT,Enum,"BRL = barrel BSH = bushel GLN = gallon @@ -157,93 +157,93 @@ PND = pound (lb) STN = short ton TON = ton TRO = troy ounce - = wildcard for your own unit",,,N,The physical unit of the contract. Example: “Barrels” for an Oil COM CT.,,,,,,,,,,NN,,,,,,,, -Notional Principal,CycleAnchorDateOfPrincipalRedemption,PRANX,Timestamp,ISO8601 Datetime,[IED plus one cycle] (First principle pazment one czle after IED),,Y,Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.,,,,,"x(4,2,) ",,"x(4,2,)2 ","x(4,2,) ",,,,,,,,,, -Notional Principal,ArrayCycleAnchorDateOfPrincipalRedemption,ARPRANXj,"[Timestamp,Timestamp,…]",Array of Timestamps,Not yet defined,,Y,Same like PRANX but as array,,,,,,"NN(4,0,) ",,,,,,,,,,,, + = wildcard for your own unit",,,N,The physical unit of the contract. Example: “Barrels” for an Oil COM CT.,,,,,,,,,,NN,,,,,,,, +Notional Principal,CycleAnchorDateOfPrincipalRedemption,PRANX,Timestamp,ISO8601 Datetime,[IED plus one cycle] (First principle pazment one czle after IED),,Y,Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.,,,,,"x(4,2,) ",,"x(4,2,)2 ","x(4,2,) ",,,,,,,,,, +Notional Principal,ArrayCycleAnchorDateOfPrincipalRedemption,ARPRANXj,"[Timestamp,Timestamp,…]",Array of Timestamps,Not yet defined,,Y,Same like PRANX but as array,,,,,,"NN(4,0,) ",,,,,,,,,,,, Notional Principal,CycleOfPrincipalRedemption,PRCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",[NULL] All payments at MD),,Y,"Cycle according to which the interest payment date schedule will be calculated. In case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set). -The interval will be adjusted yet by EOMC and BDC.",,,,,"x(4,2,) ",,"x(4,2,)2 ","x(4,2,) ",,,,,,,,,, -Notional Principal,ArrayCycleOfPrincipalRedemption,ARPRCLj,"[Cycle,Cycle,…]","Array of IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",Not yet defined,,Y,Same like PRCL but as array,,,,,,"x(4,0,) ",,,,,,,,,,,, -Notional Principal,NextPrincipalRedemptionPayment,PRNXT,Real,"Positive, 2 decimals",[NULL {only ANN}] (Value gets internally calculated),Y,Y,"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).",,,,,x,,x,NN,,,,,,,,,, -Notional Principal,ArrayNextPrincipalRedemptionPayment,ARPRNXTj,"[Real,Real,…]",Array of Real positive numbers,Not yet defined,,Y,Same like PRNXT but as array,,,,,,"x(4,0,) ",,,,,,,,,,,, +The interval will be adjusted yet by EOMC and BDC.",,,,,"x(4,2,) ",,"x(4,2,)2 ","x(4,2,) ",,,,,,,,,, +Notional Principal,ArrayCycleOfPrincipalRedemption,ARPRCLj,"[Cycle,Cycle,…]","Array of IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",Not yet defined,,Y,Same like PRCL but as array,,,,,,"x(4,0,) ",,,,,,,,,,,, +Notional Principal,NextPrincipalRedemptionPayment,PRNXT,Real,"Positive, 2 decimals",[NULL {only ANN}] (Value gets internally calculated),Y,Y,"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).",,,,,x,,x,NN,,,,,,,,,, +Notional Principal,ArrayNextPrincipalRedemptionPayment,ARPRNXTj,"[Real,Real,…]",Array of Real positive numbers,Not yet defined,,Y,Same like PRNXT but as array,,,,,,"x(4,0,) ",,,,,,,,,,,, Notional Principal,ArrayIncreaseDecrease,ARINCDEC,"[Varchar,Varchar,…]","Array of Varchars which take one of the following values: INC = Increase of NT DEC = Decrease of NT",Not yet defined,,Y,"Indicates whether a certain PRNXT element in ARPRNX increases the principal (NT) or decreases it. -Applies only for ANX, NAX, LAX Maturity CTs. For all other Maturity CTs the first principal payment is always in the opposite direction of all other (following) payments. ",,,,,,"x(4,0,) ",,,,,,,,,,,, +Applies only for ANX, NAX, LAX Maturity CTs. For all other Maturity CTs the first principal payment is always in the opposite direction of all other (following) payments. ",,,,,,"x(4,0,) ",,,,,,,,,,,, Notional Principal,PurchaseDate,PRD,Timestamp,ISO8601 Datetime,[IED] (Contract was initiated at IED),,Y,"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. -Note, LEICP of the CT is not the counterparty of the transaction!",,,,"x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","x(5,0,1) ",NN,NN,"x(5,0,1) ",,"x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","NN(,,2)","NN(,,2)","x(5,0,1) " +Note, LEICP of the CT is not the counterparty of the transaction!",,,,"x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","x(5,0,1) ",NN,NN,"x(5,0,1) ",,"x(5,0,1) ","x(5,0,1) ","x(5,0,1) ","NN(,,2)","NN(,,2)","x(5,0,1) " Notional Principal,PriceAtPurchaseDate,PPRD,Real,,,Y*,Y,"Purchase price exchanged at PRD. -PPRD represents a “clean” price (includes premium/discount but not IPAC).",,,,"NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(5,1,1)",NN,NN,"NN(5,1,1)",,"NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(,,2)","NN(,,2)","NN(5,1,1)" +PPRD represents a “clean” price (includes premium/discount but not IPAC).",,,,"NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(5,1,1)",NN,NN,"NN(5,1,1)",,"NN(5,1,1)","NN(5,1,1)","NN(5,1,1)","NN(,,2)","NN(,,2)","NN(5,1,1)" Notional Principal,TerminationDate,TD,Timestamp,ISO8601 Datetime,[MD] (Contract is not terminated before MD),,Y,"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. -Note, LEICP of the CT is not the counterparty of the transaction!",,"x(6,0,1) ",,"x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ",,,"x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) " -Notional Principal,PriceAtTerminationDate,PTD,Real,,,Y*,Y,Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC,,"NN(6,1,1)",,"NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)",,,"NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)" -Notional Principal,XDayNotice,XDN,Period,,[NULL] (No rolling takes place),,Y,"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.",,x,NN,,,,,,,,,,,,,,, +Note, LEICP of the CT is not the counterparty of the transaction!",,"x(6,0,1) ",,"x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ",,,"x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) ","x(6,0,1) " +Notional Principal,PriceAtTerminationDate,PTD,Real,,,Y*,Y,Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC,,"NN(6,1,1)",,"NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)",,,"NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)","NN(6,1,1)" +Notional Principal,XDayNotice,XDN,Period,,[NULL] (No rolling takes place),,Y,"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.",,x,NN,,,,,,,,,,,,,,, Notional Principal,CreditLineAmount,CLA,Real,Positive,No credit line option,Y,Y,"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT. For ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL. -For CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).",,,,x,x,,x,x,,,,,,,,,, -Notional Principal,MarketObjectCodeOfScalingIndex ,SCMO,Varchar,,[NULL] (No scaling),,Y,,,,,"NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)",,,,,,,,,, -Notional Principal,ScalingIndexAtStatusDate ,SCIXSD,Real,"Positive, 2 decimals",,,Y,,,,,"NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)",,,,,,,,,, -Notional Principal,CycleAnchorDateOfScalingIndex,SCANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.,,,,"x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ",,,,,,,,,, +For CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).",,,,x,x,,x,x,,,,,,,,,, +Notional Principal,MarketObjectCodeOfScalingIndex ,SCMO,Varchar,,[NULL] (No scaling),,Y,,,,,"NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)",,,,,,,,,, +Notional Principal,ScalingIndexAtStatusDate ,SCIXSD,Real,"Positive, 2 decimals",,,Y,,,,,"NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)","NN(7,1,)",,,,,,,,,, +Notional Principal,CycleAnchorDateOfScalingIndex,SCANX,Timestamp,ISO8601 Datetime,,,Y,Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.,,,,"x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ",,,,,,,,,, Notional Principal,CycleOfScalingIndex,SCCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,"Cycle according to which the scaling date schedule will be calculated. In case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set. -The interval will be adjusted yet by EOMC and BDC.",,,,"x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ",,,,,,,,,, +The interval will be adjusted yet by EOMC and BDC.",,,,"x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ","x(7,2,) ",,,,,,,,,, Notional Principal,ScalingEffect,SCEF,Varchar,"xyz where x=I OR 0 y=N OR 0 -z=M OR 0",[000] (Nothing is scaled),,Y,"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.",,,,"x(7,0,) ","x(7,0,) ","x(7,0,) ","x(7,0,) ","x(7,0,) ",,,,,,,,,, -Notional Principal,MarketValueObserved,MVO,Real,,[NULL] (Value must be supplied via Connector),Y*,N,Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.,,,,x,x,x,x,x,x,x,,,x,x,x,x,x,x +z=M OR 0",[000] (Nothing is scaled),,Y,"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.",,,,"x(7,0,) ","x(7,0,) ","x(7,0,) ","x(7,0,) ","x(7,0,) ",,,,,,,,,, +Notional Principal,MarketValueObserved,MVO,Real,,[NULL] (Value must be supplied via Connector),Y*,N,Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.,,,,x,x,x,x,x,x,x,,,x,x,x,x,x,x Optionality,OptionExecutionType,OPXT,Enum,"E = European B = Bermudan -A = American",,,Y,"Defines whether the option is European (exercised at a specific date), American (exercised during a span of time) or Bermudan (exercised at certain points during a span of time).",,,,,,,,,,,,,,,,,NN, -Optionality,OptionExerciseEndDate,OPXED,Timestamp,ISO8601 Datetime,[NULL] (No option executed),,Y,"Final exercise date for American and Bermudan options, expiry date for European options. ",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,NN, +A = American",,,Y,"Defines whether the option is European (exercised at a specific date), American (exercised during a span of time) or Bermudan (exercised at certain points during a span of time).",,,,,,,,,,,,,,,,,NN, +Optionality,OptionExerciseEndDate,OPXED,Timestamp,ISO8601 Datetime,[NULL] (No option executed),,Y,"Final exercise date for American and Bermudan options, expiry date for European options. ",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,NN, Optionality,OptionStrike1,OPS1,Real,Positive,,Y,Y,"Strike price of the option. Whether it is a call/put is determined by the attribute OPTP, i.e a call or a put (or a combination of call/put). -This attribute is used for price related options such as options on bonds, stocks or FX. Interest rate related options (caps/floos) are handled within th RatReset group.",,,,,,,,,,,,,,,,,NN, -Optionality,OptionStrike2,OPS2,Real,Positive,,Y,Y,Put price in case of call/put.,,,,,,,,,,,,,,,,,x, +This attribute is used for price related options such as options on bonds, stocks or FX. Interest rate related options (caps/floos) are handled within th RatReset group.",,,,,,,,,,,,,,,,,NN, +Optionality,OptionStrike2,OPS2,Real,Positive,,Y,Y,Put price in case of call/put.,,,,,,,,,,,,,,,,,x, Optionality,OptionType,OPTP,Enum,"C = Call P = Put -CP = Call and Put in combination",,,Y,Defines whether the option is a call or put or a combination of it. This field has to be seen in combination with CNTRL where it is defined whether LEIRC is the buyer or the seller.,,,,,,,,,,,,,,,,,NN, +CP = Call and Put in combination",,,Y,Defines whether the option is a call or put or a combination of it. This field has to be seen in combination with CNTRL where it is defined whether LEIRC is the buyer or the seller.,,,,,,,,,,,,,,,,,NN, Optionality,CycleAnchorDateOfOptionality,OPANX,Timestamp,ISO8601 Datetime,[NULL] (No cycle single srike),,Y,"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. - Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. -- American and Bermudan style Options: Begin of exercise period.",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,x, +- American and Bermudan style Options: Begin of exercise period.",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,x, Optionality,CycleOfOptionality,OPCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,"Cycle according to which the option execution date schedule will be calculated. OPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality). -The interval will be adjusted yet by EOMC and BDC.",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,x, +The interval will be adjusted yet by EOMC and BDC.",,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,x, Optionality,PenaltyType,PYTP,Enum,"O=No penalty A=Absolute N=Nominal Rate -I=Current Interest Rate Differential",O,,Y,Defines whether prepayment is linked to a penalty and of which kind.,,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,, -Optionality,PenaltyRate,PYRT,Real,Positive,0,Y,Y,Either the rate or the absolute amount of the prepayment.,,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,, +I=Current Interest Rate Differential",O,,Y,Defines whether prepayment is linked to a penalty and of which kind.,,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,, +Optionality,PenaltyRate,PYRT,Real,Positive,0,Y,Y,Either the rate or the absolute amount of the prepayment.,,,,"x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ","x(8,1,) ",,,,,,,,,, Optionality,PrepaymentEffect,PPEF,Enum,"N=No prepayment A=Prepayment allowed, prepayment results in reduction of PRNXT while MD remains -M=Prepayment allowed, prepayment results in reduction of MD while PRNXT remains",N (No prepayment),,Y,"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract",,,,"x(8,0,) ","x(8,0,) ","x(8,0,) ","x(8,0,) ","x(8,0,) ",,,,,,,,,, -Optionality,MaximumPenaltyFreeDisbursement,MPFD,Real,"0, positive, 2 decimals",[NT] (Entire amount can be drawn without penalty),,N,Defines the notional amount which can be withdrawn before XDN without penalty,,x,,,,,,,,,,,,,,,, -Rate Reset,CycleAnchorDateOfRateReset,RRANX,Timestamp,ISO8601 Datetime,[IED plus one RR cycle] (Firs reset one RRCL after IED),,Y,Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.,,"x(9,0,) ","x(9,0,) ","x(9,0,) ","x(9,0,) ",,"x(9,0,)2 ","x(9,2,) ",,,,,"x(9,2,) ",,,,, -Rate Reset,ArrayCycleAnchorDateOfRateReset,ARRRANX,"[Timestamp,Timestamp,…]",Array of Timestamps,,,Y,Same like RRANX but as array,,,,,,"x(9,0,) ",,,,,,,,,,,, +M=Prepayment allowed, prepayment results in reduction of MD while PRNXT remains",N (No prepayment),,Y,"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract",,,,"x(8,0,) ","x(8,0,) ","x(8,0,) ","x(8,0,) ","x(8,0,) ",,,,,,,,,, +Optionality,MaximumPenaltyFreeDisbursement,MPFD,Real,"0, positive, 2 decimals",[NT] (Entire amount can be drawn without penalty),,N,Defines the notional amount which can be withdrawn before XDN without penalty,,x,,,,,,,,,,,,,,,, +Rate Reset,CycleAnchorDateOfRateReset,RRANX,Timestamp,ISO8601 Datetime,[IED plus one RR cycle] (Firs reset one RRCL after IED),,Y,Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.,,"x(9,0,) ","x(9,0,) ","x(9,0,) ","x(9,0,) ",,"x(9,0,)2 ","x(9,2,) ",,,,,"x(9,2,) ",,,,, +Rate Reset,ArrayCycleAnchorDateOfRateReset,ARRRANX,"[Timestamp,Timestamp,…]",Array of Timestamps,,,Y,Same like RRANX but as array,,,,,,"x(9,0,) ",,,,,,,,,,,, Rate Reset,CycleOfRateReset,RRCL,Cycle,"IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",[NULL] (No rate reset after RRANX),,Y,"Cycle according to which the rate reset date schedule will be calculated. In case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set. -The interval will be adjusted yet by EOMC and BDC.",,"x(9,0,) ","x(9,0,) ","x(9,0,) ","x(9,0,) ",,"x(9,0,)2 ","x(9,2,) ",,,,,"x(9,2,) ",,,,, -Rate Reset,ArrayCycleOfRateReset,ARRRCL,"[Cycle,Cycle,…]","Array of IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,Same like RRCL but as array,,,,,,"x(9,1,) ",,,,,,,,,,,, +The interval will be adjusted yet by EOMC and BDC.",,"x(9,0,) ","x(9,0,) ","x(9,0,) ","x(9,0,) ",,"x(9,0,)2 ","x(9,2,) ",,,,,"x(9,2,) ",,,,, +Rate Reset,ArrayCycleOfRateReset,ARRRCL,"[Cycle,Cycle,…]","Array of IPS, where I=Integer, P=[D=Days, W=Weeks, M=Months, Q=Quarters, H=Halfyear, Y=Year], S=[+=long stub,- short stub, {} if S empty then - for short stub]",,,Y,Same like RRCL but as array,,,,,,"x(9,1,) ",,,,,,,,,,,, Rate Reset,RateSpread,RRSP,Real,,[0] (RRMO will be the rate),,Y,"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. -The following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.",,"NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ",,"NN(9,1,) ",NN,,,,,NN,,,,, -Rate Reset,ArrayRate,ARRATE,"[Real,Real,…]",,,,Y,"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.",,,,,,"NN(9,1,) ",,,,,,,,,,,, +The following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.",,"NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ",,"NN(9,1,) ",NN,,,,,NN,,,,, +Rate Reset,ArrayRate,ARRATE,"[Real,Real,…]",,,,Y,"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.",,,,,,"NN(9,1,) ",,,,,,,,,,,, Rate Reset,ArrayFixedVariable,ARFIXVAR,"[ Enum, Enum, ...]","F = Fixed rate -V = Variable rate",,,Y,"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.",,,,,,"NN(9,1,) ",,,,,,,,,,,, -Rate Reset,MarketObjectCodeRateReset,RRMO,Varchar,,"[Primary object of CUR] (Every CUR has a primary object, this will be taken)",,Y,"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely. -Unique codes for market objects must be used.",,"NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ",NN,,,,,NN,,,,, +V = Variable rate",,,Y,"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.",,,,,,"NN(9,1,) ",,,,,,,,,,,, +Rate Reset,MarketObjectCodeOfRateReset,RRMO,Varchar,,"[Primary object of CUR] (Every CUR has a primary object, this will be taken)",,Y,"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely. +Unique codes for market objects must be used.",,"NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ","NN(9,1,) ",NN,,,,,NN,,,,, Rate Reset,LifeCap,RRLC,Real,,[NULL] (no life cap applies),,Y,"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract. -For CAPFL CTs this represents the cap strike rate.",,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,,"x(7,2,) " +For CAPFL CTs this represents the cap strike rate.",,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,,"x(7,2,) " Rate Reset,LifeFloor,RRLF,Real,,[NULL] (no life floor applies),,Y,"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract. -For CAPFL CTs this represents the floor strike rate.",,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,,"x(7,2,) " -Rate Reset,PeriodCap,RRPC,Real,Positive,[NULL] (no period cap applies),,Y,For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.,,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,, -Rate Reset,PeriodFloor,RRPF,Real,Positive,[NULL] (no period floor applies),,Y,For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.,,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,, +For CAPFL CTs this represents the floor strike rate.",,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,,"x(7,2,) " +Rate Reset,PeriodCap,RRPC,Real,Positive,[NULL] (no period cap applies),,Y,For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.,,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,, +Rate Reset,PeriodFloor,RRPF,Real,Positive,[NULL] (no period floor applies),,Y,For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.,,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,,,,,, Rate Reset,CyclePointOfRateReset,RRPNT,Enum,"B = at the beginning of the cycle (B, BeginningOf can be used interchangeably) -E = at the end of the cycle (E, EndOf can be used interchangeably)",[BeginningOf] (Rates are fixed at the beginning of the cycle),,Y,"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.",,,,"x(9,1,)1 ","x(9,1,)1 ","x(9,1,)1 ",,,,,,,"x(9,1,)1 ",,,,, -Rate Reset,FixingDays,RRFIX,Period,,[0D] (Rates are fixed and applied at the same date),,Y,Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, -Rate Reset,NextResetRate,RRNXT,Real,,[NULL] (No next rate exists yet),,Y,"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!",,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, +E = at the end of the cycle (E, EndOf can be used interchangeably)",[BeginningOf] (Rates are fixed at the beginning of the cycle),,Y,"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.",,,,"x(9,1,)1 ","x(9,1,)1 ","x(9,1,)1 ",,,,,,,"x(9,1,)1 ",,,,, +Rate Reset,FixingDays,RRFIX,Period,,[0D] (Rates are fixed and applied at the same date),,Y,Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.,,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, +Rate Reset,NextResetRate,RRNXT,Real,,[NULL] (No next rate exists yet),,Y,"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!",,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, Rate Reset,RateMultiplier,RRMLT,Real,,[1] (Rate will be taken as per observation),,Y,"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. -However, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP. ",,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, +However, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP. ",,,"x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ","x(9,1,) ",,,,,"x(9,1,) ",,,,, Settlement,SettlementDate,STD,Timestamp,ISO8601 Datetime,[NULL] (Settlement will take place at the end of the contracts),,Y,"Date where combined contracts are settled (cash or physical delivery). This can be after the actual fixing date (OPXED for OPTNS or MD for FXOUT). -Type of settlement, cash or physical delivery, is determined by the attribute DeliverySettlement.",,,,,,,,,,,,,,,"x(,,1) ","NN(,,1) ","x(,,1) ", +Type of settlement, cash or physical delivery, is determined by the attribute DeliverySettlement.",,,,,,,,,,,,,,,"x(,,1) ","NN(,,1) ","x(,,1) ", Settlement,DeliverySettlement,DS,Enum,"S=Settlement(Cash) D=Delivery","[D for basic CT, S for combined CT´s] (Basic contracts are delivered, combined contracts settled)",,Y,"Indicates whether the contract is settled in cash or physical delivery. -In case of “physical delivery”, the underlying contract and associated (future) cash flows are effectively exchanged. In case of “cash” settlement, the current market value of the underlying contract determines the cash flow exchanged.",,,,,,,,,,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ", +In case of “physical delivery”, the underlying contract and associated (future) cash flows are effectively exchanged. In case of “cash” settlement, the current market value of the underlying contract determines the cash flow exchanged.",,,,,,,,,,,,,"x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ","x(,,1) ", Settlement,FuturesPrice,PFUT,Real,,,,Y,"The price the counterparties agreed upon at which the underlying contract (of a FUTUR) is exchanged/settled at STD. Quoting is different for different types of underlyings: Fixed Income = in percentage, all others in nominal terms.",,,,,,,,,,,,,,,,NN,, \ No newline at end of file diff --git a/data/forms/json/form_ANN.json b/data/forms/json/form_ANN.json index 69ecdec..b42ec76 100644 --- a/data/forms/json/form_ANN.json +++ b/data/forms/json/form_ANN.json @@ -501,7 +501,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_CLM.json b/data/forms/json/form_CLM.json index 464e520..fa00be9 100644 --- a/data/forms/json/form_CLM.json +++ b/data/forms/json/form_CLM.json @@ -287,7 +287,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_LAM.json b/data/forms/json/form_LAM.json index 5d2027b..00e1281 100644 --- a/data/forms/json/form_LAM.json +++ b/data/forms/json/form_LAM.json @@ -501,7 +501,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_LAX.json b/data/forms/json/form_LAX.json index 95a5ce5..5fef87d 100644 --- a/data/forms/json/form_LAX.json +++ b/data/forms/json/form_LAX.json @@ -517,7 +517,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_NAM.json b/data/forms/json/form_NAM.json index 61183ab..5dcbc83 100644 --- a/data/forms/json/form_NAM.json +++ b/data/forms/json/form_NAM.json @@ -493,7 +493,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_PAM.json b/data/forms/json/form_PAM.json index b48c865..7534657 100644 --- a/data/forms/json/form_PAM.json +++ b/data/forms/json/form_PAM.json @@ -445,7 +445,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_SWPPV.json b/data/forms/json/form_SWPPV.json index 3cb042e..54ff8b5 100644 --- a/data/forms/json/form_SWPPV.json +++ b/data/forms/json/form_SWPPV.json @@ -279,7 +279,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/forms/json/form_UMP.json b/data/forms/json/form_UMP.json index 2ea4e04..24e530f 100644 --- a/data/forms/json/form_UMP.json +++ b/data/forms/json/form_UMP.json @@ -303,7 +303,7 @@ }, { "Group": "Rate Reset", - "Name": "MarketObjectCodeRateReset", + "Name": "MarketObjectCodeOfRateReset", "Type": "Varchar", "List": "[NA]", "Description": "Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.nUnique codes for market objects must be used.", diff --git a/data/public-data/form_ANN.json b/data/public-data/form_ANN.json index 1d9a5dd..a24b041 100644 --- a/data/public-data/form_ANN.json +++ b/data/public-data/form_ANN.json @@ -1 +1 @@ -{"Identifier":"form_ANN","ContractType":"ANN","Description":"General description of ANN","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(,,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(,,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"AmortizationDate","Type":"x","List":"some list","Description":"This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.","Applicability":"x"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)2"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)2"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"x"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_ANN","ContractType":"ANN","Description":"General description of ANN","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(,,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(,,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"AmortizationDate","Type":"x","List":"some list","Description":"This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.","Applicability":"x"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)2"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)2"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"x"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_ANX.json b/data/public-data/form_ANX.json index 431741d..310031a 100644 --- a/data/public-data/form_ANX.json +++ b/data/public-data/form_ANX.json @@ -1 +1 @@ -{"Identifier":"form_ANX","ContractType":"ANX","Description":"General description of ANX","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"ArrayCycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPANX but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"ArrayCycleOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPCL but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"AmortizationDate","Type":"x","List":"some list","Description":"This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.","Applicability":"x"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ArrayCycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRANX but as array","Applicability":"NN(4,0,)2"},{"Group":"Notional Principal","Name":"ArrayCycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRCL but as array","Applicability":"x(4,0,)2"},{"Group":"Notional Principal","Name":"ArrayNextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Same like PRNXT but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Same like RRANX but as array","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"ArrayCycleOfRateReset","Type":"x","List":"some list","Description":"Same like RRCL but as array","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"ArrayRate","Type":"x","List":"some list","Description":"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"ArrayFixedVariable","Type":"List","List":"some list","Description":"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_ANX","ContractType":"ANX","Description":"General description of ANX","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"ArrayCycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPANX but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"ArrayCycleOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPCL but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"AmortizationDate","Type":"x","List":"some list","Description":"This Date is used to calculate the annuity amounts for ANN and ANX NGX CT's. Needs only to be set in case where the contract balloon at MD and MD is less than AD.","Applicability":"x"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ArrayCycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRANX but as array","Applicability":"NN(4,0,)2"},{"Group":"Notional Principal","Name":"ArrayCycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRCL but as array","Applicability":"x(4,0,)2"},{"Group":"Notional Principal","Name":"ArrayNextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Same like PRNXT but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Same like RRANX but as array","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"ArrayCycleOfRateReset","Type":"x","List":"some list","Description":"Same like RRCL but as array","Applicability":"x(9,0,)2"},{"Group":"Rate Reset","Name":"ArrayRate","Type":"x","List":"some list","Description":"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"ArrayFixedVariable","Type":"List","List":"some list","Description":"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_CLM.json b/data/public-data/form_CLM.json index c7d1b15..f09719c 100644 --- a/data/public-data/form_CLM.json +++ b/data/public-data/form_CLM.json @@ -1 +1 @@ -{"Identifier":"form_CLM","ContractType":"CLM","Description":"General description of CLM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"XDayNotice","Type":"x","List":"some list","Description":"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.","Applicability":"NN"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_CLM","ContractType":"CLM","Description":"General description of CLM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"XDayNotice","Type":"x","List":"some list","Description":"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.","Applicability":"NN"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_LAM.json b/data/public-data/form_LAM.json index 4a43cba..70966d4 100644 --- a/data/public-data/form_LAM.json +++ b/data/public-data/form_LAM.json @@ -1 +1 @@ -{"Identifier":"form_LAM","ContractType":"LAM","Description":"General description of LAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"x"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} \ No newline at end of file +{"Identifier":"form_LAM","ContractType":"LAM","Description":"General description of LAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"x"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} \ No newline at end of file diff --git a/data/public-data/form_LAX.json b/data/public-data/form_LAX.json index 09d1316..9242beb 100644 --- a/data/public-data/form_LAX.json +++ b/data/public-data/form_LAX.json @@ -1 +1 @@ -{"Identifier":"form_LAX","ContractType":"LAX","Description":"General description of LAX","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"ArrayCycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPANX but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"ArrayCycleOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPCL but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ArrayCycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRANX but as array","Applicability":"NN(4,0,)"},{"Group":"Notional Principal","Name":"ArrayCycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRCL but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"ArrayNextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Same like PRNXT but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"ArrayIncreaseDecrease","Type":"x","List":"some list","Description":"Indicates whether a certain PRNXT element in ARPRNX increases the principal (NT) or decreases it.\nApplies only for ANX, NAX, LAX Maturity CTs. For all other Maturity CTs the first principal payment is always in the opposite direction of all other (following) payments.","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Same like RRANX but as array","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleOfRateReset","Type":"x","List":"some list","Description":"Same like RRCL but as array","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"ArrayRate","Type":"x","List":"some list","Description":"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"ArrayFixedVariable","Type":"List","List":"some list","Description":"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_LAX","ContractType":"LAX","Description":"General description of LAX","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"ArrayCycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPANX but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"ArrayCycleOfInterestPayment","Type":"x","List":"some list","Description":"Same like IPCL but as array","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ArrayCycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRANX but as array","Applicability":"NN(4,0,)"},{"Group":"Notional Principal","Name":"ArrayCycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Same like PRCL but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"ArrayNextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Same like PRNXT but as array","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"ArrayIncreaseDecrease","Type":"x","List":"some list","Description":"Indicates whether a certain PRNXT element in ARPRNX increases the principal (NT) or decreases it.\nApplies only for ANX, NAX, LAX Maturity CTs. For all other Maturity CTs the first principal payment is always in the opposite direction of all other (following) payments.","Applicability":"x(4,0,)"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Same like RRANX but as array","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"ArrayCycleOfRateReset","Type":"x","List":"some list","Description":"Same like RRCL but as array","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"ArrayRate","Type":"x","List":"some list","Description":"For array-type rate reset schedules, this attribute represents either an interest rate (corresponding to IPNR) or a spread (corresponding to RRSP). Which case applies depends on the attribute ARFIXVAR: if ARFIXVAR=”FIX” then it represents the new IPNR and if ARFIXVAR=”VAR” then the applicable RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"ArrayFixedVariable","Type":"List","List":"some list","Description":"For array-type rate reset schedules, this attributes defines the meaning of ARRATE.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_NAM.json b/data/public-data/form_NAM.json index 81f4524..d118812 100644 --- a/data/public-data/form_NAM.json +++ b/data/public-data/form_NAM.json @@ -1 +1 @@ -{"Identifier":"form_NAM","ContractType":"NAM","Description":"General description of NAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"NN"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,2,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,2,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_NAM","ContractType":"NAM","Description":"General description of NAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestCalculationBase","Type":"x","List":"some list","Description":"Date from which the interest calculation base date schedule is calculated according to the cycle length. The first interest calculation base event takes place on this anchor.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"CycleOfInterestCalculationBase","Type":"x","List":"some list","Description":"Concerning the format see PRCL. \nDefines the subsequent adjustment points to NT of the interest payment calculation base.","Applicability":"x(3,4 ,)"},{"Group":"Interest","Name":"InterestCalculationBase","Type":"List","List":"some list","Description":"This is important for amortizing instruments. The basis of interest calculation is normally the notional outstanding amount as per SD. This is considered the fair basis and in many countries the only legal basis. If NULL or NTSD is selected, this is the case. \nAlternative bases (normally in order to favor the lending institution) are found. In the extreme case the original balance (PCDD=NT+PDCDD) never gets adjusted. In this case PCDD must be chosen. \nAn intermediate case exist wherre balances do get adjusted, however with lags. In this case NTL mut be selected and anchor dates and cycles must be set.","Applicability":"x(3,0,)"},{"Group":"Interest","Name":"InterestCalculationBaseAmount","Type":"x","List":"some list","Description":"This is the amount used for the calculation of interest. Calculation base per SD.","Applicability":"NN(3,3 ,)"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"x"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfPrincipalRedemption","Type":"x","List":"some list","Description":"Date from which the principal payment date schedule is calculated according to the cycle length. The first principal payment event takes place on this anchor.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"CycleOfPrincipalRedemption","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case PRCL is not set, then there will only be one principal payment event at MD (and possibly at PRANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(4,2,)"},{"Group":"Notional Principal","Name":"NextPrincipalRedemptionPayment","Type":"x","List":"some list","Description":"Amount of principal that will be paid during the redemption cycle at the next payment date. For amortizing contracts like ANN, NAM, ANX, and NAX this is the total periodic payment amount (sum of interest and principal).","Applicability":"NN"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,2,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,2,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_PAM.json b/data/public-data/form_PAM.json index 082c27a..026a43f 100644 --- a/data/public-data/form_PAM.json +++ b/data/public-data/form_PAM.json @@ -1 +1 @@ -{"Identifier":"form_PAM","ContractType":"PAM","Description":"General description of PAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"NN"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} +{"Identifier":"form_PAM","ContractType":"PAM","Description":"General description of PAM","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN(,,1)"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN(,,2)"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(8,1,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(2,0,)"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Interest","Name":"CapitalizationEndDate","Type":"x","List":"some list","Description":"If IPCED is set, then interest is not paid or received but added to the balance (NT) until IPCED. If IPCED does not coincide with an IP cycle, one additional interest payment gets calculated at IPCED and capitalized. Thereafter normal interest payments occur.","Applicability":"x"},{"Group":"Interest","Name":"CyclePointOfInterestPayment","Type":"List","List":"some list","Description":"Usually, interest is paid at the end of each IPCL which corresponds to a IPPNT value of E which is also the default. If interest payment occurs at the beginning of the cycle, the value is B.","Applicability":"x(2,1,)1"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PremiumDiscountAtIED","Type":"x","List":"some list","Description":"Total original premium or discount that has been set at CDD and will be added to the (notional) cash flow at IED (cash flow at IED = NT+PDIED, w.r.t. an RPA CT). \nNegative value for discount and positive for premium.\nNote, similar to interest the PDIED portion is part of P&L.","Applicability":"x"},{"Group":"Notional Principal","Name":"MaturityDate","Type":"x","List":"some list","Description":"Marks the contractual end of the lifecycle of a CT. Generally, date of the last cash flows. \nThis includes normally a principal and an interest payment. Some Maturity CTs as perpetuals (PBN) do not have such a date. For variable amortizing contracts of the ANN CT, this date might be less than the scheduled end of the contract (which is deduced from the periodic payment amount \nPRNXT). In this case it balloons.","Applicability":"NN"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"PurchaseDate","Type":"x","List":"some list","Description":"If a contract is bought after initiation (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PPRD) and transfer of the security happens. In other words, PRD - if set - takes the role otherwise IED has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(5,0,1)"},{"Group":"Notional Principal","Name":"PriceAtPurchaseDate","Type":"x","List":"some list","Description":"Purchase price exchanged at PRD. \nPPRD represents a “clean” price (includes premium/discount but not IPAC).","Applicability":"NN(5,1,1)"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"CreditLineAmount","Type":"x","List":"some list","Description":"If defined, gives the total amount that can be drawn from a credit line. The remaining amount that can still be drawn is given by CLA-NT.\nFor ANN, NAM, the credit line can only be drawn prior to PRANX-1PRCL.\nFor CRL, the remaining amount that can still be drawn is given by CLA-Sum(NT of attached contracts).","Applicability":"x"},{"Group":"Notional Principal","Name":"MarketObjectCodeOfScalingIndex","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"ScalingIndexAtStatusDate","Type":"x","List":"some list","Applicability":"NN(7,1,)"},{"Group":"Notional Principal","Name":"CycleAnchorDateOfScalingIndex","Type":"x","List":"some list","Description":"Date from which the scaling date schedule is calculated according to the cycle length. The first scaling event takes place on this anchor.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"CycleOfScalingIndex","Type":"x","List":"some list","Description":"Cycle according to which the scaling date schedule will be calculated.\nIn case SCCL is not set, then there will only be one scaling event at SCANX given SCANX is set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(7,2,)"},{"Group":"Notional Principal","Name":"ScalingEffect","Type":"x","List":"some list","Description":"Indicates which payments are scaled. I = Interest payments, N = Nominal payments and M = Maximum deferred interest amount. They can be scaled in any combination.","Applicability":"x(7,0,)"},{"Group":"Notional Principal","Name":"MarketValueObserved","Type":"x","List":"some list","Description":"Value as observed in the market at SD per unit. Incase of fixed income instruments it is a fraction.","Applicability":"x"},{"Group":"Optionality","Name":"OptionExerciseEndDate","Type":"x","List":"some list","Description":"Final exercise date for American and Bermudan options, expiry date for European options.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleAnchorDateOfOptionality","Type":"x","List":"some list","Description":"Used for Basic Maturities (such as PAM, RGM, ANN, NGM and their Step-up versions) and American and Bermudan style options. \n- Basic Maturities: Within the group of these Maturities, it indicates the possibility of prepayments. Prepayment features are controlled by Behavior. \n- American and Bermudan style Options: Begin of exercise period.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"CycleOfOptionality","Type":"x","List":"some list","Description":"Cycle according to which the option execution date schedule will be calculated.\nOPCL can be NULL for American Options or Prepayment Optionality in which case the optionality period starts at OPANX and ends at OPXED (for american options) or MD (in case of prepayment optionality).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyType","Type":"List","List":"some list","Description":"Defines whether prepayment is linked to a penalty and of which kind.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PenaltyRate","Type":"x","List":"some list","Description":"Either the rate or the absolute amount of the prepayment.","Applicability":"x(8,1,)"},{"Group":"Optionality","Name":"PrepaymentEffect","Type":"List","List":"some list","Description":"This attribute defines whether or not the right of prepayment exists and if yes, how prepayment affects the remaining principal redemption schedule of the contract","Applicability":"x(8,0,)"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"LifeCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a cap on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the cap strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"LifeFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents a floor on the interest rate that applies during the entire lifetime of the contract.\nFor CAPFL CTs this represents the floor strike rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodCap","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum positive rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"PeriodFloor","Type":"x","List":"some list","Description":"For variable rate basic CTs this represents the maximum negative rate change per rate reset cycle.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"CyclePointOfRateReset","Type":"List","List":"some list","Description":"Normally rates get reset at the beginning of any resetting cycles. There are contracts where the rate is not set at the beginning but at the end of the cycle and then applied to the previous cycle (post-fixing); in other words the rate applies before it is fixed. Hence, the new rate is not known during the entire cycle where it applies. Therefore, the rate will be applied backwards at the end of the cycle. This happens through a correction of interest accrued.","Applicability":"x(9,1,)1"},{"Group":"Rate Reset","Name":"FixingDays","Type":"x","List":"some list","Description":"Interest rate resets (adjustments) are usually fixed one or two days (usually Business Days) before the new rate applies (defined by the rate reset schedule). This field holds the period between fixing and application of a rate.","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"NextResetRate","Type":"x","List":"some list","Description":"Holds the new rate that has been fixed already (cf. attribute FixingDays) but not applied. This new rate will be applied at the next rate reset event (after SD and according to the rate reset schedule). Attention, RRNXT must be set to NULL after it is applied!","Applicability":"x(9,1,)"},{"Group":"Rate Reset","Name":"RateMultiplier","Type":"x","List":"some list","Description":"Interest rate multiplier. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread.\nHowever, in some cases like reverse or super floater contracts an additional rate multiplier applies. In this case, the new rate is determined as: IPNR after rate reset = Rate selected from the market object * RRMLT + RRSP.","Applicability":"x(9,1,)"}]} diff --git a/data/public-data/form_UMP.json b/data/public-data/form_UMP.json index 2746a24..27bb226 100644 --- a/data/public-data/form_UMP.json +++ b/data/public-data/form_UMP.json @@ -1 +1 @@ -{"Identifier":"form_UMP","ContractType":"UMP","Description":"General description of UMP","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"XDayNotice","Type":"x","List":"some list","Description":"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.","Applicability":"x"},{"Group":"Optionality","Name":"MaximumPenaltyFreeDisbursement","Type":"x","List":"some list","Description":"Defines the notional amount which can be withdrawn before XDN without penalty","Applicability":"x"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"}]} +{"Identifier":"form_UMP","ContractType":"UMP","Description":"General description of UMP","Version":"20181206","Terms":[{"Group":"Calendar","Name":"Calendar","Type":"List","List":"some list","Description":"Calendar defines the non-working days which affect the dates of contract events (CDE's) in combination with EOMC and BDC.","Applicability":"x"},{"Group":"Calendar","Name":"BusinessDayConvention","Type":"List","List":"some list","Description":"BDC's are linked to a calendar. Calendars have working and non-working days. A BDC value other than N means that cash flows cannot fall on non-working days, they must be shifted to the next business day (following) or the previous on (preceding).\nThese two simple rules get refined twofold:\n- Following modified (preceding): Same like following (preceding), however if a cash flow gets shifted into a new month, then it is shifted to preceding (following) business day.\n- Shift/calculate (SC) and calculate/shift (CS). Accrual, principal, and possibly other calculations are affected by this choice. In the case of SC first the dates are shifted and after the shift cash flows are calculated. In the case of CS it is the other way round.\nAttention: Does not affect non-cyclical dates such as PRD, MD, TD, IPCED since they can be set to the correct date directly.","Applicability":"x"},{"Group":"Calendar","Name":"EndOfMonthConvention","Type":"List","List":"some list","Description":"When computing schedules a special problem arises if an anchor date is at the end of a month and a cycle of monthly or quarterly is applied (yearly in the case of leap years only). How do we have to interpret an anchor date April 30 plus 1M cycles? In case where EOM is selected, it will jump to the 31st of May, then June 30, July 31 and so on. If SM is selected, it will jump to the 30st always with of course an exception in February. \nThis logic applies for all months having 30 or less days and an anchor date at the last day. Month with 31 days will at any rate jump to the last of the month if anchor date is on the last day.","Applicability":"x"},{"Group":"Contract identification","Name":"ContractType","Type":"List","List":"some list","Description":"The ContractType is the most important information. It defines the cash flow generating pattern of a contract. The ContractType information in combination with a given state of the risk factors will produce a deterministic sequence of cash flows which are the basis of any financial analysis.","Applicability":"NN"},{"Group":"Contract identification","Name":"StatusDate","Type":"x","List":"some list","Description":"SD holds the date per which all attributes of the record were updated. This is especially important for the highly dynamic attributes like Accruals, Notional, interest rates in variable instruments etc.","Applicability":"NN"},{"Group":"Contract identification","Name":"ContractRole","Type":"List","List":"some list","Description":"CNTRL defines which position the LEIRC ( the creator of the contract record ) takes in a contract. For example, whether the contract is an asset or liability, a long or short position for the LEIRC. \nMost contracts are simple on or off balance sheet positions which are assets, liabilities. Such contracts can also play a secondary role as a collateral. \nThe attribute is highly significant since it determines the direction of all cash flows. The exact meaning is given with each CT in the ACTUS High Level Specification document.","Applicability":"NN"},{"Group":"Contract identification","Name":"LegalEntityIDRecordCreator","Type":"x","List":"some list","Description":"This identifies the legal entity creating the contract record. The counterparty of the contract is tracked in LEICP.\nLEIRC is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEIRC may also refer to a group taking a joint risk.","Applicability":"NN"},{"Group":"Contract identification","Name":"ContractID","Type":"x","List":"some list","Description":"Unique identifier of a contract. \nIf the system is used on a single firm level, an internal unique ID can be generated. If used on a national or globally level, a globally unique ID is required.","Applicability":"NN"},{"Group":"Counterparty","Name":"LegalEntityIDCounterparty","Type":"x","List":"some list","Description":"LEICP identifies the counterparty to the LEIRC in this contract.\nLEICP is ideally the official LEI which can be a firm, a government body, even a single person etc. However, this can also refer to a annonymous group in which case this information is not to be disclosed. LEICP may also refer to a group taking a joint risk or more generally, LEICP is the main counterparty, against which the contract has been settled.","Applicability":"NN"},{"Group":"Counterparty","Name":"ContractStatus","Type":"List","List":"some list","Description":"Indicates the current contract performance status. Different states of the contract range from performing to default.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"Seniority","Type":"List","List":"some list","Description":"Refers to the order of repayment in the event of a sale or default of the issuer. ","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"NonPerformingDate","Type":"x","List":"some list","Description":"The date at which the ContractStatus changed to DF (=Default).","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"PrepaymentPeriod","Type":"x","List":"some list","Description":"If real payment happens before scheduled payment date minus PPP, then it is considered a prepayment. Effect of prepayments are further described in PPEF and related fields.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"GracePeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus GRP, then the payment is in delay.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyPeriod","Type":"x","List":"some list","Description":"If real payment happens after scheduled payment date plus DLP, then the counterparty is in technical default. This means that the creditor legally has the right to declare default of the debtor.","Applicability":"x(,,1)"},{"Group":"Counterparty","Name":"DelinquencyRate","Type":"x","List":"some list","Description":"Rate at which Delinquency Payments accrue on NT (in addition to the interest rate) during the DelinquencyPeriod","Applicability":"x(,,1)"},{"Group":"Fees","Name":"CycleAnchorDateOfFee","Type":"x","List":"some list","Description":"Date from which the fee payment date schedule is calculated according to the cycle length. The first fee payment event takes place on this anchor.","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"CycleOfFee","Type":"x","List":"some list","Description":"Defines in combination with FEANX the payment points of fees","Applicability":"x(1,2, )"},{"Group":"Fees","Name":"FeeBasis","Type":"List","List":"some list","Description":"Basis, on which Fee is calculated. For FEB=’A’, FER is interpreted as an absolute amount to be paid at every FP event and for FEB=’N’, FER represents a rate at which FP amounts accrue on the basis of the contract’s NT.","Applicability":"NN(1,1, )"},{"Group":"Fees","Name":"FeeRate","Type":"x","List":"some list","Description":"Rate of Fee which is a percentage of the underlying or FER is an absolute amount. For all contracts where FEB does not apply (cf. business rules), FER is interpreted as an absolute amount.","Applicability":"x(1,0, )"},{"Group":"Fees","Name":"FeeAccrued","Type":"x","List":"some list","Description":"Accrued fees as per SD","Applicability":"x(1,1, )"},{"Group":"Interest","Name":"CycleAnchorDateOfInterestPayment","Type":"x","List":"some list","Description":"Date from which the interest payment date schedule is calculated according to the cycle length. The first interest payment event takes place on this anchor.","Applicability":"x"},{"Group":"Interest","Name":"CycleOfInterestPayment","Type":"x","List":"some list","Description":"Cycle according to which the interest payment date schedule will be calculated.\nIn case IPCL is not set, then there will only be an interest payment event at MD (and possibly at IPANX if set).\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x"},{"Group":"Interest","Name":"NominalInterestRate","Type":"x","List":"some list","Description":"The nominal interest rate which will be used to calculate accruals and the next interest payment at the next IP date. NT multiplied with IPNR is the base for the interest payment calculation. The relevant time period is a function of IPDC. \nIf the contract is variable (RRANX set) this field is periodically updated per SD. \nIn the case of plan vanilla interest rate swaps (IRSPV) this defines the rate of fixed leg.","Applicability":"NN"},{"Group":"Interest","Name":"DayCountConvention","Type":"List","List":"some list","Description":"Method defining how days are counted between two dates. This finally defines the year fraction in accrual calculations.","Applicability":"NN"},{"Group":"Interest","Name":"AccruedInterest","Type":"x","List":"some list","Description":"Accrued interest as per SD. In case of NULL, this value will be recalculated using IPANX, IPCL and IPNR information. Can be used to represent irregular next IP payments.","Applicability":"x"},{"Group":"Notional Principal","Name":"Currency","Type":"x","List":"some list","Description":"The currency of the cash flows.","Applicability":"NN"},{"Group":"Notional Principal","Name":"ContractDealDate","Type":"x","List":"some list","Description":"This date signifies the origination of the contract where an agreement between the customer and the bank has been settled. From this date on, the institution will have a (market) risk position for financial contracts. This is even the case when IED is in future.","Applicability":"NN(,,1)"},{"Group":"Notional Principal","Name":"InitialExchangeDate","Type":"x","List":"some list","Description":"Date of the initial cash flow for Maturity and Non-Maturity CT's. It also coincides with the beginning of interest accrual calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"NotionalPrincipal","Type":"x","List":"some list","Description":"Total remaining outstanding principal as per SD. Hence, for amortizing instruments NT will be updated per SD in order to represent current outstanding principal. \nAlthough initial NT will be defined at CDD it will only flow at IED or PRD. The first Cash Flow at IED or PRD is equal to NT+PDIED.\nNT is generally the basis on which interest payments are calculated. If IPCBS is set, IPCBS may introduce a different basis for interest payment calculation.","Applicability":"NN"},{"Group":"Notional Principal","Name":"TerminationDate","Type":"x","List":"some list","Description":"If a contract is sold before MD (for example a bond on the secondary market) this date has to be set. It refers to the date at which the payment (of PTD) and transfer of the security happens. In other words, TD - if set - takes the role otherwise MD has from a cash flow perspective. \nNote, LEICP of the CT is not the counterparty of the transaction!","Applicability":"x(6,0,1)"},{"Group":"Notional Principal","Name":"PriceAtTerminationDate","Type":"x","List":"some list","Description":"Sellingprice exchanged at PTD PTDrepresents a “clean” price (includes premium/discount but not IPAC","Applicability":"NN(6,1,1)"},{"Group":"Notional Principal","Name":"XDayNotice","Type":"x","List":"some list","Description":"Used as rolling attribute with the callable CT's UMP and CLM uniquely. CLM's and UMP's will not be settled (MD not set) until the client uses his option to call the contract X_Day_Notice after Current Date. As long as MD or TD is not set, the client postpones his right to call to the future. The cycle is normally defined in number of business days.","Applicability":"x"},{"Group":"Optionality","Name":"MaximumPenaltyFreeDisbursement","Type":"x","List":"some list","Description":"Defines the notional amount which can be withdrawn before XDN without penalty","Applicability":"x"},{"Group":"Rate Reset","Name":"CycleAnchorDateOfRateReset","Type":"x","List":"some list","Description":"Date from which the rate reset date schedule is calculated according to the cycle length. The first rate reset event takes place on this anchor.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"CycleOfRateReset","Type":"x","List":"some list","Description":"Cycle according to which the rate reset date schedule will be calculated.\nIn case RRCL is not set, then there will only be one rate reset event at RRANX given RRANX if set.\nThe interval will be adjusted yet by EOMC and BDC.","Applicability":"x(9,0,)"},{"Group":"Rate Reset","Name":"RateSpread","Type":"x","List":"some list","Description":"Interest rate spread. A typical rate resetting rule is LIBOR plus x basis point where x represents the interest rate spread. \nThe following equation can be taken if RRMLT is not set: IPNR after rate reset = Rate selected from the market object + RRSP.","Applicability":"NN(9,1,)"},{"Group":"Rate Reset","Name":"MarketObjectCodeOfRateReset","Type":"List","List":"some list","Description":"Is pointing to the interest rate driver (MarketObject) used for rate reset uniquely.\nUnique codes for market objects must be used.","Applicability":"NN(9,1,)"}]} diff --git a/frontend/public/data/actus-dictionary.json b/frontend/public/data/actus-dictionary.json index a10b58f..415bf91 100644 --- a/frontend/public/data/actus-dictionary.json +++ b/frontend/public/data/actus-dictionary.json @@ -2532,10 +2532,12 @@ "guaranteedExposure": "NN", "coverageOfCreditEnhancement": "x", "creditEventTypeCovered": "x", + "currency": "NN", "contractDealDate": "NN", "exerciseDate": "x(7,0,)", "exerciseAmount": "NN(7,1,)\n", - "settlementPeriod": "x" + "settlementPeriod": "x", + "settlementCurrency": "x" }, "commodity": { "contract": "commodity", @@ -2688,13 +2690,6 @@ "gracePeriod": "x(,,1)", "delinquencyPeriod": "x(,,1)", "delinquencyRate": "x(,,1)", - "clearingHouse": "NN(1,1,)", - "initialMargin": "x(1,0,)", - "maintenanceMarginLowerBound": "x(1,1,)", - "maintenanceMarginUpperBound": "x(1,1,)", - "cycleAnchorDateOfMargining": "x(1,1,)", - "cycleOfMargining": "x(1,1,)", - "variationMargin": "x(1,1,)", "currency": "NN", "contractDealDate": "NN(,,1)", "maturityDate": "NN", @@ -2735,6 +2730,7 @@ "feeBasis": "NN(1,1, )", "feeRate": "x(1,0, )", "feeAccrued": "x(1,1, )", + "dayCountConvention": "NN(1,1, )", "currency": "NN", "contractDealDate": "NN", "maturityDate": "x", diff --git a/frontend/public/data/covered-contracts.json b/frontend/public/data/covered-contracts.json index 2294d21..91d7fae 100644 --- a/frontend/public/data/covered-contracts.json +++ b/frontend/public/data/covered-contracts.json @@ -1,16 +1,22 @@ { - "contracts": [ - "cash", - "callMoney", - "undefinedMaturityProfile", - "commodities", - "stock", - "principalAtMaturity", - "linearAmortizer", + "contracts": [ + "annuity", + "callMoney", + "capFloor", + "cash", + "commodity", + "collateral", + "guarantee", "exoticLinearAmortizer", - "negativeAmortizer", - "annuity", - "foreignExchangeOutright", - "plainVanillaSwap" - ] + "foreignExchangeOutright", + "future", + "linearAmortizer", + "negativeAmortizer", + "option", + "plainVanillaSwap", + "principalAtMaturity", + "stock", + "swap", + "undefinedMaturityProfile" + ] } diff --git a/frontend/src/components/Demo/index.js b/frontend/src/components/Demo/index.js index c80b705..10b9aeb 100644 --- a/frontend/src/components/Demo/index.js +++ b/frontend/src/components/Demo/index.js @@ -9,11 +9,12 @@ export default class Demo extends PureComponent { identifier:'', terms:{}, demoId: '', + riskFactorData: [], passDemoData: null } passDemoData(){ - this.state.passDemoData(this.state.terms, this.state.demoId) + this.state.passDemoData(this.state.terms, this.state.riskFactorData, this.state.demoId) } componentDidMount() { @@ -22,6 +23,7 @@ export default class Demo extends PureComponent { identifier: this.props.identifier, demoId: this.props.demoId, label: this.props.label, + riskFactorData: this.props.riskFactorData, passDemoData: this.props.passDemoData }) } diff --git a/frontend/src/components/Form/index.js b/frontend/src/components/Form/index.js index 4296718..3b01518 100644 --- a/frontend/src/components/Form/index.js +++ b/frontend/src/components/Form/index.js @@ -6,8 +6,6 @@ import Demo from '../Demo'; import ToolTip from '../ToolTip'; import '../Term/Term.css'; -/* eslint-disable */ -import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import './Form.css'; @@ -24,6 +22,7 @@ export class Form extends PureComponent { originalNonRequiredFields:{}, requiredFields:{}, nonRequiredFields:{}, + riskFactorData: [], demos:[], showDemos: false, showForm: true, @@ -36,9 +35,41 @@ export class Form extends PureComponent { results:{}, isFetching: false, redirect: false, - host: "http://localhost:8080", //"http://marbella.myftp.org:8080" + host: "http://localhost:8080", backFromResults: false, - allAnswers: {} + formTerms: {}, + // handling underlyings (capfl, ...) + underlyingType: "", + hasUnderlying: false, + showUnderlying: true, + showLeg1: true, + showLeg2: true, + underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], + underlyingGroups: [], + underlyingOptionalFields: [], + underlyingMandatoryFields: [], + underlyingRequiredFields: {}, + underlyingNonRequiredFields: {}, + underlyingOriginalRequiredFields: {}, + underlyingOriginalNonRequiredFields: {}, + // handling leg1 (swap) + leg1Type: "", + leg1Groups: [], + leg1OptionalFields: [], + leg1MandatoryFields: [], + leg1RequiredFields: {}, + leg1NonRequiredFields: {}, + leg1OriginalRequiredFields: {}, + leg1OriginalNonRequiredFields: {}, + // handling leg2 (swap) + leg2Type: "", + leg2Groups: [], + leg2OptionalFields: [], + leg2MandatoryFields: [], + leg2RequiredFields: {}, + leg2NonRequiredFields: {}, + leg2OriginalRequiredFields: {}, + leg2OriginalNonRequiredFields: {} } getTestFields(){ @@ -70,13 +101,14 @@ export class Form extends PureComponent { let {match} = this.props; if(this.props.location.state && this.props.location.state.backFromResults){ console.log("[Data incoming]", this.props.location.state.backFromResults); - this.fetchTerms(match.params.id, this.props.location.state.allAnswers); + this.fetchTerms(match.params.id, this.props.location.state.formTerms); }else{ this.fetchTerms(match.params.id); } } handleReset(e) { + // reset main contract fields let requiredFieldCopy = {...this.state.requiredFields}; let nonRequiredFieldsCopy = {...this.state.nonRequiredFields}; for(var n in requiredFieldCopy){ @@ -87,11 +119,51 @@ export class Form extends PureComponent { } this.setState({ requiredFields: requiredFieldCopy, - nonRequiredFields: nonRequiredFieldsCopy + nonRequiredFields: nonRequiredFieldsCopy, + riskFactorData: [] }) + // reset underlying contract fields (if any) + if(this.state.hasUnderlying) { + // single underlying + let underlyingRequiredFieldsCopy = {...this.state.underlyingRequiredFields}; + let underlyingNonRequiredFieldsCopy = {...this.state.underlyingNonRequiredFields}; + for(var n in underlyingRequiredFieldsCopy){ + underlyingRequiredFieldsCopy[n] = "" + } + for(var n in underlyingNonRequiredFieldsCopy){ + underlyingNonRequiredFieldsCopy[n] = "" + } + // leg 1 + let leg1RequiredFieldsCopy = {...this.state.leg1RequiredFields}; + let leg1NonRequiredFieldsCopy = {...this.state.leg1NonRequiredFields}; + for(var n in leg1RequiredFieldsCopy){ + leg1RequiredFieldsCopy[n] = "" + } + for(var n in leg1NonRequiredFieldsCopy){ + leg1NonRequiredFieldsCopy[n] = "" + } + // leg 2 + let leg2RequiredFieldsCopy = {...this.state.leg2RequiredFields}; + let leg2NonRequiredFieldsCopy = {...this.state.leg2NonRequiredFields}; + for(var n in leg2RequiredFieldsCopy){ + leg2RequiredFieldsCopy[n] = "" + } + for(var n in leg2NonRequiredFieldsCopy){ + leg2NonRequiredFieldsCopy[n] = "" + } + // update state + this.setState({ + underlyingRequiredFields: underlyingRequiredFieldsCopy, + underlyingNonRequiredFields: underlyingNonRequiredFieldsCopy, + leg1RequiredFields: leg1RequiredFieldsCopy, + leg1NonRequiredFields: leg1NonRequiredFieldsCopy, + leg2RequiredFields: leg2RequiredFieldsCopy, + leg2NonRequiredFields: leg2NonRequiredFieldsCopy + }) + } } - cleanUpData(obj){ + cleanUpTerms(obj){ let newObj={}; @@ -99,6 +171,15 @@ export class Form extends PureComponent { if(obj[prop] === ''){ delete obj[prop]; } + if(Array.isArray(obj[prop])) { + if(obj[prop].length === 0) { + delete obj[prop]; + } else { + //obj[prop] = obj[prop].join(); + } + } + + //console.log(obj[prop] + " --- " + Array.isArray(obj[prop])) } newObj = obj; @@ -107,24 +188,61 @@ export class Form extends PureComponent { handleSubmit(e) { e.preventDefault(); - let allAnswers = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); - - let requiredFields = allAnswers; - let config = { - 'mode': 'cors', - 'headers': { - 'Access-Control-Allow-Origin': '*', - 'Content-Type': 'application/json', - }, - 'withCredentials': true, - 'credentials': 'omit' + + // fetch contract terms + let formTerms = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); + let termsToSend = this.cleanUpTerms({...formTerms}); + + // handle underlying contracts + let contractStructure = [] + let underlyingReference = {}, leg1Reference = {}, leg2Reference = {} + let underlyingFormTerms, leg1FormTerms, leg2FormTerms + switch(this.state.contractType) { + case 'SWAPS': // has two underlyings + // create leg 1 contract-reference + // ----- + leg1FormTerms = Object.assign({},this.state.leg1RequiredFields, this.state.leg1NonRequiredFields); + leg1FormTerms = this.cleanUpTerms({...leg1FormTerms}); + Object.assign(leg1Reference, { object: leg1FormTerms }, { referenceType: "CNT" }, { referenceRole: "FIL" } ) + contractStructure.push(leg1Reference) + + // create leg 2 contract-reference + // ----- + leg2FormTerms = Object.assign({},this.state.leg2RequiredFields, this.state.leg2NonRequiredFields); + leg2FormTerms = this.cleanUpTerms({...leg2FormTerms}); + Object.assign(leg2Reference, { object: leg2FormTerms }, { referenceType: "CNT" }, { referenceRole: "SEL" } ) + contractStructure.push(leg2Reference) + + // add contractStructure to terms + Object.assign(termsToSend, { contractStructure: contractStructure }) + break; + + case 'CAPFL': // has only one underlying + // create underlying contract-reference + // ----- + underlyingFormTerms = Object.assign({},this.state.underlyingRequiredFields, this.state.underlyingNonRequiredFields); + underlyingFormTerms = this.cleanUpTerms({...underlyingFormTerms}); + Object.assign(underlyingReference, { object: underlyingFormTerms }, { referenceType: "CNT" }, { referenceRole: "UDL" } ) + contractStructure.push(underlyingReference) + + // add contractStructure to terms + Object.assign(termsToSend, { contractStructure: contractStructure }) + break; + + default: // no underlying + } - let dataToSend = {...allAnswers}; + this.setState({ - allAnswers: this.cleanUpData(dataToSend) + formTerms: termsToSend }); - axios.post(this.state.host+'/events', this.cleanUpData(dataToSend)) + let dataToSend = { + contract: termsToSend, + riskFactors: this.state.riskFactorData + }; + + axios.post(this.state.host+'/events', dataToSend) .then(res => { this.setState({ results: res.data, @@ -144,8 +262,8 @@ export class Form extends PureComponent { handleExport (e) { e.preventDefault(); - let allAnswers = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); - let data = JSON.stringify({...allAnswers}); + let formTerms = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); + let data = JSON.stringify({...formTerms}); var file = new Blob([data], {type: 'application/json'}); if (window.navigator.msSaveOrOpenBlob) // IE10+ window.navigator.msSaveOrOpenBlob(file, 'terms.json'); @@ -197,96 +315,329 @@ export class Form extends PureComponent { this.validateFields(); } + handleChangeUnderlyingType = (e) => { + let type = e.target.value + // fetch dictionary + axios.get(`/data/actus-dictionary.json`) + .then(res => { + if (!res || !res.data) { + return false; + } + // extract required terms from dictionary + let terms = this.collectTerms(res.data,type,false); + // update state + this.setState({ + isFetching: false, + underlyingType: type, + underlyingGroups: terms.groups, + underlyingOptionalFields: [...terms.optionalFields], + underlyingMandatoryFields: [...terms.mandatoryFields], + underlyingRequiredFields: {...terms.requiredFields}, + underlyingNonRequiredFields: {...terms.nonRequiredFields}, + underlyingOriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + underlyingOriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + }); + } + + handleChangeLeg1Type = (e) => { + let type = e.target.value + // fetch dictionary + axios.get(`/data/actus-dictionary.json`) + .then(res => { + if (!res || !res.data) { + return false; + } + // extract required terms from dictionary + let terms = this.collectTerms(res.data,type,false); + // update state + this.setState({ + isFetching: false, + leg1Type: type, + leg1Groups: terms.groups, + leg1OptionalFields: [...terms.optionalFields], + leg1MandatoryFields: [...terms.mandatoryFields], + leg1RequiredFields: {...terms.requiredFields}, + leg1NonRequiredFields: {...terms.nonRequiredFields}, + leg1OriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + leg1OriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + }); + } + + handleChangeLeg2Type = (e) => { + let type = e.target.value + // fetch dictionary + axios.get(`/data/actus-dictionary.json`) + .then(res => { + if (!res || !res.data) { + return false; + } + // extract required terms from dictionary + let terms = this.collectTerms(res.data,type,false); + // update state + this.setState({ + isFetching: false, + leg2Type: type, + leg2Groups: terms.groups, + leg2OptionalFields: [...terms.optionalFields], + leg2MandatoryFields: [...terms.mandatoryFields], + leg2RequiredFields: {...terms.requiredFields}, + leg2NonRequiredFields: {...terms.nonRequiredFields}, + leg2OriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + leg2OriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + }); + } + + toggleDemos() { + this.setState({ + showDemos: !this.state.showDemos + }) + } + + toggleForm() { + this.setState({ + showForm: !this.state.showForm + }) + } + + toggleUnderlying() { + this.setState({ + showUnderlying: !this.state.showUnderlying + }) + } + + toggleLeg1() { + this.setState({ + showLeg1: !this.state.showLeg1 + }) + } + + toggleLeg2() { + this.setState({ + showLeg2: !this.state.showLeg2 + }) + } + + foldOptions(index) { + var groups = [...this.state.groups]; + groups[index].visible = !groups[index].visible; + this.setState({ + groups: groups + }); + } + + foldUnderlyingOptions(index) { + var groups = [...this.state.underlyingGroups]; + groups[index].visible = !groups[index].visible; + this.setState({ + underlyingGroups: groups + }); + } + + foldLeg1Options(index) { + var groups = [...this.state.leg1Groups]; + groups[index].visible = !groups[index].visible; + this.setState({ + leg1Groups: groups + }); + } + + foldLeg2Options(index) { + var groups = [...this.state.leg2Groups]; + groups[index].visible = !groups[index].visible; + this.setState({ + leg2Groups: groups + }); + } + fetchTerms(id, incoming){ console.log("fetch data", id," is incoming ", incoming ); - + // indicate state that fetching data this.setState({ - isFetching: true, - allAnswers: incoming ? {...incoming}: null, + isFetching: true + //formTerms: incoming ? {...incoming}: null, }); - + // fetch dictionary axios.get(`/data/actus-dictionary.json`) .then(res => { if (!res || !res.data) { return false; } - - // get contract identifier from id (accronym) - let identifier = Object.keys(res.data.taxonomy).filter(key => (res.data.taxonomy[key].acronym.indexOf(id) > -1))[0]; - - // get taxonomy, applicability and terms lists for respective contract - let applicability = res.data.applicability[identifier] - let terms = res.data.terms - let taxonomy = res.data.taxonomy[identifier] - - // get optional and mandatory field identifiers - let optionalFieldIdentifiers = Object.keys(applicability).filter(key => (applicability[key] !== 'NN')); - let mandatoryFieldIdentifiers = Object.keys(applicability).filter(key => (applicability[key] === 'NN')); - optionalFieldIdentifiers.splice(optionalFieldIdentifiers.indexOf('contract'),1) // 'contract' is actually not an official term - - // get optional and mandatory field details - let optionalFields = optionalFieldIdentifiers.map((identifier) => terms[identifier]) - let mandatoryFields = mandatoryFieldIdentifiers.map((identifier) => terms[identifier]) - - // define optional and mandatory field values (empty by default) - let requiredFields = Object.assign({}, ...mandatoryFields.map(o=>({[o.name]: ''}))); - let nonRequiredFields = Object.assign({}, ...optionalFields.map(o=>({[o.name]: ''}))); - - // if returning from the results page, populate previous field values - if(incoming){ - mandatoryFieldIdentifiers.map(e=>{ - requiredFields[e] = incoming[e]; - }); - - optionalFieldIdentifiers.map(e=>{ - nonRequiredFields[e] = incoming[e]; - }); - } - - // group terms according to actus groups - let groupToValues = optionalFields.reduce(function (obj, item) { - obj[item.group] = obj[item.group] || []; - obj[item.group].push(item); - return obj; - }, Object.create(null)); - - let groups = Object - .keys(groupToValues) - .map(function (key) { - let shortName = key.split(" ").join(""); - return { - group: key, - Items: groupToValues[key], - shortName: shortName, - visible: false - } - }); - + // extract required terms from dictionary + let terms = this.collectTerms(res.data,id,incoming); // fetch demos for this specific contract this.fetchDemos(id); - - // add data to state + // update state this.setState({ - groups: groups, - isFetching:false, - optionalFields: [...optionalFields], - mandatoryFields: [...mandatoryFields], - requiredFields: {...requiredFields}, - nonRequiredFields: {...nonRequiredFields}, - originalRequiredFields: {...mandatoryFieldIdentifiers}, - originalNonRequiredFields: {...optionalFieldIdentifiers}, - groupDescription: taxonomy.description, - contractType: taxonomy.acronym, - identifier: identifier, + identifier: terms.identifier, + groupDescription: terms.description, + contractType: terms.type, + groups: terms.groups, + isFetching: false, + optionalFields: [...terms.optionalFields], + mandatoryFields: [...terms.mandatoryFields], + requiredFields: {...terms.requiredFields}, + nonRequiredFields: {...terms.nonRequiredFields}, + originalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + originalNonRequiredFields: {...terms.optionalFieldIdentifiers}, error: { ...this.state.error } }); + // handle underlying contracts + switch(terms.type) { + case 'SWAPS': + // leg 1 + // ----- + // update state + let leg1Type = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; + let leg1Terms = incoming ? incoming.contractStructure[0].object : null; + terms = this.collectTerms(res.data,leg1Type,leg1Terms); + this.setState({ + hasUnderlying: true, + underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], + leg1Type: leg1Type, + leg1Groups: terms.groups, + leg1OptionalFields: [...terms.optionalFields], + leg1MandatoryFields: [...terms.mandatoryFields], + leg1RequiredFields: {...terms.requiredFields}, + leg1NonRequiredFields: {...terms.nonRequiredFields}, + leg1OriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + leg1OriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + // leg 2 + // ----- + // update state + let leg2Type = incoming ? incoming.contractStructure[1].object.contractType : "PAM"; + let leg2Terms = incoming ? incoming.contractStructure[1].object : null; + terms = this.collectTerms(res.data,leg2Type,leg2Terms); + this.setState({ + leg2Type: leg2Type, + leg2Groups: terms.groups, + leg2OptionalFields: [...terms.optionalFields], + leg2MandatoryFields: [...terms.mandatoryFields], + leg2RequiredFields: {...terms.requiredFields}, + leg2NonRequiredFields: {...terms.nonRequiredFields}, + leg2OriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + leg2OriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + break; + case 'CAPFL': // has only one underlying + // extract underlying terms + let underlyingType = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; + let underlyingTerms = incoming ? incoming.contractStructure[0].object : null; + terms = this.collectTerms(res.data,underlyingType,underlyingTerms); + // update state + this.setState({ + hasUnderlying: true, + underlyingType: underlyingType, + underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], + underlyingGroups: terms.groups, + underlyingOptionalFields: [...terms.optionalFields], + underlyingMandatoryFields: [...terms.mandatoryFields], + underlyingRequiredFields: {...terms.requiredFields}, + underlyingNonRequiredFields: {...terms.nonRequiredFields}, + underlyingOriginalRequiredFields: {...terms.mandatoryFieldIdentifiers}, + underlyingOriginalNonRequiredFields: {...terms.optionalFieldIdentifiers}, + error: { + ...this.state.error + } + }); + break; + + default: // no underlying + this.setState({ + hasUnderlying: false + }) + break; + } }) .catch(error => { console.log('>>>>>>>>>>> error:', error); }); - } + } + + collectTerms(dictionary, id, incoming) { + // get contract identifier from id (accronym) + let identifier = Object.keys(dictionary.taxonomy).filter(key => (dictionary.taxonomy[key].acronym.indexOf(id) > -1))[0]; + + // get taxonomy, applicability and terms lists for respective contract + let applicability = dictionary.applicability[identifier] + let terms = dictionary.terms + + // get optional and mandatory field identifiers + let optionalFieldIdentifiers = Object.keys(applicability).filter(key => (applicability[key] !== 'NN')); + let mandatoryFieldIdentifiers = Object.keys(applicability).filter(key => (applicability[key] === 'NN')); + optionalFieldIdentifiers.splice(optionalFieldIdentifiers.indexOf('contract'),1) // 'contract' is actually not an official term + + // get optional and mandatory field details + let optionalFields = optionalFieldIdentifiers.map((identifier) => terms[identifier]) + let mandatoryFields = mandatoryFieldIdentifiers.map((identifier) => terms[identifier]) + + // define optional and mandatory field values (empty by default) + let requiredFields = Object.assign({}, ...mandatoryFields.map(o=>({[o.name]: ''}))); + let nonRequiredFields = Object.assign({}, ...optionalFields.map(o=>({[o.name]: ''}))); + + // if returning from the results page, populate previous field values + if(incoming){ + mandatoryFieldIdentifiers.map(e=>{ + requiredFields[e] = incoming[e]; + }); + + optionalFieldIdentifiers.map(e=>{ + nonRequiredFields[e] = incoming[e]; + }); + } + + // group terms according to actus groups + let groupToValues = optionalFields.reduce(function (obj, item) { + obj[item.group] = obj[item.group] || []; + obj[item.group].push(item); + return obj; + }, Object.create(null)); + let groups = Object + .keys(groupToValues) + .map(function (key) { + let shortName = key.split(" ").join(""); + return { + group: key, + Items: groupToValues[key], + shortName: shortName, + visible: false + } + }); + + // return data + return { + identifier: identifier, + description: dictionary.taxonomy[identifier].description, + type: dictionary.taxonomy[identifier].acronym, + groups: groups, + optionalFields: optionalFields, + mandatoryFields: mandatoryFields, + requiredFields: requiredFields, + nonRequiredFields: nonRequiredFields, + mandatoryFieldIdentifiers: mandatoryFieldIdentifiers, + optionalFieldIdentifiers: optionalFieldIdentifiers + } + } fetchDemos(id){ axios @@ -301,19 +652,7 @@ export class Form extends PureComponent { }) } - toggleDemos() { - this.setState({ - showDemos: !this.state.showDemos - }) - } - - toggleForm() { - this.setState({ - showForm: !this.state.showForm - }) - } - - passDemoData(terms, id) { + passDemoData(terms, riskFactorData) { let groups = [...this.state.groups]; let nonRequired = {...this.state.originalNonRequiredFields}; let required = {...this.state.originalRequiredFields}; @@ -327,10 +666,13 @@ export class Form extends PureComponent { if(!this.state.showForm) this.toggleForm(); + if(!this.state.showUnderlying) + this.toggleUnderlying(); + // assign the required terms from the demo to the "required" state termArray.map(t=>{ requiredArray.map(r=>{ - if(t[0] == r[1]){ + if(t[0] === r[1]){ required[t[0]] = t[1]; } }); @@ -340,7 +682,7 @@ export class Form extends PureComponent { groups.map(g =>{ g.Items.map(i => { termArray.map(t=>{ - if(t[0] == i.identifier){ + if(t[0] === i.identifier){ nonRequired[t[0]] = t[1]; } }); @@ -354,27 +696,174 @@ export class Form extends PureComponent { ...required}, nonRequiredFields: { ...this.state.originalNonRequiredFields, - ...nonRequired} + ...nonRequired}, + riskFactorData: riskFactorData }); + // handle underlying + switch(terms.contractType) { + case 'SWAPS': // two underlyings + // leg 1 + this.passLeg1DemoData(terms.contractStructure[0].object) + // leg 2 + this.passLeg2DemoData(terms.contractStructure[1].object) + break; + + case 'CAPFL': // single underlying + this.passUnderlyingDemoData(terms.contractStructure[0].object) + break; + + default: // no underlying + + } } - foldOptions(index) { - var groups = [...this.state.groups]; - groups[index].visible = !groups[index].visible; + passUnderlyingDemoData(terms) { + let groups = [...this.state.underlyingGroups]; + let nonRequired = {...this.state.underlyingOriginalNonRequiredFields}; + let required = {...this.state.underlyingOriginalRequiredFields}; + + let termArray = Object.entries(terms); + let requiredArray = Object.entries(required); + + // assign the required terms from the demo to the "required" state + termArray.map(t=>{ + requiredArray.map(r=>{ + if(t[0] === r[1]){ + required[t[0]] = t[1]; + } + }); + }); + + // for each terms group assign the optional terms to the "nonRequired" state + groups.map(g =>{ + g.Items.map(i => { + termArray.map(t=>{ + if(t[0] === i.identifier){ + nonRequired[t[0]] = t[1]; + } + }); + }); + }); + + // update the state this.setState({ - groups: groups + underlyingRequiredFields: { + ...this.state.underlyingOriginalRequiredFields, + ...required}, + underlyingNonRequiredFields: { + ...this.state.underlyingOriginalNonRequiredFields, + ...nonRequired} }); } + passLeg1DemoData(terms) { + + let type = terms.contractType; + + // fetch dictionary + axios.get(`/data/actus-dictionary.json`) + .then(res => { + if (!res || !res.data) { + return false; + } + // extract required terms from dictionary + let dictTerms = this.collectTerms(res.data,type,false); + let requiredFields = dictTerms.mandatoryFieldIdentifiers; + let nonRequiredFields = dictTerms.optionalFieldIdentifiers; + let groups = dictTerms.groups; + + let termArray = Object.entries(terms); + let requiredArray = Object.entries(requiredFields); + + // assign the required terms from the demo to the "required" state + termArray.map(t=>{ + requiredArray.map(r=>{ + if(t[0] === r[1]){ + requiredFields[t[0]] = t[1]; + } + }); + }); + + // for each terms group assign the optional terms to the "nonRequired" state + groups.map(g =>{ + g.Items.map(i => { + termArray.map(t=>{ + if(t[0] === i.identifier){ + nonRequiredFields[t[0]] = t[1]; + } + }); + }); + }); + + // update the state + this.setState({ + leg1Groups: groups, + leg1RequiredFields: requiredFields, + leg1NonRequiredFields: nonRequiredFields + }); + + console.log(nonRequiredFields) + }) + } + + passLeg2DemoData(terms) { + + let type = terms.contractType; + + // fetch dictionary + axios.get(`/data/actus-dictionary.json`) + .then(res => { + if (!res || !res.data) { + return false; + } + // extract required terms from dictionary + let dictTerms = this.collectTerms(res.data,type,false); + let requiredFields = dictTerms.mandatoryFieldIdentifiers; + let nonRequiredFields = dictTerms.optionalFieldIdentifiers; + let groups = dictTerms.groups; + + let termArray = Object.entries(terms); + let requiredArray = Object.entries(requiredFields); + + // assign the required terms from the demo to the "required" state + termArray.map(t=>{ + requiredArray.map(r=>{ + if(t[0] === r[1]){ + requiredFields[t[0]] = t[1]; + } + }); + }); + + // for each terms group assign the optional terms to the "nonRequired" state + groups.map(g =>{ + g.Items.map(i => { + termArray.map(t=>{ + if(t[0] === i.identifier){ + nonRequiredFields[t[0]] = t[1]; + } + }); + }); + }); + + // update the state + this.setState({ + leg2Groups: groups, + leg2RequiredFields: requiredFields, + leg2NonRequiredFields: nonRequiredFields + }); + }) + } + render() { - let {groups, groupDescription, contractType, identifier, mandatoryFields, redirect, results, demos, error} = this.state; + let {groups, groupDescription, contractType, identifier, mandatoryFields, redirect, results, demos } = this.state; + let {underlyingGroups, underlyingMandatoryFields, leg1Groups, leg1MandatoryFields, leg2Groups, leg2MandatoryFields} = this.state; let {match} = this.props; let demosClassName = (this.state.showDemos)?"unfolded":"folded"; let formClassName = (this.state.showForm)?"unfolded":"folded"; if( redirect ) { - return + return } else { if(this.state.isFetching){ return ( @@ -394,9 +883,9 @@ export class Form extends PureComponent { - {demos.sort((a, b) => a.terms.contractID - b.terms.contractID).map((d, i)=> { + {demos.sort((a, b) => a.contract.contractID - b.contract.contractID).map((d, i)=> { return ( - + ) })} @@ -411,7 +900,7 @@ export class Form extends PureComponent { {this.state.showForm && - +
All fields below are mandatory to fill in:
@@ -496,6 +985,365 @@ export class Form extends PureComponent { } + {this.state.hasUnderlying && this.state.contractType==="SWAPS" && + <> + + this.toggleLeg1()}> + {"Leg 1"}: + {"This contract constitutes Leg 1 of the Swap"} + + + {this.state.showLeg1 && + + +
All fields below are mandatory to fill in:
+
+
+ + + {leg1MandatoryFields.map((m, groupId) => { + if(m.identifier==="contractType") { + // add dropdown for selecting the contractType + return( + +
+ +
+ +
+
+ + ) + } else { + // for each mandatory term add a field in the form and + // preset with value from demo case (if any) + return ( + +
+ +
+ this.updateField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + } + }) + } +
+
+
+
+ + +
Below are your Optional choices
+ { + leg1Groups.map((group, index) => { + // go through all term groups and create separate optional field tab + return ( +
+
+
this.foldLeg1Options(index)}>{group.group}
+ {group.visible && + + + { + group.Items.map((item, index) => { + // for a specific term group go through all terms and create + // a form field + let group = item.group; + + return( + +
+ +
+ this.updateNonRequiredField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + }) + } +
+
+ } +
+
+ ) + }) + } + +
+ } + + this.toggleLeg2()}> + {"Leg 2"}: + {"This contract constitutes Leg 2 of the Swap"} + + + {this.state.showLeg2 && + + +
All fields below are mandatory to fill in:
+
+
+ + + {leg2MandatoryFields.map((m, groupId) => { + if(m.identifier==="contractType") { + // add dropdown for selecting the contractType + return( + +
+ +
+ +
+
+ + ) + } else { + // for each mandatory term add a field in the form and + // preset with value from demo case (if any) + return ( + +
+ +
+ this.updateField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + } + }) + } +
+
+
+
+ + +
Below are your Optional choices
+ { + leg2Groups.map((group, index) => { + // go through all term groups and create separate optional field tab + return ( +
+
+
this.foldLeg2Options(index)}>{group.group}
+ {group.visible && + + + { + group.Items.map((item, index) => { + // for a specific term group go through all terms and create + // a form field + let group = item.group; + + return( + +
+ +
+ this.updateNonRequiredField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + }) + } +
+
+ } +
+
+ ) + }) + } + +
+ } + + } + {this.state.hasUnderlying && this.state.contractType!=="SWAPS" && + <> + + this.toggleUnderlying()}> + {"Underlying"}: + {"This contract constitutes the underlying"} + + + {this.state.showUnderlying && + + +
All fields below are mandatory to fill in:
+
+
+ + + {underlyingMandatoryFields.map((m, groupId) => { + if(m.identifier==="contractType") { + // add dropdown for selecting the contractType + return( + +
+ +
+ +
+
+ + ) + } else { + // for each mandatory term add a field in the form and + // preset with value from demo case (if any) + return ( + +
+ +
+ this.updateField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + } + }) + } +
+
+
+
+ + +
Below are your Optional choices
+ { + underlyingGroups.map((group, index) => { + // go through all term groups and create separate optional field tab + return ( +
+
+
this.foldUnderlyingOptions(index)}>{group.group}
+ {group.visible && + + + { + group.Items.map((item, index) => { + // for a specific term group go through all terms and create + // a form field + let group = item.group; + + return( + +
+ +
+ this.updateNonRequiredField(e)} + className="item-fields" + type="text" /> + +
+
+ + ) + }) + } +
+
+ } +
+
+ ) + }) + } + +
+ } + + } diff --git a/frontend/src/components/Graph/index.js b/frontend/src/components/Graph/index.js index adb0f21..f481849 100644 --- a/frontend/src/components/Graph/index.js +++ b/frontend/src/components/Graph/index.js @@ -117,6 +117,8 @@ export class Graph extends React.Component { return("red"); case "PR": return("red"); + case "MD": + return("red"); case "IP": return("green"); case "IPCI": @@ -137,6 +139,8 @@ export class Graph extends React.Component { return(2); case "PR": return(2); + case "MD": + return(2); case "IP": return(5); case "IPCI": diff --git a/frontend/src/components/Landing/index.js b/frontend/src/components/Landing/index.js index 34c062d..b2ec1ec 100644 --- a/frontend/src/components/Landing/index.js +++ b/frontend/src/components/Landing/index.js @@ -6,22 +6,28 @@ import './Landing.css'; export class Landing extends PureComponent { state = { - contracts:[] + contractDetails:[], + contractIdentifiers:[] } componentDidMount(){ axios.get(`/data/actus-dictionary.json`) .then(res => { - console.log(res.data); this.setState({ - contracts: res.data.taxonomy + contractDetails: res.data.taxonomy + }) + }); + axios.get(`/data/covered-contracts.json`) + .then(res => { + this.setState({ + contractIdentifiers: res.data.contracts }) - }); } render() { - let contracts = this.state.contracts + let contractDetails = this.state.contractDetails + let contractIdentifiers = this.state.contractIdentifiers return (
@@ -29,15 +35,19 @@ export class Landing extends PureComponent {
Choose a Contract Type from the list below in order to define and evaluate specific financial contracts:
{/* contract grid */} - {console.log("hello")} { - Object.keys(contracts).map( (key) => - + Object.keys(contractDetails).map( (key) => + { + if(contractIdentifiers.indexOf(key) != -1) { + return( + + )} + } ) } diff --git a/frontend/src/components/Results/index.js b/frontend/src/components/Results/index.js index 6102781..1b83573 100644 --- a/frontend/src/components/Results/index.js +++ b/frontend/src/components/Results/index.js @@ -16,12 +16,12 @@ export class Results extends PureComponent { componentDidMount() { let response = [...this.props.location.state.data]; - this.setState({ results: response, contractId: this.props.location.state.contractId, url: this.props.location.state.url, allAnswers: this.props.location.state.allAnswers, + formTerms: this.props.location.state.formTerms }); } @@ -35,7 +35,7 @@ export class Results extends PureComponent { let { results, currentTab, contractId, redirect, url} = this.state; if(redirect) - return + return return (
diff --git a/scripts/ACTUS Webapp.postman_collection.json b/scripts/ACTUS Webapp.postman_collection.json deleted file mode 100644 index 4cec1c7..0000000 --- a/scripts/ACTUS Webapp.postman_collection.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "info": { - "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", - "name": "ACTUS Webapp", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "Fetch demo meta infos", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{HOST_LOCAL}}/demos/meta/PAM", - "host": [ - "{{HOST_LOCAL}}" - ], - "path": [ - "demos", - "meta", - "PAM" - ] - } - }, - "response": [] - }, - { - "name": "Fetch demo details", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{HOST_LOCAL}}/demos/PAM", - "host": [ - "{{HOST_LOCAL}}" - ], - "path": [ - "demos", - "PAM" - ] - } - }, - "response": [] - }, - { - "name": "Fetch demo details Copy", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", - "host": [ - "{{HOST_LOCAL}}" - ], - "path": [ - "demo", - "5db350f7d70b8e45852b3057" - ] - } - }, - "response": [] - }, - { - "name": "Compute events", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"calendar\": \"WEEKDAY\",\n \"businessDayConvention\": \"SCF\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 108,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"1Y+\",\n \"nominalInterestRate\": 0.02,\n \"dayCountConvention\": \"30E/360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{HOST_LOCAL}}/events", - "host": [ - "{{HOST_LOCAL}}" - ], - "path": [ - "events" - ] - } - }, - "response": [] - }, - { - "name": "Compute batch events", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"contracts\": [\n {\n \"calendar\": \"WEEKDAY\",\n \"businessDayConvention\": \"SCF\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": \"Contract-01\",\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"1Y+\",\n \"nominalInterestRate\": 0.02,\n \"dayCountConvention\": \"30E/360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n },\n {\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": \"Contract-02\",\n \"nominalInterestRate\": 0.01,\n \"dayCountConvention\": \"30E/360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n },\n {\n \"calendar\": \"WEEKDAY\",\n \"businessDayConvention\": \"SCF\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": \"Contract-03\",\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"1Y+\",\n \"nominalInterestRate\": 0.02,\n \"dayCountConvention\": \"30E/360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0,\n \"cycleAnchorDateOfRateReset\": \"2016-01-02T00:00:00\",\n \"cycleOfRateReset\": \"1Y+\",\n \"rateSpread\": 0.02,\n \"rateMultiplier\": 1,\n \"marketObjectCodeOfRateReset\": \"LIBOR3MUSD\"\n },\n {\n \"calendar\": \"WEEKDAY\",\n \"businessDayConvention\": \"SCF\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": \"Contract-04\",\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"1Y+\",\n \"nominalInterestRate\": 0.02,\n \"dayCountConvention\": \"30E/360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0,\n \"cycleAnchorDateOfRateReset\": \"2016-01-02T00:00:00\",\n \"cycleOfRateReset\": \"1Y+\",\n \"rateSpread\": 0.02,\n \"rateMultiplier\": 1,\n \"marketObjectCodeOfRateReset\": \"LIBOR3MUSD\",\n \"cycleAnchorDateOfScalingIndex\": \"2016-01-02T00:00:00\",\n \"cycleOfScalingIndex\": \"1Y+\",\n \"scalingEffect\": \"IN0\",\n \"scalingIndexAtStatusDate\": 100,\n \"marketObjectCodeOfScalingIndex\": \"CPIUS\"\n }\n ],\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"LIBOR3MUSD\",\n \"base\": 100,\n \"data\": [\n {\n \"time\": \"2015-01-01T00:00:00\",\n \"value\": \"0.2531\"\n },\n {\n \"time\": \"2015-02-01T00:00:00\",\n \"value\": \"0.26185\"\n },\n {\n \"time\": \"2015-03-01T00:00:00\",\n \"value\": \"0.27075\"\n },\n {\n \"time\": \"2015-04-01T00:00:00\",\n \"value\": \"0.27875\"\n },\n {\n \"time\": \"2015-05-01T00:00:00\",\n \"value\": \"0.28375\"\n },\n {\n \"time\": \"2015-06-01T00:00:00\",\n \"value\": \"0.2832\"\n },\n {\n \"time\": \"2015-07-01T00:00:00\",\n \"value\": \"0.3086\"\n },\n {\n \"time\": \"2015-08-01T00:00:00\",\n \"value\": \"0.329\"\n },\n {\n \"time\": \"2015-09-01T00:00:00\",\n \"value\": \"0.325\"\n },\n {\n \"time\": \"2015-10-01T00:00:00\",\n \"value\": \"0.3341\"\n },\n {\n \"time\": \"2015-11-01T00:00:00\",\n \"value\": \"0.4162\"\n },\n {\n \"time\": \"2015-12-01T00:00:00\",\n \"value\": \"0.6127\"\n },\n {\n \"time\": \"2016-01-01T00:00:00\",\n \"value\": \"0.6126\"\n },\n {\n \"time\": \"2016-02-01T00:00:00\",\n \"value\": \"0.6331\"\n },\n {\n \"time\": \"2016-03-01T00:00:00\",\n \"value\": \"0.6286\"\n },\n {\n \"time\": \"2016-04-01T00:00:00\",\n \"value\": \"0.6366\"\n },\n {\n \"time\": \"2016-05-01T00:00:00\",\n \"value\": \"0.6858\"\n },\n {\n \"time\": \"2016-06-01T00:00:00\",\n \"value\": \"0.6541\"\n },\n {\n \"time\": \"2016-07-01T00:00:00\",\n \"value\": \"0.7591\"\n },\n {\n \"time\": \"2016-08-01T00:00:00\",\n \"value\": \"0.83933\"\n },\n {\n \"time\": \"2016-09-01T00:00:00\",\n \"value\": \"0.85367\"\n },\n {\n \"time\": \"2016-10-01T00:00:00\",\n \"value\": \"0.88428\"\n },\n {\n \"time\": \"2016-11-01T00:00:00\",\n \"value\": \"0.93417\"\n },\n {\n \"time\": \"2016-12-01T00:00:00\",\n \"value\": \"0.99789\"\n },\n {\n \"time\": \"2017-01-01T00:00:00\",\n \"value\": \"1.03456\"\n },\n {\n \"time\": \"2017-02-01T00:00:00\",\n \"value\": \"1.064\"\n },\n {\n \"time\": \"2017-03-01T00:00:00\",\n \"value\": \"1.14956\"\n },\n {\n \"time\": \"2017-04-01T00:00:00\",\n \"value\": \"1.17233\"\n },\n {\n \"time\": \"2017-05-01T00:00:00\",\n \"value\": \"1.21\"\n },\n {\n \"time\": \"2017-06-01T00:00:00\",\n \"value\": \"1.29917\"\n },\n {\n \"time\": \"2017-07-01T00:00:00\",\n \"value\": \"1.31056\"\n },\n {\n \"time\": \"2017-08-01T00:00:00\",\n \"value\": \"1.31778\"\n },\n {\n \"time\": \"2017-09-01T00:00:00\",\n \"value\": \"1.33389\"\n },\n {\n \"time\": \"2017-10-01T00:00:00\",\n \"value\": \"1.38122\"\n },\n {\n \"time\": \"2017-11-01T00:00:00\",\n \"value\": \"1.48738\"\n },\n {\n \"time\": \"2017-12-01T00:00:00\",\n \"value\": \"1.69428\"\n },\n {\n \"time\": \"2018-01-01T00:00:00\",\n \"value\": \"1.77777\"\n },\n {\n \"time\": \"2018-02-01T00:00:00\",\n \"value\": \"2.01719\"\n },\n {\n \"time\": \"2018-03-01T00:00:00\",\n \"value\": \"2.31175\"\n },\n {\n \"time\": \"2018-04-01T00:00:00\",\n \"value\": \"2.36294\"\n },\n {\n \"time\": \"2018-05-01T00:00:00\",\n \"value\": \"2.32125\"\n },\n {\n \"time\": \"2018-06-01T00:00:00\",\n \"value\": \"2.33575\"\n },\n {\n \"time\": \"2018-07-01T00:00:00\",\n \"value\": \"2.34856\"\n },\n {\n \"time\": \"2018-08-01T00:00:00\",\n \"value\": \"2.32075\"\n },\n {\n \"time\": \"2018-09-01T00:00:00\",\n \"value\": \"2.39838\"\n },\n {\n \"time\": \"2018-10-01T00:00:00\",\n \"value\": \"2.5585\"\n },\n {\n \"time\": \"2018-11-01T00:00:00\",\n \"value\": \"2.73613\"\n },\n {\n \"time\": \"2018-12-01T00:00:00\",\n \"value\": \"2.80763\"\n },\n {\n \"time\": \"2019-01-01T00:00:00\",\n \"value\": \"2.7375\"\n },\n {\n \"time\": \"2019-02-01T00:00:00\",\n \"value\": \"2.61513\"\n },\n {\n \"time\": \"2019-03-01T00:00:00\",\n \"value\": \"2.59975\"\n },\n {\n \"time\": \"2019-04-01T00:00:00\",\n \"value\": \"2.57563\"\n },\n {\n \"time\": \"2019-05-01T00:00:00\",\n \"value\": \"2.5025\"\n },\n {\n \"time\": \"2019-06-01T00:00:00\",\n \"value\": \"2.31988\"\n },\n {\n \"time\": \"2019-07-01T00:00:00\",\n \"value\": \"2.26563\"\n },\n {\n \"time\": \"2019-08-01T00:00:00\",\n \"value\": \"2.13763\"\n },\n {\n \"time\": \"2019-09-01T00:00:00\",\n \"value\": \"2.08513\"\n },\n {\n \"time\": \"2019-10-01T00:00:00\",\n \"value\": \"1.90225\"\n },\n {\n \"time\": \"2019-11-01T00:00:00\",\n \"value\": \"1.9055\"\n },\n {\n \"time\": \"2019-12-01T00:00:00\",\n \"value\": \"1.90838\"\n },\n {\n \"time\": \"2020-01-01T00:00:00\",\n \"value\": \"1.75113\"\n }\n ]\n },\n {\n \"marketObjectCode\": \"CPIUS\",\n \"base\": 234.747,\n \"data\": [\n {\n \"time\": \"2015-01-01T00:00:00\",\n \"value\": 234.747\n },\n {\n \"time\": \"2015-02-01T00:00:00\",\n \"value\": 235.342\n },\n {\n \"time\": \"2015-03-01T00:00:00\",\n \"value\": 235.976\n },\n {\n \"time\": \"2015-04-01T00:00:00\",\n \"value\": 236.222\n },\n {\n \"time\": \"2015-05-01T00:00:00\",\n \"value\": 237.001\n },\n {\n \"time\": \"2015-06-01T00:00:00\",\n \"value\": 237.657\n },\n {\n \"time\": \"2015-07-01T00:00:00\",\n \"value\": 238.034\n },\n {\n \"time\": \"2015-08-01T00:00:00\",\n \"value\": 238.033\n },\n {\n \"time\": \"2015-09-01T00:00:00\",\n \"value\": 237.498\n },\n {\n \"time\": \"2015-10-01T00:00:00\",\n \"value\": 237.733\n },\n {\n \"time\": \"2015-11-01T00:00:00\",\n \"value\": 238.017\n },\n {\n \"time\": \"2015-12-01T00:00:00\",\n \"value\": 237.761\n },\n {\n \"time\": \"2016-01-01T00:00:00\",\n \"value\": 237.827\n },\n {\n \"time\": \"2016-02-01T00:00:00\",\n \"value\": 237.514\n },\n {\n \"time\": \"2016-03-01T00:00:00\",\n \"value\": 237.99\n },\n {\n \"time\": \"2016-04-01T00:00:00\",\n \"value\": 238.835\n },\n {\n \"time\": \"2016-05-01T00:00:00\",\n \"value\": 239.44\n },\n {\n \"time\": \"2016-06-01T00:00:00\",\n \"value\": 240.144\n },\n {\n \"time\": \"2016-07-01T00:00:00\",\n \"value\": 240.111\n },\n {\n \"time\": \"2016-08-01T00:00:00\",\n \"value\": 240.595\n },\n {\n \"time\": \"2016-09-01T00:00:00\",\n \"value\": 241.068\n },\n {\n \"time\": \"2016-10-01T00:00:00\",\n \"value\": 241.641\n },\n {\n \"time\": \"2016-11-01T00:00:00\",\n \"value\": 241.993\n },\n {\n \"time\": \"2016-12-01T00:00:00\",\n \"value\": 242.712\n },\n {\n \"time\": \"2017-01-01T00:00:00\",\n \"value\": 243.717\n },\n {\n \"time\": \"2017-02-01T00:00:00\",\n \"value\": 244.028\n },\n {\n \"time\": \"2017-03-01T00:00:00\",\n \"value\": 243.721\n },\n {\n \"time\": \"2017-04-01T00:00:00\",\n \"value\": 244.058\n },\n {\n \"time\": \"2017-05-01T00:00:00\",\n \"value\": 243.926\n },\n {\n \"time\": \"2017-06-01T00:00:00\",\n \"value\": 244.179\n },\n {\n \"time\": \"2017-07-01T00:00:00\",\n \"value\": 244.328\n },\n {\n \"time\": \"2017-08-01T00:00:00\",\n \"value\": 245.304\n },\n {\n \"time\": \"2017-09-01T00:00:00\",\n \"value\": 246.445\n },\n {\n \"time\": \"2017-10-01T00:00:00\",\n \"value\": 246.57\n },\n {\n \"time\": \"2017-11-01T00:00:00\",\n \"value\": 247.333\n },\n {\n \"time\": \"2017-12-01T00:00:00\",\n \"value\": 247.847\n },\n {\n \"time\": \"2018-01-01T00:00:00\",\n \"value\": 248.816\n },\n {\n \"time\": \"2018-02-01T00:00:00\",\n \"value\": 249.475\n },\n {\n \"time\": \"2018-03-01T00:00:00\",\n \"value\": 249.413\n },\n {\n \"time\": \"2018-04-01T00:00:00\",\n \"value\": 249.957\n },\n {\n \"time\": \"2018-05-01T00:00:00\",\n \"value\": 250.64\n },\n {\n \"time\": \"2018-06-01T00:00:00\",\n \"value\": 251.176\n },\n {\n \"time\": \"2018-07-01T00:00:00\",\n \"value\": 251.482\n },\n {\n \"time\": \"2018-08-01T00:00:00\",\n \"value\": 251.905\n },\n {\n \"time\": \"2018-09-01T00:00:00\",\n \"value\": 252.261\n },\n {\n \"time\": \"2018-10-01T00:00:00\",\n \"value\": 252.777\n },\n {\n \"time\": \"2018-11-01T00:00:00\",\n \"value\": 252.662\n },\n {\n \"time\": \"2018-12-01T00:00:00\",\n \"value\": 252.653\n },\n {\n \"time\": \"2019-01-01T00:00:00\",\n \"value\": 252.55\n },\n {\n \"time\": \"2019-02-01T00:00:00\",\n \"value\": 253.181\n },\n {\n \"time\": \"2019-03-01T00:00:00\",\n \"value\": 254.095\n },\n {\n \"time\": \"2019-04-01T00:00:00\",\n \"value\": 254.943\n },\n {\n \"time\": \"2019-05-01T00:00:00\",\n \"value\": 255.167\n },\n {\n \"time\": \"2019-06-01T00:00:00\",\n \"value\": 255.402\n },\n {\n \"time\": \"2019-07-01T00:00:00\",\n \"value\": 256.087\n },\n {\n \"time\": \"2019-08-01T00:00:00\",\n \"value\": 256.294\n },\n {\n \"time\": \"2019-09-01T00:00:00\",\n \"value\": 256.593\n },\n {\n \"time\": \"2019-10-01T00:00:00\",\n \"value\": 257.229\n },\n {\n \"time\": \"2019-11-01T00:00:00\",\n \"value\": 257.824\n },\n {\n \"time\": \"2019-12-01T00:00:00\",\n \"value\": 258.444\n },\n {\n \"time\": \"2020-01-01T00:00:00\",\n \"value\": 258.82\n },\n {\n \"time\": \"2020-02-01T00:00:00\",\n \"value\": 259.05\n }\n ]\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{HOST_LOCAL}}/eventsBatch", - "host": [ - "{{HOST_LOCAL}}" - ], - "path": [ - "eventsBatch" - ] - } - }, - "response": [] - } - ], - "variable": [ - { - "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", - "key": "HOST_LOCAL", - "value": "http://localhost:8080", - "type": "string" - } - ], - "protocolProfileBehavior": {} -} \ No newline at end of file diff --git a/scripts/createDemos.R b/scripts/createDemos.R deleted file mode 100644 index f0f6ed3..0000000 --- a/scripts/createDemos.R +++ /dev/null @@ -1,106 +0,0 @@ - -library(jsonlite) -library(magrittr) -library(readr) -library(readxl) - - -terms_path <- "../data/forms/json/" -folder_path <- "../data/demos/csv/" -save_location <- "../data/demos/json/" - -# format column names -tocamel=function(x,delim=" ") { - s <- strsplit(x, split=delim,fixed=TRUE) - sapply(s, function(y) { - if (any(is.na(y))) { - y - } - else { - first <- substring(y, 1, 1) - first <- toupper(first) - first[1] <- tolower(first[1]) - paste(first, substring(y, 2), sep = "", collapse = "") - } - }) -} - -# read data csv demo files -file_names <- list.files(path = folder_path) -#file_names <- c("ANN_TestBed.xls", "FUTUR_TestBed.xls") - -# These values are going to be replaced by NA's so the JSON -filter_values <- c("NOCALENDAR", "NULL", "SD", -999999999, "N") - -file_names <- c("ANN_TestBed.xls","FXOUT_TestBed.xls","LAM_TestBed.xls", - "LAX_TestBed.xls","NAM_TestBed.xls","PAM_TestBed.xls", - "STK_TestBed.xls","SWPPV_TestBed.xls") - - for ( file_name in file_names ) { - path <- paste(folder_path, file_name, sep = "") - file <- read_excel(paste0(folder_path,file_name), sheet = "Demo Cases", na = "NA") - file_fields <- colnames(file) - - # create folder and path for saving the demos - sub_dir_name <- unlist(strsplit(file_name, split = "_"))[1] - save_path <- paste(save_location, sub_dir_name, sep = "") - dir.create(file.path(save_path), showWarnings = FALSE) - - # clean up file df - for (filter_value in filter_values) { - file[file == filter_value] <- NA - } - - keys <- c("identifier", "label", "contractType", "version", "description", "terms") - - # boolean matrix because NA key/values don't need to be included in the demo - bool_vec<- c() - for (row in file) { - bool_vec <- c(bool_vec, !is.na(row)) - } - bool_matrix <- matrix(data = bool_vec, nrow = length(bool_vec)/ncol(file), ncol = ncol(file)) - - - for(i in 1:nrow(file)){ - demo_name <- paste("demo_", tolower(sub_dir_name), file[i, "contractID"], sep = "") - ct <- file[i,"contractType"] # extract contract type - - demo_df <- data.frame( - demo_name, # identifier - paste("CT ", file[i,"contractID"], ": ",substring(file[i, "description"], 1, 50), sep = ""), # label - ct, # contract type - format(Sys.Date(), format = "%Y%m%d"), # version - file[i, "description"], # Description - "REPLACE ME" # Replacement string - ) - colnames(demo_df) <- keys - - # Removing leading and trailing brackets - json_string <- toJSON(demo_df) - json_string <- substring(json_string, 2, nchar(json_string) - 1) - - # get applicable terms for ct - terms_obj <- fromJSON(file(paste(terms_path,"form_",ct,".json", sep = "")))$Terms - terms_applicable <- tocamel(terms_obj$Name) - - # extract applicable terms from terms in file - terms_keys <- intersect(colnames(file[bool_matrix[i,] == TRUE]),terms_applicable) - terms_dat <- file[i,terms_keys] - - # convert times format - terms_dat[grep("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}T[[:digit:]]{2}",terms_dat)]= - paste0(terms_dat[grep("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}T[[:digit:]]{2}",terms_dat)],":00:00") - - # convert terms to json - terms_json_string <- toJSON(terms_dat) - terms_json_string <- substring(terms_json_string, 2, nchar(terms_json_string) - 1) - - # combine demo-json and terms-json - final_demo <- gsub("\"REPLACE ME\"", terms_json_string, json_string) - - write_lines(final_demo, paste(save_path,"/", demo_name, ".json", sep = "")) - - } - - - } diff --git a/scripts/postman_collections/ACTUS_postman_ANN.json b/scripts/postman_collections/ACTUS_postman_ANN.json new file mode 100644 index 0000000..2e274c2 --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_ANN.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/ANN", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "ANN" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/ANN", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "ANN" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_ann101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"contractType\": \"ANN\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"rateSpread\": 0\n },\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"contractType\": \"ANN\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 102,\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"rateSpread\": 0\n },\n {\n \"contractType\": \"ANN\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 103,\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"rateSpread\": 0\n },\n {\n \"contractType\": \"ANN\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 104,\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"cycleAnchorDateOfRateReset\": \"2016-01-01T00:00:00\",\n \"cycleOfRateReset\": \"P2YL0\",\n \"rateSpread\": 0.05,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n },\n {\n \"contractType\": \"ANN\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 105,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2017-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"cycleAnchorDateOfRateReset\": \"2016-01-01T00:00:00\",\n \"cycleOfRateReset\": \"P2YL0\",\n \"rateSpread\": 0.05,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n }\n ],\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"YC.USA.TREASURY\",\n \"base\": 0.05,\n \"data\": [\n {\n \"time\": \"2016-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2018-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2020-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2022-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2024-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2026-01-01T00:00:00\",\n \"value\": 0.05\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_FXOUT.json b/scripts/postman_collections/ACTUS_postman_FXOUT.json new file mode 100644 index 0000000..de5fcdd --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_FXOUT.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/FXOUT", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "FXOUT" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/FXOUT", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "FXOUT" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_fxout101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"contractType\": \"FXOUT\",\n \"contractID\": 101,\n \"contractRole\": \"RFL\",\n \"currency\": \"USD\",\n \"currency2\": \"EUR\",\n \"notionalPrincipal\": 1000,\n \"notionalPrincipal2\": 900,\n \"statusDate\": \"2014-12-30T00:00:00\",\n \"contractDealDate\": \"2014-12-31T00:00:00\",\n \"maturityDate\": \"2015-12-31T00:00:00\"\n },\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"contractType\": \"FXOUT\",\n \"contractID\": 102,\n \"contractRole\": \"PFL\",\n \"currency\": \"USD\",\n \"currency2\": \"EUR\",\n \"notionalPrincipal\": 1000,\n \"notionalPrincipal2\": 900,\n \"statusDate\": \"2014-12-30T00:00:00\",\n \"contractDealDate\": \"2014-12-31T00:00:00\",\n \"maturityDate\": \"2015-12-31T00:00:00\"\n },\n {\n \"contractType\": \"FXOUT\",\n \"contractID\": 103,\n \"contractRole\": \"RFL\",\n \"currency\": \"USD\",\n \"currency2\": \"CHF\",\n \"notionalPrincipal\": 1000,\n \"notionalPrincipal2\": 950,\n \"statusDate\": \"2014-12-30T00:00:00\",\n \"contractDealDate\": \"2014-12-31T00:00:00\",\n \"maturityDate\": \"2015-12-31T00:00:00\"\n },\n {\n \"contractType\": \"FXOUT\",\n \"contractID\": 104,\n \"contractRole\": \"RFL\",\n \"currency\": \"USD\",\n \"currency2\": \"EUR\",\n \"notionalPrincipal\": 1000,\n \"notionalPrincipal2\": 900,\n \"statusDate\": \"2014-12-30T00:00:00\",\n \"contractDealDate\": \"2014-12-31T00:00:00\",\n \"maturityDate\": \"2015-12-31T00:00:00\",\n \"settlementDate\": \"2015-12-31T00:00:00\"\n },\n {\n \"contractType\": \"FXOUT\",\n \"contractID\": 105,\n \"contractRole\": \"RFL\",\n \"currency\": \"USD\",\n \"currency2\": \"EUR\",\n \"notionalPrincipal\": 1000,\n \"notionalPrincipal2\": 900,\n \"statusDate\": \"2014-12-30T00:00:00\",\n \"contractDealDate\": \"2014-12-31T00:00:00\",\n \"maturityDate\": \"2015-12-31T00:00:00\",\n \"purchaseDate\": \"2015-03-11T00:00:00\",\n \"priceAtPurchaseDate\": 55\n }\n ],\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_LAM.json b/scripts/postman_collections/ACTUS_postman_LAM.json new file mode 100644 index 0000000..58c814a --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_LAM.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/LAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "LAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/LAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "LAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_lam101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"calendar\": \"NC\",\n \"contractType\": \"LAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"rateSpread\": 0\n },\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"calendar\": \"NC\",\n \"contractType\": \"LAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 102,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"rateSpread\": 0\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"LAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 103,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2018-12-31T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"rateSpread\": 0\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"LAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 110,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 100,\n \"marketObjectCodeOfScalingIndex\": \"CPI.USD\",\n \"scalingIndexAtStatusDate\": 100,\n \"cycleOfScalingIndex\": \"P1YL0\",\n \"scalingEffect\": \"IOO\"\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"LAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 111,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 100,\n \"marketObjectCodeOfScalingIndex\": \"CPI.USD\",\n \"scalingIndexAtStatusDate\": 100,\n \"cycleOfScalingIndex\": \"P1YL0\",\n \"scalingEffect\": \"ONO\"\n }\n ],\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"CPI.USD\",\n \"base\": 100,\n \"data\": [\n {\n \"time\": \"2016-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2017-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2018-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2019-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2020-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2021-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2022-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2023-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2024-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2025-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2026-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2027-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2028-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2029-01-01T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2030-01-01T00:00:00\",\n \"value\": 100\n }\n \n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_LAX.json b/scripts/postman_collections/ACTUS_postman_LAX.json new file mode 100644 index 0000000..b23c82e --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_LAX.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/LAX", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "LAX" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/LAX", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "LAX" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_lax101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"contractType\": \"LAX\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"arrayCycleAnchorDateOfInterestPayment\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"arrayCycleAnchorDateOfPrincipalRedemption\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfPrincipalRedemption\": \"P1YL0\",\n \"arrayNextPrincipalRedemptionPayment\": \"200\",\n \"arrayIncreaseDecrease\": \"DEC\",\n \"arrayRate\": \"0\"\n },\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"contractType\": \"LAX\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 102,\n \"arrayCycleAnchorDateOfInterestPayment\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"arrayCycleAnchorDateOfPrincipalRedemption\": \"2016-01-01T00:00:00,2019-01-01T00:00:00,2021-01-01T00:00:00\",\n \"arrayCycleOfPrincipalRedemption\": \"P1YL0,P1YL0,P1YL0\",\n \"arrayNextPrincipalRedemptionPayment\": \"100,200,300\",\n \"arrayIncreaseDecrease\": \"DEC,DEC,DEC\",\n \"arrayRate\": \"0\"\n },\n {\n \"contractType\": \"LAX\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 103,\n \"arrayCycleAnchorDateOfInterestPayment\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"arrayCycleAnchorDateOfPrincipalRedemption\": \"2016-01-01T00:00:00,2020-01-01T00:00:00,2024-01-01T00:00:00\",\n \"arrayCycleOfPrincipalRedemption\": \"P2YL0,P1YL0,P6ML0\",\n \"arrayNextPrincipalRedemptionPayment\": \"100,100,100\",\n \"arrayIncreaseDecrease\": \"DEC,DEC,DEC\",\n \"arrayRate\": \"0\"\n },\n {\n \"contractType\": \"LAX\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 110,\n \"arrayCycleAnchorDateOfInterestPayment\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 500,\n \"arrayCycleAnchorDateOfPrincipalRedemption\": \"2016-01-01T00:00:00,2018-01-01T00:00:00\",\n \"arrayCycleOfPrincipalRedemption\": \"P1YL0,P1YL0\",\n \"arrayNextPrincipalRedemptionPayment\": \"500,300\",\n \"arrayIncreaseDecrease\": \"INC,DEC\",\n \"scalingIndexAtStatusDate\": 100,\n \"cycleAnchorDateOfScalingIndex\": \"2016-01-01T00:00:00\",\n \"cycleOfScalingIndex\": \"P1YL0\",\n \"scalingEffect\": \"INO\",\n \"arrayRate\": \"0\"\n },\n {\n \"contractType\": \"LAX\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 111,\n \"arrayCycleAnchorDateOfInterestPayment\": \"2016-01-01T00:00:00\",\n \"arrayCycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 500,\n \"arrayCycleAnchorDateOfPrincipalRedemption\": \"2016-01-01T00:00:00,2018-01-01T00:00:00\",\n \"arrayCycleOfPrincipalRedemption\": \"P1YL0,P1YL0\",\n \"arrayNextPrincipalRedemptionPayment\": \"500,300\",\n \"arrayIncreaseDecrease\": \"INC,DEC\",\n \"scalingIndexAtStatusDate\": 100,\n \"cycleAnchorDateOfScalingIndex\": \"2016-01-01T00:00:00\",\n \"cycleOfScalingIndex\": \"P1YL0\",\n \"scalingEffect\": \"IOO\",\n \"arrayRate\": \"0\"\n }\n ],\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_NAM.json b/scripts/postman_collections/ACTUS_postman_NAM.json new file mode 100644 index 0000000..8905a98 --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_NAM.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/NAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "NAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/NAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "NAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_nam101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"contractType\": \"NAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"cycleOfRateReset\": \"P1YL0\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n },\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"YC.USA.TREASURY\",\n \"base\": 0.05,\n \"data\": [\n {\n \"time\": \"2015-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2016-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2017-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2018-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2019-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2020-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2021-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2022-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2023-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2024-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2025-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2026-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2027-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2028-01-02T00:00:00\",\n \"value\": 0.05 \n }, \n { \n \"time\": \"2029-01-02T00:00:00\",\n \"value\": 0.05\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"contractType\": \"NAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 102,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"cycleOfRateReset\": \"P1YL0\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n },\n {\n \"contractType\": \"NAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 103,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2018-12-31T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 200,\n \"cycleOfRateReset\": \"P1YL0\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n },\n {\n \"contractType\": \"NAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 106,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NTIED\",\n \"interestCalculationBaseAmount\": 1000,\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 100,\n \"cycleOfRateReset\": \"P1YL0\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n },\n {\n \"contractType\": \"NAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 107,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"interestCalculationBase\": \"NT\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfPrincipalRedemption\": \"2016-01-02T00:00:00\",\n \"cycleOfPrincipalRedemption\": \"P1YL0\",\n \"nextPrincipalRedemptionPayment\": 100,\n \"cycleOfRateReset\": \"P1YL0\",\n \"rateSpread\": 0.12,\n \"marketObjectCodeOfRateReset\": \"YC.USA.TREASURY\"\n }\n ],\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"YC.USA.TREASURY\",\n \"base\": 0.05,\n \"data\": [\n {\n \"time\": \"2015-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2016-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2017-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2018-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2019-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2020-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2021-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2022-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2023-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2024-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2025-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2026-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2027-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2028-01-02T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2029-01-02T00:00:00\",\n \"value\": 0.05\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_PAM.json b/scripts/postman_collections/ACTUS_postman_PAM.json new file mode 100644 index 0000000..c85b6d0 --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_PAM.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/PAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "PAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/PAM", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "PAM" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_pam115", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"calendar\": \"NC\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 115,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"marketObjectCodeOfScalingIndex\": \"CPI.USD\",\n \"scalingIndexAtStatusDate\": 100,\n \"cycleAnchorDateOfScalingIndex\": \"2016-01-02T00:00:00\",\n \"cycleOfScalingIndex\": \"P1YL0\",\n \"scalingEffect\": \"INO\",\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n },\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"CPI.USD\",\n \"base\": 100,\n \"data\": [\n {\n \"time\": \"2016-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2017-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2018-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2019-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2020-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2021-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2022-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2023-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2024-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2025-01-02T00:00:00\",\n \"value\": 100\n },\n {\n \"time\": \"2026-01-02T00:00:00\",\n \"value\": 100\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"calendar\": \"NC\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"nominalInterestRate\": 0,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": -5\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 102,\n \"nominalInterestRate\": 0,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": -5\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 103,\n \"nominalInterestRate\": 0.01,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"PAM\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 104,\n \"cycleAnchorDateOfInterestPayment\": \"2016-01-02T00:00:00\",\n \"cycleOfInterestPayment\": \"P1YL0\",\n \"nominalInterestRate\": 0.02,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"rateSpread\": 0,\n \"premiumDiscountAtIED\": 0\n }\n ],\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_STK.json b/scripts/postman_collections/ACTUS_postman_STK.json new file mode 100644 index 0000000..7fb0542 --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_STK.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/STK", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "STK" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/STK", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "STK" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_stk101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"contractType\": \"STK\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 101,\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"purchaseDate\": \"2015-01-02T00:00:00\",\n \"priceAtPurchaseDate\": 90,\n \"marketValueObserved\": 100\n },\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"contractType\": \"STK\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 102,\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"purchaseDate\": \"2015-01-02T00:00:00\",\n \"priceAtPurchaseDate\": 90,\n \"terminationDate\": \"2015-01-16T00:00:00\",\n \"priceAtTerminationDate\": 110,\n \"marketValueObserved\": 100\n },\n {\n \"contractType\": \"STK\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPL\",\n \"contractID\": 103,\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"purchaseDate\": \"2015-01-02T00:00:00\",\n \"priceAtPurchaseDate\": 90,\n \"terminationDate\": \"2015-01-16T00:00:00\",\n \"priceAtTerminationDate\": 110,\n \"marketValueObserved\": 100\n },\n {\n \"contractType\": \"STK\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 104,\n \"cycleOfDividend\": \"P1YL0\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"purchaseDate\": \"2015-01-02T00:00:00\",\n \"priceAtPurchaseDate\": 90,\n \"marketValueObserved\": 100\n },\n {\n \"contractType\": \"STK\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RPA\",\n \"contractID\": 105,\n \"cycleOfDividend\": \"P1YL0\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2014-12-01T00:00:00\",\n \"purchaseDate\": \"2014-12-02T00:00:00\",\n \"priceAtPurchaseDate\": 90,\n \"marketValueObserved\": 100\n }\n ],\n \"riskFactors\": []\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/scripts/postman_collections/ACTUS_postman_SWPPV.json b/scripts/postman_collections/ACTUS_postman_SWPPV.json new file mode 100644 index 0000000..3d63c66 --- /dev/null +++ b/scripts/postman_collections/ACTUS_postman_SWPPV.json @@ -0,0 +1,125 @@ +{ + "info": { + "_postman_id": "fe518b7d-152d-4417-8755-1cf8cb24431d", + "name": "ACTUS Webapp", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Fetch demo meta infos", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/meta/SWPPV", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "meta", + "SWPPV" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demos/SWPPV", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demos", + "SWPPV" + ] + } + }, + "response": [] + }, + { + "name": "Fetch demo details Copy", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{HOST_LOCAL}}/demo/5db350f7d70b8e45852b3057", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "demo", + "5db350f7d70b8e45852b3057" + ] + } + }, + "response": [] + }, + { + "name": "Compute events demo_swppv101", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contract\": {\n \"calendar\": \"NC\",\n \"contractType\": \"SWPPV\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"PF\",\n \"contractID\": 101,\n \"cycleAnchorDateOfInterestPayment\": \"2015-02-01T00:00:00\",\n \"cycleOfInterestPayment\": \"P1ML1\",\n \"nominalInterestRate\": 0.05,\n \"nominalInterestRate2\": 0.08,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfRateReset\": \"2015-01-01T00:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeOfRateReset\": \"USD_Treasury\",\n \"deliverySettlement\": \"D\"\n },\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"USD_TREASURY\",\n \"base\": 0.05,\n \"data\": [\n {\n \"time\": \"2015-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-02-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-03-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-04-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-05-01T00:00:00\",\n \"value\": 0.05\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/events", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "events" + ] + } + }, + "response": [] + }, + { + "name": "Compute batch events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"contracts\": [\n {\n \"calendar\": \"NC\",\n \"contractType\": \"SWPPV\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RF\",\n \"contractID\": 102,\n \"cycleAnchorDateOfInterestPayment\": \"2015-03-01T00:00:00\",\n \"cycleOfInterestPayment\": \"P3ML1\",\n \"nominalInterestRate\": 0.05,\n \"nominalInterestRate2\": 0.05,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2015-04-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfRateReset\": \"2015-03-01T00:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeOfRateReset\": \"USD_Treasury\",\n \"deliverySettlement\": \"D\"\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"SWPPV\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"PF\",\n \"contractID\": 103,\n \"cycleAnchorDateOfInterestPayment\": \"2015-03-01T00:00:00\",\n \"cycleOfInterestPayment\": \"P3ML1\",\n \"nominalInterestRate\": 0.05,\n \"nominalInterestRate2\": 0.08,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2020-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfRateReset\": \"2015-03-01T00:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0.01,\n \"marketObjectCodeOfRateReset\": \"USD_Treasury\",\n \"deliverySettlement\": \"D\"\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"SWPPV\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"RF\",\n \"contractID\": 107,\n \"cycleAnchorDateOfInterestPayment\": \"2015-07-01T00:00:00\",\n \"cycleOfInterestPayment\": \"P6ML1\",\n \"nominalInterestRate\": 0.05,\n \"nominalInterestRate2\": 0.08,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfRateReset\": \"2015-07-01T00:00:00\",\n \"cycleOfRateReset\": \"P6ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeOfRateReset\": \"USD_Treasury\",\n \"deliverySettlement\": \"D\"\n },\n {\n \"calendar\": \"NC\",\n \"contractType\": \"SWPPV\",\n \"statusDate\": \"2015-01-01T00:00:00\",\n \"contractRole\": \"PF\",\n \"contractID\": 108,\n \"cycleAnchorDateOfInterestPayment\": \"2015-01-01T00:00:00\",\n \"cycleOfInterestPayment\": \"P1ML1\",\n \"nominalInterestRate\": 0.05,\n \"nominalInterestRate2\": 0.08,\n \"dayCountConvention\": \"30E360\",\n \"currency\": \"USD\",\n \"contractDealDate\": \"2015-01-01T00:00:00\",\n \"initialExchangeDate\": \"2015-01-02T00:00:00\",\n \"maturityDate\": \"2025-01-02T00:00:00\",\n \"notionalPrincipal\": 1000,\n \"cycleAnchorDateOfRateReset\": \"2015-01-01T00:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeOfRateReset\": \"USD_Treasury\",\n \"deliverySettlement\": \"D\"\n }\n ],\n \"riskFactors\": [\n {\n \"marketObjectCode\": \"USD_TREASURY\",\n \"base\": 0.05,\n \"data\": [\n {\n \"time\": \"2015-01-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-02-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-03-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-04-01T00:00:00\",\n \"value\": 0.05\n },\n {\n \"time\": \"2015-05-01T00:00:00\",\n \"value\": 0.05\n }\n ]\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{HOST_LOCAL}}/eventsBatch", + "host": [ + "{{HOST_LOCAL}}" + ], + "path": [ + "eventsBatch" + ] + } + }, + "response": [] + } + ], + "variable": [ + { + "id": "29f21850-a5f3-4948-a867-a8a5f79674d8", + "key": "HOST_LOCAL", + "value": "http://localhost:8080", + "type": "string" + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/src/main/java/org/actus/webapp/controllers/DemoController.java b/src/main/java/org/actus/webapp/controllers/DemoController.java index 8e401b4..71754de 100644 --- a/src/main/java/org/actus/webapp/controllers/DemoController.java +++ b/src/main/java/org/actus/webapp/controllers/DemoController.java @@ -25,7 +25,7 @@ public Map getDemo(@PathVariable String id) { Optional optdemo = demoRepository.findById(id); Demo d = optdemo.get(); - return d.getTerms(); + return d.getContract(); } @RequestMapping(method=RequestMethod.GET, value="/demos/{id}") diff --git a/src/main/java/org/actus/webapp/controllers/EventController.java b/src/main/java/org/actus/webapp/controllers/EventController.java index 1049d4d..066156d 100644 --- a/src/main/java/org/actus/webapp/controllers/EventController.java +++ b/src/main/java/org/actus/webapp/controllers/EventController.java @@ -9,7 +9,8 @@ import org.actus.externals.RiskFactorModelProvider; import org.actus.states.StateSpace; import org.actus.webapp.utils.TimeSeries; -import org.actus.webapp.models.ActusData; +import org.actus.webapp.models.InputData; +import org.actus.webapp.models.BatchInputData; import org.actus.webapp.models.ObservedData; import org.actus.webapp.models.EventStream; import org.springframework.beans.factory.annotation.Autowired; @@ -48,13 +49,14 @@ public double stateAt(String id, LocalDateTime time, StateSpace states, // String -> ArrayList @RequestMapping(method = RequestMethod.POST, value = "/events") @CrossOrigin(origins = "*") - public List solveContract(@RequestBody Map json) { + public List solveContract(@RequestBody InputData json) { // extract contract terms from body - ContractModel terms = ContractModel.parse(json); + ContractModel terms = ContractModel.parse(json.getContract()); + List riskFactorData = json.getRiskFactors(); - // define (empty) risk factor observer - MarketModel observer = new MarketModel(); + // create risk factor observer + RiskFactorModelProvider observer = createObserver(riskFactorData); // compute and return events return computeEvents(terms, observer); @@ -65,7 +67,7 @@ public List solveContract(@RequestBody Map json) { // return: ArrayList of ArrayList of ContractEvents @RequestMapping(method = RequestMethod.POST, value = "/eventsBatch") @CrossOrigin(origins = "*") - public List solveContractBatch(@RequestBody ActusData json) { + public List solveContractBatch(@RequestBody BatchInputData json) { // extract body parameters List> contractData = json.getContracts(); diff --git a/src/main/java/org/actus/webapp/models/ActusData.java b/src/main/java/org/actus/webapp/models/BatchInputData.java similarity index 85% rename from src/main/java/org/actus/webapp/models/ActusData.java rename to src/main/java/org/actus/webapp/models/BatchInputData.java index b3e0c16..b9c7ddc 100644 --- a/src/main/java/org/actus/webapp/models/ActusData.java +++ b/src/main/java/org/actus/webapp/models/BatchInputData.java @@ -2,15 +2,15 @@ import java.util.*; -public class ActusData { +public class BatchInputData { private List> contracts; private List riskFactors; - public ActusData() { + public BatchInputData() { } - public ActusData(List> contracts, List riskFactors) { + public BatchInputData(List> contracts, List riskFactors) { this.contracts = contracts; this.riskFactors = riskFactors; } diff --git a/src/main/java/org/actus/webapp/models/Demo.java b/src/main/java/org/actus/webapp/models/Demo.java index 2638e30..6513761 100644 --- a/src/main/java/org/actus/webapp/models/Demo.java +++ b/src/main/java/org/actus/webapp/models/Demo.java @@ -1,8 +1,10 @@ package org.actus.webapp.models; import java.util.Map; - import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; @@ -24,8 +26,10 @@ public class Demo { @Field (value="description") private String description; // private String terms; - @Field (value="terms") - private Map terms = new HashMap(); + @Field (value="contract") + private Map contract = new HashMap(); + @Field (value="riskFactors") + private List riskFactors = new ArrayList(); /** * No args constructor for use in serialization @@ -60,8 +64,6 @@ public void setId(String id) { this._id = id; } - - public String getIdentifier() { return identifier; } @@ -102,20 +104,20 @@ public void setDescription(String description) { this.description = description; } - // public String getTerms() { - // return terms; - // } + public Map getContract() { + return this.contract; + } - // public void setTerms(String terms) { - // this.terms = terms; - // } + public void setContract(String name, Object value) { + this.contract.put(name, value); + } - public Map getTerms() { - return this.terms; + public List getRiskFactors() { + return this.riskFactors; } - public void setTerms(String name, Object value) { - this.terms.put(name, value); + public void setRiskFactors(ObservedData data) { + this.riskFactors.add(data); } } \ No newline at end of file diff --git a/src/main/java/org/actus/webapp/models/InputData.java b/src/main/java/org/actus/webapp/models/InputData.java new file mode 100644 index 0000000..9595b72 --- /dev/null +++ b/src/main/java/org/actus/webapp/models/InputData.java @@ -0,0 +1,42 @@ +package org.actus.webapp.models; + +import java.util.*; + +public class InputData { + + private Map contract; + private List riskFactors; + + public InputData() { + } + + public InputData(Map contract, List riskFactors) { + this.contract = contract; + this.riskFactors = riskFactors; + } + + public Map getContract() { + return contract; + } + + public void setContract(Map contract) { + this.contract = contract; + } + + public List getRiskFactors() { + return riskFactors; + } + + public void setRiskFactors(List riskFactors) { + this.riskFactors = riskFactors; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("InputData{"); + sb.append("contract='").append(contract).append('\''); + sb.append(", riskFactors='").append(riskFactors).append('\''); + sb.append('}'); + return sb.toString(); + } +} \ No newline at end of file