Main Content

ISDA SA-CCR CRIF File Specifications

The ISDA® SA-CCR CRIF file format is designed to facilitate the exchange of counterparty credit risk information between market participants and regulatory authorities. It provides a structured and consistent format for reporting key data elements related to derivative transactions and their associated counterparty credit risk.

The ISDA SA-CCR CRIF file typically includes information such as:

  • Trade-level data — This data includes details about the derivative contracts, such as trade identifiers, product type, adjusted notional amount, maturity, and valuation.

  • Counterparty data — This data includes information about the counterparties involved in the transactions, such as legal entity identifiers (LEIs), names, addresses, and credit ratings.

  • Risk data — This data includes information related to the calculation of counterparty credit risk, such as supervisory deltas and netting sets.

  • Collateral data — This data includes information about any collateral posted or received in relation to the derivative transactions, such as collateral type, amount, and haircuts.

The ISDA SA-CCR CRIF file format is based on industry-standard data formats, such as XML (extensible markup language) or CSV (comma-separated values). It follows a predefined schema that specifies the structure and data elements required for reporting counterparty credit risk exposures under the SA-CCR framework. The ISDA CRIF is a proprietary model developed by the International Swaps and Derivatives Association, Inc. (ISDA) and may be licensed from ISDA, by contacting them at ISDABenchmarking@isda.org.

Typically 18~22 columns, with the top row specifying the column names as in the following sample.

Sample SA-CCR CRIF

Sample SA-CCR CRIF

Rules for ISDA SA-CCR CRIF File Specification

The specification for the ISDA SA-CCR CRIF file format is defined for each of the following: Portfolios, Netting Sets, Collateral Sets, Collateral Positions, and Trades.

Portfolios

  • Each SA-CCR CRIF file must contain at least one portfolio and at least one trade.

    • Portfolios are specified with the "PortfolioID" column containing the portfolio IDs (for example, "Port_007").

    • Each row belonging to the same portfolio must have the same portfolio ID, and the rows belonging to the same portfolio are in a contiguous group.

    • Optionally, a portfolio can contain a netting set, or multiple netting sets. If a portfolio does not contain a netting set, the "NettingSetNumber" column is left blank. This means that no netting occurs in this portfolio.

Nettting Sets

  • Netting sets are specified with the "NettingSetNumber" column containing the netting set IDs.

    • Each row belonging to the same netting set must have the same netting set ID, and the rows belonging to the same netting set are in a contiguous group.

    • If a netting set does not contain a collateral set, its netting set ID should only contain the netting set ID (for example, "N001").

    • Optionally, a netting set can contain a collateral set (for example, "CSA01"), or multiple collateral sets.

    • If a netting set contains a collateral set, its netting set ID must be appended with an underscore ("_") followed by the corresponding collateral set ID for each row (for example, "N001_CSA01"). Also, the corresponding collateral set (for example, "CSA01") must be specified in separate rows.

Collateral Sets

  • Collateral sets are specified using the following rows with the "TradeID" column containing the collateral set IDs (for example, "CSA01"), and also the "RiskType" column containing the string "COLL".

    • Each row belonging to the same collateral set must have the same collateral set ID.

    • A separate row in the collateral set must specify the direction by inserting the string "DIRECTION" for the "Category" column and one of the following strings for the "Label1" column:

      • "MUTUAL"

      • "ONEWAYOUT"

      • "ONEWAYIN"

    • A separate row in the collateral set must specify the Margin Period of Risk (MPOR) by inserting the string "MPOR" for the "Category" column and the number of days for the "Label1" column (for example, 10).

    • A separate row in the collateral set must specify the Minimum Transfer Amount (MTA) by inserting the following:

      • The string "MTA" for the "Category" column

      • The Minimum Transfer Amount for the "Amount" column (for example, 50000)

      • The MTA currency for the "AmountCurrency" column (for example, "USD")

      • The MTA in US Dollars for the "AmountUSD" column (for example, 50000)

    • A separate row in the collateral set must specify the Threshold Amount (TA) by inserting the following:

      • The string "TA" for the "Category" column

      • The Threshold Amount for the "Amount" column (for example, 500000)

      • The TA currency for the "AmountCurrency" column (for example, "USD")

      • The TA in US Dollars for the "AmountUSD" column (for example, 500000)

    • Optionally, the collateral set may indicate that Settled-to-Market (STM) is in effect by adding a separate row and inserting the following:

      • The string "SETTLEMENTTYPE" for the "Category" column

      • The string "STM" for the "Label1" column

    • Optionally, the collateral set can contain one or more collateral positions.

