ores.refdata.csa
Table of Contents
- 1. Flags
- 2. Columns
- 2.1. id
- 2.2. netting_set_id
- 2.3. party_id
- 2.4. is_active
- 2.5. bilateral
- 2.6. csa_currency
- 2.7. index_name
- 2.8. threshold_pay
- 2.9. threshold_receive
- 2.10. minimum_transfer_amount_pay
- 2.11. minimum_transfer_amount_receive
- 2.12. independent_amount_held
- 2.13. independent_amount_type
- 2.14. call_frequency
- 2.15. post_frequency
- 2.16. margin_period_of_risk
- 2.17. collateral_compounding_spread_receive
- 2.18. collateral_compounding_spread_pay
- 2.19. apply_initial_margin
- 2.20. initial_margin_type
- 2.21. calculate_im_amount
- 2.22. calculate_vm_amount
- 2.23. non_exempt_im_regulations
- 3. Artefact columns
- 3.1. netting_set_code
- 3.2. version
- 3.3. is_active
- 3.4. bilateral
- 3.5. csa_currency
- 3.6. index_name
- 3.7. threshold_pay
- 3.8. threshold_receive
- 3.9. minimum_transfer_amount_pay
- 3.10. minimum_transfer_amount_receive
- 3.11. independent_amount_held
- 3.12. independent_amount_type
- 3.13. call_frequency
- 3.14. post_frequency
- 3.15. margin_period_of_risk
- 3.16. collateral_compounding_spread_receive
- 3.17. collateral_compounding_spread_pay
- 3.18. apply_initial_margin
- 3.19. initial_margin_type
- 3.20. calculate_im_amount
- 3.21. calculate_vm_amount
- 3.22. non_exempt_im_regulations
- 3.23. eligible_currencies
- 4. SQL
- 5. Foreign keys
- 6. C++
- 7. See also
A Credit Support Annex holds the collateral terms of a netting set: thresholds, minimum transfer amounts, margining frequencies, the margin period of risk and the eligible collateral. Netting reduces exposure, and collateral mitigates what remains (see Netting sets).
A CSA has a lifecycle of its own: it is added, changed or switched off
without touching the trades in its set. A set has at most one active CSA;
an inactive one keeps its terms, as ORE keeps the details of a set whose
CSA flag is off. The columns follow ORE's CSADetails one for one, and
the eligible collateral currencies are rows of their own.
1. Flags
2. Columns
2.1. id
UUID uniquely identifying this CSA.
Surrogate key for the CSA record.
2.2. netting_set_id
The netting set these collateral terms govern.
References the netting sets table.
ctx.generate_uuid()
2.3. party_id
The legal entity of the firm the CSA belongs to.
References the parties table. It is the party of the CSA's netting set, and fixed for the CSA's life. A CSA is a contract between one legal entity and one counterparty. The insert trigger derives it from the netting set and ignores what the caller sent, so the two cannot differ.
ctx.generate_uuid()
2.4. is_active
Whether the CSA is in force.
ORE's ActiveCSAFlag. A set has at most one active CSA; an inactive one keeps its terms.
true
2.5. bilateral
Who posts collateral.
Bilateral, CallOnly or PostOnly, as ORE names them.
std::optional<std::string>("Bilateral")
2.6. csa_currency
The currency the CSA is denominated in.
An ISO currency code. Not checked against the currencies table: like the currency columns of the instrument models, it holds what the ORE document states.
std::optional<std::string>("EUR")
2.7. index_name
The index that accrues interest on collateral.
ORE's Index, such as EUR-EONIA.
std::optional<std::string>("EUR-EONIA")
2.8. threshold_pay
The exposure the firm may owe before it must post.
Not negative.
std::nullopt
2.9. threshold_receive
The exposure the counterparty may owe before it must post.
Not negative.
std::nullopt
2.10. minimum_transfer_amount_pay
The smallest transfer the firm makes.
Not negative.
std::nullopt
2.11. minimum_transfer_amount_receive
The smallest transfer the counterparty makes.
Not negative.
std::nullopt
2.12. independent_amount_held
The independent amount held.
ORE's IndependentAmountHeld.
std::nullopt
2.13. independent_amount_type
How the independent amount is expressed.
ORE's IndependentAmountType; FIXED is the only value ORE defines.
std::nullopt
2.14. call_frequency
How often the firm calls for collateral.
A period, such as 1D.
std::optional<std::string>("1D")
2.15. post_frequency
How often the firm posts collateral.
A period, such as 1D.
std::optional<std::string>("1D")
2.16. margin_period_of_risk
The time to close out after a default.
A period, such as 2W.
std::optional<std::string>("2W")
2.17. collateral_compounding_spread_receive
The spread on collateral the firm receives.
ORE's CollateralCompoundingSpreadReceive.
std::nullopt
2.18. collateral_compounding_spread_pay
The spread on collateral the firm posts.
ORE's CollateralCompoundingSpreadPay.
std::nullopt
2.19. apply_initial_margin
Whether initial margin applies.
ORE's ApplyInitialMargin.
std::nullopt
2.20. initial_margin_type
Who posts initial margin.
Bilateral, CallOnly or PostOnly, as ORE names them.
std::nullopt
2.21. calculate_im_amount
Whether ORE calculates the initial margin amount.
ORE's CalculateIMAmount.
std::nullopt
2.22. calculate_vm_amount
Whether ORE calculates the variation margin amount.
ORE's CalculateVMAmount.
std::nullopt
2.23. non_exempt_im_regulations
The regulations under which initial margin is not exempt.
ORE's NonExemptIMRegulations, as written.
std::nullopt
3. Artefact columns
The import names the netting set by code where the store holds its uuid and party, and carries the eligible collateral currencies as a comma separated list in posting order. Publishing resolves the set in the target tenant.
3.1. netting_set_code
3.2. version
3.3. is_active
3.4. bilateral
3.5. csa_currency
3.6. index_name
3.7. threshold_pay
3.8. threshold_receive
3.9. minimum_transfer_amount_pay
3.10. minimum_transfer_amount_receive
3.11. independent_amount_held
3.12. independent_amount_type
3.13. call_frequency
3.14. post_frequency
3.15. margin_period_of_risk
3.16. collateral_compounding_spread_receive
3.17. collateral_compounding_spread_pay
3.18. apply_initial_margin
3.19. initial_margin_type
3.20. calculate_im_amount
3.21. calculate_vm_amount
3.22. non_exempt_im_regulations
3.23. eligible_currencies
4. SQL
4.1. Flags
4.2. Checks
| expression |
|---|
| "bilateral" is null or "bilateral" in ('Bilateral', 'CallOnly', 'PostOnly') |
| "initial_margin_type" is null or "initial_margin_type" in ('Bilateral', 'CallOnly', 'PostOnly') |
| "independent_amount_type" is null or "independent_amount_type" = 'FIXED' |
| "threshold_pay" is null or "threshold_pay" >= 0 |
| "threshold_receive" is null or "threshold_receive" >= 0 |
| "minimum_transfer_amount_pay" is null or "minimum_transfer_amount_pay" >= 0 |
| "minimum_transfer_amount_receive" is null or "minimum_transfer_amount_receive" >= 0 |
4.3. Indexes
| name | columns | unique | current_only | where_extra |
|---|---|---|---|---|
| active_set | netting_set_id | true | true | is_active |
4.4. Party id from parent
5. Foreign keys
5.1. party_id
5.2. netting_set_id
6. C++
6.1. Flags
6.2. Repository
6.3. Domain includes
#include <optional> #include <string> #include <boost/uuid/uuid.hpp>
6.4. Entity includes
#include <optional> #include <string>
6.5. Conventions
6.6. Table display
| column | header |
|---|---|
| is_active | Active |
| bilateral | Bilateral |
| csa_currency | Currency |
| margin_period_of_risk | MPOR |
| modified_by | Modified By |
| version | Version |
6.7. Presentation
6.7.1. Detail fields
| field | label | widget | type | is_key | is_required | placeholder |
|---|---|---|---|---|---|---|
| bilateral | Bilateral | bilateralEdit | line_edit | false | false | Bilateral, CallOnly, PostOnly |
| csa_currency | Currency | csaCurrencyEdit | line_edit | false | false | ISO currency code |
| index_name | Index | indexNameEdit | line_edit | false | false | Collateral index |
| margin_period_of_risk | MPOR | mporEdit | line_edit | false | false | Period, such as 2W |
6.7.2. Columns
| enum_name | field | header | type | width |
|---|---|---|---|---|
| IsActive | is_active | Active | string | 60 |
| Bilateral | bilateral | Bilateral | string | 100 |
| CsaCurrency | csa_currency | Currency | string | 80 |
| MarginPeriodOfRisk | margin_period_of_risk | MPOR | string | 80 |
| Version | version | Version | int | 80 |
| ModifiedBy | modified_by | Modified By | string | 120 |
| RecordedAt | recorded_at | Recorded At | timestamp | 150 |
7. See also
- ores.refdata — component group overview.
- ores.refdata.netting_set — the set a CSA governs.
- ores.refdata.csa_eligible_currency — the CSA's eligible collateral.
- Netting sets — the analysis this entity follows.