CDM Mortgage JSON
The following section further describes the data attributes of the CDM Mortgage Schema that seeks to follow the data structure of the Financial Products Markup Language (FpML). Selected examples of the CDM data attribute definitions are used as illustrations to help explain various dimensions of the model, and include data samples and code snippets to help demonstrate the CDM structure, where applicable.

Contract Details

Contract details: defines specific attributes that relate to contractual details of a trade; it describes the key documentation and party contractual information of the model.
  • The Documentation Identification set of data attributes represents the legal document(s) meta data that governs a trade and associated contractual product terms, either as a reference to such documents when specified as part of the CDM, or through identification of some of the key terms of those documents, such as the type of document, the document identifier, the publisher, the document vintage and the agreement date.
1
"documentationIdentification": {
2
"otherAgreement": [
3
{
4
"identifier": "1234XXX23",
5
"otherAgrementType": "Retail Mortgage 2016",
6
"version": "1.0",
7
"unadjustedDate": {
8
"day": 6,
9
"month": 3,
10
"year": 2016
11
}
12
}
13
]
14
}
Copied!
  • Within Other Agreement is a set of attributes that defines agreement executed between parties, it consists of the following additional attributes:
    • Identifier is a metadata attribute that is used to identify the agreement.
    • Other Agreement Type is a metadata attribute that shows the agreement executed between the parties and intended to govern product-specific transactions between those parties.
    • Unadjusted Date describes a date field that is subjected to adjustment based on (day, month and year).
  • The Governing Law sub-attribute of Contract Detail represents the law governing the trade and associated contractual product terms.
1
"governingLaw": "GBEN"
Copied!
  • The Party Contract Details, sub attribute of Contract Details, represents additional contractual information provided by each involved party.
1
"partyReference": {
2
"externalReference": "party1",
3
"globalReference": "1ab3e71c"
4
},
5
"naturalPersonRole": [
6
{
7
"personReference": {},
8
"role": "MainBuyer"
9
}
10
]
Copied!
  • Party Reference is a set of attributes that describes both the external and global reference that links to this particular data model.
  • Natural Person Role is a set of attributes to specify the role(s) that natural person(s) may have in relation to the contract.
    • Person Reference is an attribute that references the natural person to whom the role refers to.
    • Role is an attribute that specifies a person role that is distinct from the party role.

Party

A set of metadata key that represents, without a qualification, as to whether this party is a legal entity or a natural person.
  • The Party ID identifier associated with a party and the scheme standards that is being used (ie 20 digits LEI code).