Collateral Positions

  • Collateral positions are specified with the "TradeID" column containing the collateral position IDs (for example, "ColPos01"), and also the "RiskType" column containing the string "COLL".

    • "Category" column — Insert one of the following strings indicating the margin type

      • "IA" (for Independent Amount)

      • "IM" (for Initial Margin)

      • "VM" (for Variation Margin)

    • "Label2" column — Insert one of the following strings indicating collateral position asset type:

      • "CASH"

      • "BOND"

      • "EQUITY"

      • "GOLD"

    • "Qualifier" column — Insert one of the following strings indicating collateral position asset subtype, depending on its asset type (indicated in the "Label2" column):

      • For "BOND" asset type — Insert one of the following strings for subtype:

        • "SOVEREIGN"

        • "SECURITISED"

        • "OTHER"

      • For "EQUITY" asset type — Insert one of the following strings for subtype:

        • "COMMON"

        • "MAININDEX"

        • "OTHER"

      • For other asset types, leave the "Qualifier" column blank.

    • "Bucket" column — Insert one of the following strings indicating the credit rating of a collateral position that is a "BOND" asset type (indicated in the "Label2" column):

      • For "BOND" asset type — Insert one of the following strings:

        • "AAA"

        • "AA+"

        • "AA"

        • "AA-"

        • "A+"

        • "A"

        • "BBB+"

        • "BBB"

        • "BBB-"

        • "BB+"

        • "BB-"

      • For other asset types, leave the "Bucket" column blank.

    • "Label1" column — Insert one of the following strings:

      • Insert the string "SEGREGATED" if the collateral position is segregated and bankruptcy remote.

      • Otherwise, leave the "Label1" column blank.

    • "Amount" column — Indicate the collateral position value.

    • "AmountCurrency" column — Indicate the currency for the collateral position value in the "Amount" column (for example, "EUR").

    • "AmountUSD" column — Indicate the collateral position value in US Dollars.

    • "EndDate" column — Indicate the residual maturity in years for a collateral position that is a "BOND" asset type (indicated in the "Label2" column)

      • For "BOND" asset type — Insert the residual maturity in years (for example, 1.5). If the "EndDate" column is left blank for a "BOND" asset type, the residual maturity is assumed to be between 5 years and 10 years.

      • For other asset types, leave the "EndDate" column blank.

