From 4cd3e6a31ec88dc61496cf4e25354afa02cd0bdb Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 6 Oct 2020 19:02:28 +0200 Subject: [PATCH 01/14] Create postman-collections for endpoint testing --- scripts/ACTUS Webapp.postman_collection.json | 125 ------------------ .../ACTUS_postman_ANN.json | 125 ++++++++++++++++++ .../ACTUS_postman_FXOUT.json | 125 ++++++++++++++++++ .../ACTUS_postman_LAM.json | 125 ++++++++++++++++++ .../ACTUS_postman_LAX.json | 125 ++++++++++++++++++ .../ACTUS_postman_NAM.json | 125 ++++++++++++++++++ .../ACTUS_postman_PAM.json | 125 ++++++++++++++++++ .../ACTUS_postman_STK.json | 125 ++++++++++++++++++ .../ACTUS_postman_SWPPV.json | 125 ++++++++++++++++++ .../webapp/controllers/EventController.java | 9 +- 10 files changed, 1005 insertions(+), 129 deletions(-) delete mode 100644 scripts/ACTUS Webapp.postman_collection.json create mode 100644 scripts/postman_collections/ACTUS_postman_ANN.json create mode 100644 scripts/postman_collections/ACTUS_postman_FXOUT.json create mode 100644 scripts/postman_collections/ACTUS_postman_LAM.json create mode 100644 scripts/postman_collections/ACTUS_postman_LAX.json create mode 100644 scripts/postman_collections/ACTUS_postman_NAM.json create mode 100644 scripts/postman_collections/ACTUS_postman_PAM.json create mode 100644 scripts/postman_collections/ACTUS_postman_STK.json create mode 100644 scripts/postman_collections/ACTUS_postman_SWPPV.json 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/postman_collections/ACTUS_postman_ANN.json b/scripts/postman_collections/ACTUS_postman_ANN.json new file mode 100644 index 0000000..f2aad29 --- /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 \"contracts\": [\n {\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 ],\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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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..4d05728 --- /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 \"contracts\": [\n {\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 ],\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..79ea05b --- /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 \"contracts\": [\n {\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 ],\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..73482a8 --- /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 \"contracts\": [\n {\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 ],\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,2019-01-01T00,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,2020-01-01T00,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,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,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..73b804d --- /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 \"contracts\": [\n {\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 \"marketObjectCodeRateReset\": \"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}}/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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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..23e615e --- /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 \"contracts\": [\n {\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 ],\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..88e40ab --- /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 \"contracts\": [\n {\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 ],\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..20ba5c7 --- /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 \"contracts\": [\n {\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: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:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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}}/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: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:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0.01,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P6ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeRateReset\": \"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/EventController.java b/src/main/java/org/actus/webapp/controllers/EventController.java index 1049d4d..06f7c98 100644 --- a/src/main/java/org/actus/webapp/controllers/EventController.java +++ b/src/main/java/org/actus/webapp/controllers/EventController.java @@ -48,13 +48,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 ActusData json) { // extract contract terms from body - ContractModel terms = ContractModel.parse(json); + ContractModel terms = ContractModel.parse(json.getContracts().get(0)); + 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); From b757fe2883929fd1f53ce54efe0f3d4e932e757c Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 6 Oct 2020 19:03:27 +0200 Subject: [PATCH 02/14] Fix R file for json demo creation and refactor demo jsons --- data/demos/csv/ANN_TestBed.xls | Bin 11776 -> 12288 bytes data/demos/csv/FXOUT_TestBed.xls | Bin 15872 -> 15872 bytes data/demos/csv/LAM_TestBed.xls | Bin 14336 -> 14848 bytes data/demos/csv/LAX_TestBed.xls | Bin 16384 -> 16896 bytes data/demos/csv/NAM_TestBed.xls | Bin 11776 -> 12288 bytes data/demos/csv/PAM_TestBed.xls | Bin 32256 -> 33280 bytes data/demos/csv/STK_TestBed.xls | Bin 9728 -> 9728 bytes data/demos/csv/SWPPV_TestBed.xls | Bin 31232 -> 31232 bytes data/demos/json/ANN/demo_ann101.json | 24 +++- data/demos/json/ANN/demo_ann102.json | 24 +++- data/demos/json/ANN/demo_ann103.json | 24 +++- data/demos/json/ANN/demo_ann104.json | 27 +++- data/demos/json/ANN/demo_ann105.json | 29 ++++- data/demos/json/ANN/demo_ann106.json | 30 ++++- data/demos/json/ANN/demo_ann107.json | 28 ++++- data/demos/json/ANN/demo_ann108.json | 1 - data/demos/json/FXOUT/demo_fxout101.json | 20 ++- data/demos/json/FXOUT/demo_fxout102.json | 20 ++- data/demos/json/FXOUT/demo_fxout103.json | 20 ++- data/demos/json/FXOUT/demo_fxout104.json | 21 +++- data/demos/json/FXOUT/demo_fxout105.json | 22 +++- data/demos/json/FXOUT/demo_fxout106.json | 24 +++- data/demos/json/LAM/demo_lam101.json | 28 ++++- data/demos/json/LAM/demo_lam102.json | 28 ++++- data/demos/json/LAM/demo_lam103.json | 29 ++++- data/demos/json/LAM/demo_lam104.json | 28 ++++- data/demos/json/LAM/demo_lam105.json | 31 ++++- data/demos/json/LAM/demo_lam106.json | 29 ++++- data/demos/json/LAM/demo_lam107.json | 30 ++++- data/demos/json/LAM/demo_lam108.json | 30 ++++- data/demos/json/LAM/demo_lam109.json | 31 ++++- data/demos/json/LAM/demo_lam110.json | 31 ++++- data/demos/json/LAM/demo_lam111.json | 31 ++++- data/demos/json/LAX/demo_lax101.json | 28 ++++- data/demos/json/LAX/demo_lax102.json | 28 ++++- data/demos/json/LAX/demo_lax103.json | 28 ++++- data/demos/json/LAX/demo_lax104.json | 29 ++++- data/demos/json/LAX/demo_lax105.json | 28 ++++- data/demos/json/LAX/demo_lax106.json | 31 ++++- data/demos/json/LAX/demo_lax107.json | 29 ++++- data/demos/json/LAX/demo_lax108.json | 31 ++++- data/demos/json/LAX/demo_lax109.json | 31 ++++- data/demos/json/LAX/demo_lax110.json | 32 ++++- data/demos/json/LAX/demo_lax111.json | 32 ++++- data/demos/json/LAX/demo_lax112.json | 32 ++++- data/demos/json/NAM/demo_nam101.json | 29 ++++- data/demos/json/NAM/demo_nam102.json | 29 ++++- data/demos/json/NAM/demo_nam103.json | 30 ++++- data/demos/json/NAM/demo_nam104.json | 29 ++++- data/demos/json/NAM/demo_nam105.json | 32 ++++- data/demos/json/NAM/demo_nam106.json | 30 ++++- data/demos/json/NAM/demo_nam107.json | 29 ++++- data/demos/json/PAM/demo_pam101.json | 24 +++- data/demos/json/PAM/demo_pam102.json | 24 +++- data/demos/json/PAM/demo_pam103.json | 24 +++- data/demos/json/PAM/demo_pam104.json | 26 +++- data/demos/json/PAM/demo_pam105.json | 26 +++- data/demos/json/PAM/demo_pam106.json | 26 +++- data/demos/json/PAM/demo_pam107.json | 26 +++- data/demos/json/PAM/demo_pam108.json | 27 +++- data/demos/json/PAM/demo_pam109.json | 26 +++- data/demos/json/PAM/demo_pam110.json | 27 +++- data/demos/json/PAM/demo_pam111.json | 28 ++++- data/demos/json/PAM/demo_pam112.json | 28 ++++- data/demos/json/PAM/demo_pam113.json | 28 ++++- data/demos/json/PAM/demo_pam114.json | 31 ++++- data/demos/json/PAM/demo_pam115.json | 31 ++++- data/demos/json/PAM/demo_pam116.json | 1 - data/demos/json/STK/demo_stk101.json | 19 ++- data/demos/json/STK/demo_stk102.json | 21 +++- data/demos/json/STK/demo_stk103.json | 21 +++- data/demos/json/STK/demo_stk104.json | 20 ++- data/demos/json/STK/demo_stk105.json | 20 ++- data/demos/json/STK/demo_stk106.json | 20 ++- data/demos/json/SWPPV/demo_swppv101.json | 30 ++++- data/demos/json/SWPPV/demo_swppv102.json | 30 ++++- data/demos/json/SWPPV/demo_swppv103.json | 30 ++++- data/demos/json/SWPPV/demo_swppv104.json | 30 ++++- data/demos/json/SWPPV/demo_swppv105.json | 30 ++++- data/demos/json/SWPPV/demo_swppv106.json | 30 ++++- data/demos/json/SWPPV/demo_swppv107.json | 30 ++++- data/demos/json/SWPPV/demo_swppv108.json | 30 ++++- data/demos/json/SWPPV/demo_swppv109.json | 30 ++++- scripts/createDemos.R | 151 ++++++++++++----------- 84 files changed, 2004 insertions(+), 148 deletions(-) delete mode 100644 data/demos/json/ANN/demo_ann108.json delete mode 100644 data/demos/json/PAM/demo_pam116.json diff --git a/data/demos/csv/ANN_TestBed.xls b/data/demos/csv/ANN_TestBed.xls index dc7529a55a8d11c4bcf57b975fd680a651009a0a..2ca50bfa523367a8ffc50488e184e91b8fab930a 100755 GIT binary patch literal 12288 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 F{{lN-EcE~Y literal 11776 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 diff --git a/data/demos/csv/FXOUT_TestBed.xls b/data/demos/csv/FXOUT_TestBed.xls index e8822dfec543967a5b488fc98b82ab2f094223e8..c2f13370c527014af4f4cca27d6a1088229f297e 100755 GIT binary patch delta 4336 zcmcgvO>9(E6h7~7{@R)8FGAZlGwt+;nNI%;(=Y+TJisbiPA-sU!Ha*l+$?T`zQu z=8TiUfxgqWL0c4*YM1;Bou_t*axcGEei<8Rn=x#XNt;#OZ;?$)S&bcX=w6$~DN0d! zK;twmQdx~Bv%rjKn4i|5CcZOfhnUiIiF@dQ(I+-$kftXsTkxp=PFs^c72Gt6!TSRr z0dKJjF|NCJ+!&S^uEbDdfE#9BDU!WdUZ z8fJ@T0kW#qlJDpk&mJHA$GJQM_U{nB%LDqtP~ z8#IA{78WbZQKReE_+vCVC@HUL~Y)TI6XZ`0 zgGIZ6Q*J{sH$Fjm(z>Rm*RKpamhoY5b*xd` zdi{sLzkTuMwb#m}JD*>^yZ+tSaliEc|Bbj0Aiv}}BD ziEKgVc(>o`;p;}!qayHyV!Mqm3vnA49)Au&_HdJd^yES77BYbv5wd_LB4qo3lM!@) za7UI!KuEiXEvALiKr<1_0L?}y3p5v@9MF7(+JFv3s2%8Fg!1Hi#EA}B6wrAnLPhd| z#YVsH(P7y5*fdZ{9$iI7dAxx-^5ljcA{*$a^2YTa=sBRTQ?qwXKzh55Eql!bEgG6LBZXF(SMqJi4xk zm_lSpMK`e=G!ZjF#1u`o6ERW$nuv+&*F;RrK1Reu>1!e;3SUpu+(E=d;m7-#$X0>~ z-=#gep@{Ix){5{8h$dnQkrzOc6|rJOeu@;a5=5*75i3c=N)WLUM64Y|tOOAY>(>i@ znT#vKcYBnGBEoljO@ucnO~g(pV#kQ+(y|jo>;w^86X9#NEkvZ!1jQAxcM!1?L~JIK zC_UaWJbFo$62F4z)x)nL9^FI7fu~csedrN?6=gEcm@nli-&%EmSH&f=`j1dq65dB9$PK z(j=Prn@Ut%O0xh7zQcReBEgq$k4`W{>EmkiXU-Igh{BsQpC7qgV9Y+bKY!Zl)Dj`FA`zntN;K2 delta 4189 zcmZu!TWnNS6y5hZowm~{eE_BH?X=T(XWBx6wo{Y>6^f+lZ<8j7fI_Hk($vHcVCn}X zerO0cnh1&Ufjmr1j18X2F{|ZMzM&U8`UHyK0-^{#BFIdfi7g+nUZGT=jX7`BfUE z4ne-5Wkk-ned*=HuD(OIOQXm$ub(_UpE>y2+4<%C*@et=i%YMbn14~zLA`_-vkml7 zD^rUnGlv!zmX{XiGe;L*Uc3Z{-*v2hlkTq6Zn%Fm%_GJq;tus+E+*uHRFfrlQ%yog z#2TKp2-Y#OmJP=ZsGLrQ*b+ZR8zQ$j9t zL>_3(%EoXKvR<;eZ#CbkvgL-4yW9gU?*Km`MOL&f_fgB8u0)8Hk5=WwnQ4Ory9 z)Zp6yYLg5ekB1@@F%@4zq8SiPMYMdPSw`fD11BEO3V4>{A=m1KRvC{BM5e3Q=ZV01LOI8JR?ZV;&RIuCs(fBWz^eeST`e(Yp#r>iJQ*(wMWmRoawO#w zlL0ZQURVP=iOJxF9e(;4iX&;CSE+ax^-5K=tlWHCSG-E_vUvO#Vw53vqDkntSPQ5D zmL5x0jt$W*TkxA}fbGzOgq4sERIlh9Gk|(fJa48Yy=Y&$=9mrChZW4QD6n6SVL7na zDfk?a$JC#K&K#Rtky3D&!{a$jp|A3?H5jvj2I0^^4>2?Sa_v2Sv`IQ;U%@GS)+nFb zd>$8H=(8s9sp&8SsUhIn`SEJz!AUUw0Hhs64paNNXFyiyTjp0igX^Lfrr*M{Q>><#D0FZwU6;9V#cPDo-S zJr^NxyPS@US7ATQro;KwsCjfeh3#ssJ{;#Zv=*74#xAn9bxhhzifiQ`iDuwmWIvls zi|&3s&{Y)8JCHSmTPyqcg>lbD4;yVfOgGwier~k!gxqN3=@+$OAu&rLlN6R`2{(Xh@6@-Fhr_R+A)3bN0iuVIZ9c0XRs|Igbh=WYrYU&37PV}>oFlZS|t>sZz@DbcZ5Q8RgB5NTTFUY<5dY{5c3XSc=qd zmFeTYI4;ln)A?UPsLxjVKK1qSpPNu0|6>VDXva#(bE$mac*TzCvt#<~m_9qE&yMNi z?Ri2<`gnsa$T45LO?mFhu4Uei@j>M3pt1pac+84X$jV(HCn7=oS@3 z3I8WxNy6M3Hx@&)H2 zJJsA5*>73~Ft(fDiuo}Mc&&2a)sY}DI>QdT(f$^BqCQRH=lmLvf`oShyTj zI*1^4l#~vMT`@hOr^J*rp)Jmz(+UV9jQMV*9kJxtkkS!Ea3ZgChZy4_5IcM%r3yOHiIlbjUFgD&PL)q0iIuX_-QrD8&=a-BOCg0) zQRyD^;G(vmG}7?h_@T9e3^I6}R0S?vY}8iliRQelEhvjDEN#ns(Tf*zsy+uWCn7Ze zzPm6rLJf^+=E61-)U?RqSx+?7bDr783$*b>yRFrN#pN8L9hLWH%M||}Wwt!KjTdg? zIc>bie_nGbwaA#quce2@_1pAJ+(S{M{uW)s#EbR#I~mGc$jpoDD=x*8u1*<}vOLOc z^oUxPaWbn@rlh{g5_LCA)W^LP&-Ut6KvKJMlsS?ks+^~|nm?nh%aYWR%vc4YZWoAJ zF6dNHQjd|4#wK#AhBC4I(_q>_D<+15wYii}JBI%P|0wx6h_exfd|qxkkZoeE2; zTBgj&GEt)g6dxSWDMwPj$V_^WsKr5|o(}3%L{gs)QReHRKRc-J=+hDbWBjRK;17rI z#n-+-t#+MXUtunPvVNj7CB8DU!uY@DcfZ`W=CD80mi}$-g}2S<7BR?98tKM{euGa` k3ikf4hwp9w>;dC50l&FWxoNNrpWJ-bs0=s%+8i|h1!-CM0RR91 delta 1080 zcmZvaO=uHA6vy9ewwrIWkhW>k=DTS=x|(exJxDFqwkT2~iWFN!jku6Q;zw&mgwg~R zJW0ubB6#qi7g3>I5sN+K;HftSp$8A*A)tqzLMeic^TsHv%?>;B`2T-z-h7p=m#!|U zPA@b+8K86dphxJ~X*3%6cQFG;ACAi>ACeXEjY$rO4tNS?fFs&vZ8lfXH_eJbkJ-8+ zz;ps3fP8aCsD{2kJ4j5=5oVvE1zTR(aiVR5ajkeIG?tsw=I(+F8&Om(a5{HUD-^Ur z)b7P9_6k|lseQ`iv;kyKjEzoCWXDHO(ak-I(*!Uu-OpB%Q76)R!nH~yCS|7k^>1=P z5Y*%Jr8`V-x(5YSr7zs)ZE99+u)-s7mUgsnxva1N4y;NXb{7crduMPlMo=gb4_E}5 z?FPUP!~bYP3yqcC#fdGnHiHJl#cN1L?Oao2oBBK9AJEc5v$oLKLG8-5|JL-H=K~>L z`qrCd{a0_<<;DAgpX^i!J8&qz|d}J|ku2)JzKq(3Dl8} zwWM$DEC0vU>5}MKQ7@RB`&sHC%$J^72rXuUmifcihTr8r5n2`%y_$I~uuAhow*_BZ J|1l()egV>T%Vq!o diff --git a/data/demos/csv/LAX_TestBed.xls b/data/demos/csv/LAX_TestBed.xls index a3f01ff578bfaa139071ac562c8345155cf71363..a0e5aeb52de4b4d445694ad3e81f09593dec51e1 100755 GIT binary patch literal 16896 zcmeI3Yiu0Xb;s|%XCD%&CoNHri4w(>MbUgnvfR`WDUyoWQlvsjPK>6ghs#-Ut>rGe zyR^kVnKVW}G)B`JNsBaSk-#mG7I4xQaDlc+?e;_ap+*X$DbOMxoPJ0V)CH6vMUf&l z`~TlNGk4A|X-ke;G=@gHvwQBnb06n-&$*A`{=?UHz4nDaKKM=5aeY9g)SH`mm5s$G z@cl?A_bSzo?~HqMb8|C{#@Bn-kB|o52-=zgz%)Vzfy{FV4niKGfKWszA?!fdiO_?9 zA)t04>_*swuoqz;!hVE4g!>Q2dO^%pz-o+htt|C=hQzLI_! zccuOn;bUr*zG2dw<2BmtY%S!X)!ZB8#~uiCO9MxbIY7)+v9f?~iB?gpA|L zJ%w>iaQ$--&xd{h5B|Uv$g}eAC|{m!m$-i3|^95)-h2s`6A#g{hmr ztW%NUe<`)A-XrQ8qE)%Xq;64FE$Y^>Wv|9^B)VG0)S%r-nR+B$QqR-Bf5@-NH zq|w8z&iE7C#1C#0|G+l!`7Pr!7!zA@&u$Z+(_`isor7q96#wHgUZEV_-{o!MAC>V@ zIls^y?!JgxA_ooBZtENa@dA8(ICidn2ts_iW_!=iZGBK6haKf>qC4 zqq*YM+|lQfJy^_O`E#Z1)t9{Hk~{i@_8!l`SD#I&e^*a(O?7LLSylGd06(zc;+l+WGX~lq z18s<(VceK1-r^eUuTZa}KAymu&3Os_PdVf2$alC(!>Y|eVGdSh&VOOy_5<~|#gC$h z1*BnRx8%3V&FX5q+NdK}xlwO7y>k2N`l^q&(<~rMza- zTc2Dn*ZhfkdAZT#BlDG+dfRXMt@dSaeZ{Z0v1hRPx>B)ofHw|K>y+wh@dED60#}l~`V=Bj6B^#n=oAoUT;-a$EE#-ggd# z1;6FD!uX)37&o4fSnkE}de)MoQ zp=KNP>+Wi!1!9f5TdliZ-JQM(Hf49VTKB!C3+T;u_2>Mi>$TmvfSTK=xYw>sxg*2F z!$ZS^?$g!wG9In3!G(C{0cguzH3raP97YbK+712SD4)X>5W&_=L?)Jp>~;_DIuT@!-ZVUIT@>Eq}$OTf=0@Y-Qs6fUx(s9RDzF##oay?I9%`ebr-mOgI55|AqKh@`i(M6s z*or(i^vQ0k?XR9%TZKusQCU5-_A`Oe(#&CF;lSw_dDN(9idbqqUGFSJ4!RhdGeMWO z=)%akNSn}HY@}gHk4ABn;oHod9%Uct>f{;Q$#9N!gBhUZF8ag_m#wEy<9KS`_3PU2 zm^mtNUq;z6OQ0(l16f%8+|}8qe)xLno#6f8%P{Ig?`M3cJ7E1S{j~OfWq7s|Lukg_ z)tTw3Pi)hG$e%tH%n8=#HtA7geTTPX8$kAHF8y?JrP)|PW14;ii<)}bch{?aZOO$N z;3>FQz;3N#@`S^tV;;f^>oKh3JI1pi5H-Z>a_J**>8N}aLwm+7A21D>^@GbP_=K(r z!^&^7qOE(<3g!z;R9H0W1zor-8FH_z`sHe+iq6tYu$Q`b&^4B7C^hCpj03JTYPH7G z930HpatA`KH=0X+^Mw0TqsIr`(+KB||8(FGXoSWN-^yiTBH)BEsBhXe;B*lVYjhB| z)4ZJn(u;!^2OoQE8%^r@HX6%>5G``-JcdoYr4QRY*hELk~;oL|~yKXLndR zja}BS6|J1XndXh-R?gy7tkQ4g98OQ-^>Nqr>3udmkJgV3Sh>JmqHE~yRF;SvB!M2*QW0R$>o^5o4eIPo4yC9^#|W$<-IuH z`NsRKybrtJeX;iK$0qnvk4^8x>Hg2(XXX2F(m!z2$_H>d6>ncZ-W0uX(xx9$__yE6 zhw)Y^p8u#is{ZY;O?Qbt=#1k| z+U>{(v+9cDnD5L7w-l8(p6Jna@XbkBM;Hh1(iKO03d;-gVfWG%N2~43he^LHj;0^a z_Xb8BFKlda87TouiAYL9V((2_3KIKmq%j?5mNokl0Hjqq@9pR*rfG9;=VR;`=Kj^+BQzjl^-zcUnd|fbV>}Wu$|U_@2v1{gC)} z)JTUQ9g3vGkoXqNq#c38cdAA@3W;yV67=UFdO*jMS|22ni{7mtBPx`VDEn9>rI7Ys zNWTP+p8&;v^;ta5(s2rmdfyl2%p&c0lrsk@>}diN`_=oSoOww1M^ZsZMMwikOTi8k zpvYctY%aa>%FCwC9f-jeDrmt@(bgVF4@7CbLAj>oyC8iLs7)!mMa%af&9;0mq+=Mo zCg(m#C!;d=Lt@KK>-r$c){&C!*#RLP6cT-y&3P!0Oj{2_3T-I?n(>@RAq}Ed5>0?% zk8US(_o-93v(=n?Em6)^mMGtNSfWWy^m75xq#&AvU0S^)VV9ODXG%*n3A?myOriyG zDNZ!mMKlT9v_$zPCf?RK(IjlsluIooVVjm{61I6*4MqJY(FY@mM291ZL`NbiPBaM} zN}}{?@xH`~CSjlPv^Y^}Jl@tg(WD@ngnb&KBuAgwr$&R;r3A;6;K((H<(SeOe>dQm z5*$;4V@hyL363ejF(o*r;9sp}rn)$$1jm%%n8GNvmYEV9Q-Whka~zBMPmZS}i5$;F zQk-K7KGx`)mYM3}$oa^!O2H4tr8q}wHJ%pdn8FydmYEV9Q-ULByFPU`Xe&?Wtv#j% z$F$(cl_N%Vz%ea2rUl2e;FuO1(}H7Ka7+u1=`N0G!7(j3rUgg513_CKLLX_5X~8kA zIr7~pM|B!=rRA8$TxmI`F;`l9Obd?bE{(P5YO4%sX0=s@G_!(cR#;`W zize6bmQhyF%nF*+Q#@y!W>(P53Yu9#GaJ#wFhy%F1RBfjIkBaAnJ4xT4sBj7aa3~W4?=HUU19{j(Nc`FF57}$GqT}7aa3~V_tB~ z3y%3NjywU0_bk4O%?pmyK)?D>q#s)5qmjf}b0(6wzx;_vigV=oN}u}4AdNeIJ6CcC zW_N1bx!BzZSA6~I&jXHJ8`!y$Gn?gD5cXIQ9Ld%8mS>)EDZU#iba5;Qjs?N7AUGBT z$AaKk5F87FV?l5%2#y8KaTa>xOkU6&d3MOL%5y7gVFhiAv@ny#oe16*1XA3)7Q~LS zAiQfqc-MmVuJ;F}@Kmf%;a!0)vnUuA1;e6XSkw%^8nn777#0P?qF`7Q42yzcQ847G zwcSw`yBHP)!=hkV6by@kVNozF3Wi0&uqYT71;e6XSQHF-+GrUT1;e7Y!}& zzITx4CndqKBp8+i!;)ZF5)4a%VM#D735F%Xup}6k1Vf$?TZSdUu%sD&IMR2VVM#D7 z35F%XuoN+T9qjN%>=r#R-iF=cItNhnALI3?)GeM(^{BM|8@+_e-{Ki`=Y>->{Tz^j zqf#GC?p7~yGo$wpVeZ2yC$$GnWCeUJbLh}@{E^;u))-tk9OPejQ=)&rd++cz)&H}1 zcwO&wsB^ym3*YJRyH*6EdxA6a1lY%Uxp7`l;~n$DGZ8P;yag{EYX$_q-s6S0%jO-N zQ4H^KBExYaaE*6N1kc<}BDR(Hz8Sw3{x*xJpwu+o6yxZH_<8So_i7*k!YNEF>|w7% zU#rwh`mQc=ZE&etZZ=wtN}GRz$b^Y@>6{B-z`t<=Qj?l=b-u8-i?r%iPO zziZ>~P;Z#XJGk%0Xk}5fWBRb$d6fCTOJ{&9p(au93Vz`@k2XAMBJbeN`uP@^b@RI2 zM|qyZD}j1z$~VG0xbs}c)NJmzQw00ZzklJCQCHL&`oDtT7xK5iGx!y7MKfVc8^45X zAZGh(AgG_~hTH8w_4SWIkr|vHH&j`-!Pmb)zO(k6dk6ie|EG_?Ti2cHKmPmMyU~Up HrvCo{=YS^` literal 16384 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 diff --git a/data/demos/csv/NAM_TestBed.xls b/data/demos/csv/NAM_TestBed.xls index c0f4859871bd414452c99d5defd5e32f2c7d88b0..2a1f445f8ae179b5a1afff20ff055cb2bf90f7de 100755 GIT binary patch delta 1314 zcmaJ=T}u>E7=F&o?Ck9K_xFeEl1j@~YeGp7Z66YqP*ISA7p}Ncuw^J+1gR_4Wh6~M zpo=0a339CNL?XHh0;4WMq6@FP2r3B5-g8`>S(9d&+4DT_^PKaZ_q?Y*P#>Hrc_L^$ zejxa4zbr)pMEqG>TjOuIF^(Fir6+7&c_DXqB8g?9HOw&jlNfC5AjWV371WSb+_(=r zaI|`M>q=eUiqx{;uAV@zy`c*n++z_+v`L1jG{XhJ1Wdff;4G%WGl@5`OwkEJMZ~kBJp1 zc4e|sOdLV9 z$sa=u_beNTBhKSueUU%{V9rJfA$fUTR1^MC1e!$6E5;+dC9%X3g5w~8W=`6Ilegd$ z;(9ilsYf;@EHj^2gnH;7j{4u^jMdOIV@Z7^vYoy&k!fF&t`P8>PK{BelX@=7Bgdmx z>HAuYzecSpNvI}cTs0fxs(hS}d*fD>EL1BZq9(Yip5Us-39CvGs(ncw8BTK5XED}N z6PCPeLUlLARg0+;4koG8v~i?#E!{@k&NPqorL7)ScveNkn_2g$!qb=Gp2-aN%x0|F z*oCJ%%OgYCb&p+m=CYT)DpiOMo~{RtoO&(aq91En_HEqC^_I{JxlWca26CfpbIADA z+AirO#Xi4nPx^yFJ{3@vO EUzG{NCIA2c delta 773 zcmZvZO=uHA6vyApZZ|O>?6%F4-EBU$=|>3NVr#*Z#c%uw2mvJqd&mk41ychS4^oN= zwIFyA=OE&t7xB_lJEDjOd+o(T#k=CYmqNixP3H}PZfzH4=k4$RT=z-Nb#ZvP#y~kBX5~6Yvfq0M~+t!6U!Hw<8{9H)B=-1SjAE z%yv7%hWiszpb7315#MFcVzXW)fpHA31anRIvOgcpFM|O$Y@|`R?cWa?jo=KjKMu3v zugDf(jaQYV0x(${69-RCTs_SVU8kBrQ?)T(?5z_r!=Cr;>Zf24WPg%~>p)r3%s(9= z*t$j15T%Bg5Wt3WM;JYUiQdON^#s-=jmeUY*1oKZPS{eU^~pi&mxI>50j!q? z!j>v6GlR+b3|gOM{X4T5nyW`z%`94PvSqfN9Tru84!@^!VN;Xlrc8EnWp+J}=3E}l z*ZJ_t5os1(Oe$`fy?2|eIy}xU4Q?I#mqUd~lIC{`P4a)lzYmSl_0hVLI4kb(f>^C@ l{w>xhxzXxdZQ+amgRr*h@r}|4O8VGiZ;8Ih@I6mc4gjEOlq&!L diff --git a/data/demos/csv/PAM_TestBed.xls b/data/demos/csv/PAM_TestBed.xls index 0ada71729873f8c4232a1a30be179f999c4ef5f4..955e7ee7fac38770b579c6bee530736193bb6973 100755 GIT binary patch literal 33280 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 literal 32256 zcmeHQdu&|USw9|o?D6}#>$^!eohI?dj$dPYy-w3zHr_Z(L-QiZvMjH5Y+onC+B0T6 z-fnm`JjzS01QY>62vk&o0EwqmBpzjp1VV@cLKF$a9|Z{n;-LkB5Qq}K-*@hv@BHpe z*lfE+rP@jEo%x+}?&J46-}%mW&bc%Gqdy$|)Q5lZ$X~k5>m9Ds{rA0I*BzvH$mb_h zJmTEjyxctwgK4&WgC)h zST->MH!9nhY~!*`$o7zI56dWLuN%jBKz?Z0|@u zKb5@yKdPe7>8)OOHTl<&y13w~@?Lj$M4<mFYj&@|F2%p=slD>a1XCY zC-YQCxAZkR>6Ly|_CxOHHRsoL|CD+lDR|Bm(dN-B{cFcLDd*e=b$?v{^GbA*UP(~Qs4U#_iy)#a$Nd)rHFJ8)AWCRuym-_uKfMdan^R_zi`t( zBAOOKFL|Xp&w3qR&8E-XCw=Zd>8J0L-rF`kFP6}*-n;LU?j&9B|DAlF&Gg%xj`Nf| zjyw0|oZc*tZdzZj6hD*`KXKRH!~4kHPJJJ}+pX_ocf0g`{BDoFPu$JR`=CS&1?R5R z>U-tg;_`=b!xBD7z;UBdu5Op>+r{PgXnTFXwDGS)fFYS1@m{TXzI+fLykBCF7ZDD~ zIc}CWSyS{QG!EK{n@Zez3#+z57~3F|Tf-sOx@JX-J4848+U$ z4Q&S-Y#;AP$NP%we-%;BZ_0HG?prz}N-De}9>*2Vxnuu~xJcrpf}E@%aZuskB~h91W%iX2bF4kaIjInbG}x6DXyZ3oM@|7 zZPd$KjhlD&W0B{eQEnVcp++3!U9asTFD-g;qbT6c)^5CB-MU??qx99Ci`7P4j}IEx z%6InU>=LVKk(LYz=&H57O0~S39&ufc7t-6fv%_k`ZclD|tGr)nly@s%U&j4jsBYt8 zV0Kuq$JMPnB1w8%8*zCTxpIL@wbH1RcQ3rWb-P@>6(@A|gj&7QxC1ERWwnM=mUpk! zE7h&aetB2I$Gvj>#kg^G^K0WRxsPq3bwf0)RBv6ZZpSZ6+<6ed^@bQzqLzf8EsBJP z%1tG5gsD=Q$q6s)?8qg-2D)C|fhO1EgSa8O*X8q#{d!#9mY_F#hs}aw!%}9ia=5oq zIoN`b>y3*SHYDo0RIA=9?$-`PlUlV{+bNcdEAx9&@3)Iz5!c1yYlr)i@l36{U6lH- zH-vAo+$ffo7E8;E%cZ5&;(IGn_(~!ePO(%fm5S1mis{90z_r7=2!0SJ1s3GquUtL9 ze(A!MjrHqdqgS50bV)4z+WKW7j`Pl!mgN7%NTgK{!EMWT%FQJB)#g3Qa566<>K{bt!O`sCUgGUMbUdhB)V8CwMw+A5|wukYSt~4 z_tck3Yq4`TZpSTW$2qT*Bv{(8U}+~?38lb8B|d30s77>s`{jz5T%))d->OursA4gm zW(!N2lvu#+xL#~X11?G|wji;KIF2+bYwIzjCzn9y>ds|!(dL;YR=lwxQJJKK5u3#z zK^`JDnH{?n-;yXuLcPYFiyPPDty+Eiyu=ZWT3x#4^gI_gB<#3RlfFB?aYs6}y(`kE zN~jYi`D3pf?rp|(DSbHzlP*a;N?byh(oQ9=?@KIkM|8e<;l|B(U%GJd-RG~#6kmE> zf8)aH%DRNPH{xoghUiQpvn#dgwYV-VS$f@Dh}J}r^VxXw*%&dYCSTnVAi~Q2nesv9 zK+H!zUY7%U+J_`PAQ~xb(#QN=f{HM77BkGY3k1mjnrE z1}-mAt@N>~hSj6^lH`Wcq7vt_KThIYT&*T?M!DMX@nPkqSlyOPdg^Ult5vFvmIxar zX5n!vcMu+5Y#Sb5=I}U;_L||bm{%I$C1JK?ZN=-2FjdIij8ShIucMrhNXlh0aK6fZ zEcT-Tx|r3qdYtt8>)MpXSS;!K;chGudT4rWBlIx7&P3=fHWZeX8ceD-Oceu2psxX` zs;fG>y6|#b->MwMNma=dbj#U&K^Zgn{o!#yWC zz3!WIX~cE(^@D@Faw59Cq{8Ke<&Huw{XB*F19!J$QqusAxhE+NXE>5clfJMe4H~57 zT*t7UPimkg4a+&%a^iYh(x7j)9F~8wX{g0)n)DtmY2r9q(!@Ah(xBB_622)9@lTZY zY0L@93(HE*dDI~bOc2haoFFLYQKuki=24d*sO3>!5OngWTM!iTs7DaA@u(mOs(92Z z2zq$bCkXfCQNJK);L(5}u=i+C5O{kuBnXT>8Wseu9*qcsop>}V2+M08jS0e(lSku% zq=hDELJ(};=RG6{P0pi-1&MD@(4-(}=<^~$5&V5Yp?}+9h|543{(vwnm zzBJlIq>Fku6WT|l%X=O{eJu2O)Fo#{8}JC~WAX2s#T#^p@{#*NIknG&`dB3N2t3!R9vs2n~hbRx7 z?%vz}#3w%P^HBqKP1JxP)PNz>0Fb{5YQT6vU&})c{FAKZd`vZci=b3}95Ja2q_{f# zq^X}H^|3@^>gUAnP5qqMeWXjQxR;!&|09X|Ik9`Y>zvrV-5GqG-F1%C&xzfK$A#+W z#O}kZhwA6V?oIui*uANr6TA24g!;J_^>bqT;Wb0`b7K2pUZ{RfGz@u!>gVK6z4}lX zzGG4sqCE=r?j*fCN$*b5yHoW}t-VwA{;@>wPSU%R^zKx>Q$N&6dUulEo#JQA+B-?_ zPHD$x?VY4|C+XcudUv+y-AQ_Pimx$+J4x?O@ijgV7S>66!!E--=$*C%c;`u7^oQP< ztT+4aBE7pv?=I52i}dbNy?-LnyG!(bL?0>eSAc!bB(1Vb^-leF7wO$adUuiDU8Hvx z>D{GzpKe|uwC^s`yQ@X-F4DV;^zI_PyGZXY(i^>==?y<%dZYiF)Q2jdMxOM}liqpK zJ5PG&$)Ds^@1IQc&XeAGweM8#Jn5Y$z4N4Zp7hR>-g(kHPkQIczVoDazD4gm>76IN z^Q3p4^v;vs@U5nIp7ch9F{ux*KyNH%n|*ha-rb~kH|gC?_T8;||4gEHx9UAF*YQ_? zeJ>=|*G+nNliuB=cQ@(XO?r2e-rb~kH|gC?dUv!DXEzr(z}QB?jgN< zNberfyNC4dA-#KA^zI?Odr0pd(z}QB?jgMqADG_orshu&B~R+ZSkSwmdM_u83##`@ z6NT|ff%Gnr-UZeBmlC}Tq&Jpb&3_k2?*iF(f%Gnr-UZUTKzbKQ?*i#vAiWDMdKXCV z0_j~Ky$hswf%FDL)4M==V;nN654=I|Ub63AvhQB9?_Scom-NQNo{{@#qIWOp-K%=9 z%2m;?_mbYdq<1gr-Aj7+lHR?fcQ5JPOM3T`-n}h)_mbYdq<1gr-Aj7+lHQ1MP48aP z8za3*eXtOEW8`A~8&gX^pjabGaVDz*$`awSsxnE86hL^JV1Z~Ld8;aZb64$rU zPoL_&mb9)u(z}oJ?jybXNbf$kMu??HmMJA zLeqZIyPx##C;RRvz57Y;e%1S9iQfIBcR%UfPkQ&0-u-0X{iJt4>D^Cy_p9ErAgV2> zpY-l0z584A?kBzbN$-BryI=KAnJwSR7klq8N_dtu@1Elu= z={-Pt52)TxCYlbA-WZvg-UDRcm=BtCco-Ra50c)4r1v1{JxF>FlHP-=_wOWn50c)4 zr1v1{JxF>FlHP-)_aNy#NO}*F-h-s~An85WqW2)_JxF@v0Wq__LDGAW^u|1!>5Z8O zi%&4)HtD`7(Hk>5=D#t+U{@F-y@yEeA<}zD_5Qs??;+BAi1Z#(z0-NOA<}z@^d2I; zhe+=s(tC*X9wNPmRPU#SEqd!A)%*LK_czKtf z-;H?&uXRTbqlBY^a6ZgzPP+Bve8Z$VX39M{o|=S;od zFsVLFst=Ru!=(B!sXk1q50mP{r1~(aK1`|)i-lY7K1`|)tLo1*RSH!fCe<-xW~vX9 z>cgt~Ke%ghhq+hZDQA;4lvfd#i&XklqiFmpMj@iEKJ3`xdSCUc5-4CVncvgnq!L7V z=e{U6=01u6tUHHY@_JOxgIO|p=>_EdmOSlv3s+2DGEIpG(}55_y>Tl)_uS|E$`3q^ z|8h*a@-r&yRhpQr)Bt4D(7Li|&^Vih*|KaJYHBpIih@eZmcz(6n}#~ereTDUO+zha z(-2)`(-2K$)6nB()8Lh}Y491@G+1di4J#wrG^~$g)38dCO~YDAHVrE#*)*)1WYgfq zvuRix$fjW>C7XuTlWZEk7?n-Kia<6E>nYhZtg2+|9J9?~8vHO`lkU9iJ?apYuH@k1 zW?NanBhEJO4Yy&lvhW5rXNa$g*o+pwFlO^Dvfe3Zsd+t&vmS3Ei~=^A2r=ptO@s*Q zOcSAhPh(Pi?aU%3crokG;p?oQLCcEd>r9?)yOkDS|hQ+!rVOIyIs|UkA2+UB(c` z;fBE05ZD?5TSH)L2z6@+b!!N04S}s8)U6?~H3YVXz}67hrU-sMau*YRepMu0SM{qR zhQe6~tcutgpkEcSl3;5HYz={}A+R+BwuZpg5ZD?5TSH)L2y6|3ZHmx?Mea)ywpf#} znG>u@gs78HILCrDiLfN*h11n%zb0V_b83b#<6{W(5r+B+VJv5P;Tor3ldwF*Xof}t zguXd)?@HME6#@8eSh8Ocm}(-_t>vL^4Z)JFB&*a6FICc zL=H3Feje7(4n_`hR*}O@O5`xUj~qswk;5n`a(^uQ5w#n{Y>~T?sO)Ej(|c++D{Oh8 z%6?YZ@ z;ph^5gPjv|vLOn4K0haGX9?N*Ia$jK+4?zI%M021Ia$jK*<#Ec-b={V&&j68AFUYWL!2M6G1V*3XDqUdYzZh+1CA7BiyZ6+*Ut zMl?MRBZ$a-X~NdeM_z9tur-9bH3YVXP`8G_))3elf_F3owuay@41uj7ct=BEYY1!& zfvq8U#}r{~6uBD-KR+9Ivx&gg5ZD?5TSH)L2y6|3ts$^A1h$62))3el0$W31YY1!& zfvq91O%XbT5?2UI6LQv`ee%s*^cOppXG&YM~E$+ z6AsTATJnfQQej?b$s;=BXIBW>j;NQiywH+IbjB~u!yH7U--|}nHcD*q9J5`0l-Q0^ z-HsC5QJvqkD};4BN^D1Uq-iBXwxc?~X?bDYj#Ax@65CN3SBG~U*6oiAhr|4 zc7oVW5Zei2J3(wGi0uTioglUo#CC$%P7vD(Vmm=>Cx|WP`Xc#R6W;?pq-@j3;~`~h zD2yB*Qnp{+JP!S>A$X~;Y38BbS{}TVA$Tc6Xt##or3|6n8iJQH1fOgO?bZ<5ZHh39 z8M${SclI!`eVEujtaY1me^}XKH3i-cKlJ0*Ry+dRg=QYuT1l`q1h#l`#2*K?mItt7DZ z#!>BKxJ=eIj%r`SWwN$$RQnt*leLYb+V^motZf|CK8VX?Z3C(uak1>-uim0+`MJT@ zyZ8R>wU6@t>QSww9ofSsAJyx=t%=~T458&3Ld_V0O&UUt7=le2LQNQgO&UTC7=le2 zg7Su7lZK$UA=soLD4inA!A9;@!ta={wRzcNVvivT=a!GTaBlgS*kD*PoLfF7wio7w zbIZrX=EA&iZuywlT9_BkEgusb3-jPt)7j)>Vp|~!=aw<+8oApE+qWv)<4pv%hQQVk z*ct*`LttwNYz={}A+R+BwuZpg5ZD?5TSMWuSKg{@Ee~vgu)1E9_w33j>OGr=^4YW# zZPHG*Ny7|#_SnbTq@8M$Hr*x-(MtAwr`x2>wn>|7lQ!Qb4bfTl8jEex5K&~yVeK}X zw%jHS>wwvEkGDxf{Fg0%ZcA$Ukb@Q|oYUlJbD5Im$Ict}I=kcQwP4Z%Yif`>E&4+%y5_23~5 z!9yB?hcpBanIg29NPZH{_d{<}w)i%r|5o1TV()ZmnCY;>X}HaekWay}{> zH=oe4IhV=C%_nq>o|b_v!xKktPxc;#wsDed<0Qq+CtYY8CpB_R>*FNZ#z|Gh^1`_J zq(+LC7uv>2Rl)K?+c-(KaZ;IE$uMp{sf^P+^f8hA2(Pz|sTSLqYO#%}7TcIo=Bb8= zq^DZq<|$Qx%bB}H zu88Dkcs<)w#P$@iJ*75b$AxT9sV!Ju$o7=B1j`HAp3=IvypZiFZ3&havOT3O!SX`3 zr?ieOFJy~|DRN(zu$?Bh)5La~*iO5U?KH8SrrF48VvFAZF|DVG?X+5XdY{w8cA91* zr-|(}%|=cW+iA7t^qhzVBl%fhU$-;LHuVWJ%GOZW1I{R0%L{wJ8S-*7Eld>%o!@g+1VmvVFSA2z8qxL@kj!kUhN9X=NMwhttZKQ^1;2P|uu_ z?Ez1>c)8Q60v`n>I3?Qyo^J7Sr&Sd`D(mG=t1WODD3qrBhCCg9T2;bx`H{ok$3uwt zBl#hAZw<3#4fu^4(|nftyjcfL()yUCK5v$+VV106maJixtYMa{VV106maJix`n*}{ z^JbMN+BACcS+)HXVJs85!z6Ex*v=8#Ibu6UZ0CsW9I>4vwsXXGj@Zr-+c{!8M{MVa z?HsY4Q?}`B^qjIy5k_f|dnsW%Pi*Ij?L4uaC${s%cAnVI6We)WJ5OxqiS0bGohP>Q z#CD$8&MVt1G*e(&a4TUPNk;-S3 z?YGGuBZ)K0)&*vMo+X<+OE!6yZ1ODGprE|#qTEi-|q|k;v4mO#D(9iE{5N% zF5tU}uk)MLa!g+CUcXr_@6Mgmz2Ck0&FcT{H+4;@utsEjVBd9@FAu!#8j)k($QrS` z{5=08^G?mbk=P}lAp*Ju{EaxVQhmpl_}_eeVJgreHQd?f^lvzh6mnAI&b^|0_beXd zx?I_+*A8ksjiUUOrg*pb_O;SBh6Ey9dSf>UOsA>lvw zA3wJtY57drS4kRp;G)<@WW%xGc)xVXe)IJOqQD#Z_g~e1GCri8Oc)ZJgOSPWd0E1( z%i|xL`gdsY7|82;;fp6Y71}X8^n)CY^3UU`0(o`F&tlZ%5rcjCBI%|+{^HXgbdT$I zO5wD3c+lf6CIvg>y1V-L=Yt-}9t=E|B2)@dHLGmq43|6N7wPUe=o`d2s>IQ zNNLF9Pc?lcfv;)^%dxmF;)VykKJ@yN