1
"partyId": [
2
{
3
"meta": { "scheme": "http://www.fpml.org/coding-scheme/external/iso17442" },
4
"value": "ML5798312-1"
5
}
Copied!
  • The person set of data attributes consists of first name and surname.
1
"person": {
2
"value": {
3
"firstName": "James",
4
"surname": "Smith"
5
}
6
}
Copied!

Credit Details

Credit Details is set of data attributes that is associated with the borrower's credit information. It consists of income, employment, and whether the borrower has an existing mortgage which is denoted as as a boolean flag.
1
"creditDetails": {
2
"hasAMortgage": "False",
3
"employmentStatus": "Employed",
4
"income": [
5
{
6
"incomeAmount": {
7
"value": {
8
"amount": 5000,
9
"unitOfAmount": {
10
"currency": {
11
"value": "GBP"
12
}
13
}
14
}
15
}
16
}
Copied!

Tradable Product

A tradable product represents a financial product that is ready to be traded, ie included in an execution or contract, by associating a specific price and quantity to this product plus an (optional) mechanism for any potential future quantity adjustment.
1
"tradableProduct": {
2
"counterparty": [
3
{
4
"partyReference": {
5
"externalReference": "party1",
6
"globalReference": "1ab3e71c"
7
},
8
"role": "PARTY_1"
9
},
10
{
11
"partyReference": {
12
"externalReference": "party2",
13
"globalReference": "e6c82f54"
14
},
15
"role": "PARTY_2"
16
}
17
Copied!
  • Counterpartyattributes is an enumerated value (ie Party1 or Party2 ). The Counterparty attribute can then be positioned in the product (eg to specify which counterparty is the payer, receiver etc) with a counterparty type, that is positioned outside of the product definition, and allows the Counterparty attribute to be associated with an actual party reference.
1
"priceQuantity": [
2
{
3
"meta": {
4
"globalKey": "27a2ef6f"
5
},
6
"price": [
7
{
8
"meta": {
9
"location": [
10
{
11
"scope": "DOCUMENT",
12
"value": "price-1"
13
}
14
]
15
},
16
"value": {
17
"amount": 0.0164,
18
"unitOfAmount": {
19
"currency": {
20
"value": "GPB"
21
}
22
},
23
"perUnitOfAmount": {
24
"currency": {
25
"value": "GPB"
26
}
27
},
28
"priceType": "INTEREST_RATE"
29
}
30
}
31
],
32
"quantity": [
33
{
34
"meta": {
35
"location": [
36
{
37
"scope": "DOCUMENT",
38
"value": "quantity-1"
39
}
40
]
41
},
42
"value": {
43
"amount": 250000,
44
"unitOfAmount": {
45
"currency": {
46
"value": "GBP"
47
}
48
}
49
}
50
}
51
]
Copied!
  • Price Quantity attribute defines the settlement information as an exchange between two parties of a specified quantity of an asset (the quantity) against a specified quantity of another asset (the price). The settlement can be either cash or physical. In the case of non-cash products, the settlement of the price/quantity would not be specified here and instead would be delegated to the product mechanics as the price/quantity values.
1
"product": {
2
"loan": {
3
"creditAgreeemtDate": {
4
"meta": {
5
"globalKey": "3f105d"
6
},
7
"value": {
8
"day": 30,
9
"month": 4,
10
"year": 2021
11
}
12
},
13
"loanLeg": [
14
{
15
"rateSpecification": {
16
"fixedRate": {
17
"meta": {
18
"globalKey": "0"
19
},
20
"rateSchedule": {
21
"initialValue": {
22
"address": {
23
"scope": "DOCUMENT",
24
"value": "price-1"
25
}
26
}
27
}
28
}
29
}
Copied!
  • Product attribute defines the underlying product details that is the ready to be traded (ie included in the contract or execution).
    • Loan Leg identifies a loan by referencing a product identifier with a set of optional attributes.
    • Rate Schedule is a set of attributes defining a schedule of rates or amounts in terms of an initial value and then a series of step date and value pairs.
    • Credit Agreement Date specifies the closing date (the date where the agreement has been signed) for the loans in the credit agreement. Funding of the facilities occurs on (or sometimes a little after) the Credit Agreement date. This attribute is used to help identify which of the company's outstanding loans are being referenced by knowing which credit agreement it belongs to.
    • ISDA Standards Terms Supplement term: Date of Original Credit Agreement.

Trade Date

Trade date attribute specifies the date which the trade was agreed. The trade date attribute is based on (day, month, year).
1
"tradeDate": {
2
"meta": {
3
"globalKey": "3f105d"
4
},
5
"value": {
6
"day": 30,
7
"month": 4,
8
"year": 2021
9
}
Copied!

Trade Identifier

Trade Identifier is a set of data attributes that consist of the 2 sub attributes. It represents identifier(s) that uniquely reference a trade for an identity issuer. A trade can include multiple identifiers (ie a trade that is reported to multiple jurisdictions, and has an associated USI (Unique Swap Identifier) UTI (Unique Trade Identifier).
1
"assignedIdentifier": [
2
{
3
"identifier": {
4
"meta": {
5
"scheme": "http://www.fpml.org/coding-scheme/external/uti"
6
},
7
"value": "UITD7895394"
8
}
9
}
10
]
Copied!
  • Assigned Identifier refers to the issuer and the identifier and its associated version that provides the ability to associate multiple identifiers to one issuer and is consistent with the FpML Party Trade Identifier.
    1
    "issuer": {
    2
    "meta": {
    3
    "scheme": "http://www.fpml.org/coding-scheme/external/iso17442"
    4
    },
    5
    "value": "54930084UKLVMY22DS16"
    6
    }
    Copied!
  • Issuer is an attribute when specified explicitly alongside the identifier value (instead of being specified by reference to a party).

Collateral

Collateral is a set of metadata attributes that defines the obligations of the counterparty that is subjected to credit support requirements.
1
"propertyType": "PrivateResidential",
2
"dwellingType": "ApartmentOrFlat",
3
"physicalAddress": {
4
"street": "Sun Street",
5
"city": "Holbrokk",
6
"country": {
7
"meta": {
8
"scheme": "http://www.fpml.org/coding-scheme/external/iso3166"
9
},
10
"value": "GBR"
Copied!
  • Within the collateral data type, property information such as the physical address, dwelling and property type would be specified.
1
"ValuationDate": {
2
"meta": {
3
"globalKey": "3f105d"
4
},
5
"value": {
6
"day": 15,
7
"month": 4,
8
"year": 2021
9
}
Copied!
  • Valuation date defines when payment will occur relative to the valuation date.
1
"PropertyValuation":
2
{
3
"address":
4
{
5
"scope": "DOCUMENT",
6
"value": "price-2"
7
}
8
},
9
"PurchasePrice": {
10
"address": { "scope": "DOCUMENT",
11
"value": "price-3"
12
}
13
}
Copied!
  • Property Valuation set of attributes specifies final valuation price. This price can be expressed either as an actual amount/currency. The value attribute can reference to another value specified in the swap document.