Trades

  • Trades are specified using separate rows with the "TradeID" column containing the trade IDs (for example, "Tr001"), and also the "RiskType" column containing either the string "PV" for the "PV" (mark-to-market) row, or the asset class string (for example, "IR" for Interest Rate) for the adjusted notional rows.

    • Each row belonging to the same trade must have the same trade ID in the "TradeID" column, and the rows belonging to the same trade are in a contiguous group.

      • The associated portfolio ID is specified in the "PortfolioID" column.

      • If the trade is a sold option where the premium has been paid, then the trade ID in the "TradeID" column must be appended with an underscore ("_") followed by the string "SOpt" (for example, "Tr007_SOpt").

      • If the trade is associated with a netting set, the appropriate netting set ID (which may be appended with an underscore "_" followed by the Collateral Set ID) is specified in the "NettingSetNumber" column.

    • Each trade must contain one and only one "PV" row, with the "RiskType" column containing the string "PV", and the mark-to-market information filled in the following columns:

      • "Amount" column — Mark-to-market value in the currency specified in "AmountCurrency".

      • "AmountCurrency" column — Currency for the "Amount" column.

      • "AmountUSD" — Mark-to-market value in US Dollars.

    • For Input Variant (Trade Decomposition) "1a" — In addition to the "PV" row, each trade must also contain one row for describing the adjusted notional values

      • For Input Variant (Trade Decomposition) "1a", each trade is typically specified using two rows including:

        • A "PV" row

        • An adjusted notional row

      • As an exception for Input Variant (Trade Decomposition) "1a", sometimes a trade may have multiple risk factors in hedging sets (for example, "EQUITY" and a currency pair such as "USDJPY"). In this case, a trade may be specified using more than two rows. For example:

        • A "PV" row

        • An adjusted notional row for risk factor 1

        • An adjusted notional row for risk factor 2

    • For Input Variant (Trade Decomposition) "1b" — In addition to the "PV" row, each trade must also contain at least one or more rows for describing the adjusted notional values.

      • For Input Variant (Trade Decomposition) "1b", the "TradeID" column for each row for the adjusted notional must be appended with an underscore ("_") followed by the component number.

        • For example, a trade with ID "Tr002" with two components under the Input Variant (Trade Decomposition) "1b" must have two adjusted notional rows with the following values for the "TradeID" column:

          • "Tr002_01": Adjusted notional row for the first trade component

          • "Tr002_02": Adjusted notional row for the second trade component

          • So, the presence of the underscore ("_") followed by the component number in the "TradeID" column in multiple adjusted notional rows indicates the use of the Input Variant (Trade Decomposition) "1b"

        • On the other hand, the "TradeID" column for the "PV" row is simply the trade ID (for example, "Tr002") because there is only one "PV" row for either "1a" or "1b" Input Variant (Trade Decomposition).

      • For Input Variant (Trade Decomposition) "1b", each trade can be specified using two or more rows including:

        • A "PV" row

        • One or more adjusted notional rows, assigning one row for each decomposed trade component. For example:

          • An adjusted notional row for the first trade component ("Tr002_01")

          • An adjusted notional row for the second trade component ("Tr002_02")

    • Each adjusted notional row requires the following columns (in addition to the other columns described earlier such as "PortfolioID", "TradeID", and "NettingSetNumber"):

      • "RiskType" column — Contains the asset class string. Select one from the following:

        • "IR" (Interest rate)

        • "FX" (Foreign exchange)

        • "CR_SN" (Credit, single name)

        • "CR_IX" (Credit, index)

        • "EQ_SN" (Equity, single name)

        • "EQ_IX" (Equity, index)

        • "CO" (Commodity)

      • "Category" column — Contains the hedging set, which can depend on the asset class ("RiskType" column):

        • For "IR" (Interest rate) — The hedging set string is the currency (for example, "EUR").

        • For "FX" (Foreign exchange) — The hedging set string is the currency pair (for example, "EURGBP").

        • For "CR_SN" (Credit, single name) — The hedging set string is "CREDIT".

        • For "CR_IX" (Credit, index) — The hedging set string is "CREDIT".

        • For "EQ_SN" (Equity, Single name) — The hedging set string is "EQUITY".

        • For "EQ_IX" (Equity, index) — The hedging set string is "EQUITY".

        • For "CO" (Commodity) — The hedging set string is one of the following:

          • "ENERGY" — Energy such as electricity or oil/gas

          • "METALS" — Metals such as gold or silver

          • "AGRI" — Agricultural such as corn

          • "OTHER" — Other, such as Bitcoin or Baltic Dry

        • For basis trades, the hedging set string is appended with an underscore ("_") followed by the string "BASIS" (for example, "USD_BASIS")

        • For inflation trades, the hedging set string is appended with an underscore ("_") followed by the string "INFL" (for example, "EUR_INFL")

        • For volatility trades, the hedging set string is appended with an underscore ("_") followed by the string "VOL" (for example, "EQUITY_VOL")

      • (Optional) "Qualifier" column describing the risk factor of the trade, which can depend on the asset class ("RiskType" column):

        • For "IR" (Interest rate) — The qualifier could be the currency (e.g. "EUR") or other risk drivers (for example, "SOFR 3M")

        • For "FX" (Foreign exchange) — The qualifier could be the currency pair (for example, "EURGBP")

        • For "CR_SN" (Credit, single name) — The qualifier could be "UK", "SPAIN", or an ISIN code, and so on.

        • For "CR_IX" (Credit, index) — The qualifier could be "CDS iTraxx Europe", and so on.

        • For "EQ_SN" (Equity, single name) — The qualifier could be a stock ticker, or company name, and so on

        • For "EQ_IX" (Equity, index) — The qualifier could be "S&P500" or "STOXX 600", and so on.

        • For "CO" (Commodity) — The qualifier could be "WTI", "XAU", or "BITCOIN", and so on.

      • "Bucket" column indicating the sub-asset class (only for adjusted notional rows):

        • For "CR_SN" asset class, select one of the following:

          • "AAA"

          • "AA"

          • "BBB"

          • "BB"

          • "B"

          • "CCC"

        • For "CR_IX" asset class, select one of the following:

          • "IG" — Investment grade

          • "SG" — Speculative grade

        • For "CO" asset class, select one of the following:

          • "ELECTRICITY"

          • "OIL/GAS"

          • "METALS"

          • "AGRICULTURAL"

          • "OTHER"

        • For other asset classes, leave the "Bucket" column blank.

        • For "PV" rows, leave the "Bucket" column blank.

      • "Label1" column — Indicate the trade starting time "S" in years. (for example, 0)

      • "Label2" column — Indicate the trade ending time "E" in years. (for example, 5)

      • "Amount" column — Indicate the adjusted notional value.

      • "AmountCurrency" column — Indicate the currency for the adjusted notional value in the "Amount" column (for example, "EUR").

      • "AmountUSD" column — Indicate the adjusted notional value in US Dollars.

      • "EndDate" column — Indicate the trade maturity time "M" in years. (for example, 5)

      • "Label3" column — Indicate the supervisory delta value (for example, 1).

    • If the SA-CCR CRIF file contains more than one portfolio, the next set of rows with the corresponding "PortfolioID" column values (for example, "Port_008","Port_009", and so on) are appended below the previous portfolio. For example:

      • Rows for Portfolio 008 are appended below those for Portfolio 007.

      • Rows for Portfolio 009 are appended below those for Portfolio 008.