@NDUg~x8jX91^)C>=zWc!-AJx}0fb?F^0!}t1qzwdRI#+JsKk77er z6tMxo!97NQoWWwFn8Rh%&_J)5#1q7T)AgD9T&>Y-+E@cQjQ#B0w$^##s5l211Fms4_* zNZ#_5+=VWTMiQi`f}~4!v63z?-j?&i2us7^895VFq3by5QoD42+3*}2`#db_#o-R<4wydz*`0-jhzNFgYSkl+dGDJXc#ip9o&DFjh- z7K&i!G-44Uq!N+nHd+W*+bDuIX{-c0!Jk4RI5W=uOp-FYZ1KIrJm33%GuxT%%&tAo z1iPsRtB?UW7GI06x0CckCdB-_8}eyq7q7ZLpK+YhRnSkj{sls?#Fmq20^lsa;gg(}RaIpaC%&5Y-^k;fdleYd$gf#NZRfe-TRlJA+RRKJ5ii{;A@x zXg*c^vK|99_*C(eyyQQ~x2gmGmch3qpKs(V;&^)`%OF{j1milPWgM>s@_3tt*3f*I z!Dohlru;wC{+Z#Q8C{w3zfq9>qv9HOD^vVe@#B^s^mEieh14!Bpv_C^{qjweHtS{d sYWyPc8X~|U@pUfTX!4|1x8FQne%U?o3GushGVRu;39g3ep9x0(0i4d2!~g&Q diff --git a/data/demos/csv/SWPPV_TestBed.xls b/data/demos/csv/SWPPV_TestBed.xls index becdcbab2703c7e5ad1ca024a74eb6cb7cc0e2a9..9a012826ab77535f7305be03ab7d63bc1342889a 100755 GIT binary patch literal 31232 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 Date: Wed, 7 Oct 2020 14:14:51 +0200 Subject: [PATCH 03/14] added risk factor data to demo files /events route --- data/actus-dictionary.json | 2339 ----------------- data/demos/.Rhistory | 512 ++++ data/demos/csv/ANN_TestBed.xls | Bin 12288 -> 0 bytes data/demos/csv/FXOUT_TestBed.xls | Bin 15872 -> 0 bytes data/demos/csv/LAM_TestBed.xls | Bin 14848 -> 0 bytes data/demos/csv/LAX_TestBed.xls | Bin 16896 -> 0 bytes data/demos/csv/NAM_TestBed.xls | Bin 12288 -> 0 bytes data/demos/csv/PAM_TestBed.xls | Bin 33280 -> 0 bytes data/demos/csv/STK_TestBed.xls | Bin 9728 -> 0 bytes data/demos/csv/SWPPV_TestBed.xls | Bin 31232 -> 0 bytes data/demos/json/ANN/demo_ann101.json | 23 - data/demos/json/ANN/demo_ann102.json | 23 - data/demos/json/ANN/demo_ann103.json | 23 - data/demos/json/ANN/demo_ann104.json | 26 - data/demos/json/ANN/demo_ann105.json | 28 - data/demos/json/ANN/demo_ann106.json | 29 - data/demos/json/ANN/demo_ann107.json | 27 - data/demos/json/FXOUT/demo_fxout101.json | 19 - data/demos/json/FXOUT/demo_fxout102.json | 19 - data/demos/json/FXOUT/demo_fxout103.json | 19 - data/demos/json/FXOUT/demo_fxout104.json | 20 - data/demos/json/FXOUT/demo_fxout105.json | 21 - data/demos/json/FXOUT/demo_fxout106.json | 23 - data/demos/json/LAM/demo_lam101.json | 27 - data/demos/json/LAM/demo_lam102.json | 27 - data/demos/json/LAM/demo_lam103.json | 28 - data/demos/json/LAM/demo_lam104.json | 27 - data/demos/json/LAM/demo_lam105.json | 30 - data/demos/json/LAM/demo_lam106.json | 28 - data/demos/json/LAM/demo_lam107.json | 29 - data/demos/json/LAM/demo_lam108.json | 29 - data/demos/json/LAM/demo_lam109.json | 30 - data/demos/json/LAM/demo_lam110.json | 30 - data/demos/json/LAM/demo_lam111.json | 30 - data/demos/json/LAX/demo_lax101.json | 27 - data/demos/json/LAX/demo_lax102.json | 27 - data/demos/json/LAX/demo_lax103.json | 27 - data/demos/json/LAX/demo_lax104.json | 28 - data/demos/json/LAX/demo_lax105.json | 27 - data/demos/json/LAX/demo_lax106.json | 30 - data/demos/json/LAX/demo_lax107.json | 28 - data/demos/json/LAX/demo_lax108.json | 30 - data/demos/json/LAX/demo_lax109.json | 30 - data/demos/json/LAX/demo_lax110.json | 31 - data/demos/json/LAX/demo_lax111.json | 31 - data/demos/json/LAX/demo_lax112.json | 31 - data/demos/json/NAM/demo_nam101.json | 28 - data/demos/json/NAM/demo_nam102.json | 28 - data/demos/json/NAM/demo_nam103.json | 29 - data/demos/json/NAM/demo_nam104.json | 28 - data/demos/json/NAM/demo_nam105.json | 31 - data/demos/json/NAM/demo_nam106.json | 29 - data/demos/json/NAM/demo_nam107.json | 28 - data/demos/json/PAM/demo_pam101.json | 23 - data/demos/json/PAM/demo_pam102.json | 23 - data/demos/json/PAM/demo_pam103.json | 23 - data/demos/json/PAM/demo_pam104.json | 25 - data/demos/json/PAM/demo_pam105.json | 25 - data/demos/json/PAM/demo_pam106.json | 25 - data/demos/json/PAM/demo_pam107.json | 25 - data/demos/json/PAM/demo_pam108.json | 26 - data/demos/json/PAM/demo_pam109.json | 25 - data/demos/json/PAM/demo_pam110.json | 26 - data/demos/json/PAM/demo_pam111.json | 27 - data/demos/json/PAM/demo_pam112.json | 27 - data/demos/json/PAM/demo_pam113.json | 27 - data/demos/json/PAM/demo_pam114.json | 30 - data/demos/json/PAM/demo_pam115.json | 30 - data/demos/json/STK/demo_stk101.json | 18 - data/demos/json/STK/demo_stk102.json | 20 - data/demos/json/STK/demo_stk103.json | 20 - data/demos/json/STK/demo_stk104.json | 19 - data/demos/json/STK/demo_stk105.json | 19 - data/demos/json/STK/demo_stk106.json | 19 - data/demos/json/SWPPV/demo_swppv101.json | 29 - data/demos/json/SWPPV/demo_swppv102.json | 29 - data/demos/json/SWPPV/demo_swppv103.json | 29 - data/demos/json/SWPPV/demo_swppv104.json | 29 - data/demos/json/SWPPV/demo_swppv105.json | 29 - data/demos/json/SWPPV/demo_swppv106.json | 29 - data/demos/json/SWPPV/demo_swppv107.json | 29 - data/demos/json/SWPPV/demo_swppv108.json | 29 - data/demos/json/SWPPV/demo_swppv109.json | 29 - data/demos/json/demo_ann101.json | 1 + data/demos/json/demo_ann102.json | 1 + data/demos/json/demo_ann103.json | 1 + data/demos/json/demo_ann104.json | 1 + data/demos/json/demo_ann105.json | 1 + data/demos/json/demo_ann106.json | 1 + data/demos/json/demo_ann107.json | 1 + data/demos/json/demo_fxout101.json | 1 + data/demos/json/demo_fxout102.json | 1 + data/demos/json/demo_fxout103.json | 1 + data/demos/json/demo_fxout104.json | 1 + data/demos/json/demo_fxout105.json | 1 + data/demos/json/demo_fxout106.json | 1 + data/demos/json/demo_lam101.json | 1 + data/demos/json/demo_lam102.json | 1 + data/demos/json/demo_lam103.json | 1 + data/demos/json/demo_lam104.json | 1 + data/demos/json/demo_lam105.json | 1 + data/demos/json/demo_lam106.json | 1 + data/demos/json/demo_lam107.json | 1 + data/demos/json/demo_lam108.json | 1 + data/demos/json/demo_lam109.json | 1 + data/demos/json/demo_lam110.json | 1 + data/demos/json/demo_lam111.json | 1 + data/demos/json/demo_lax101.json | 1 + data/demos/json/demo_lax102.json | 1 + data/demos/json/demo_lax103.json | 1 + data/demos/json/demo_lax104.json | 1 + data/demos/json/demo_lax105.json | 1 + data/demos/json/demo_lax106.json | 1 + data/demos/json/demo_lax107.json | 1 + data/demos/json/demo_lax108.json | 1 + data/demos/json/demo_lax109.json | 1 + data/demos/json/demo_lax110.json | 1 + data/demos/json/demo_lax111.json | 1 + data/demos/json/demo_lax112.json | 1 + data/demos/json/demo_nam101.json | 1 + data/demos/json/demo_nam102.json | 1 + data/demos/json/demo_nam103.json | 1 + data/demos/json/demo_nam104.json | 1 + data/demos/json/demo_nam105.json | 1 + data/demos/json/demo_nam106.json | 1 + data/demos/json/demo_nam107.json | 1 + data/demos/json/demo_pam101.json | 1 + data/demos/json/demo_pam102.json | 1 + data/demos/json/demo_pam103.json | 1 + data/demos/json/demo_pam104.json | 1 + data/demos/json/demo_pam105.json | 1 + data/demos/json/demo_pam106.json | 1 + data/demos/json/demo_pam107.json | 1 + data/demos/json/demo_pam108.json | 1 + data/demos/json/demo_pam109.json | 1 + data/demos/json/demo_pam110.json | 1 + data/demos/json/demo_pam111.json | 1 + data/demos/json/demo_pam112.json | 1 + data/demos/json/demo_pam113.json | 1 + data/demos/json/demo_pam114.json | 1 + data/demos/json/demo_pam115.json | 1 + data/demos/json/demo_stk101.json | 1 + data/demos/json/demo_stk102.json | 1 + data/demos/json/demo_stk103.json | 1 + data/demos/json/demo_stk104.json | 1 + data/demos/json/demo_stk105.json | 1 + data/demos/json/demo_stk106.json | 1 + data/demos/json/demo_swppv101.json | 1 + data/demos/json/demo_swppv102.json | 1 + data/demos/json/demo_swppv103.json | 1 + data/demos/json/demo_swppv104.json | 1 + data/demos/json/demo_swppv105.json | 1 + data/demos/json/demo_swppv106.json | 1 + data/demos/json/demo_swppv107.json | 1 + data/demos/json/demo_swppv108.json | 1 + data/demos/json/demo_swppv109.json | 1 + data/demos/updateDemos.R | 40 + frontend/public/data/covered-contracts.json | 5 +- frontend/src/components/Demo/index.js | 4 +- frontend/src/components/Form/index.js | 41 +- frontend/src/components/Graph/index.js | 4 + frontend/src/components/Landing/index.js | 32 +- scripts/createDemos.R | 111 - .../webapp/controllers/DemoController.java | 2 +- .../webapp/controllers/EventController.java | 9 +- .../{ActusData.java => BatchInputData.java} | 6 +- .../java/org/actus/webapp/models/Demo.java | 32 +- .../org/actus/webapp/models/InputData.java | 42 + 168 files changed, 742 insertions(+), 4436 deletions(-) delete mode 100644 data/actus-dictionary.json delete mode 100755 data/demos/csv/ANN_TestBed.xls delete mode 100755 data/demos/csv/FXOUT_TestBed.xls delete mode 100755 data/demos/csv/LAM_TestBed.xls delete mode 100755 data/demos/csv/LAX_TestBed.xls delete mode 100755 data/demos/csv/NAM_TestBed.xls delete mode 100755 data/demos/csv/PAM_TestBed.xls delete mode 100755 data/demos/csv/STK_TestBed.xls delete mode 100755 data/demos/csv/SWPPV_TestBed.xls delete mode 100644 data/demos/json/ANN/demo_ann101.json delete mode 100644 data/demos/json/ANN/demo_ann102.json delete mode 100644 data/demos/json/ANN/demo_ann103.json delete mode 100644 data/demos/json/ANN/demo_ann104.json delete mode 100644 data/demos/json/ANN/demo_ann105.json delete mode 100644 data/demos/json/ANN/demo_ann106.json delete mode 100644 data/demos/json/ANN/demo_ann107.json delete mode 100644 data/demos/json/FXOUT/demo_fxout101.json delete mode 100644 data/demos/json/FXOUT/demo_fxout102.json delete mode 100644 data/demos/json/FXOUT/demo_fxout103.json delete mode 100644 data/demos/json/FXOUT/demo_fxout104.json delete mode 100644 data/demos/json/FXOUT/demo_fxout105.json delete mode 100644 data/demos/json/FXOUT/demo_fxout106.json delete mode 100644 data/demos/json/LAM/demo_lam101.json delete mode 100644 data/demos/json/LAM/demo_lam102.json delete mode 100644 data/demos/json/LAM/demo_lam103.json delete mode 100644 data/demos/json/LAM/demo_lam104.json delete mode 100644 data/demos/json/LAM/demo_lam105.json delete mode 100644 data/demos/json/LAM/demo_lam106.json delete mode 100644 data/demos/json/LAM/demo_lam107.json delete mode 100644 data/demos/json/LAM/demo_lam108.json delete mode 100644 data/demos/json/LAM/demo_lam109.json delete mode 100644 data/demos/json/LAM/demo_lam110.json delete mode 100644 data/demos/json/LAM/demo_lam111.json delete mode 100644 data/demos/json/LAX/demo_lax101.json delete mode 100644 data/demos/json/LAX/demo_lax102.json delete mode 100644 data/demos/json/LAX/demo_lax103.json delete mode 100644 data/demos/json/LAX/demo_lax104.json delete mode 100644 data/demos/json/LAX/demo_lax105.json delete mode 100644 data/demos/json/LAX/demo_lax106.json delete mode 100644 data/demos/json/LAX/demo_lax107.json delete mode 100644 data/demos/json/LAX/demo_lax108.json delete mode 100644 data/demos/json/LAX/demo_lax109.json delete mode 100644 data/demos/json/LAX/demo_lax110.json delete mode 100644 data/demos/json/LAX/demo_lax111.json delete mode 100644 data/demos/json/LAX/demo_lax112.json delete mode 100644 data/demos/json/NAM/demo_nam101.json delete mode 100644 data/demos/json/NAM/demo_nam102.json delete mode 100644 data/demos/json/NAM/demo_nam103.json delete mode 100644 data/demos/json/NAM/demo_nam104.json delete mode 100644 data/demos/json/NAM/demo_nam105.json delete mode 100644 data/demos/json/NAM/demo_nam106.json delete mode 100644 data/demos/json/NAM/demo_nam107.json delete mode 100644 data/demos/json/PAM/demo_pam101.json delete mode 100644 data/demos/json/PAM/demo_pam102.json delete mode 100644 data/demos/json/PAM/demo_pam103.json delete mode 100644 data/demos/json/PAM/demo_pam104.json delete mode 100644 data/demos/json/PAM/demo_pam105.json delete mode 100644 data/demos/json/PAM/demo_pam106.json delete mode 100644 data/demos/json/PAM/demo_pam107.json delete mode 100644 data/demos/json/PAM/demo_pam108.json delete mode 100644 data/demos/json/PAM/demo_pam109.json delete mode 100644 data/demos/json/PAM/demo_pam110.json delete mode 100644 data/demos/json/PAM/demo_pam111.json delete mode 100644 data/demos/json/PAM/demo_pam112.json delete mode 100644 data/demos/json/PAM/demo_pam113.json delete mode 100644 data/demos/json/PAM/demo_pam114.json delete mode 100644 data/demos/json/PAM/demo_pam115.json delete mode 100644 data/demos/json/STK/demo_stk101.json delete mode 100644 data/demos/json/STK/demo_stk102.json delete mode 100644 data/demos/json/STK/demo_stk103.json delete mode 100644 data/demos/json/STK/demo_stk104.json delete mode 100644 data/demos/json/STK/demo_stk105.json delete mode 100644 data/demos/json/STK/demo_stk106.json delete mode 100644 data/demos/json/SWPPV/demo_swppv101.json delete mode 100644 data/demos/json/SWPPV/demo_swppv102.json delete mode 100644 data/demos/json/SWPPV/demo_swppv103.json delete mode 100644 data/demos/json/SWPPV/demo_swppv104.json delete mode 100644 data/demos/json/SWPPV/demo_swppv105.json delete mode 100644 data/demos/json/SWPPV/demo_swppv106.json delete mode 100644 data/demos/json/SWPPV/demo_swppv107.json delete mode 100644 data/demos/json/SWPPV/demo_swppv108.json delete mode 100644 data/demos/json/SWPPV/demo_swppv109.json create mode 100644 data/demos/json/demo_ann101.json create mode 100644 data/demos/json/demo_ann102.json create mode 100644 data/demos/json/demo_ann103.json create mode 100644 data/demos/json/demo_ann104.json create mode 100644 data/demos/json/demo_ann105.json create mode 100644 data/demos/json/demo_ann106.json create mode 100644 data/demos/json/demo_ann107.json create mode 100644 data/demos/json/demo_fxout101.json create mode 100644 data/demos/json/demo_fxout102.json create mode 100644 data/demos/json/demo_fxout103.json create mode 100644 data/demos/json/demo_fxout104.json create mode 100644 data/demos/json/demo_fxout105.json create mode 100644 data/demos/json/demo_fxout106.json create mode 100644 data/demos/json/demo_lam101.json create mode 100644 data/demos/json/demo_lam102.json create mode 100644 data/demos/json/demo_lam103.json create mode 100644 data/demos/json/demo_lam104.json create mode 100644 data/demos/json/demo_lam105.json create mode 100644 data/demos/json/demo_lam106.json create mode 100644 data/demos/json/demo_lam107.json create mode 100644 data/demos/json/demo_lam108.json create mode 100644 data/demos/json/demo_lam109.json create mode 100644 data/demos/json/demo_lam110.json create mode 100644 data/demos/json/demo_lam111.json create mode 100644 data/demos/json/demo_lax101.json create mode 100644 data/demos/json/demo_lax102.json create mode 100644 data/demos/json/demo_lax103.json create mode 100644 data/demos/json/demo_lax104.json create mode 100644 data/demos/json/demo_lax105.json create mode 100644 data/demos/json/demo_lax106.json create mode 100644 data/demos/json/demo_lax107.json create mode 100644 data/demos/json/demo_lax108.json create mode 100644 data/demos/json/demo_lax109.json create mode 100644 data/demos/json/demo_lax110.json create mode 100644 data/demos/json/demo_lax111.json create mode 100644 data/demos/json/demo_lax112.json create mode 100644 data/demos/json/demo_nam101.json create mode 100644 data/demos/json/demo_nam102.json create mode 100644 data/demos/json/demo_nam103.json create mode 100644 data/demos/json/demo_nam104.json create mode 100644 data/demos/json/demo_nam105.json create mode 100644 data/demos/json/demo_nam106.json create mode 100644 data/demos/json/demo_nam107.json create mode 100644 data/demos/json/demo_pam101.json create mode 100644 data/demos/json/demo_pam102.json create mode 100644 data/demos/json/demo_pam103.json create mode 100644 data/demos/json/demo_pam104.json create mode 100644 data/demos/json/demo_pam105.json create mode 100644 data/demos/json/demo_pam106.json create mode 100644 data/demos/json/demo_pam107.json create mode 100644 data/demos/json/demo_pam108.json create mode 100644 data/demos/json/demo_pam109.json create mode 100644 data/demos/json/demo_pam110.json create mode 100644 data/demos/json/demo_pam111.json create mode 100644 data/demos/json/demo_pam112.json create mode 100644 data/demos/json/demo_pam113.json create mode 100644 data/demos/json/demo_pam114.json create mode 100644 data/demos/json/demo_pam115.json create mode 100644 data/demos/json/demo_stk101.json create mode 100644 data/demos/json/demo_stk102.json create mode 100644 data/demos/json/demo_stk103.json create mode 100644 data/demos/json/demo_stk104.json create mode 100644 data/demos/json/demo_stk105.json create mode 100644 data/demos/json/demo_stk106.json create mode 100644 data/demos/json/demo_swppv101.json create mode 100644 data/demos/json/demo_swppv102.json create mode 100644 data/demos/json/demo_swppv103.json create mode 100644 data/demos/json/demo_swppv104.json create mode 100644 data/demos/json/demo_swppv105.json create mode 100644 data/demos/json/demo_swppv106.json create mode 100644 data/demos/json/demo_swppv107.json create mode 100644 data/demos/json/demo_swppv108.json create mode 100644 data/demos/json/demo_swppv109.json create mode 100644 data/demos/updateDemos.R delete mode 100644 scripts/createDemos.R rename src/main/java/org/actus/webapp/models/{ActusData.java => BatchInputData.java} (85%) create mode 100644 src/main/java/org/actus/webapp/models/InputData.java 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 index e69de29..50ccbbd 100644 --- a/data/demos/.Rhistory +++ b/data/demos/.Rhistory @@ -0,0 +1,512 @@ +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +riskFactors +json = fromJSON(paste0(source_path,"/",file_name)) +riskFactors = list() +if(is.null(json$terms$marketObjectCodeOfRateReset)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json$riskFactors = riskFactors +json +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +# read data csv demo files +file_names <- list.files(path = source_path,recursive = TRUE) +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(is.null(json$terms$marketObjectCodeOfRateReset)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +file_names +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeOfRateReset)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +json$terms$nominalInterestRate +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +json = fromJSON(paste0(source_path,"/",file_name)) +riskFactors = list() +json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms +json$terms$marketObjectCodeRateReset = NULL +json$terms +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +factor +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +riskFactors +file_name +file_name="demo_pam111.json" +json = fromJSON(paste0(source_path,"/",file_name)) +file_name +file_name="PAM/demo_pam111.json" +json = fromJSON(paste0(source_path,"/",file_name)) +json +riskFactors = list() +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json = fromJSON(paste0(source_path,"/",file_name)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor +json$terms$marketObjectCodeOfRateReset +json$terms$marketObjectCodeOfRateReset +json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeOfRateReset +json$terms +file_name="PAM/demo_pam111.json" +json = fromJSON(paste0(source_path,"/",file_name)) +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"))) +json = fromJSON(paste0(source_path,"/",file_name)) +json +!is.null(json$terms$marketObjectCodeRateReset) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json = fromJSON(paste0(source_path,"/",file_name)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, rf_template) +} +json +json$riskFactors = riskFactors +json +json +file_name +json = fromJSON(paste0(source_path,"/",file_name)) +json +riskFactors = list() +!is.null(json$terms$marketObjectCodeRateReset) +json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json +json$terms$marketObjectCodeOfRateReset +json$terms$marketObjectCodeRateReset = NULL +json +factor = rf_template +factor +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, factor) +riskFactors +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, factor) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +json +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +gsub +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", gsub("demo_", "", unlist(strsplit(file_name,"/"))[2]))) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +riskFactors = list() +if(!is.null(json$terms$marketObjectCodeRateReset)) { +json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset +json$terms$marketObjectCodeRateReset = NULL +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset +factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) +riskFactors = c(riskFactors, list(factor)) +} +if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { +factor = rf_template +factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex +factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +json$contract = json$terms +json$terms = NULL +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +library(jsonlite) +library(readr) +#library(magrittr) +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)) +json$contract = json$terms +json$terms = NULL +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$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +setwd("~/repos/actus/actus-webapp/data/demos") +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)) +json$contract = json$terms +json$terms = NULL +json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate +json$contract$scalingIndexAtStatusDate = NULL +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$scalingIndexAtStatusDate) ) +riskFactors = c(riskFactors, list(factor)) +} +json$riskFactors = riskFactors +write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) +} +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)) +json$contract = json$terms +json$terms = NULL +json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate +json$contract$scalingIndexAtStatusDate = NULL +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, "/", unlist(strsplit(file_name,"/"))[2])) +} diff --git a/data/demos/csv/ANN_TestBed.xls b/data/demos/csv/ANN_TestBed.xls deleted file mode 100755 index 2ca50bfa523367a8ffc50488e184e91b8fab930a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 F{{lN-EcE~Y diff --git a/data/demos/csv/FXOUT_TestBed.xls b/data/demos/csv/FXOUT_TestBed.xls deleted file mode 100755 index c2f13370c527014af4f4cca27d6a1088229f297e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15872 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 G{{Ig=ztnXA diff --git a/data/demos/csv/LAM_TestBed.xls b/data/demos/csv/LAM_TestBed.xls deleted file mode 100755 index bb3b4953bd129bb89df940234b7ded5f6713f806..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14848 zcmeI3Yit}>702)F?99&YCb9FhleFoyG}LJl*LM0yfHrpRKrJP9lsKSBNOZhAPPSR^ zTD$8su6US7g%GWHRN|!yL=}(#i58HGcnFeje4tQO6j8*7mP$yxq=1U5qPFJ$zcagc zj@PD68xRed>UXw0rxsmrSGIa}A*d6Ue~Bcb;*zQ>+O04Ld8Ml@5LLRN-tQ0sHfC}`t>^f zx(2V7`o3=STbwhf8#Rw*(LKGjESYV zyUXNf^q9Gh(_iS{%74GiSGbS1_b!>w`hg|y^H2)w$-G+Nd*{5Z-`CE&`hDGeTEDNK z&*=9J^A6ruBeFm|GFGik2W5ZYp;QOL39Ep3?53-<6(GQ?RHsXo zpxkV61nps5F_;^!&Q==3)yiqy0Gh%>%XY(u$ZR=awL3v(TU&RFD!?zLSi?mnS1(&K zG);Zzui08HtQ6+p=%y1!!k|pUVNR)1YLtTVfis1ZLFGgkJ8v3}td$yb6cOB3s#G;7 zAFh=uh0;t=zJ3YgT7^f#VmPg7VV@NHafw1$T?x-LmMDoST%*)ciAsd8epQVh@dh^y-fd8mPj5RU*Kw#9uXn_#5HEe=dg;ihy72gCRjK^_U~VFQDu zhR;W5YGF`B4~unZReVgTgVo9jf2LZ8533cwRPh7Xd)%=!oCn*VotEx68k`)Hvw}mC7t;a}YIvZT?I&3hT@RLuNIqy5RuZp+ymWMI+W! zp2SEh`cNbAr%Gq=aV#3CJ{4xqw`}jl)EpbeygWE`2%Z?|>%V1pUqAj&^z|Y4$l;+V z_g0-dfL!c^4)-5F*oWQFp1uQnZtcT_A3JvNAa68*Ca@-XBR0X`g3bQT{u~@!?~VH1ySsm2_Z}MX z=o`dw@ic((4bgZ{oAEbmPif0=WIKl#S{ZJZ2!47gIA1FJdUqT%ZIu&_1c<4nwg(P*jhn`@1K5^L^`Ug$P9 zF?wL+Bg<&j8rP?TS}B+;hi2?^o+cfFA;-QkT<+!5P!~_ts?*T07EYnJN+I;;N@2O^ zV^utjF^ZW~*Aty~^l$IQGw%3s@3Espy%R?c3>`goTh+GmD$wNjp2!b|_|{=Dn>`0>}gt5G}Qr4?C#9>&MU7Z5ewp&rJ#L>Qq8 z-bN&Rh%cV)@Jiu1p`wjrr`R~ILI6}mu*7ZFS{)2^BJ6qj8-IK1(B$F$@6-A7$Z1~N z83wBD)`wAYK7FHZu~WZ(MAvN|D1B7teN4Z;744_=^@sg8BtG}x^B#TuasQ6Q=dY^k zpiL3|FtAIhUDhru|M=bb|Lp$eyQPky#8V&8W-IlHO+4OGT4t+1tut~8H7C{>*+#JU zbf=Ni2n>5VjO^fm9zD|V2r#71UYe8~jqI?|!?EPy^`Fb4v zy|~@T8?cp}PS~>%f%~<-Dc^*+{j&*ux^RrVYqKfuR^96P^+w*THmjQw`fkD2_mPA? zTh&(OB>a7qx=P)8wP}wq(aPl`S*7&OAf}8G<)s*eD|NN%W8ALht<5@*!s0vz_lxr| zZQAlUrWe=4jB4d6t3&s}W7cN9W*!!jwmi<4#r1eByEu=ta&aDyZIgMgVD#`pSdA-^ zEO?yuMp6nAEsZ1_5^ap6G$dLVNe(316-h26S`-6lCqGfet9nMmAABN zl1kGC3q-or^{twuvb`mdijhd=tthiGn=BBa0C!RPT^+__^S4UEZ(6tj%Ppgb% zc;85Kl6eFWqju|s<|Jb@Czf7#V{}pXYBIM= z?Z7MhGqfQXynI<}x=3p#vS8;fmCr#W|QP3Oxo9b3?`1sz+^u>~Dl z(6OB70w*OIuh^+V!H z>S#L6r-dWPID(8L$T)(GBgi;{j3dZ6f{Y{PjnhVkzA!8tLBgFg z=esc-PtfrM9q!motmX+io}l9iI-a28wbAhe9Z%5l1RYP%@dO=D(D4KvPtfrM9j}cJ ztu%BzLB|txJWYoy0;6S5(BaOnOWhWiWyRdd3OZRqCoAY=HJ!&}I{ccNS=F+FPFB$2 zX^PqBWCfk9ppzAJvTby-f=*V@$qG7IK_@HdWCfk9ppzAJvYO6b_>HSmR?}%l3bZL& zE$Hv8CbO^Q;pVEw2t2FFsKkCPD^@n{#Jkkn;W48M zuBC=fPSD}#Fms2x8#+AcGUF{L=;Q>QTpJynk)dsK7n&1va)M4y(8&opIYB2U=;Q>Q zoS>5vbZCX4lhbtG-tusgPOgnkPSD}WNSAs?+%_-hjb_%aDqL?7mg?Rg)mB-&zJ6`enI_@ zoz%CT>_%?kX-#yp%agPCyU93pwNiAa1;$BUev%j5c+tGjro{{QU(9PG<{~btVquzC zdR!LV?T)`dr-#X%rKu^#q_6wJ z_=`Gyop*Q@t2)nZ@L42o8(BVx#4&#t61OEM zk@&!DATiXMN8+EK9zfzBp1y#@p8oiX(tn!aQTCm)m14;sE0yd1P^DNa`8|`!*`do> zmz&Z-B=zXdw@}ufDdQUC%i({1{I7rbrNz(hUiX`O?)cQNsoILK+at(x7Ul8FowS3UGBGe=TiUo>K8mkgmx%{1IyM@9VIi>p$1{OLbkW P|C7JJxfD9Qk^cV$)1}TR diff --git a/data/demos/csv/LAX_TestBed.xls b/data/demos/csv/LAX_TestBed.xls deleted file mode 100755 index a0e5aeb52de4b4d445694ad3e81f09593dec51e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16896 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 HrvCo{=YS^` diff --git a/data/demos/csv/NAM_TestBed.xls b/data/demos/csv/NAM_TestBed.xls deleted file mode 100755 index 2a1f445f8ae179b5a1afff20ff055cb2bf90f7de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 diff --git a/data/demos/csv/PAM_TestBed.xls b/data/demos/csv/PAM_TestBed.xls deleted file mode 100755 index 955e7ee7fac38770b579c6bee530736193bb6973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33280 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 diff --git a/data/demos/csv/STK_TestBed.xls b/data/demos/csv/STK_TestBed.xls deleted file mode 100755 index ce8c5c01cc01014190bd129c9beb213451747cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9728 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 { this.setState({ results: res.data, @@ -313,7 +307,7 @@ export class Form extends PureComponent { }) } - passDemoData(terms, id) { + passDemoData(terms, riskFactorData) { let groups = [...this.state.groups]; let nonRequired = {...this.state.originalNonRequiredFields}; let required = {...this.state.originalRequiredFields}; @@ -354,7 +348,8 @@ export class Form extends PureComponent { ...required}, nonRequiredFields: { ...this.state.originalNonRequiredFields, - ...nonRequired} + ...nonRequired}, + riskFactorData: riskFactorData }); } @@ -394,9 +389,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 ( - + ) })} 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/scripts/createDemos.R b/scripts/createDemos.R deleted file mode 100644 index 766b554..0000000 --- a/scripts/createDemos.R +++ /dev/null @@ -1,111 +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 - times <- (grep("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}T[[:digit:]]{2}",terms_dat)) - data <-paste0(terms_dat[grep("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}T[[:digit:]]{2}",terms_dat)],":00:00") - n <- 1 - for(j in times){ - terms_dat[j] = data[n] - n <- n + 1 - } - # 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/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 06f7c98..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,10 +49,10 @@ public double stateAt(String id, LocalDateTime time, StateSpace states, // String -> ArrayList @RequestMapping(method = RequestMethod.POST, value = "/events") @CrossOrigin(origins = "*") - public List solveContract(@RequestBody ActusData json) { + public List solveContract(@RequestBody InputData json) { // extract contract terms from body - ContractModel terms = ContractModel.parse(json.getContracts().get(0)); + ContractModel terms = ContractModel.parse(json.getContract()); List riskFactorData = json.getRiskFactors(); // create risk factor observer @@ -66,7 +67,7 @@ public List solveContract(@RequestBody ActusData 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 From 2263110a2d8db7abbf23030f85b947934de8cde0 Mon Sep 17 00:00:00 2001 From: Nils Bundi Date: Wed, 7 Oct 2020 17:59:12 +0200 Subject: [PATCH 04/14] fixed missing interest cycle in demos of amortizing instruments --- data/demos/json/demo_ann101.json | 2 +- data/demos/json/demo_ann102.json | 2 +- data/demos/json/demo_ann103.json | 2 +- data/demos/json/demo_ann104.json | 2 +- data/demos/json/demo_ann107.json | 2 +- data/demos/jsonOld/demo_ann101.json | 1 + data/demos/jsonOld/demo_ann102.json | 1 + data/demos/jsonOld/demo_ann103.json | 1 + data/demos/jsonOld/demo_ann104.json | 1 + data/demos/jsonOld/demo_ann105.json | 1 + data/demos/jsonOld/demo_ann106.json | 1 + data/demos/jsonOld/demo_ann107.json | 1 + data/demos/jsonOld/demo_fxout101.json | 1 + data/demos/jsonOld/demo_fxout102.json | 1 + data/demos/jsonOld/demo_fxout103.json | 1 + data/demos/jsonOld/demo_fxout104.json | 1 + data/demos/jsonOld/demo_fxout105.json | 1 + data/demos/jsonOld/demo_fxout106.json | 1 + data/demos/jsonOld/demo_lam101.json | 1 + data/demos/jsonOld/demo_lam102.json | 1 + data/demos/jsonOld/demo_lam103.json | 1 + data/demos/jsonOld/demo_lam104.json | 1 + data/demos/jsonOld/demo_lam105.json | 1 + data/demos/jsonOld/demo_lam106.json | 1 + data/demos/jsonOld/demo_lam107.json | 1 + data/demos/jsonOld/demo_lam108.json | 1 + data/demos/jsonOld/demo_lam109.json | 1 + data/demos/jsonOld/demo_lam110.json | 1 + data/demos/jsonOld/demo_lam111.json | 1 + data/demos/jsonOld/demo_lax101.json | 1 + data/demos/jsonOld/demo_lax102.json | 1 + data/demos/jsonOld/demo_lax103.json | 1 + data/demos/jsonOld/demo_lax104.json | 1 + data/demos/jsonOld/demo_lax105.json | 1 + data/demos/jsonOld/demo_lax106.json | 1 + data/demos/jsonOld/demo_lax107.json | 1 + data/demos/jsonOld/demo_lax108.json | 1 + data/demos/jsonOld/demo_lax109.json | 1 + data/demos/jsonOld/demo_lax110.json | 1 + data/demos/jsonOld/demo_lax111.json | 1 + data/demos/jsonOld/demo_lax112.json | 1 + data/demos/jsonOld/demo_nam101.json | 1 + data/demos/jsonOld/demo_nam102.json | 1 + data/demos/jsonOld/demo_nam103.json | 1 + data/demos/jsonOld/demo_nam104.json | 1 + data/demos/jsonOld/demo_nam105.json | 1 + data/demos/jsonOld/demo_nam106.json | 1 + data/demos/jsonOld/demo_nam107.json | 1 + data/demos/jsonOld/demo_pam101.json | 1 + data/demos/jsonOld/demo_pam102.json | 1 + data/demos/jsonOld/demo_pam103.json | 1 + data/demos/jsonOld/demo_pam104.json | 1 + data/demos/jsonOld/demo_pam105.json | 1 + data/demos/jsonOld/demo_pam106.json | 1 + data/demos/jsonOld/demo_pam107.json | 1 + data/demos/jsonOld/demo_pam108.json | 1 + data/demos/jsonOld/demo_pam109.json | 1 + data/demos/jsonOld/demo_pam110.json | 1 + data/demos/jsonOld/demo_pam111.json | 1 + data/demos/jsonOld/demo_pam112.json | 1 + data/demos/jsonOld/demo_pam113.json | 1 + data/demos/jsonOld/demo_pam114.json | 1 + data/demos/jsonOld/demo_pam115.json | 1 + data/demos/jsonOld/demo_stk101.json | 1 + data/demos/jsonOld/demo_stk102.json | 1 + data/demos/jsonOld/demo_stk103.json | 1 + data/demos/jsonOld/demo_stk104.json | 1 + data/demos/jsonOld/demo_stk105.json | 1 + data/demos/jsonOld/demo_stk106.json | 1 + data/demos/jsonOld/demo_swppv101.json | 1 + data/demos/jsonOld/demo_swppv102.json | 1 + data/demos/jsonOld/demo_swppv103.json | 1 + data/demos/jsonOld/demo_swppv104.json | 1 + data/demos/jsonOld/demo_swppv105.json | 1 + data/demos/jsonOld/demo_swppv106.json | 1 + data/demos/jsonOld/demo_swppv107.json | 1 + data/demos/jsonOld/demo_swppv108.json | 1 + data/demos/jsonOld/demo_swppv109.json | 1 + data/demos/updateDemos.R | 51 ++++++++++++++++----------- 79 files changed, 109 insertions(+), 25 deletions(-) create mode 100644 data/demos/jsonOld/demo_ann101.json create mode 100644 data/demos/jsonOld/demo_ann102.json create mode 100644 data/demos/jsonOld/demo_ann103.json create mode 100644 data/demos/jsonOld/demo_ann104.json create mode 100644 data/demos/jsonOld/demo_ann105.json create mode 100644 data/demos/jsonOld/demo_ann106.json create mode 100644 data/demos/jsonOld/demo_ann107.json create mode 100644 data/demos/jsonOld/demo_fxout101.json create mode 100644 data/demos/jsonOld/demo_fxout102.json create mode 100644 data/demos/jsonOld/demo_fxout103.json create mode 100644 data/demos/jsonOld/demo_fxout104.json create mode 100644 data/demos/jsonOld/demo_fxout105.json create mode 100644 data/demos/jsonOld/demo_fxout106.json create mode 100644 data/demos/jsonOld/demo_lam101.json create mode 100644 data/demos/jsonOld/demo_lam102.json create mode 100644 data/demos/jsonOld/demo_lam103.json create mode 100644 data/demos/jsonOld/demo_lam104.json create mode 100644 data/demos/jsonOld/demo_lam105.json create mode 100644 data/demos/jsonOld/demo_lam106.json create mode 100644 data/demos/jsonOld/demo_lam107.json create mode 100644 data/demos/jsonOld/demo_lam108.json create mode 100644 data/demos/jsonOld/demo_lam109.json create mode 100644 data/demos/jsonOld/demo_lam110.json create mode 100644 data/demos/jsonOld/demo_lam111.json create mode 100644 data/demos/jsonOld/demo_lax101.json create mode 100644 data/demos/jsonOld/demo_lax102.json create mode 100644 data/demos/jsonOld/demo_lax103.json create mode 100644 data/demos/jsonOld/demo_lax104.json create mode 100644 data/demos/jsonOld/demo_lax105.json create mode 100644 data/demos/jsonOld/demo_lax106.json create mode 100644 data/demos/jsonOld/demo_lax107.json create mode 100644 data/demos/jsonOld/demo_lax108.json create mode 100644 data/demos/jsonOld/demo_lax109.json create mode 100644 data/demos/jsonOld/demo_lax110.json create mode 100644 data/demos/jsonOld/demo_lax111.json create mode 100644 data/demos/jsonOld/demo_lax112.json create mode 100644 data/demos/jsonOld/demo_nam101.json create mode 100644 data/demos/jsonOld/demo_nam102.json create mode 100644 data/demos/jsonOld/demo_nam103.json create mode 100644 data/demos/jsonOld/demo_nam104.json create mode 100644 data/demos/jsonOld/demo_nam105.json create mode 100644 data/demos/jsonOld/demo_nam106.json create mode 100644 data/demos/jsonOld/demo_nam107.json create mode 100644 data/demos/jsonOld/demo_pam101.json create mode 100644 data/demos/jsonOld/demo_pam102.json create mode 100644 data/demos/jsonOld/demo_pam103.json create mode 100644 data/demos/jsonOld/demo_pam104.json create mode 100644 data/demos/jsonOld/demo_pam105.json create mode 100644 data/demos/jsonOld/demo_pam106.json create mode 100644 data/demos/jsonOld/demo_pam107.json create mode 100644 data/demos/jsonOld/demo_pam108.json create mode 100644 data/demos/jsonOld/demo_pam109.json create mode 100644 data/demos/jsonOld/demo_pam110.json create mode 100644 data/demos/jsonOld/demo_pam111.json create mode 100644 data/demos/jsonOld/demo_pam112.json create mode 100644 data/demos/jsonOld/demo_pam113.json create mode 100644 data/demos/jsonOld/demo_pam114.json create mode 100644 data/demos/jsonOld/demo_pam115.json create mode 100644 data/demos/jsonOld/demo_stk101.json create mode 100644 data/demos/jsonOld/demo_stk102.json create mode 100644 data/demos/jsonOld/demo_stk103.json create mode 100644 data/demos/jsonOld/demo_stk104.json create mode 100644 data/demos/jsonOld/demo_stk105.json create mode 100644 data/demos/jsonOld/demo_stk106.json create mode 100644 data/demos/jsonOld/demo_swppv101.json create mode 100644 data/demos/jsonOld/demo_swppv102.json create mode 100644 data/demos/jsonOld/demo_swppv103.json create mode 100644 data/demos/jsonOld/demo_swppv104.json create mode 100644 data/demos/jsonOld/demo_swppv105.json create mode 100644 data/demos/jsonOld/demo_swppv106.json create mode 100644 data/demos/jsonOld/demo_swppv107.json create mode 100644 data/demos/jsonOld/demo_swppv108.json create mode 100644 data/demos/jsonOld/demo_swppv109.json diff --git a/data/demos/json/demo_ann101.json b/data/demos/json/demo_ann101.json index 9c98a1b..60db793 100644 --- a/data/demos/json/demo_ann101.json +++ b/data/demos/json/demo_ann101.json @@ -1 +1 @@ -{"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},"riskFactors":[]} +{"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 index b863d7e..a638c14 100644 --- a/data/demos/json/demo_ann102.json +++ b/data/demos/json/demo_ann102.json @@ -1 +1 @@ -{"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},"riskFactors":[]} +{"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 index e85dc32..c1179a2 100644 --- a/data/demos/json/demo_ann103.json +++ b/data/demos/json/demo_ann103.json @@ -1 +1 @@ -{"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},"riskFactors":[]} +{"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 index e93c32f..6caa740 100644 --- a/data/demos/json/demo_ann104.json +++ b/data/demos/json/demo_ann104.json @@ -1 +1 @@ -{"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"},"riskFactors":[{"marketObjectCode":"YC.USA.TREASURY","base":1,"data":[{"time":"2015-01-01T00:00:00","value":0.05}]}]} +{"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_ann107.json b/data/demos/json/demo_ann107.json index 208ac32..57f9cf0 100644 --- a/data/demos/json/demo_ann107.json +++ b/data/demos/json/demo_ann107.json @@ -1 +1 @@ -{"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},"riskFactors":[{"marketObjectCode":"CPI.USD","base":1,"data":[{"time":"2015-01-01T00:00:00","value":100}]}]} +{"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/jsonOld/demo_ann101.json b/data/demos/jsonOld/demo_ann101.json new file mode 100644 index 0000000..9c98a1b --- /dev/null +++ b/data/demos/jsonOld/demo_ann101.json @@ -0,0 +1 @@ +{"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann102.json b/data/demos/jsonOld/demo_ann102.json new file mode 100644 index 0000000..b863d7e --- /dev/null +++ b/data/demos/jsonOld/demo_ann102.json @@ -0,0 +1 @@ +{"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann103.json b/data/demos/jsonOld/demo_ann103.json new file mode 100644 index 0000000..e85dc32 --- /dev/null +++ b/data/demos/jsonOld/demo_ann103.json @@ -0,0 +1 @@ +{"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann104.json b/data/demos/jsonOld/demo_ann104.json new file mode 100644 index 0000000..e93c32f --- /dev/null +++ b/data/demos/jsonOld/demo_ann104.json @@ -0,0 +1 @@ +{"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"},"riskFactors":[{"marketObjectCode":"YC.USA.TREASURY","base":1,"data":[{"time":"2015-01-01T00:00:00","value":0.05}]}]} diff --git a/data/demos/jsonOld/demo_ann105.json b/data/demos/jsonOld/demo_ann105.json new file mode 100644 index 0000000..4e8ab84 --- /dev/null +++ b/data/demos/jsonOld/demo_ann105.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_ann106.json b/data/demos/jsonOld/demo_ann106.json new file mode 100644 index 0000000..0620e5b --- /dev/null +++ b/data/demos/jsonOld/demo_ann106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_ann107.json b/data/demos/jsonOld/demo_ann107.json new file mode 100644 index 0000000..208ac32 --- /dev/null +++ b/data/demos/jsonOld/demo_ann107.json @@ -0,0 +1 @@ +{"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},"riskFactors":[{"marketObjectCode":"CPI.USD","base":1,"data":[{"time":"2015-01-01T00:00:00","value":100}]}]} diff --git a/data/demos/jsonOld/demo_fxout101.json b/data/demos/jsonOld/demo_fxout101.json new file mode 100644 index 0000000..77faecf --- /dev/null +++ b/data/demos/jsonOld/demo_fxout101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_fxout102.json b/data/demos/jsonOld/demo_fxout102.json new file mode 100644 index 0000000..10fe741 --- /dev/null +++ b/data/demos/jsonOld/demo_fxout102.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_fxout103.json b/data/demos/jsonOld/demo_fxout103.json new file mode 100644 index 0000000..e3df881 --- /dev/null +++ b/data/demos/jsonOld/demo_fxout103.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_fxout104.json b/data/demos/jsonOld/demo_fxout104.json new file mode 100644 index 0000000..7d7dd1a --- /dev/null +++ b/data/demos/jsonOld/demo_fxout104.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_fxout105.json b/data/demos/jsonOld/demo_fxout105.json new file mode 100644 index 0000000..c536ba0 --- /dev/null +++ b/data/demos/jsonOld/demo_fxout105.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_fxout106.json b/data/demos/jsonOld/demo_fxout106.json new file mode 100644 index 0000000..832d8ea --- /dev/null +++ b/data/demos/jsonOld/demo_fxout106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam101.json b/data/demos/jsonOld/demo_lam101.json new file mode 100644 index 0000000..3688905 --- /dev/null +++ b/data/demos/jsonOld/demo_lam101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam102.json b/data/demos/jsonOld/demo_lam102.json new file mode 100644 index 0000000..c4c075b --- /dev/null +++ b/data/demos/jsonOld/demo_lam102.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam103.json b/data/demos/jsonOld/demo_lam103.json new file mode 100644 index 0000000..987e196 --- /dev/null +++ b/data/demos/jsonOld/demo_lam103.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam104.json b/data/demos/jsonOld/demo_lam104.json new file mode 100644 index 0000000..7fdd3a5 --- /dev/null +++ b/data/demos/jsonOld/demo_lam104.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam105.json b/data/demos/jsonOld/demo_lam105.json new file mode 100644 index 0000000..bae877b --- /dev/null +++ b/data/demos/jsonOld/demo_lam105.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam106.json b/data/demos/jsonOld/demo_lam106.json new file mode 100644 index 0000000..18131e6 --- /dev/null +++ b/data/demos/jsonOld/demo_lam106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam107.json b/data/demos/jsonOld/demo_lam107.json new file mode 100644 index 0000000..0465976 --- /dev/null +++ b/data/demos/jsonOld/demo_lam107.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam108.json b/data/demos/jsonOld/demo_lam108.json new file mode 100644 index 0000000..11b9b6f --- /dev/null +++ b/data/demos/jsonOld/demo_lam108.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam109.json b/data/demos/jsonOld/demo_lam109.json new file mode 100644 index 0000000..f5e1a69 --- /dev/null +++ b/data/demos/jsonOld/demo_lam109.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam110.json b/data/demos/jsonOld/demo_lam110.json new file mode 100644 index 0000000..134b929 --- /dev/null +++ b/data/demos/jsonOld/demo_lam110.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lam111.json b/data/demos/jsonOld/demo_lam111.json new file mode 100644 index 0000000..601ac30 --- /dev/null +++ b/data/demos/jsonOld/demo_lam111.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lax101.json b/data/demos/jsonOld/demo_lax101.json new file mode 100644 index 0000000..e93e306 --- /dev/null +++ b/data/demos/jsonOld/demo_lax101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_lax102.json b/data/demos/jsonOld/demo_lax102.json new file mode 100644 index 0000000..bfbd299 --- /dev/null +++ b/data/demos/jsonOld/demo_lax102.json @@ -0,0 +1 @@ +{"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,2019-01-01T00,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/jsonOld/demo_lax103.json b/data/demos/jsonOld/demo_lax103.json new file mode 100644 index 0000000..6596d6d --- /dev/null +++ b/data/demos/jsonOld/demo_lax103.json @@ -0,0 +1 @@ +{"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,2020-01-01T00,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/jsonOld/demo_lax104.json b/data/demos/jsonOld/demo_lax104.json new file mode 100644 index 0000000..4792240 --- /dev/null +++ b/data/demos/jsonOld/demo_lax104.json @@ -0,0 +1 @@ +{"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,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/jsonOld/demo_lax105.json b/data/demos/jsonOld/demo_lax105.json new file mode 100644 index 0000000..5b9751f --- /dev/null +++ b/data/demos/jsonOld/demo_lax105.json @@ -0,0 +1 @@ +{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_lax106.json b/data/demos/jsonOld/demo_lax106.json new file mode 100644 index 0000000..0673441 --- /dev/null +++ b/data/demos/jsonOld/demo_lax106.json @@ -0,0 +1 @@ +{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_lax107.json b/data/demos/jsonOld/demo_lax107.json new file mode 100644 index 0000000..74520b2 --- /dev/null +++ b/data/demos/jsonOld/demo_lax107.json @@ -0,0 +1 @@ +{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_lax108.json b/data/demos/jsonOld/demo_lax108.json new file mode 100644 index 0000000..91edd7e --- /dev/null +++ b/data/demos/jsonOld/demo_lax108.json @@ -0,0 +1 @@ +{"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,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/jsonOld/demo_lax109.json b/data/demos/jsonOld/demo_lax109.json new file mode 100644 index 0000000..9585e0a --- /dev/null +++ b/data/demos/jsonOld/demo_lax109.json @@ -0,0 +1 @@ +{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayCycleAnchorDateOfRateReset":"2017-01-01T00,2019-01-01T00,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/jsonOld/demo_lax110.json b/data/demos/jsonOld/demo_lax110.json new file mode 100644 index 0000000..520a468 --- /dev/null +++ b/data/demos/jsonOld/demo_lax110.json @@ -0,0 +1 @@ +{"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,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/jsonOld/demo_lax111.json b/data/demos/jsonOld/demo_lax111.json new file mode 100644 index 0000000..1c57cbf --- /dev/null +++ b/data/demos/jsonOld/demo_lax111.json @@ -0,0 +1 @@ +{"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,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/jsonOld/demo_lax112.json b/data/demos/jsonOld/demo_lax112.json new file mode 100644 index 0000000..15027b2 --- /dev/null +++ b/data/demos/jsonOld/demo_lax112.json @@ -0,0 +1 @@ +{"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,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/jsonOld/demo_nam101.json b/data/demos/jsonOld/demo_nam101.json new file mode 100644 index 0000000..3968a0a --- /dev/null +++ b/data/demos/jsonOld/demo_nam101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_nam102.json b/data/demos/jsonOld/demo_nam102.json new file mode 100644 index 0000000..82c14b1 --- /dev/null +++ b/data/demos/jsonOld/demo_nam102.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_nam103.json b/data/demos/jsonOld/demo_nam103.json new file mode 100644 index 0000000..2f99761 --- /dev/null +++ b/data/demos/jsonOld/demo_nam103.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_nam104.json b/data/demos/jsonOld/demo_nam104.json new file mode 100644 index 0000000..a5e794d --- /dev/null +++ b/data/demos/jsonOld/demo_nam104.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_nam105.json b/data/demos/jsonOld/demo_nam105.json new file mode 100644 index 0000000..7485c56 --- /dev/null +++ b/data/demos/jsonOld/demo_nam105.json @@ -0,0 +1 @@ +{"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":"PY3L0","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/jsonOld/demo_nam106.json b/data/demos/jsonOld/demo_nam106.json new file mode 100644 index 0000000..03c9ac0 --- /dev/null +++ b/data/demos/jsonOld/demo_nam106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_nam107.json b/data/demos/jsonOld/demo_nam107.json new file mode 100644 index 0000000..c51310a --- /dev/null +++ b/data/demos/jsonOld/demo_nam107.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam101.json b/data/demos/jsonOld/demo_pam101.json new file mode 100644 index 0000000..c62ba47 --- /dev/null +++ b/data/demos/jsonOld/demo_pam101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam102.json b/data/demos/jsonOld/demo_pam102.json new file mode 100644 index 0000000..22eaac2 --- /dev/null +++ b/data/demos/jsonOld/demo_pam102.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam103.json b/data/demos/jsonOld/demo_pam103.json new file mode 100644 index 0000000..b50a538 --- /dev/null +++ b/data/demos/jsonOld/demo_pam103.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam104.json b/data/demos/jsonOld/demo_pam104.json new file mode 100644 index 0000000..0b2f233 --- /dev/null +++ b/data/demos/jsonOld/demo_pam104.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam105.json b/data/demos/jsonOld/demo_pam105.json new file mode 100644 index 0000000..afef3e4 --- /dev/null +++ b/data/demos/jsonOld/demo_pam105.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam106.json b/data/demos/jsonOld/demo_pam106.json new file mode 100644 index 0000000..115c5c4 --- /dev/null +++ b/data/demos/jsonOld/demo_pam106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam107.json b/data/demos/jsonOld/demo_pam107.json new file mode 100644 index 0000000..777e91e --- /dev/null +++ b/data/demos/jsonOld/demo_pam107.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam108.json b/data/demos/jsonOld/demo_pam108.json new file mode 100644 index 0000000..b38c8b1 --- /dev/null +++ b/data/demos/jsonOld/demo_pam108.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam109.json b/data/demos/jsonOld/demo_pam109.json new file mode 100644 index 0000000..c39fecf --- /dev/null +++ b/data/demos/jsonOld/demo_pam109.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam110.json b/data/demos/jsonOld/demo_pam110.json new file mode 100644 index 0000000..ddb49a4 --- /dev/null +++ b/data/demos/jsonOld/demo_pam110.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam111.json b/data/demos/jsonOld/demo_pam111.json new file mode 100644 index 0000000..28be59b --- /dev/null +++ b/data/demos/jsonOld/demo_pam111.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam112.json b/data/demos/jsonOld/demo_pam112.json new file mode 100644 index 0000000..b6e8cc4 --- /dev/null +++ b/data/demos/jsonOld/demo_pam112.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam113.json b/data/demos/jsonOld/demo_pam113.json new file mode 100644 index 0000000..ea1fb7e --- /dev/null +++ b/data/demos/jsonOld/demo_pam113.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam114.json b/data/demos/jsonOld/demo_pam114.json new file mode 100644 index 0000000..45c79aa --- /dev/null +++ b/data/demos/jsonOld/demo_pam114.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_pam115.json b/data/demos/jsonOld/demo_pam115.json new file mode 100644 index 0000000..d8b8a49 --- /dev/null +++ b/data/demos/jsonOld/demo_pam115.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk101.json b/data/demos/jsonOld/demo_stk101.json new file mode 100644 index 0000000..7f7901b --- /dev/null +++ b/data/demos/jsonOld/demo_stk101.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk102.json b/data/demos/jsonOld/demo_stk102.json new file mode 100644 index 0000000..17c93c2 --- /dev/null +++ b/data/demos/jsonOld/demo_stk102.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk103.json b/data/demos/jsonOld/demo_stk103.json new file mode 100644 index 0000000..5927e43 --- /dev/null +++ b/data/demos/jsonOld/demo_stk103.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk104.json b/data/demos/jsonOld/demo_stk104.json new file mode 100644 index 0000000..c45d426 --- /dev/null +++ b/data/demos/jsonOld/demo_stk104.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk105.json b/data/demos/jsonOld/demo_stk105.json new file mode 100644 index 0000000..8d96f35 --- /dev/null +++ b/data/demos/jsonOld/demo_stk105.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_stk106.json b/data/demos/jsonOld/demo_stk106.json new file mode 100644 index 0000000..1c54792 --- /dev/null +++ b/data/demos/jsonOld/demo_stk106.json @@ -0,0 +1 @@ +{"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/jsonOld/demo_swppv101.json b/data/demos/jsonOld/demo_swppv101.json new file mode 100644 index 0000000..0ac7d7f --- /dev/null +++ b/data/demos/jsonOld/demo_swppv101.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv102.json b/data/demos/jsonOld/demo_swppv102.json new file mode 100644 index 0000000..6d10909 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv102.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv103.json b/data/demos/jsonOld/demo_swppv103.json new file mode 100644 index 0000000..3196c89 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv103.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv104.json b/data/demos/jsonOld/demo_swppv104.json new file mode 100644 index 0000000..f972165 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv104.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv105.json b/data/demos/jsonOld/demo_swppv105.json new file mode 100644 index 0000000..3e955f1 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv105.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv106.json b/data/demos/jsonOld/demo_swppv106.json new file mode 100644 index 0000000..bb8e5d3 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv106.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv107.json b/data/demos/jsonOld/demo_swppv107.json new file mode 100644 index 0000000..e7e3c4e --- /dev/null +++ b/data/demos/jsonOld/demo_swppv107.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv108.json b/data/demos/jsonOld/demo_swppv108.json new file mode 100644 index 0000000..8fab335 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv108.json @@ -0,0 +1 @@ +{"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: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: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/jsonOld/demo_swppv109.json b/data/demos/jsonOld/demo_swppv109.json new file mode 100644 index 0000000..90288d7 --- /dev/null +++ b/data/demos/jsonOld/demo_swppv109.json @@ -0,0 +1 @@ +{"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: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: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 index eb9f1ab..f99634c 100644 --- a/data/demos/updateDemos.R +++ b/data/demos/updateDemos.R @@ -5,7 +5,7 @@ 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"))) +#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) @@ -13,28 +13,39 @@ file_names <- list.files(path = source_path,recursive = TRUE) for (file_name in file_names) { json = fromJSON(paste0(source_path,"/",file_name)) - json$contract = json$terms - json$terms = NULL + # update json keys +# json$contract = json$terms +# json$terms = NULL - json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate - json$contract$scalingIndexAtStatusDate = NULL + # update term names +# json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate +# json$contract$scalingIndexAtStatusDate = NULL - 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)) + # 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$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)) + if(!is.null(json$contract$cycleOfPrincipalRedemption) && is.null(json$contract$cycleOfInterestPayment)) { + json$contract$cycleOfInterestPayment = json$contract$cycleOfPrincipalRedemption } - json$riskFactors = riskFactors + + # 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, "/", unlist(strsplit(file_name,"/"))[2])) + write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", file_name)) } From e509651fa344b1b7e971895e3faf13089d43c2ec Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 11 Oct 2020 04:10:30 +0200 Subject: [PATCH 05/14] Fix format errors --- data/demos/json/demo_ann101.json | 27 ++- data/demos/json/demo_ann102.json | 27 ++- data/demos/json/demo_ann103.json | 27 ++- data/demos/json/demo_ann104.json | 41 +++- data/demos/json/demo_ann105.json | 41 +++- data/demos/json/demo_ann106.json | 42 +++- data/demos/json/demo_ann107.json | 42 +++- data/demos/json/demo_fxout101.json | 21 +- data/demos/json/demo_fxout102.json | 21 +- data/demos/json/demo_fxout103.json | 21 +- data/demos/json/demo_fxout104.json | 22 +- data/demos/json/demo_fxout105.json | 23 +- data/demos/json/demo_fxout106.json | 25 +- data/demos/json/demo_lam101.json | 29 ++- data/demos/json/demo_lam102.json | 29 ++- data/demos/json/demo_lam103.json | 30 ++- data/demos/json/demo_lam104.json | 29 ++- data/demos/json/demo_lam105.json | 32 ++- data/demos/json/demo_lam106.json | 30 ++- data/demos/json/demo_lam107.json | 42 +++- data/demos/json/demo_lam108.json | 42 +++- data/demos/json/demo_lam109.json | 43 +++- data/demos/json/demo_lam110.json | 43 +++- data/demos/json/demo_lam111.json | 43 +++- data/demos/json/demo_lax101.json | 29 ++- data/demos/json/demo_lax102.json | 29 ++- data/demos/json/demo_lax103.json | 29 ++- data/demos/json/demo_lax104.json | 30 ++- data/demos/json/demo_lax105.json | 29 ++- data/demos/json/demo_lax106.json | 32 ++- data/demos/json/demo_lax107.json | 30 ++- data/demos/json/demo_lax108.json | 32 ++- data/demos/json/demo_lax109.json | 32 ++- data/demos/json/demo_lax110.json | 33 ++- data/demos/json/demo_lax111.json | 33 ++- data/demos/json/demo_lax112.json | 33 ++- data/demos/json/demo_nam101.json | 41 +++- data/demos/json/demo_nam102.json | 41 +++- data/demos/json/demo_nam103.json | 42 +++- data/demos/json/demo_nam104.json | 41 +++- data/demos/json/demo_nam105.json | 44 +++- data/demos/json/demo_nam106.json | 42 +++- data/demos/json/demo_nam107.json | 41 +++- data/demos/json/demo_pam101.json | 25 +- data/demos/json/demo_pam102.json | 25 +- data/demos/json/demo_pam103.json | 25 +- data/demos/json/demo_pam104.json | 27 ++- data/demos/json/demo_pam105.json | 27 ++- data/demos/json/demo_pam106.json | 27 ++- data/demos/json/demo_pam107.json | 27 ++- data/demos/json/demo_pam108.json | 28 ++- data/demos/json/demo_pam109.json | 27 ++- data/demos/json/demo_pam110.json | 28 ++- data/demos/json/demo_pam111.json | 40 +++- data/demos/json/demo_pam112.json | 40 +++- data/demos/json/demo_pam113.json | 40 +++- data/demos/json/demo_pam114.json | 43 +++- data/demos/json/demo_pam115.json | 43 +++- data/demos/json/demo_stk101.json | 20 +- data/demos/json/demo_stk102.json | 22 +- data/demos/json/demo_stk103.json | 22 +- data/demos/json/demo_stk104.json | 21 +- data/demos/json/demo_stk105.json | 21 +- data/demos/json/demo_stk106.json | 21 +- data/demos/json/demo_swppv101.json | 42 +++- data/demos/json/demo_swppv102.json | 42 +++- data/demos/json/demo_swppv103.json | 42 +++- data/demos/json/demo_swppv104.json | 42 +++- data/demos/json/demo_swppv105.json | 42 +++- data/demos/json/demo_swppv106.json | 42 +++- data/demos/json/demo_swppv107.json | 42 +++- data/demos/json/demo_swppv108.json | 42 +++- data/demos/json/demo_swppv109.json | 42 +++- data/forms/Consolidated DD CTD v1.0.csv | 224 +++++++++--------- data/forms/json/form_ANN.json | 2 +- data/forms/json/form_CLM.json | 2 +- data/forms/json/form_LAM.json | 2 +- data/forms/json/form_LAX.json | 2 +- data/forms/json/form_NAM.json | 2 +- data/forms/json/form_PAM.json | 2 +- data/forms/json/form_SWPPV.json | 2 +- data/forms/json/form_UMP.json | 2 +- data/public-data/form_ANN.json | 2 +- data/public-data/form_ANX.json | 2 +- data/public-data/form_CLM.json | 2 +- data/public-data/form_LAM.json | 2 +- data/public-data/form_LAX.json | 2 +- data/public-data/form_NAM.json | 2 +- data/public-data/form_PAM.json | 2 +- data/public-data/form_UMP.json | 2 +- .../ACTUS_postman_ANN.json | 4 +- .../ACTUS_postman_FXOUT.json | 2 +- .../ACTUS_postman_LAM.json | 2 +- .../ACTUS_postman_LAX.json | 2 +- .../ACTUS_postman_NAM.json | 4 +- .../ACTUS_postman_PAM.json | 2 +- .../ACTUS_postman_STK.json | 2 +- .../ACTUS_postman_SWPPV.json | 4 +- 98 files changed, 2478 insertions(+), 212 deletions(-) diff --git a/data/demos/json/demo_ann101.json b/data/demos/json/demo_ann101.json index 60db793..c4f8598 100644 --- a/data/demos/json/demo_ann101.json +++ b/data/demos/json/demo_ann101.json @@ -1 +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":[]} +{ + "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 index a638c14..37d0063 100644 --- a/data/demos/json/demo_ann102.json +++ b/data/demos/json/demo_ann102.json @@ -1 +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":[]} +{ + "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 index c1179a2..8b79e05 100644 --- a/data/demos/json/demo_ann103.json +++ b/data/demos/json/demo_ann103.json @@ -1 +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":[]} +{ + "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 index 6caa740..9010ff8 100644 --- a/data/demos/json/demo_ann104.json +++ b/data/demos/json/demo_ann104.json @@ -1 +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}]}]} +{ + "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 index 4e8ab84..7901872 100644 --- a/data/demos/json/demo_ann105.json +++ b/data/demos/json/demo_ann105.json @@ -1 +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}]}]} +{ + "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 index 0620e5b..558c5e5 100644 --- a/data/demos/json/demo_ann106.json +++ b/data/demos/json/demo_ann106.json @@ -1 +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}]}]} +{ + "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 index 57f9cf0..68b714f 100644 --- a/data/demos/json/demo_ann107.json +++ b/data/demos/json/demo_ann107.json @@ -1 +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}]}]} +{ + "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 index 77faecf..6be12a0 100644 --- a/data/demos/json/demo_fxout101.json +++ b/data/demos/json/demo_fxout101.json @@ -1 +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":[]} +{ + "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 index 10fe741..b856b6e 100644 --- a/data/demos/json/demo_fxout102.json +++ b/data/demos/json/demo_fxout102.json @@ -1 +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":[]} +{ + "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 index e3df881..4d2c76a 100644 --- a/data/demos/json/demo_fxout103.json +++ b/data/demos/json/demo_fxout103.json @@ -1 +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":[]} +{ + "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 index 7d7dd1a..8feacf9 100644 --- a/data/demos/json/demo_fxout104.json +++ b/data/demos/json/demo_fxout104.json @@ -1 +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":[]} +{ + "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 index c536ba0..5f1ba9a 100644 --- a/data/demos/json/demo_fxout105.json +++ b/data/demos/json/demo_fxout105.json @@ -1 +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":[]} +{ + "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 index 832d8ea..fa1f358 100644 --- a/data/demos/json/demo_fxout106.json +++ b/data/demos/json/demo_fxout106.json @@ -1 +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":[]} +{ + "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 index 3688905..6061db6 100644 --- a/data/demos/json/demo_lam101.json +++ b/data/demos/json/demo_lam101.json @@ -1 +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":[]} +{ + "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 index c4c075b..a1d9f88 100644 --- a/data/demos/json/demo_lam102.json +++ b/data/demos/json/demo_lam102.json @@ -1 +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":[]} +{ + "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 index 987e196..97ddea7 100644 --- a/data/demos/json/demo_lam103.json +++ b/data/demos/json/demo_lam103.json @@ -1 +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":[]} +{ + "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 index 7fdd3a5..f3238aa 100644 --- a/data/demos/json/demo_lam104.json +++ b/data/demos/json/demo_lam104.json @@ -1 +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":[]} +{ + "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 index bae877b..8a6694b 100644 --- a/data/demos/json/demo_lam105.json +++ b/data/demos/json/demo_lam105.json @@ -1 +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":[]} +{ + "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 index 18131e6..bdf41f0 100644 --- a/data/demos/json/demo_lam106.json +++ b/data/demos/json/demo_lam106.json @@ -1 +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":[]} +{ + "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 index 0465976..d453842 100644 --- a/data/demos/json/demo_lam107.json +++ b/data/demos/json/demo_lam107.json @@ -1 +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}]}]} +{ + "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 index 11b9b6f..7d89dd1 100644 --- a/data/demos/json/demo_lam108.json +++ b/data/demos/json/demo_lam108.json @@ -1 +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}]}]} +{ + "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 index f5e1a69..1c9e3f8 100644 --- a/data/demos/json/demo_lam109.json +++ b/data/demos/json/demo_lam109.json @@ -1 +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}]}]} +{ + "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 index 134b929..3dd7201 100644 --- a/data/demos/json/demo_lam110.json +++ b/data/demos/json/demo_lam110.json @@ -1 +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}]}]} +{ + "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 index 601ac30..6175680 100644 --- a/data/demos/json/demo_lam111.json +++ b/data/demos/json/demo_lam111.json @@ -1 +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}]}]} +{ + "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 index e93e306..b1af139 100644 --- a/data/demos/json/demo_lax101.json +++ b/data/demos/json/demo_lax101.json @@ -1 +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":[]} +{ + "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 index bfbd299..ec99301 100644 --- a/data/demos/json/demo_lax102.json +++ b/data/demos/json/demo_lax102.json @@ -1 +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,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"100,200,300","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,2019-01-01T00,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 index 6596d6d..a289473 100644 --- a/data/demos/json/demo_lax103.json +++ b/data/demos/json/demo_lax103.json @@ -1 +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,2020-01-01T00,2024-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P2YL0,P1YL0,P6ML0","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,2020-01-01T00,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 index 4792240..26125d9 100644 --- a/data/demos/json/demo_lax104.json +++ b/data/demos/json/demo_lax104.json @@ -1 +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,2020-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P2YL0,P1YL0,P6ML0","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,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 index 5b9751f..b1c308a 100644 --- a/data/demos/json/demo_lax105.json +++ b/data/demos/json/demo_lax105.json @@ -1 +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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,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 index 0673441..e01b3f3 100644 --- a/data/demos/json/demo_lax106.json +++ b/data/demos/json/demo_lax106.json @@ -1 +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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,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 index 74520b2..5fbd6d7 100644 --- a/data/demos/json/demo_lax107.json +++ b/data/demos/json/demo_lax107.json @@ -1 +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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{ + "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,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 index 91edd7e..53f2e23 100644 --- a/data/demos/json/demo_lax108.json +++ b/data/demos/json/demo_lax108.json @@ -1 +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,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":[]} +{ + "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,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 index 9585e0a..88ef642 100644 --- a/data/demos/json/demo_lax109.json +++ b/data/demos/json/demo_lax109.json @@ -1 +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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayCycleAnchorDateOfRateReset":"2017-01-01T00,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfRateReset":"NULL,NULL,P2YL0","arrayRate":"0.02,0.04,0.08","arrayFixedVariable":"F,F,V"},"riskFactors":[]} +{ + "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,2018-01-01T00:00:00", + "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", + "arrayNextPrincipalRedemptionPayment": "500,300", + "arrayIncreaseDecrease": "INC,DEC", + "arrayCycleAnchorDateOfRateReset": "2017-01-01T00,2019-01-01T00,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 index 520a468..9905d56 100644 --- a/data/demos/json/demo_lax110.json +++ b/data/demos/json/demo_lax110.json @@ -1 +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,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":[]} +{ + "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,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 index 1c57cbf..0d8ed6b 100644 --- a/data/demos/json/demo_lax111.json +++ b/data/demos/json/demo_lax111.json @@ -1 +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,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":[]} +{ + "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,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 index 15027b2..704972c 100644 --- a/data/demos/json/demo_lax112.json +++ b/data/demos/json/demo_lax112.json @@ -1 +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,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":[]} +{ + "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,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 index 3968a0a..32d8de4 100644 --- a/data/demos/json/demo_nam101.json +++ b/data/demos/json/demo_nam101.json @@ -1 +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}]}]} +{ + "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 index 82c14b1..73cf95d 100644 --- a/data/demos/json/demo_nam102.json +++ b/data/demos/json/demo_nam102.json @@ -1 +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}]}]} +{ + "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 index 2f99761..b6a6901 100644 --- a/data/demos/json/demo_nam103.json +++ b/data/demos/json/demo_nam103.json @@ -1 +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}]}]} +{ + "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 index a5e794d..44a30da 100644 --- a/data/demos/json/demo_nam104.json +++ b/data/demos/json/demo_nam104.json @@ -1 +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}]}]} +{ + "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 index 7485c56..3656cbd 100644 --- a/data/demos/json/demo_nam105.json +++ b/data/demos/json/demo_nam105.json @@ -1 +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":"PY3L0","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}]}]} +{ + "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": "PY3L0", + "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 index 03c9ac0..b2c13e8 100644 --- a/data/demos/json/demo_nam106.json +++ b/data/demos/json/demo_nam106.json @@ -1 +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}]}]} +{ + "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 index c51310a..f1cdda4 100644 --- a/data/demos/json/demo_nam107.json +++ b/data/demos/json/demo_nam107.json @@ -1 +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}]}]} +{ + "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 index c62ba47..32603fe 100644 --- a/data/demos/json/demo_pam101.json +++ b/data/demos/json/demo_pam101.json @@ -1 +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":[]} +{ + "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 index 22eaac2..e128e54 100644 --- a/data/demos/json/demo_pam102.json +++ b/data/demos/json/demo_pam102.json @@ -1 +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":[]} +{ + "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 index b50a538..cc1c702 100644 --- a/data/demos/json/demo_pam103.json +++ b/data/demos/json/demo_pam103.json @@ -1 +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":[]} +{ + "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 index 0b2f233..5e2daa9 100644 --- a/data/demos/json/demo_pam104.json +++ b/data/demos/json/demo_pam104.json @@ -1 +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":[]} +{ + "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 index afef3e4..49bfe42 100644 --- a/data/demos/json/demo_pam105.json +++ b/data/demos/json/demo_pam105.json @@ -1 +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":[]} +{ + "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 index 115c5c4..badffed 100644 --- a/data/demos/json/demo_pam106.json +++ b/data/demos/json/demo_pam106.json @@ -1 +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":[]} +{ + "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 index 777e91e..cc3bea8 100644 --- a/data/demos/json/demo_pam107.json +++ b/data/demos/json/demo_pam107.json @@ -1 +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":[]} +{ + "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 index b38c8b1..2bc5bdb 100644 --- a/data/demos/json/demo_pam108.json +++ b/data/demos/json/demo_pam108.json @@ -1 +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":[]} +{ + "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 index c39fecf..9ab331d 100644 --- a/data/demos/json/demo_pam109.json +++ b/data/demos/json/demo_pam109.json @@ -1 +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":[]} +{ + "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 index ddb49a4..164928f 100644 --- a/data/demos/json/demo_pam110.json +++ b/data/demos/json/demo_pam110.json @@ -1 +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":[]} +{ + "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 index 28be59b..48f50ba 100644 --- a/data/demos/json/demo_pam111.json +++ b/data/demos/json/demo_pam111.json @@ -1 +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}]}]} +{ + "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 index b6e8cc4..844c057 100644 --- a/data/demos/json/demo_pam112.json +++ b/data/demos/json/demo_pam112.json @@ -1 +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}]}]} +{ + "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 index ea1fb7e..e276da4 100644 --- a/data/demos/json/demo_pam113.json +++ b/data/demos/json/demo_pam113.json @@ -1 +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}]}]} +{ + "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 index 45c79aa..c0a9e6b 100644 --- a/data/demos/json/demo_pam114.json +++ b/data/demos/json/demo_pam114.json @@ -1 +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}]}]} +{ + "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 index d8b8a49..2f38299 100644 --- a/data/demos/json/demo_pam115.json +++ b/data/demos/json/demo_pam115.json @@ -1 +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}]}]} +{ + "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 index 7f7901b..62605a5 100644 --- a/data/demos/json/demo_stk101.json +++ b/data/demos/json/demo_stk101.json @@ -1 +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":[]} +{ + "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 index 17c93c2..dfe2dfb 100644 --- a/data/demos/json/demo_stk102.json +++ b/data/demos/json/demo_stk102.json @@ -1 +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":[]} +{ + "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 index 5927e43..2b9ea21 100644 --- a/data/demos/json/demo_stk103.json +++ b/data/demos/json/demo_stk103.json @@ -1 +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":[]} +{ + "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 index c45d426..6b17a57 100644 --- a/data/demos/json/demo_stk104.json +++ b/data/demos/json/demo_stk104.json @@ -1 +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":[]} +{ + "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 index 8d96f35..62ead25 100644 --- a/data/demos/json/demo_stk105.json +++ b/data/demos/json/demo_stk105.json @@ -1 +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":[]} +{ + "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 index 1c54792..ec26f8e 100644 --- a/data/demos/json/demo_stk106.json +++ b/data/demos/json/demo_stk106.json @@ -1 +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":[]} +{ + "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_swppv101.json b/data/demos/json/demo_swppv101.json index 0ac7d7f..923cbc4 100644 --- a/data/demos/json/demo_swppv101.json +++ b/data/demos/json/demo_swppv101.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index 6d10909..d5ee3f5 100644 --- a/data/demos/json/demo_swppv102.json +++ b/data/demos/json/demo_swppv102.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index 3196c89..089e2ae 100644 --- a/data/demos/json/demo_swppv103.json +++ b/data/demos/json/demo_swppv103.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index f972165..d7a1a08 100644 --- a/data/demos/json/demo_swppv104.json +++ b/data/demos/json/demo_swppv104.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index 3e955f1..3f275d8 100644 --- a/data/demos/json/demo_swppv105.json +++ b/data/demos/json/demo_swppv105.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index bb8e5d3..a8a24ac 100644 --- a/data/demos/json/demo_swppv106.json +++ b/data/demos/json/demo_swppv106.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index e7e3c4e..04c0ddc 100644 --- a/data/demos/json/demo_swppv107.json +++ b/data/demos/json/demo_swppv107.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index 8fab335..fce983f 100644 --- a/data/demos/json/demo_swppv108.json +++ b/data/demos/json/demo_swppv108.json @@ -1 +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: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: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}]}]} +{ + "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: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: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 index 90288d7..437ffe4 100644 --- a/data/demos/json/demo_swppv109.json +++ b/data/demos/json/demo_swppv109.json @@ -1 +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: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: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}]}]} +{ + "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: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: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/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/scripts/postman_collections/ACTUS_postman_ANN.json b/scripts/postman_collections/ACTUS_postman_ANN.json index f2aad29..2e274c2 100644 --- a/scripts/postman_collections/ACTUS_postman_ANN.json +++ b/scripts/postman_collections/ACTUS_postman_ANN.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 ],\n \"riskFactors\": []\n}", + "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" @@ -93,7 +93,7 @@ "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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_FXOUT.json b/scripts/postman_collections/ACTUS_postman_FXOUT.json index 4d05728..de5fcdd 100644 --- a/scripts/postman_collections/ACTUS_postman_FXOUT.json +++ b/scripts/postman_collections/ACTUS_postman_FXOUT.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 ],\n \"riskFactors\": []\n}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_LAM.json b/scripts/postman_collections/ACTUS_postman_LAM.json index 79ea05b..58c814a 100644 --- a/scripts/postman_collections/ACTUS_postman_LAM.json +++ b/scripts/postman_collections/ACTUS_postman_LAM.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 ],\n \"riskFactors\": []\n}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_LAX.json b/scripts/postman_collections/ACTUS_postman_LAX.json index 73482a8..f2fe58a 100644 --- a/scripts/postman_collections/ACTUS_postman_LAX.json +++ b/scripts/postman_collections/ACTUS_postman_LAX.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 ],\n \"riskFactors\": []\n}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_NAM.json b/scripts/postman_collections/ACTUS_postman_NAM.json index 73b804d..8905a98 100644 --- a/scripts/postman_collections/ACTUS_postman_NAM.json +++ b/scripts/postman_collections/ACTUS_postman_NAM.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 \"marketObjectCodeRateReset\": \"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}", + "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" @@ -93,7 +93,7 @@ "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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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 \"marketObjectCodeRateReset\": \"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}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_PAM.json b/scripts/postman_collections/ACTUS_postman_PAM.json index 23e615e..c85b6d0 100644 --- a/scripts/postman_collections/ACTUS_postman_PAM.json +++ b/scripts/postman_collections/ACTUS_postman_PAM.json @@ -67,7 +67,7 @@ "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\": 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 ],\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}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_STK.json b/scripts/postman_collections/ACTUS_postman_STK.json index 88e40ab..7fb0542 100644 --- a/scripts/postman_collections/ACTUS_postman_STK.json +++ b/scripts/postman_collections/ACTUS_postman_STK.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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 ],\n \"riskFactors\": []\n}", + "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" diff --git a/scripts/postman_collections/ACTUS_postman_SWPPV.json b/scripts/postman_collections/ACTUS_postman_SWPPV.json index 20ba5c7..04f7a71 100644 --- a/scripts/postman_collections/ACTUS_postman_SWPPV.json +++ b/scripts/postman_collections/ACTUS_postman_SWPPV.json @@ -67,7 +67,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\n \"contracts\": [\n {\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: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:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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}", + "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" @@ -93,7 +93,7 @@ "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: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:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P3ML1\",\n \"rateSpread\": 0.01,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P6ML1\",\n \"rateSpread\": 0,\n \"marketObjectCodeRateReset\": \"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: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:00:00\",\n \"cycleOfRateReset\": \"P1ML1\",\n \"rateSpread\": 0.02,\n \"marketObjectCodeRateReset\": \"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}", + "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: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: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: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: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: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: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: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: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" From 9019b9e3d78597437dfd948b11eede241386adca Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 11 Oct 2020 05:13:46 +0200 Subject: [PATCH 06/14] Fix time formatting typo --- data/demos/json/demo_lax102.json | 2 +- data/demos/json/demo_lax103.json | 2 +- data/demos/json/demo_lax104.json | 2 +- data/demos/json/demo_lax105.json | 2 +- data/demos/json/demo_lax106.json | 2 +- data/demos/json/demo_lax107.json | 2 +- data/demos/json/demo_lax108.json | 2 +- data/demos/json/demo_lax109.json | 4 ++-- data/demos/json/demo_lax110.json | 2 +- data/demos/json/demo_lax111.json | 2 +- data/demos/json/demo_lax112.json | 2 +- data/demos/jsonOld/demo_lax102.json | 2 +- data/demos/jsonOld/demo_lax103.json | 2 +- data/demos/jsonOld/demo_lax104.json | 2 +- data/demos/jsonOld/demo_lax105.json | 2 +- data/demos/jsonOld/demo_lax106.json | 2 +- data/demos/jsonOld/demo_lax107.json | 2 +- data/demos/jsonOld/demo_lax108.json | 2 +- data/demos/jsonOld/demo_lax109.json | 2 +- data/demos/jsonOld/demo_lax110.json | 2 +- data/demos/jsonOld/demo_lax111.json | 2 +- data/demos/jsonOld/demo_lax112.json | 2 +- scripts/postman_collections/ACTUS_postman_LAX.json | 2 +- 23 files changed, 24 insertions(+), 24 deletions(-) diff --git a/data/demos/json/demo_lax102.json b/data/demos/json/demo_lax102.json index ec99301..e1596ad 100644 --- a/data/demos/json/demo_lax102.json +++ b/data/demos/json/demo_lax102.json @@ -18,7 +18,7 @@ "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", + "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", diff --git a/data/demos/json/demo_lax103.json b/data/demos/json/demo_lax103.json index a289473..b49d3b7 100644 --- a/data/demos/json/demo_lax103.json +++ b/data/demos/json/demo_lax103.json @@ -18,7 +18,7 @@ "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", + "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", diff --git a/data/demos/json/demo_lax104.json b/data/demos/json/demo_lax104.json index 26125d9..bd332a5 100644 --- a/data/demos/json/demo_lax104.json +++ b/data/demos/json/demo_lax104.json @@ -19,7 +19,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2022-07-01T00:00:00", "notionalPrincipal": 1000, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2020-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2020-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P2YL0,P1YL0,P6ML0", "arrayNextPrincipalRedemptionPayment": "100,100,100", "arrayIncreaseDecrease": "DEC,DEC,DEC", diff --git a/data/demos/json/demo_lax105.json b/data/demos/json/demo_lax105.json index b1c308a..6d0c7b0 100644 --- a/data/demos/json/demo_lax105.json +++ b/data/demos/json/demo_lax105.json @@ -18,7 +18,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax106.json b/data/demos/json/demo_lax106.json index e01b3f3..f3750fd 100644 --- a/data/demos/json/demo_lax106.json +++ b/data/demos/json/demo_lax106.json @@ -21,7 +21,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax107.json b/data/demos/json/demo_lax107.json index 5fbd6d7..da47dfa 100644 --- a/data/demos/json/demo_lax107.json +++ b/data/demos/json/demo_lax107.json @@ -19,7 +19,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax108.json b/data/demos/json/demo_lax108.json index 53f2e23..57a9d26 100644 --- a/data/demos/json/demo_lax108.json +++ b/data/demos/json/demo_lax108.json @@ -18,7 +18,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax109.json b/data/demos/json/demo_lax109.json index 88ef642..6099ed9 100644 --- a/data/demos/json/demo_lax109.json +++ b/data/demos/json/demo_lax109.json @@ -18,11 +18,11 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", - "arrayCycleAnchorDateOfRateReset": "2017-01-01T00,2019-01-01T00,2021-01-01T00:00:00", + "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" diff --git a/data/demos/json/demo_lax110.json b/data/demos/json/demo_lax110.json index 9905d56..a036872 100644 --- a/data/demos/json/demo_lax110.json +++ b/data/demos/json/demo_lax110.json @@ -18,7 +18,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax111.json b/data/demos/json/demo_lax111.json index 0d8ed6b..464ea58 100644 --- a/data/demos/json/demo_lax111.json +++ b/data/demos/json/demo_lax111.json @@ -18,7 +18,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/json/demo_lax112.json b/data/demos/json/demo_lax112.json index 704972c..b510ed7 100644 --- a/data/demos/json/demo_lax112.json +++ b/data/demos/json/demo_lax112.json @@ -18,7 +18,7 @@ "contractDealDate": "2015-01-01T00:00:00", "initialExchangeDate": "2015-01-02T00:00:00", "notionalPrincipal": 500, - "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00,2018-01-01T00:00:00", + "arrayCycleAnchorDateOfPrincipalRedemption": "2016-01-01T00:00:00,2018-01-01T00:00:00", "arrayCycleOfPrincipalRedemption": "P1YL0,P1YL0", "arrayNextPrincipalRedemptionPayment": "500,300", "arrayIncreaseDecrease": "INC,DEC", diff --git a/data/demos/jsonOld/demo_lax102.json b/data/demos/jsonOld/demo_lax102.json index bfbd299..6286ad6 100644 --- a/data/demos/jsonOld/demo_lax102.json +++ b/data/demos/jsonOld/demo_lax102.json @@ -1 +1 @@ -{"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,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"100,200,300","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax103.json b/data/demos/jsonOld/demo_lax103.json index 6596d6d..bb4bb0b 100644 --- a/data/demos/jsonOld/demo_lax103.json +++ b/data/demos/jsonOld/demo_lax103.json @@ -1 +1 @@ -{"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,2020-01-01T00,2024-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P2YL0,P1YL0,P6ML0","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax104.json b/data/demos/jsonOld/demo_lax104.json index 4792240..ae40c42 100644 --- a/data/demos/jsonOld/demo_lax104.json +++ b/data/demos/jsonOld/demo_lax104.json @@ -1 +1 @@ -{"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,2020-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P2YL0,P1YL0,P6ML0","arrayNextPrincipalRedemptionPayment":"100,100,100","arrayIncreaseDecrease":"DEC,DEC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax105.json b/data/demos/jsonOld/demo_lax105.json index 5b9751f..8413a5f 100644 --- a/data/demos/jsonOld/demo_lax105.json +++ b/data/demos/jsonOld/demo_lax105.json @@ -1 +1 @@ -{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax106.json b/data/demos/jsonOld/demo_lax106.json index 0673441..8df6ac4 100644 --- a/data/demos/jsonOld/demo_lax106.json +++ b/data/demos/jsonOld/demo_lax106.json @@ -1 +1 @@ -{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax107.json b/data/demos/jsonOld/demo_lax107.json index 74520b2..f791222 100644 --- a/data/demos/jsonOld/demo_lax107.json +++ b/data/demos/jsonOld/demo_lax107.json @@ -1 +1 @@ -{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayRate":"0"},"riskFactors":[]} +{"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/jsonOld/demo_lax108.json b/data/demos/jsonOld/demo_lax108.json index 91edd7e..57c8cfb 100644 --- a/data/demos/jsonOld/demo_lax108.json +++ b/data/demos/jsonOld/demo_lax108.json @@ -1 +1 @@ -{"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,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":[]} +{"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/jsonOld/demo_lax109.json b/data/demos/jsonOld/demo_lax109.json index 9585e0a..57acc09 100644 --- a/data/demos/jsonOld/demo_lax109.json +++ b/data/demos/jsonOld/demo_lax109.json @@ -1 +1 @@ -{"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,2018-01-01T00:00:00","arrayCycleOfPrincipalRedemption":"P1YL0,P1YL0","arrayNextPrincipalRedemptionPayment":"500,300","arrayIncreaseDecrease":"INC,DEC","arrayCycleAnchorDateOfRateReset":"2017-01-01T00,2019-01-01T00,2021-01-01T00:00:00","arrayCycleOfRateReset":"NULL,NULL,P2YL0","arrayRate":"0.02,0.04,0.08","arrayFixedVariable":"F,F,V"},"riskFactors":[]} +{"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/jsonOld/demo_lax110.json b/data/demos/jsonOld/demo_lax110.json index 520a468..70316be 100644 --- a/data/demos/jsonOld/demo_lax110.json +++ b/data/demos/jsonOld/demo_lax110.json @@ -1 +1 @@ -{"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,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":[]} +{"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/jsonOld/demo_lax111.json b/data/demos/jsonOld/demo_lax111.json index 1c57cbf..040c259 100644 --- a/data/demos/jsonOld/demo_lax111.json +++ b/data/demos/jsonOld/demo_lax111.json @@ -1 +1 @@ -{"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,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":[]} +{"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/jsonOld/demo_lax112.json b/data/demos/jsonOld/demo_lax112.json index 15027b2..4aeb2d8 100644 --- a/data/demos/jsonOld/demo_lax112.json +++ b/data/demos/jsonOld/demo_lax112.json @@ -1 +1 @@ -{"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,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":[]} +{"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/scripts/postman_collections/ACTUS_postman_LAX.json b/scripts/postman_collections/ACTUS_postman_LAX.json index f2fe58a..b23c82e 100644 --- a/scripts/postman_collections/ACTUS_postman_LAX.json +++ b/scripts/postman_collections/ACTUS_postman_LAX.json @@ -93,7 +93,7 @@ "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,2019-01-01T00,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,2020-01-01T00,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,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,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}", + "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" From f38506d8efdf7b72e039ae1633216decfc358e0a Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 11 Oct 2020 05:32:29 +0200 Subject: [PATCH 07/14] Fix time formatting typo --- data/demos/json/demo_swppv101.json | 4 ++-- data/demos/json/demo_swppv102.json | 4 ++-- data/demos/json/demo_swppv103.json | 4 ++-- data/demos/json/demo_swppv104.json | 4 ++-- data/demos/json/demo_swppv105.json | 4 ++-- data/demos/json/demo_swppv106.json | 4 ++-- data/demos/json/demo_swppv107.json | 4 ++-- data/demos/json/demo_swppv108.json | 4 ++-- data/demos/json/demo_swppv109.json | 4 ++-- data/demos/jsonOld/demo_swppv101.json | 2 +- data/demos/jsonOld/demo_swppv102.json | 2 +- data/demos/jsonOld/demo_swppv103.json | 2 +- data/demos/jsonOld/demo_swppv104.json | 2 +- data/demos/jsonOld/demo_swppv105.json | 2 +- data/demos/jsonOld/demo_swppv106.json | 2 +- data/demos/jsonOld/demo_swppv107.json | 2 +- data/demos/jsonOld/demo_swppv108.json | 2 +- data/demos/jsonOld/demo_swppv109.json | 2 +- scripts/postman_collections/ACTUS_postman_SWPPV.json | 2 +- 19 files changed, 28 insertions(+), 28 deletions(-) diff --git a/data/demos/json/demo_swppv101.json b/data/demos/json/demo_swppv101.json index 923cbc4..088cc9d 100644 --- a/data/demos/json/demo_swppv101.json +++ b/data/demos/json/demo_swppv101.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "PF", "contractID": 101, - "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-02-01T00:00:00", "cycleOfInterestPayment": "P1ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2015-04-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00", "cycleOfRateReset": "P1ML1", "rateSpread": 0, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv102.json b/data/demos/json/demo_swppv102.json index d5ee3f5..edf95df 100644 --- a/data/demos/json/demo_swppv102.json +++ b/data/demos/json/demo_swppv102.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "RF", "contractID": 102, - "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", "cycleOfInterestPayment": "P3ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.05, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2015-04-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", "cycleOfRateReset": "P3ML1", "rateSpread": 0, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv103.json b/data/demos/json/demo_swppv103.json index 089e2ae..ff249b8 100644 --- a/data/demos/json/demo_swppv103.json +++ b/data/demos/json/demo_swppv103.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "PF", "contractID": 103, - "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", "cycleOfInterestPayment": "P3ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2020-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", "cycleOfRateReset": "P3ML1", "rateSpread": 0.01, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv104.json b/data/demos/json/demo_swppv104.json index d7a1a08..7c4b427 100644 --- a/data/demos/json/demo_swppv104.json +++ b/data/demos/json/demo_swppv104.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "RF", "contractID": 104, - "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", "cycleOfInterestPayment": "P3ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2020-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", "cycleOfRateReset": "P3ML1", "rateSpread": 0.01, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv105.json b/data/demos/json/demo_swppv105.json index 3f275d8..a4a10c7 100644 --- a/data/demos/json/demo_swppv105.json +++ b/data/demos/json/demo_swppv105.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "PF", "contractID": 105, - "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", "cycleOfInterestPayment": "P6ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2020-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", "cycleOfRateReset": "P6ML1", "rateSpread": 0.02, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv106.json b/data/demos/json/demo_swppv106.json index a8a24ac..5397763 100644 --- a/data/demos/json/demo_swppv106.json +++ b/data/demos/json/demo_swppv106.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "RF", "contractID": 106, - "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", "cycleOfInterestPayment": "P6ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2020-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", "cycleOfRateReset": "P6ML1", "rateSpread": 0, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv107.json b/data/demos/json/demo_swppv107.json index 04c0ddc..cc99ce0 100644 --- a/data/demos/json/demo_swppv107.json +++ b/data/demos/json/demo_swppv107.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "RF", "contractID": 107, - "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-07-01T00:00:00", "cycleOfInterestPayment": "P6ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2025-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-07-01T00:00:00", "cycleOfRateReset": "P6ML1", "rateSpread": 0, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv108.json b/data/demos/json/demo_swppv108.json index fce983f..b39114a 100644 --- a/data/demos/json/demo_swppv108.json +++ b/data/demos/json/demo_swppv108.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "PF", "contractID": 108, - "cycleAnchorDateOfInterestPayment": "2015-01-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-01-01T00:00:00", "cycleOfInterestPayment": "P1ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2025-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-01-01T00:00:00", "cycleOfRateReset": "P1ML1", "rateSpread": 0.02, "deliverySettlement": "D", diff --git a/data/demos/json/demo_swppv109.json b/data/demos/json/demo_swppv109.json index 437ffe4..9e4b166 100644 --- a/data/demos/json/demo_swppv109.json +++ b/data/demos/json/demo_swppv109.json @@ -10,7 +10,7 @@ "statusDate": "2015-01-01T00:00:00", "contractRole": "PF", "contractID": 109, - "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfInterestPayment": "2015-03-01T00:00:00", "cycleOfInterestPayment": "P3ML1", "nominalInterestRate": 0.05, "nominalInterestRate2": 0.08, @@ -20,7 +20,7 @@ "initialExchangeDate": "2015-01-02T00:00:00", "maturityDate": "2025-01-02T00:00:00", "notionalPrincipal": 1000, - "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00:00:00", + "cycleAnchorDateOfRateReset": "2015-03-01T00:00:00", "cycleOfRateReset": "P3ML1", "rateSpread": 0, "deliverySettlement": "D", diff --git a/data/demos/jsonOld/demo_swppv101.json b/data/demos/jsonOld/demo_swppv101.json index 0ac7d7f..f434a9b 100644 --- a/data/demos/jsonOld/demo_swppv101.json +++ b/data/demos/jsonOld/demo_swppv101.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv102.json b/data/demos/jsonOld/demo_swppv102.json index 6d10909..9860877 100644 --- a/data/demos/jsonOld/demo_swppv102.json +++ b/data/demos/jsonOld/demo_swppv102.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv103.json b/data/demos/jsonOld/demo_swppv103.json index 3196c89..1e3948e 100644 --- a/data/demos/jsonOld/demo_swppv103.json +++ b/data/demos/jsonOld/demo_swppv103.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv104.json b/data/demos/jsonOld/demo_swppv104.json index f972165..3bd1f03 100644 --- a/data/demos/jsonOld/demo_swppv104.json +++ b/data/demos/jsonOld/demo_swppv104.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv105.json b/data/demos/jsonOld/demo_swppv105.json index 3e955f1..67c757e 100644 --- a/data/demos/jsonOld/demo_swppv105.json +++ b/data/demos/jsonOld/demo_swppv105.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv106.json b/data/demos/jsonOld/demo_swppv106.json index bb8e5d3..48f313c 100644 --- a/data/demos/jsonOld/demo_swppv106.json +++ b/data/demos/jsonOld/demo_swppv106.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv107.json b/data/demos/jsonOld/demo_swppv107.json index e7e3c4e..fa9d9b7 100644 --- a/data/demos/jsonOld/demo_swppv107.json +++ b/data/demos/jsonOld/demo_swppv107.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv108.json b/data/demos/jsonOld/demo_swppv108.json index 8fab335..d4d4fc3 100644 --- a/data/demos/jsonOld/demo_swppv108.json +++ b/data/demos/jsonOld/demo_swppv108.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/jsonOld/demo_swppv109.json b/data/demos/jsonOld/demo_swppv109.json index 90288d7..b2dfde5 100644 --- a/data/demos/jsonOld/demo_swppv109.json +++ b/data/demos/jsonOld/demo_swppv109.json @@ -1 +1 @@ -{"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: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: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}]}]} +{"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/scripts/postman_collections/ACTUS_postman_SWPPV.json b/scripts/postman_collections/ACTUS_postman_SWPPV.json index 04f7a71..3d63c66 100644 --- a/scripts/postman_collections/ACTUS_postman_SWPPV.json +++ b/scripts/postman_collections/ACTUS_postman_SWPPV.json @@ -93,7 +93,7 @@ "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: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: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: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: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: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: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: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: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}", + "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" From c2ab6d15f07424891458b716f778faaee9a95821 Mon Sep 17 00:00:00 2001 From: Nils Bundi Date: Tue, 20 Oct 2020 00:10:51 +0200 Subject: [PATCH 08/14] actus-core-1.0-alpha-4 upgrade and frontend support for combined contracts --- build.gradle | 2 +- data/demos/.Rhistory | 512 ------------- frontend/public/data/covered-contracts.json | 3 +- frontend/src/components/Form/index.js | 783 +++++++++++++++++--- 4 files changed, 696 insertions(+), 604 deletions(-) delete mode 100644 data/demos/.Rhistory diff --git a/build.gradle b/build.gradle index e787ab1..628dbd3 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'org.actus' -version = '1.0-alpha-1' +version = '1.0-alpha-4' sourceCompatibility = 1.8 repositories { diff --git a/data/demos/.Rhistory b/data/demos/.Rhistory deleted file mode 100644 index 50ccbbd..0000000 --- a/data/demos/.Rhistory +++ /dev/null @@ -1,512 +0,0 @@ -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -riskFactors -json = fromJSON(paste0(source_path,"/",file_name)) -riskFactors = list() -if(is.null(json$terms$marketObjectCodeOfRateReset)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json$riskFactors = riskFactors -json -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -# read data csv demo files -file_names <- list.files(path = source_path,recursive = TRUE) -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(is.null(json$terms$marketObjectCodeOfRateReset)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -file_names -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeOfRateReset)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -json$terms$nominalInterestRate -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -json = fromJSON(paste0(source_path,"/",file_name)) -riskFactors = list() -json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms -json$terms$marketObjectCodeRateReset = NULL -json$terms -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -factor -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -riskFactors -file_name -file_name="demo_pam111.json" -json = fromJSON(paste0(source_path,"/",file_name)) -file_name -file_name="PAM/demo_pam111.json" -json = fromJSON(paste0(source_path,"/",file_name)) -json -riskFactors = list() -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json = fromJSON(paste0(source_path,"/",file_name)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor -json$terms$marketObjectCodeOfRateReset -json$terms$marketObjectCodeOfRateReset -json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeOfRateReset -json$terms -file_name="PAM/demo_pam111.json" -json = fromJSON(paste0(source_path,"/",file_name)) -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"))) -json = fromJSON(paste0(source_path,"/",file_name)) -json -!is.null(json$terms$marketObjectCodeRateReset) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json = fromJSON(paste0(source_path,"/",file_name)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, rf_template) -} -json -json$riskFactors = riskFactors -json -json -file_name -json = fromJSON(paste0(source_path,"/",file_name)) -json -riskFactors = list() -!is.null(json$terms$marketObjectCodeRateReset) -json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json -json$terms$marketObjectCodeOfRateReset -json$terms$marketObjectCodeRateReset = NULL -json -factor = rf_template -factor -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, factor) -riskFactors -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, factor) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -json -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -gsub -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", gsub("demo_", "", unlist(strsplit(file_name,"/"))[2]))) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -riskFactors = list() -if(!is.null(json$terms$marketObjectCodeRateReset)) { -json$terms$marketObjectCodeOfRateReset = json$terms$marketObjectCodeRateReset -json$terms$marketObjectCodeRateReset = NULL -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfRateReset -factor$data = list( list(time=json$terms$statusDate, value=json$terms$nominalInterestRate) ) -riskFactors = c(riskFactors, list(factor)) -} -if(!is.null(json$terms$marketObjectCodeOfScalingIndex)) { -factor = rf_template -factor$marketObjectCode = json$terms$marketObjectCodeOfScalingIndex -factor$data = list( list(time=json$terms$statusDate, value=json$terms$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -json$contract = json$terms -json$terms = NULL -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -library(jsonlite) -library(readr) -#library(magrittr) -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)) -json$contract = json$terms -json$terms = NULL -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$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -setwd("~/repos/actus/actus-webapp/data/demos") -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)) -json$contract = json$terms -json$terms = NULL -json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate -json$contract$scalingIndexAtStatusDate = NULL -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$scalingIndexAtStatusDate) ) -riskFactors = c(riskFactors, list(factor)) -} -json$riskFactors = riskFactors -write_lines(toJSON(json,auto_unbox=TRUE), paste0(save_path, "/", unlist(strsplit(file_name,"/"))[2])) -} -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)) -json$contract = json$terms -json$terms = NULL -json$contract$scalingIndexAtContractDealDate = json$contract$scalingIndexAtStatusDate -json$contract$scalingIndexAtStatusDate = NULL -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, "/", unlist(strsplit(file_name,"/"))[2])) -} diff --git a/frontend/public/data/covered-contracts.json b/frontend/public/data/covered-contracts.json index 7994bc4..6d2d45e 100644 --- a/frontend/public/data/covered-contracts.json +++ b/frontend/public/data/covered-contracts.json @@ -12,6 +12,7 @@ "annuity", "foreignExchangeOutright", "plainVanillaSwap", - "swap" + "swap", + "capFloor" ] } diff --git a/frontend/src/components/Form/index.js b/frontend/src/components/Form/index.js index ea6018a..da85c31 100644 --- a/frontend/src/components/Form/index.js +++ b/frontend/src/components/Form/index.js @@ -37,7 +37,37 @@ export class Form extends PureComponent { redirect: false, host: "http://localhost:8080", backFromResults: false, - allAnswers: {} + allAnswers: {}, + // 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) + leg1Groups: [], + leg1OptionalFields: [], + leg1MandatoryFields: [], + leg1RequiredFields: {}, + leg1NonRequiredFields: {}, + leg1OriginalRequiredFields: {}, + leg1OriginalNonRequiredFields: {}, + // handling leg2 (swap) + leg2Groups: [], + leg2OptionalFields: [], + leg2MandatoryFields: [], + leg2RequiredFields: {}, + leg2NonRequiredFields: {}, + leg2OriginalRequiredFields: {}, + leg2OriginalNonRequiredFields: {} } getTestFields(){ @@ -191,96 +221,326 @@ 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, }); - + // 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 + let type = "" // underlying default type + switch(terms.type) { + case 'SWAPS': + type = "PAM" // default type + // leg 1 + // ----- + // extract underlying terms + terms = this.collectTerms(res.data,type,incoming); + // update state + this.setState({ + hasUnderlying: true, + underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], + 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 + } + }); + // leg 2 + // ----- + // update state + this.setState({ + 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 + } + }); + break; + case 'CAPFL': // has only one underlying + type = "PAM" // default type + // extract underlying terms + terms = this.collectTerms(res.data,type,incoming); + // update state + this.setState({ + hasUnderlying: true, + underlyingType: type, + 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 @@ -295,18 +555,6 @@ export class Form extends PureComponent { }) } - toggleDemos() { - this.setState({ - showDemos: !this.state.showDemos - }) - } - - toggleForm() { - this.setState({ - showForm: !this.state.showForm - }) - } - passDemoData(terms, riskFactorData) { let groups = [...this.state.groups]; let nonRequired = {...this.state.originalNonRequiredFields}; @@ -321,6 +569,9 @@ 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=>{ @@ -354,16 +605,9 @@ export class Form extends PureComponent { } - foldOptions(index) { - var groups = [...this.state.groups]; - groups[index].visible = !groups[index].visible; - this.setState({ - groups: groups - }); - } - render() { let {groups, groupDescription, contractType, identifier, mandatoryFields, redirect, results, demos, error} = 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"; @@ -406,7 +650,7 @@ export class Form extends PureComponent { {this.state.showForm && - +
All fields below are mandatory to fill in:
@@ -491,6 +735,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" /> + +
+
+ + ) + }) + } +
+
+ } +
+
+ ) + }) + } + +
+ } + + } From bef6e8046afec90a307beeba55f3381fe4321348 Mon Sep 17 00:00:00 2001 From: Nils Bundi Date: Wed, 28 Oct 2020 00:00:08 +0100 Subject: [PATCH 09/14] added support for combined contracts in frontend --- build.gradle | 2 +- data/demos/json/demo_swap101.json | 68 ++++++ data/demos/json/demo_swap102.json | 68 ++++++ data/demos/json/demo_swap103.json | 83 +++++++ data/demos/json/demo_swap104.json | 83 +++++++ data/demos/json/demo_swap105.json | 142 +++++++++++ data/demos/json/demo_swap106.json | 142 +++++++++++ data/demos/json/demo_swap107.json | 254 +++++++++++++++++++ data/demos/json/demo_swap108.json | 173 +++++++++++++ data/demos/json/demo_swap109.json | 173 +++++++++++++ data/demos/json/demo_swap110.json | 156 ++++++++++++ data/demos/json/demo_swap111.json | 156 ++++++++++++ data/demos/json/demo_swap112.json | 216 +++++++++++++++++ data/demos/jsonOld/demo_ann101.json | 1 - data/demos/jsonOld/demo_ann102.json | 1 - data/demos/jsonOld/demo_ann103.json | 1 - data/demos/jsonOld/demo_ann104.json | 1 - data/demos/jsonOld/demo_ann105.json | 1 - data/demos/jsonOld/demo_ann106.json | 1 - data/demos/jsonOld/demo_ann107.json | 1 - data/demos/jsonOld/demo_fxout101.json | 1 - data/demos/jsonOld/demo_fxout102.json | 1 - data/demos/jsonOld/demo_fxout103.json | 1 - data/demos/jsonOld/demo_fxout104.json | 1 - data/demos/jsonOld/demo_fxout105.json | 1 - data/demos/jsonOld/demo_fxout106.json | 1 - data/demos/jsonOld/demo_lam101.json | 1 - data/demos/jsonOld/demo_lam102.json | 1 - data/demos/jsonOld/demo_lam103.json | 1 - data/demos/jsonOld/demo_lam104.json | 1 - data/demos/jsonOld/demo_lam105.json | 1 - data/demos/jsonOld/demo_lam106.json | 1 - data/demos/jsonOld/demo_lam107.json | 1 - data/demos/jsonOld/demo_lam108.json | 1 - data/demos/jsonOld/demo_lam109.json | 1 - data/demos/jsonOld/demo_lam110.json | 1 - data/demos/jsonOld/demo_lam111.json | 1 - data/demos/jsonOld/demo_lax101.json | 1 - data/demos/jsonOld/demo_lax102.json | 1 - data/demos/jsonOld/demo_lax103.json | 1 - data/demos/jsonOld/demo_lax104.json | 1 - data/demos/jsonOld/demo_lax105.json | 1 - data/demos/jsonOld/demo_lax106.json | 1 - data/demos/jsonOld/demo_lax107.json | 1 - data/demos/jsonOld/demo_lax108.json | 1 - data/demos/jsonOld/demo_lax109.json | 1 - data/demos/jsonOld/demo_lax110.json | 1 - data/demos/jsonOld/demo_lax111.json | 1 - data/demos/jsonOld/demo_lax112.json | 1 - data/demos/jsonOld/demo_nam101.json | 1 - data/demos/jsonOld/demo_nam102.json | 1 - data/demos/jsonOld/demo_nam103.json | 1 - data/demos/jsonOld/demo_nam104.json | 1 - data/demos/jsonOld/demo_nam105.json | 1 - data/demos/jsonOld/demo_nam106.json | 1 - data/demos/jsonOld/demo_nam107.json | 1 - data/demos/jsonOld/demo_pam101.json | 1 - data/demos/jsonOld/demo_pam102.json | 1 - data/demos/jsonOld/demo_pam103.json | 1 - data/demos/jsonOld/demo_pam104.json | 1 - data/demos/jsonOld/demo_pam105.json | 1 - data/demos/jsonOld/demo_pam106.json | 1 - data/demos/jsonOld/demo_pam107.json | 1 - data/demos/jsonOld/demo_pam108.json | 1 - data/demos/jsonOld/demo_pam109.json | 1 - data/demos/jsonOld/demo_pam110.json | 1 - data/demos/jsonOld/demo_pam111.json | 1 - data/demos/jsonOld/demo_pam112.json | 1 - data/demos/jsonOld/demo_pam113.json | 1 - data/demos/jsonOld/demo_pam114.json | 1 - data/demos/jsonOld/demo_pam115.json | 1 - data/demos/jsonOld/demo_stk101.json | 1 - data/demos/jsonOld/demo_stk102.json | 1 - data/demos/jsonOld/demo_stk103.json | 1 - data/demos/jsonOld/demo_stk104.json | 1 - data/demos/jsonOld/demo_stk105.json | 1 - data/demos/jsonOld/demo_stk106.json | 1 - data/demos/jsonOld/demo_swppv101.json | 1 - data/demos/jsonOld/demo_swppv102.json | 1 - data/demos/jsonOld/demo_swppv103.json | 1 - data/demos/jsonOld/demo_swppv104.json | 1 - data/demos/jsonOld/demo_swppv105.json | 1 - data/demos/jsonOld/demo_swppv106.json | 1 - data/demos/jsonOld/demo_swppv107.json | 1 - data/demos/jsonOld/demo_swppv108.json | 1 - data/demos/jsonOld/demo_swppv109.json | 1 - frontend/src/components/Form/index.js | 335 ++++++++++++++++++++++++-- 87 files changed, 2029 insertions(+), 95 deletions(-) create mode 100644 data/demos/json/demo_swap101.json create mode 100644 data/demos/json/demo_swap102.json create mode 100644 data/demos/json/demo_swap103.json create mode 100644 data/demos/json/demo_swap104.json create mode 100644 data/demos/json/demo_swap105.json create mode 100644 data/demos/json/demo_swap106.json create mode 100644 data/demos/json/demo_swap107.json create mode 100644 data/demos/json/demo_swap108.json create mode 100644 data/demos/json/demo_swap109.json create mode 100644 data/demos/json/demo_swap110.json create mode 100644 data/demos/json/demo_swap111.json create mode 100644 data/demos/json/demo_swap112.json delete mode 100644 data/demos/jsonOld/demo_ann101.json delete mode 100644 data/demos/jsonOld/demo_ann102.json delete mode 100644 data/demos/jsonOld/demo_ann103.json delete mode 100644 data/demos/jsonOld/demo_ann104.json delete mode 100644 data/demos/jsonOld/demo_ann105.json delete mode 100644 data/demos/jsonOld/demo_ann106.json delete mode 100644 data/demos/jsonOld/demo_ann107.json delete mode 100644 data/demos/jsonOld/demo_fxout101.json delete mode 100644 data/demos/jsonOld/demo_fxout102.json delete mode 100644 data/demos/jsonOld/demo_fxout103.json delete mode 100644 data/demos/jsonOld/demo_fxout104.json delete mode 100644 data/demos/jsonOld/demo_fxout105.json delete mode 100644 data/demos/jsonOld/demo_fxout106.json delete mode 100644 data/demos/jsonOld/demo_lam101.json delete mode 100644 data/demos/jsonOld/demo_lam102.json delete mode 100644 data/demos/jsonOld/demo_lam103.json delete mode 100644 data/demos/jsonOld/demo_lam104.json delete mode 100644 data/demos/jsonOld/demo_lam105.json delete mode 100644 data/demos/jsonOld/demo_lam106.json delete mode 100644 data/demos/jsonOld/demo_lam107.json delete mode 100644 data/demos/jsonOld/demo_lam108.json delete mode 100644 data/demos/jsonOld/demo_lam109.json delete mode 100644 data/demos/jsonOld/demo_lam110.json delete mode 100644 data/demos/jsonOld/demo_lam111.json delete mode 100644 data/demos/jsonOld/demo_lax101.json delete mode 100644 data/demos/jsonOld/demo_lax102.json delete mode 100644 data/demos/jsonOld/demo_lax103.json delete mode 100644 data/demos/jsonOld/demo_lax104.json delete mode 100644 data/demos/jsonOld/demo_lax105.json delete mode 100644 data/demos/jsonOld/demo_lax106.json delete mode 100644 data/demos/jsonOld/demo_lax107.json delete mode 100644 data/demos/jsonOld/demo_lax108.json delete mode 100644 data/demos/jsonOld/demo_lax109.json delete mode 100644 data/demos/jsonOld/demo_lax110.json delete mode 100644 data/demos/jsonOld/demo_lax111.json delete mode 100644 data/demos/jsonOld/demo_lax112.json delete mode 100644 data/demos/jsonOld/demo_nam101.json delete mode 100644 data/demos/jsonOld/demo_nam102.json delete mode 100644 data/demos/jsonOld/demo_nam103.json delete mode 100644 data/demos/jsonOld/demo_nam104.json delete mode 100644 data/demos/jsonOld/demo_nam105.json delete mode 100644 data/demos/jsonOld/demo_nam106.json delete mode 100644 data/demos/jsonOld/demo_nam107.json delete mode 100644 data/demos/jsonOld/demo_pam101.json delete mode 100644 data/demos/jsonOld/demo_pam102.json delete mode 100644 data/demos/jsonOld/demo_pam103.json delete mode 100644 data/demos/jsonOld/demo_pam104.json delete mode 100644 data/demos/jsonOld/demo_pam105.json delete mode 100644 data/demos/jsonOld/demo_pam106.json delete mode 100644 data/demos/jsonOld/demo_pam107.json delete mode 100644 data/demos/jsonOld/demo_pam108.json delete mode 100644 data/demos/jsonOld/demo_pam109.json delete mode 100644 data/demos/jsonOld/demo_pam110.json delete mode 100644 data/demos/jsonOld/demo_pam111.json delete mode 100644 data/demos/jsonOld/demo_pam112.json delete mode 100644 data/demos/jsonOld/demo_pam113.json delete mode 100644 data/demos/jsonOld/demo_pam114.json delete mode 100644 data/demos/jsonOld/demo_pam115.json delete mode 100644 data/demos/jsonOld/demo_stk101.json delete mode 100644 data/demos/jsonOld/demo_stk102.json delete mode 100644 data/demos/jsonOld/demo_stk103.json delete mode 100644 data/demos/jsonOld/demo_stk104.json delete mode 100644 data/demos/jsonOld/demo_stk105.json delete mode 100644 data/demos/jsonOld/demo_stk106.json delete mode 100644 data/demos/jsonOld/demo_swppv101.json delete mode 100644 data/demos/jsonOld/demo_swppv102.json delete mode 100644 data/demos/jsonOld/demo_swppv103.json delete mode 100644 data/demos/jsonOld/demo_swppv104.json delete mode 100644 data/demos/jsonOld/demo_swppv105.json delete mode 100644 data/demos/jsonOld/demo_swppv106.json delete mode 100644 data/demos/jsonOld/demo_swppv107.json delete mode 100644 data/demos/jsonOld/demo_swppv108.json delete mode 100644 data/demos/jsonOld/demo_swppv109.json diff --git a/build.gradle b/build.gradle index 628dbd3..587adbd 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-4') } 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/jsonOld/demo_ann101.json b/data/demos/jsonOld/demo_ann101.json deleted file mode 100644 index 9c98a1b..0000000 --- a/data/demos/jsonOld/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":"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann102.json b/data/demos/jsonOld/demo_ann102.json deleted file mode 100644 index b863d7e..0000000 --- a/data/demos/jsonOld/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":"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann103.json b/data/demos/jsonOld/demo_ann103.json deleted file mode 100644 index e85dc32..0000000 --- a/data/demos/jsonOld/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":"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},"riskFactors":[]} diff --git a/data/demos/jsonOld/demo_ann104.json b/data/demos/jsonOld/demo_ann104.json deleted file mode 100644 index e93c32f..0000000 --- a/data/demos/jsonOld/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":"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"},"riskFactors":[{"marketObjectCode":"YC.USA.TREASURY","base":1,"data":[{"time":"2015-01-01T00:00:00","value":0.05}]}]} diff --git a/data/demos/jsonOld/demo_ann105.json b/data/demos/jsonOld/demo_ann105.json deleted file mode 100644 index 4e8ab84..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_ann106.json b/data/demos/jsonOld/demo_ann106.json deleted file mode 100644 index 0620e5b..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_ann107.json b/data/demos/jsonOld/demo_ann107.json deleted file mode 100644 index 208ac32..0000000 --- a/data/demos/jsonOld/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":"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},"riskFactors":[{"marketObjectCode":"CPI.USD","base":1,"data":[{"time":"2015-01-01T00:00:00","value":100}]}]} diff --git a/data/demos/jsonOld/demo_fxout101.json b/data/demos/jsonOld/demo_fxout101.json deleted file mode 100644 index 77faecf..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_fxout102.json b/data/demos/jsonOld/demo_fxout102.json deleted file mode 100644 index 10fe741..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_fxout103.json b/data/demos/jsonOld/demo_fxout103.json deleted file mode 100644 index e3df881..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_fxout104.json b/data/demos/jsonOld/demo_fxout104.json deleted file mode 100644 index 7d7dd1a..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_fxout105.json b/data/demos/jsonOld/demo_fxout105.json deleted file mode 100644 index c536ba0..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_fxout106.json b/data/demos/jsonOld/demo_fxout106.json deleted file mode 100644 index 832d8ea..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam101.json b/data/demos/jsonOld/demo_lam101.json deleted file mode 100644 index 3688905..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam102.json b/data/demos/jsonOld/demo_lam102.json deleted file mode 100644 index c4c075b..0000000 --- a/data/demos/jsonOld/demo_lam102.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_lam103.json b/data/demos/jsonOld/demo_lam103.json deleted file mode 100644 index 987e196..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam104.json b/data/demos/jsonOld/demo_lam104.json deleted file mode 100644 index 7fdd3a5..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam105.json b/data/demos/jsonOld/demo_lam105.json deleted file mode 100644 index bae877b..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam106.json b/data/demos/jsonOld/demo_lam106.json deleted file mode 100644 index 18131e6..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam107.json b/data/demos/jsonOld/demo_lam107.json deleted file mode 100644 index 0465976..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam108.json b/data/demos/jsonOld/demo_lam108.json deleted file mode 100644 index 11b9b6f..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam109.json b/data/demos/jsonOld/demo_lam109.json deleted file mode 100644 index f5e1a69..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam110.json b/data/demos/jsonOld/demo_lam110.json deleted file mode 100644 index 134b929..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lam111.json b/data/demos/jsonOld/demo_lam111.json deleted file mode 100644 index 601ac30..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax101.json b/data/demos/jsonOld/demo_lax101.json deleted file mode 100644 index e93e306..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax102.json b/data/demos/jsonOld/demo_lax102.json deleted file mode 100644 index 6286ad6..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax103.json b/data/demos/jsonOld/demo_lax103.json deleted file mode 100644 index bb4bb0b..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax104.json b/data/demos/jsonOld/demo_lax104.json deleted file mode 100644 index ae40c42..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax105.json b/data/demos/jsonOld/demo_lax105.json deleted file mode 100644 index 8413a5f..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax106.json b/data/demos/jsonOld/demo_lax106.json deleted file mode 100644 index 8df6ac4..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax107.json b/data/demos/jsonOld/demo_lax107.json deleted file mode 100644 index f791222..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax108.json b/data/demos/jsonOld/demo_lax108.json deleted file mode 100644 index 57c8cfb..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax109.json b/data/demos/jsonOld/demo_lax109.json deleted file mode 100644 index 57acc09..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax110.json b/data/demos/jsonOld/demo_lax110.json deleted file mode 100644 index 70316be..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax111.json b/data/demos/jsonOld/demo_lax111.json deleted file mode 100644 index 040c259..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_lax112.json b/data/demos/jsonOld/demo_lax112.json deleted file mode 100644 index 4aeb2d8..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_nam101.json b/data/demos/jsonOld/demo_nam101.json deleted file mode 100644 index 3968a0a..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_nam102.json b/data/demos/jsonOld/demo_nam102.json deleted file mode 100644 index 82c14b1..0000000 --- a/data/demos/jsonOld/demo_nam102.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_nam103.json b/data/demos/jsonOld/demo_nam103.json deleted file mode 100644 index 2f99761..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_nam104.json b/data/demos/jsonOld/demo_nam104.json deleted file mode 100644 index a5e794d..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_nam105.json b/data/demos/jsonOld/demo_nam105.json deleted file mode 100644 index 7485c56..0000000 --- a/data/demos/jsonOld/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":"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":"PY3L0","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/jsonOld/demo_nam106.json b/data/demos/jsonOld/demo_nam106.json deleted file mode 100644 index 03c9ac0..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_nam107.json b/data/demos/jsonOld/demo_nam107.json deleted file mode 100644 index c51310a..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam101.json b/data/demos/jsonOld/demo_pam101.json deleted file mode 100644 index c62ba47..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam102.json b/data/demos/jsonOld/demo_pam102.json deleted file mode 100644 index 22eaac2..0000000 --- a/data/demos/jsonOld/demo_pam102.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_pam103.json b/data/demos/jsonOld/demo_pam103.json deleted file mode 100644 index b50a538..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam104.json b/data/demos/jsonOld/demo_pam104.json deleted file mode 100644 index 0b2f233..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam105.json b/data/demos/jsonOld/demo_pam105.json deleted file mode 100644 index afef3e4..0000000 --- a/data/demos/jsonOld/demo_pam105.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_pam106.json b/data/demos/jsonOld/demo_pam106.json deleted file mode 100644 index 115c5c4..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam107.json b/data/demos/jsonOld/demo_pam107.json deleted file mode 100644 index 777e91e..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam108.json b/data/demos/jsonOld/demo_pam108.json deleted file mode 100644 index b38c8b1..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam109.json b/data/demos/jsonOld/demo_pam109.json deleted file mode 100644 index c39fecf..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam110.json b/data/demos/jsonOld/demo_pam110.json deleted file mode 100644 index ddb49a4..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam111.json b/data/demos/jsonOld/demo_pam111.json deleted file mode 100644 index 28be59b..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam112.json b/data/demos/jsonOld/demo_pam112.json deleted file mode 100644 index b6e8cc4..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam113.json b/data/demos/jsonOld/demo_pam113.json deleted file mode 100644 index ea1fb7e..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam114.json b/data/demos/jsonOld/demo_pam114.json deleted file mode 100644 index 45c79aa..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_pam115.json b/data/demos/jsonOld/demo_pam115.json deleted file mode 100644 index d8b8a49..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_stk101.json b/data/demos/jsonOld/demo_stk101.json deleted file mode 100644 index 7f7901b..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_stk102.json b/data/demos/jsonOld/demo_stk102.json deleted file mode 100644 index 17c93c2..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_stk103.json b/data/demos/jsonOld/demo_stk103.json deleted file mode 100644 index 5927e43..0000000 --- a/data/demos/jsonOld/demo_stk103.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_stk104.json b/data/demos/jsonOld/demo_stk104.json deleted file mode 100644 index c45d426..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_stk105.json b/data/demos/jsonOld/demo_stk105.json deleted file mode 100644 index 8d96f35..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_stk106.json b/data/demos/jsonOld/demo_stk106.json deleted file mode 100644 index 1c54792..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_swppv101.json b/data/demos/jsonOld/demo_swppv101.json deleted file mode 100644 index f434a9b..0000000 --- a/data/demos/jsonOld/demo_swppv101.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_swppv102.json b/data/demos/jsonOld/demo_swppv102.json deleted file mode 100644 index 9860877..0000000 --- a/data/demos/jsonOld/demo_swppv102.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_swppv103.json b/data/demos/jsonOld/demo_swppv103.json deleted file mode 100644 index 1e3948e..0000000 --- a/data/demos/jsonOld/demo_swppv103.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_swppv104.json b/data/demos/jsonOld/demo_swppv104.json deleted file mode 100644 index 3bd1f03..0000000 --- a/data/demos/jsonOld/demo_swppv104.json +++ /dev/null @@ -1 +0,0 @@ -{"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/jsonOld/demo_swppv105.json b/data/demos/jsonOld/demo_swppv105.json deleted file mode 100644 index 67c757e..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_swppv106.json b/data/demos/jsonOld/demo_swppv106.json deleted file mode 100644 index 48f313c..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_swppv107.json b/data/demos/jsonOld/demo_swppv107.json deleted file mode 100644 index fa9d9b7..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_swppv108.json b/data/demos/jsonOld/demo_swppv108.json deleted file mode 100644 index d4d4fc3..0000000 --- a/data/demos/jsonOld/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":"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/jsonOld/demo_swppv109.json b/data/demos/jsonOld/demo_swppv109.json deleted file mode 100644 index b2dfde5..0000000 --- a/data/demos/jsonOld/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":"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/frontend/src/components/Form/index.js b/frontend/src/components/Form/index.js index da85c31..f24b9e8 100644 --- a/frontend/src/components/Form/index.js +++ b/frontend/src/components/Form/index.js @@ -37,7 +37,7 @@ export class Form extends PureComponent { redirect: false, host: "http://localhost:8080", backFromResults: false, - allAnswers: {}, + formTerms: {}, // handling underlyings (capfl, ...) underlyingType: "", hasUnderlying: false, @@ -53,6 +53,7 @@ export class Form extends PureComponent { underlyingOriginalRequiredFields: {}, underlyingOriginalNonRequiredFields: {}, // handling leg1 (swap) + leg1Type: "", leg1Groups: [], leg1OptionalFields: [], leg1MandatoryFields: [], @@ -61,6 +62,7 @@ export class Form extends PureComponent { leg1OriginalRequiredFields: {}, leg1OriginalNonRequiredFields: {}, // handling leg2 (swap) + leg2Type: "", leg2Groups: [], leg2OptionalFields: [], leg2MandatoryFields: [], @@ -99,7 +101,7 @@ 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); } @@ -129,6 +131,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; @@ -137,10 +148,56 @@ export class Form extends PureComponent { handleSubmit(e) { e.preventDefault(); - let allAnswers = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); - let termsToSend = this.cleanUpTerms({...allAnswers}); + + // fetch contract terms + let formTerms = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); + let termsToSend = this.cleanUpTerms({...formTerms}); + + + console.log(termsToSend) + + // 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 + + } + this.setState({ - allAnswers: termsToSend + formTerms: termsToSend }); let dataToSend = { @@ -148,6 +205,8 @@ export class Form extends PureComponent { riskFactors: this.state.riskFactorData }; + console.log(dataToSend) + axios.post(this.state.host+'/events', dataToSend) .then(res => { this.setState({ @@ -168,8 +227,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'); @@ -372,7 +431,7 @@ export class Form extends PureComponent { // indicate state that fetching data this.setState({ isFetching: true, - allAnswers: incoming ? {...incoming}: null, + formTerms: incoming ? {...incoming}: null, }); // fetch dictionary axios.get(`/data/actus-dictionary.json`) @@ -402,19 +461,18 @@ export class Form extends PureComponent { } }); // handle underlying contracts - let type = "" // underlying default type switch(terms.type) { case 'SWAPS': - type = "PAM" // default type // leg 1 // ----- - // extract underlying terms - terms = this.collectTerms(res.data,type,incoming); // update state + let leg1Type = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; + terms = this.collectTerms(res.data,leg1Type,incoming); + console.log(leg1Type) this.setState({ hasUnderlying: true, underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], - leg1Type: type, + leg1Type: leg1Type, leg1Groups: terms.groups, leg1OptionalFields: [...terms.optionalFields], leg1MandatoryFields: [...terms.mandatoryFields], @@ -429,8 +487,10 @@ export class Form extends PureComponent { // leg 2 // ----- // update state + let leg2Type = incoming ? incoming.contractStructure[1].object.contractType : "PAM"; + terms = this.collectTerms(res.data,leg2Type,incoming); this.setState({ - leg2Type: type, + leg2Type: leg2Type, leg2Groups: terms.groups, leg2OptionalFields: [...terms.optionalFields], leg2MandatoryFields: [...terms.mandatoryFields], @@ -444,13 +504,13 @@ export class Form extends PureComponent { }); break; case 'CAPFL': // has only one underlying - type = "PAM" // default type // extract underlying terms - terms = this.collectTerms(res.data,type,incoming); + let underlyingType = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; + terms = this.collectTerms(res.data,underlyingType,incoming); // update state this.setState({ hasUnderlying: true, - underlyingType: type, + underlyingType: underlyingType, underlyingTypes: ["PAM","NAM","ANN","LAM","LAX"], underlyingGroups: terms.groups, underlyingOptionalFields: [...terms.optionalFields], @@ -570,7 +630,7 @@ export class Form extends PureComponent { this.toggleForm(); if(!this.state.showUnderlying) - this.toggleUnderlying(); + this.toggleUnderlying(); // assign the required terms from the demo to the "required" state termArray.map(t=>{ @@ -603,6 +663,239 @@ export class Form extends PureComponent { 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 + + } + } + + 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({ + 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 + }); + }) + } + + + passLeg1DemoData_cp(terms) { + let groups = [...this.state.leg1Groups]; + let nonRequired = {...this.state.leg1OriginalNonRequiredFields}; + let required = {...this.state.leg1OriginalRequiredFields}; + + 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({ + leg1RequiredFields: { + ...this.state.leg1OriginalRequiredFields, + ...required}, + leg1NonRequiredFields: { + ...this.state.leg1OriginalNonRequiredFields, + ...nonRequired} + }); + } + + passLeg2DemoData_cp(terms) { + let groups = [...this.state.leg2Groups]; + let nonRequired = {...this.state.leg2OriginalNonRequiredFields}; + let required = {...this.state.leg2OriginalRequiredFields}; + + let termArray = Object.entries(terms); + let requiredArray = Object.entries(required); + console.log(terms) + console.log(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({ + leg2RequiredFields: { + ...this.state.leg2OriginalRequiredFields, + ...required}, + leg2NonRequiredFields: { + ...this.state.leg2OriginalNonRequiredFields, + ...nonRequired} + }); } render() { @@ -613,7 +906,7 @@ export class Form extends PureComponent { let formClassName = (this.state.showForm)?"unfolded":"folded"; if( redirect ) { - return + return } else { if(this.state.isFetching){ return ( @@ -762,7 +1055,7 @@ export class Form extends PureComponent { {this.state.underlyingTypes.map(type => ( From 0c426e9ff6fce9a45be4b1255e801bf10abc91ad Mon Sep 17 00:00:00 2001 From: Nils Bundi Date: Thu, 29 Oct 2020 23:03:22 +0100 Subject: [PATCH 10/14] fixed bugs in form for combined contracts --- frontend/src/components/Form/index.js | 185 +++++++++-------------- frontend/src/components/Results/index.js | 4 +- 2 files changed, 73 insertions(+), 116 deletions(-) diff --git a/frontend/src/components/Form/index.js b/frontend/src/components/Form/index.js index f24b9e8..3b01518 100644 --- a/frontend/src/components/Form/index.js +++ b/frontend/src/components/Form/index.js @@ -108,6 +108,7 @@ export class Form extends PureComponent { } handleReset(e) { + // reset main contract fields let requiredFieldCopy = {...this.state.requiredFields}; let nonRequiredFieldsCopy = {...this.state.nonRequiredFields}; for(var n in requiredFieldCopy){ @@ -121,6 +122,45 @@ export class Form extends PureComponent { 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 + }) + } } cleanUpTerms(obj){ @@ -132,7 +172,7 @@ export class Form extends PureComponent { delete obj[prop]; } if(Array.isArray(obj[prop])) { - if(obj[prop].length == 0) { + if(obj[prop].length === 0) { delete obj[prop]; } else { //obj[prop] = obj[prop].join(); @@ -153,9 +193,6 @@ export class Form extends PureComponent { let formTerms = Object.assign({},this.state.requiredFields, this.state.nonRequiredFields); let termsToSend = this.cleanUpTerms({...formTerms}); - - console.log(termsToSend) - // handle underlying contracts let contractStructure = [] let underlyingReference = {}, leg1Reference = {}, leg2Reference = {} @@ -205,8 +242,6 @@ export class Form extends PureComponent { riskFactors: this.state.riskFactorData }; - console.log(dataToSend) - axios.post(this.state.host+'/events', dataToSend) .then(res => { this.setState({ @@ -430,8 +465,8 @@ export class Form extends PureComponent { console.log("fetch data", id," is incoming ", incoming ); // indicate state that fetching data this.setState({ - isFetching: true, - formTerms: incoming ? {...incoming}: null, + isFetching: true + //formTerms: incoming ? {...incoming}: null, }); // fetch dictionary axios.get(`/data/actus-dictionary.json`) @@ -467,8 +502,8 @@ export class Form extends PureComponent { // ----- // update state let leg1Type = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; - terms = this.collectTerms(res.data,leg1Type,incoming); - console.log(leg1Type) + 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"], @@ -488,7 +523,8 @@ export class Form extends PureComponent { // ----- // update state let leg2Type = incoming ? incoming.contractStructure[1].object.contractType : "PAM"; - terms = this.collectTerms(res.data,leg2Type,incoming); + let leg2Terms = incoming ? incoming.contractStructure[1].object : null; + terms = this.collectTerms(res.data,leg2Type,leg2Terms); this.setState({ leg2Type: leg2Type, leg2Groups: terms.groups, @@ -506,7 +542,8 @@ export class Form extends PureComponent { case 'CAPFL': // has only one underlying // extract underlying terms let underlyingType = incoming ? incoming.contractStructure[0].object.contractType : "PAM"; - terms = this.collectTerms(res.data,underlyingType,incoming); + let underlyingTerms = incoming ? incoming.contractStructure[0].object : null; + terms = this.collectTerms(res.data,underlyingType,underlyingTerms); // update state this.setState({ hasUnderlying: true, @@ -635,7 +672,7 @@ export class Form extends PureComponent { // 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]; } }); @@ -645,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]; } }); @@ -692,7 +729,7 @@ export class Form extends PureComponent { // 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]; } }); @@ -702,7 +739,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]; } }); @@ -742,7 +779,7 @@ export class Form extends PureComponent { // 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]){ requiredFields[t[0]] = t[1]; } }); @@ -752,7 +789,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){ nonRequiredFields[t[0]] = t[1]; } }); @@ -792,7 +829,7 @@ export class Form extends PureComponent { // 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]){ requiredFields[t[0]] = t[1]; } }); @@ -802,7 +839,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){ nonRequiredFields[t[0]] = t[1]; } }); @@ -818,88 +855,8 @@ export class Form extends PureComponent { }) } - - passLeg1DemoData_cp(terms) { - let groups = [...this.state.leg1Groups]; - let nonRequired = {...this.state.leg1OriginalNonRequiredFields}; - let required = {...this.state.leg1OriginalRequiredFields}; - - 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({ - leg1RequiredFields: { - ...this.state.leg1OriginalRequiredFields, - ...required}, - leg1NonRequiredFields: { - ...this.state.leg1OriginalNonRequiredFields, - ...nonRequired} - }); - } - - passLeg2DemoData_cp(terms) { - let groups = [...this.state.leg2Groups]; - let nonRequired = {...this.state.leg2OriginalNonRequiredFields}; - let required = {...this.state.leg2OriginalRequiredFields}; - - let termArray = Object.entries(terms); - let requiredArray = Object.entries(required); - console.log(terms) - console.log(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({ - leg2RequiredFields: { - ...this.state.leg2OriginalRequiredFields, - ...required}, - leg2NonRequiredFields: { - ...this.state.leg2OriginalNonRequiredFields, - ...nonRequired} - }); - } - 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"; @@ -1028,7 +985,7 @@ export class Form extends PureComponent { } - {this.state.hasUnderlying && this.state.contractType=="SWAPS" && + {this.state.hasUnderlying && this.state.contractType==="SWAPS" && <> this.toggleLeg1()}> @@ -1045,7 +1002,7 @@ export class Form extends PureComponent { {leg1MandatoryFields.map((m, groupId) => { - if(m.identifier=="contractType") { + if(m.identifier==="contractType") { // add dropdown for selecting the contractType return( @@ -1077,7 +1034,7 @@ export class Form extends PureComponent {
{item.name}
{leg2MandatoryFields.map((m, groupId) => { - if(m.identifier=="contractType") { + if(m.identifier==="contractType") { // add dropdown for selecting the contractType return( @@ -1170,7 +1127,7 @@ export class Form extends PureComponent {
{item.name}
} - {this.state.hasUnderlying && this.state.contractType!="SWAPS" && + {this.state.hasUnderlying && this.state.contractType!=="SWAPS" && <> this.toggleUnderlying()}> @@ -1283,7 +1240,7 @@ export class Form extends PureComponent { {underlyingMandatoryFields.map((m, groupId) => { - if(m.identifier=="contractType") { + if(m.identifier==="contractType") { // add dropdown for selecting the contractType return( @@ -1291,7 +1248,7 @@ export class Form extends PureComponent {
{item.name}
+ return return (
From 1c48c75be2d3102a6097781f25a7b7060c43d228 Mon Sep 17 00:00:00 2001 From: Nils Bundi Date: Thu, 29 Oct 2020 23:12:55 +0100 Subject: [PATCH 11/14] fixed webapp version number --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 587adbd..4951821 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'org.actus' -version = '1.0-alpha-4' +version = '1.0-alpha-1' sourceCompatibility = 1.8 repositories { From 52d505bc8443c08fa931dc32057d76e084f3bb37 Mon Sep 17 00:00:00 2001 From: Nils Andri Bundi Date: Thu, 29 Oct 2020 23:21:52 +0100 Subject: [PATCH 12/14] remove skip tests in mvn build install command --- ReadMe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 160526c4a2455dbe081f7cc8a8e48b95a4af8135 Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 28 Nov 2020 18:09:30 +0100 Subject: [PATCH 13/14] Update actus-core dependency to v1.0-alpha-5 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4951821..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-4') + compile('org.actus:actus-core:1.0-alpha-5') } From a168340115d24e6e880942e1cc76d1fd8ce0b9da Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 6 Dec 2020 20:01:29 +0100 Subject: [PATCH 14/14] Add supported contracts to frontend, update actus-dictionary, fix typo --- data/demos/json/demo_nam105.json | 2 +- frontend/public/data/actus-dictionary.json | 12 +++----- frontend/public/data/covered-contracts.json | 32 ++++++++++++--------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/data/demos/json/demo_nam105.json b/data/demos/json/demo_nam105.json index 3656cbd..32c8b45 100644 --- a/data/demos/json/demo_nam105.json +++ b/data/demos/json/demo_nam105.json @@ -14,7 +14,7 @@ "nominalInterestRate": 0.05, "dayCountConvention": "30E360", "cycleAnchorDateOfInterestCalculationBase": "2019-01-01T00:00:00", - "cycleOfInterestCalculationBase": "PY3L0", + "cycleOfInterestCalculationBase": "P3YL0", "interestCalculationBase": "NTL", "interestCalculationBaseAmount": 1000, "currency": "USD", 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 6d2d45e..91d7fae 100644 --- a/frontend/public/data/covered-contracts.json +++ b/frontend/public/data/covered-contracts.json @@ -1,18 +1,22 @@ { - "contracts": [ - "cash", - "callMoney", - "undefinedMaturityProfile", - "commodity", - "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", - "capFloor" - ] + "undefinedMaturityProfile" + ] }