Columns for ISDA SA-CCR CRIF File Specifications

The column names form the top row of the SA-CCR CRIF as in as in Columns for SA-CCR CRIF. The meaning of some of these columns can change depending on the context of the rows (for example, trades, netting sets, collateral sets, or collateral positions). In addition to the column definitions that follow, some SA-CCR CRIF files may contain additional optional columns that do not affect the computations.

Columns for SA-CCR CRIF

Columns for SA-CCR CRIF

The column names for the top row of the SA-CCR CRIF file are as follows:

  • "PortfolioID" — The portfolio ID string (for example, "Port_001")

  • "TradeID" — The ID string for the following contexts:

    • For collateral positions — The collateral position ID (for example, "ColPos01")

    • For collateral sets — The collateral set ID (for example, "CSA01")

    • For trades — The trade ID (for example, "Tr_001")

  • "CounterpartyName" — (Optional) The counterparty name.

  • "CounterpartyID" — (Optional) The counterparty ID (for example, "Exchange01", "CPTY01", "CPTY02", and so on).

  • "NettingSetNumber" — The netting set ID for the following situations:

    • If there are no netting sets — Leave it blank. (No netting agreement present, and no netting occurs)

    • If there is a netting set but no collateral sets — Only include the netting set ID (for example, "N001") (No collateral agreement present)

    • If there is a netting set with an associated collateral set — The netting set ID is appended with an underscore "_" followed by the collateral set ID (for example, "N001_CSA01")

  • "RiskType" — The type of risk factor:

    • For collateral positions — Use the string "COLL"

    • For collateral sets — Use the string "COLL"

    • For the "PV" (mark-to-market) row of a trade — Use the string "PV"

    • For adjusted notional rows of a trade — Use the string indicating the asset class of the trade (pick one of "IR", "FX", "CR_SN", "CR_IX", "EQ_SN", "EQ_IX", or "CO"

  • "Category" — Category type

    • For collateral positions: select one of the following strings:

      • "IA" — Independent amount

      • "IM" — Initial margin

      • "VM" — Valuation margin

    • For collateral sets — These must include separate rows with following strings:

      • "DIRECTION"

      • "MPOR"

      • "TA"

      • (Optional) "SETTLEMENTTYPE"

    • For trades (in the adjusted notional rows only):

      • The string indicating the hedging set, which can depend on the trade's asset class specified in the "RiskType" column of the adjusted notional rows.

      • For example:

        • For "IR" (Interest rate) — The hedging set string is the currency (for example, "EUR")

        • For "FX" (Foreign exchange) — The hedging set string is the currency pair (for example, "EURGBP")

      • See Rules for ISDA SA-CCR CRIF File Specification for more details on specifying a trade's hedging set for the "Category" column.

  • "Qualifier" — Additional information about the risk factor

    • For collateral positions: select one of the following strings indicating the collateral position subtype.

      • For "BOND" asset type — Insert one of the following strings for subtype:

        • "SOVEREIGN"

        • "SECURITISED"

        • "OTHER"

      • For "EQUITY" asset type — Insert one of the following strings for subtype:

        • "COMMON"

        • "MAININDEX"

        • "OTHER"

      • For other asset types, leave the "Qualifier" column blank.

    • For collateral sets: leave the "Qualifier" column blank.

    • For trades (in the adjusted notional rows only) — (Optional) Use a string describing the risk factor of the trade, which can depend on the asset class ("RiskType" column). For example:

      • For "IR" (Interest rate) — The qualifier could be the currency (for example, "EUR") or other risk drivers (for example, "SOFR 3M").

      • For "FX" (Foreign exchange) — The qualifier could be the currency pair (for example, "EURGBP").

      • For "EQ_IX" (Equity, index) — The qualifier could be "S&P500" or "STOXX 600", and so on.

    • See Rules for ISDA SA-CCR CRIF File Specification for more details on specifying a trade's hedging set for the "Qualifier" column.

  • "Bucket" — Risk bucket type that the risk falls into

    • For collateral positions — Insert one of the following strings indicating the credit rating of a collateral position that is a "BOND" asset type (indicated in the "Label2" column):

      • For "BOND" asset type — Insert one of the following strings:

        • "AAA"

        • "AA+"

        • "AA"

        • "AA-"

        • "A+"

        • "A"

        • "A-"

        • "BBB+"

        • "BBB"

        • "BBB-"

        • "BB+"

        • "BB"

        • "BB-"

      • For other asset types — Leave the "Bucket" column blank.

    • For collateral sets — Leave the "Bucket" column blank.

    • For trades:

      • For the "PV" row — Leave the "Bucket" column blank.

      • For adjusted notional rows — Use a string indicating the sub asset class

      • For "CR_SN" asset class — Select one of the following:

        • "AAA"

        • "AA"

        • "A"

        • "BBB"

        • "BB"

        • "B"

        • "CCC"

  • "Label1" — Instrument label 1 with details about the risk factor.

    • For collateral positions —

      • Insert the string "SEGREGATED" if the collateral position is segregated and bankruptcy remote

      • Otherwise, leave the "Label1" column blank

    • For collateral sets —

      • For the "DIRECTION" row — Select one of the following strings:

        • "MUTUAL"

        • "ONEWAYOUT"

        • "ONEWAYIN"

      • For the "MPOR" row — Indicate the Margin Period of Risk (MPOR) in number of days (for example, 10)

      • For the "SETTLEMENTTYPE" row (optional) — Insert the string "STM" if Settled-to-Market (STM) is in effect

    • For trades —

      • For the "PV" row — Leave the "Label1" column blank.

      • For adjusted notional rows — Insert the trade starting time "S" in years. (for example, 0)

  • "Label2" — Instrument label 2 with details about the risk factor.

    • For collateral positions — Insert one of the following strings indicating collateral position asset type:

      • "CASH"

      • "BOND"

      • "EQUITY"

      • "GOLD"

    • For collateral sets — Leave the "Label2" column blank.

    • For trades —

      • For the "PV" row — Lave the "Label2" column blank.

      • For adjusted notional rows — Insert the trade ending time "E" in years. (for example, 5)

  • "Amount" — Numerical value for the following contexts:

    • For collateral positions — Insert the collateral position value.

    • For collateral sets —

      • For the "DIRECTION" row — Leave the "Amount" column blank.

      • For the "MPOR" row — Leave the "Amount" column blank.

      • For the "MTA" row — Insert the Minimum Transfer Amount (for example, 50000).

      • For the "TA" row — Insert the Threshold Amount (for example, 500000).

      • For the "SETTLEMENTTYPE" row (optional) — Leave the "Amount" column blank.

    • For trades —

      • For the "PV" row — Insert the mark-to-market value in the currency specified in "AmountCurrency".

      • For adjusted notional rows — Insert the adjusted notional value in the currency specified in "AmountCurrency".

  • "AmountCurrency" — Amount currency type

    • For collateral positions — Insert the currency string for the collateral position value that is entered in the "Amount" column (for example, "EUR").

    • For collateral sets —

      • For the "DIRECTION" row — Leave the "AmountCurrency" column blank.

      • For the "MPOR" row — Leave the "AmountCurrency" column blank.

      • For the "MTA" row — Insert the currency string for the Minimum Transfer Amount (for example, "EUR").

      • For the "TA" row — Insert the currency string for the Threshold Amount (for example, "EUR").

      • For the "SETTLEMENTTYPE" row (optional) — Leave the "AmountCurrency" column blank.

    • For trades —

      • For the "PV" row — Insert the currency string for the mark-to-market value specified in "Amount" (for example, "EUR").

      • For adjusted notional rows — Insert the currency for adjusted notional value specified in "Amount".

  • "AmountUSD" — Amount in USD

    • For collateral positions — Insert the collateral position value in US dollars.

    • For collateral sets —

      • For the "DIRECTION" row — Leave the "AmountUSD" column blank.

      • For the "MPOR" row — Leave the "AmountUSD" column blank.

      • For the "MTA" row — Insert the Minimum Transfer Amount in US dollars.

      • For the "TA" row — Insert the Threshold Amount in US dollars.

      • For the "SETTLEMENTTYPE" row (optional) — Leave the "AmountUSD" column blank.

    • For trades —

      • For the "PV" row — Insert the currency for the mark-to-market value specified in Amount.

      • For adjusted notional rows — Insert the adjusted notional value in US dollars.

  • "Regulation" — String indicating the regulation in effect (for example, "Basel_CRE52")

  • "Model" — String "SA-CCR" indicating that the CRIF is intended for SA-CCR (as opposed to FRTB-SA or SA-CVA)

  • "ValuationDate" — (Optional) String indicating the valuation date using the YYYY-MM-DD format (for example, "2023-10-16")

  • "EndDate" — Maturity date or termination date

    • For collateral positions — Use residual maturity in years for a collateral position that is a "BOND" asset type (indicated in the "Label2" column)

      • For "BOND" asset type — Insert the residual maturity in years (for example, 1.5). If the "EndDate" column is left blank for a "BOND" asset type, the residual maturity is assumed to be between 5 years and 10 years.

      • For other asset types — Leave the "EndDate" column blank.

    • For collateral sets — Leave the "EndDate" column blank.

    • For trades —

      • For the "PV" row — Leave the "EndDate" column blank

      • For adjusted notional rows — Insert the trade maturity time "M" in years. (for example, 5)

  • "Label3" — Instrument label 3 with details about the risk factor.

    • For collateral positions — Leave the "Label3" column blank

    • For collateral sets — Leave the "Label3" column blank

    • For trades —

      • For the "PV" row — Leave the "Label3" column blank

      • For adjusted notional rows — Insert the trade supervisory delta value (for example 1)

See Also

| | | | | | | | |

Related Examples

More About