> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Parameter sets

This page answers a number of key questions regarding parameter sets.

## What is a parameter set?

In the FRTB calculations, there are a considerable number of constants,
these include values such as weightings, the value of rho, the default
maturity scaling factor and so forth. We use the term
*parameter set* to identify a group of
constants. See the configuration file [FRTBParameters](../../configuration/frtbparameters).

## Why would we have multiple parameter sets?

We expect different regulators to make changes to these values. By
defining a parameter set per regulator / reporting requirement, you can
re-run the calculations with different variations of the parameters or
alternatively compare measures when using different parameter sets.

## Do you need to define every constant for every parameter set?

This is not required as we expect many regulators to only change certain
parameters and fall back to another parameter set otherwise.

In the current implementation of the parameter set logic, we use a
parent-child relationship to select the fallback parameter set if a
parameter is missing for a specific parameter set. This parent-child
relationship is defined in the `ParameterSet.csv` file. In addition,
there is a start date column in all configuration files. A given
parameter will only be considered if the `as of date` passed in the
query is after the start date.

When defining the fallback logic, we distinguish between single value
parameters, such as *GIRR Delta different curve correlation*, and list
of parameters such as *GIRR major currencies* or *Commodity Delta
vertices*. The best way to think of the latter is to consider them as
vectors of parameters since they can only be overridden all at once.

#### Example

The PRA may decide they want to use the exact same parameters as defined
by the EU but change the risk weight for the `0.5 vertex` of the *GIRR Delta sensitivities*. In this case, the **list** of GIRR Delta risk weights needs to be overridden.

We would:

* Define two parameter sets, one called EU and another one called PRA.
  The EU parameter set to be the parent of the PRA parameter set.

* Add a new row to the `GIRR_Delta_Weightings.csv` file corresponding
  to all the vertices that are expected to exist when the PRA
  parameter set is selected.

  Adding only one row for the`  0.5 vertex  `with the new weight value
  would mean that under the PRA parameter set, retrieving the risk
  weight for any other vertex will return null.

In other words, falling back to the parent parameter set in the case of
a list of parameters only happens if none of the parameters in the list
are defined in the child parameter set.

The logic that is used to prioritise the parameter sets in the fallback
process can be customized, however the constraints explained above will
not change.

## Can I only run my calculation for child-level parameter sets?

You can run your calculations for any parameter set that is defined at
any level of your parameter set hierarchy.

## How do I choose the parameter set I want to use in my calculation?

Parameter Set is a slicing hierarchy. You can choose the parameter set
you want to use by either:

* Selecting the parameter set in the filters of your query

* Adding the hierarchy to the columns or rows and compare the results
  for different parameter sets.

See [Parameter Sets What-If Widget](../../what-if/what-if-parameters-widget).

## What would a parameter set hierarchy look like where we are reporting to the PRA, ACPR, JFSA, EU, FED, and FINMA?

An example parameter set could be as follows:

<Frame>
  <img src="https://mintcdn.com/activeviam/3WM26kEPUrEWlXvw/solutions/frtb/6.0/images/parameter_set_example.png?fit=max&auto=format&n=3WM26kEPUrEWlXvw&q=85&s=c7b71f4a99d94a35ee5e90cf8cf9aca5" alt="Parameter Set example" width="661" height="361" data-path="solutions/frtb/6.0/images/parameter_set_example.png" />
</Frame>

 

In the above example we have defined the following parameter sets:

* BCBS : Our primary parameter set which all other parameter sets will
  fall back to

* JFSA : Variation of the BCBS parameter set

* FED: Variation of BCBS parameter set

* EU: Variation of the BCBS parameter set

* FINMA: Variation of the BCBS parameter set

* ACPR: Variation of the EU parameter set

* PRA: Variation of the EU parameter set

Example parameters loaded:

| <br />Vertex | <br />Risk Weight | <br />Start Date | <br />Parameter Set |
| ------------ | ----------------- | ---------------- | ------------------- |
| <br />0.25   | <br />0.024       | <br />2016-06-01 | <br />BCBS          |
| <br />0.5    | <br />0.024       | <br />2016-06-01 | <br />BCBS          |
| <br />1      | <br />0.0225      | <br />2016-06-01 | <br />BCBS          |
| <br />2      | <br />0.0188      | <br />2016-06-01 | <br />BCBS          |
| <br />3      | <br />0.0173      | <br />2016-06-01 | <br />BCBS          |
| <br />5      | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />10     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />15     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />20     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />30     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />0.25   | <br />0.0245      | <br />2016-06-01 | <br />EU            |
| <br />0.5    | <br />0.0245      | <br />2016-06-01 | <br />EU            |
| <br />1      | <br />0.0235      | <br />2016-06-01 | <br />EU            |
| <br />2      | <br />0.019       | <br />2016-06-01 | <br />EU            |
| <br />3      | <br />0.018       | <br />2016-06-01 | <br />EU            |
| <br />0.25   | <br />0.0265      | <br />2016-06-01 | <br />PRA           |
| <br />0.5    | <br />0.0265      | <br />2016-06-01 | <br />PRA           |
| <br />1      | <br />0.0275      | <br />2016-06-01 | <br />PRA           |
| <br />0.5    | <br />0.0255      | <br />2015-01-01 | <br />ACPR          |

Lookup results:

| Query conditions    | Result           |              |                   |
| ------------------- | ---------------- | ------------ | ----------------- |
| <br />Parameter Set | <br />Run Date   | <br />Vertex | <br />Risk Weight |
| <br />BCBS          | <br />2016-06-01 | <br />0.25   | <br />0.024       |
| <br />BCBS          | <br />2016-06-01 | <br />0.5    | <br />0.024       |
| <br />BCBS          | <br />2016-06-01 | <br />1      | <br />0.0225      |
| <br />BCBS          | <br />2016-06-01 | <br />2      | <br />0.0188      |
| <br />BCBS          | <br />2016-06-01 | <br />3      | <br />0.0173      |
| <br />BCBS          | <br />2016-06-01 | <br />5      | <br />0.015       |
| <br />BCBS          | <br />2016-06-01 | <br />10     | <br />0.015       |
| <br />BCBS          | <br />2016-06-01 | <br />15     | <br />0.015       |
| <br />BCBS          | <br />2016-06-01 | <br />20     | <br />0.015       |
| <br />BCBS          | <br />2016-06-01 | <br />30     | <br />0.015       |
| <br />EU            | <br />2016-06-01 | <br />0.25   | <br />0.0245      |
| <br />EU            | <br />2016-06-01 | <br />0.5    | <br />0.0245      |
| <br />EU            | <br />2016-06-01 | <br />1      | <br />0.0235      |
| <br />EU            | <br />2016-06-01 | <br />2      | <br />0.019       |
| <br />EU            | <br />2016-06-01 | <br />3      | <br />0.018       |
| <br />PRA           | <br />2016-06-01 | <br />0.25   | <br />0.0265      |
| <br />PRA           | <br />2016-06-01 | <br />0.5    | <br />0.0265      |
| <br />PRA           | <br />2016-06-01 | <br />1      | <br />0.0275      |
| <br />ACPR          | <br />2016-06-01 | <br />0.25   | <br />0.0245      |
| <br />ACPR          | <br />2016-06-01 | <br />0.5    | <br />0.0245      |
| <br />ACPR          | <br />2016-06-01 | <br />1      | <br />0.0235      |
| <br />ACPR          | <br />2016-06-01 | <br />2      | <br />0.019       |
| <br />ACPR          | <br />2016-06-01 | <br />3      | <br />0.018       |

In the table above, for the BCBS, EU and PRA queries we get back the
values that are defined for the respective parameter sets. However, for
ACPR the as of date passed in (2016-06-01) is later than the start date
(2015-01-01), therefore the values defined for ACPR are ignored and we
fall back to the parent parameter set.

## Do I need to define a parameter set for every run date?

We do not expect parameters to vary per run date, hence this is not
required.

Any given parameter needs to have a start date. You do not need to
re-define an entire parameter set for each start date, only the values
that you want to change from that respective start date. However, it
still holds that a list of parameters can only be overridden together.

#### Example

In the table above, for the BCBS, EU and PRA queries we get back the
values that are defined for the respective parameter sets. However, for
ACPR the as of date passed in (2016-06-01) is later than the start date
(2015-01-01), therefore the values defined for ACPR are ignored and we
fall back to the parent parameter set.

Parameter values loaded:

| <br />Vertex | <br />Risk Weight | <br />Start Date | <br />Parameter Set |
| ------------ | ----------------- | ---------------- | ------------------- |
| <br />0.25   | <br />0.024       | <br />2016-06-01 | <br />BCBS          |
| <br />0.5    | <br />0.024       | <br />2016-06-01 | <br />BCBS          |
| <br />1      | <br />0.0225      | <br />2016-06-01 | <br />BCBS          |
| <br />2      | <br />0.0188      | <br />2016-06-01 | <br />BCBS          |
| <br />3      | <br />0.0173      | <br />2016-06-01 | <br />BCBS          |
| <br />5      | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />10     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />15     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />20     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />30     | <br />0.015       | <br />2016-06-01 | <br />BCBS          |
| <br />0.5    | <br />0.03        | <br />2018-03-15 | <br />BCBS          |

Lookup results:

| Query conditions    | Result           |              |                   |
| ------------------- | ---------------- | ------------ | ----------------- |
| <br />Parameter Set | <br />Run Date   | <br />Vertex | <br />Risk Weight |
| <br />BCBS          | <br />2017-08-01 | <br />0.25   | <br />0.024       |
| <br />BCBS          | <br />2017-08-01 | <br />0.5    | <br />0.024       |
| <br />BCBS          | <br />2017-08-01 | <br />1      | <br />0.0225      |
| <br />BCBS          | <br />2017-08-01 | <br />2      | <br />0.0188      |
| <br />BCBS          | <br />2017-08-01 | <br />3      | <br />0.0173      |
| <br />BCBS          | <br />2017-08-01 | <br />5      | <br />0.015       |
| <br />BCBS          | <br />2017-08-01 | <br />10     | <br />0.015       |
| <br />BCBS          | <br />2017-08-01 | <br />15     | <br />0.015       |
| <br />BCBS          | <br />2017-08-01 | <br />20     | <br />0.015       |
| <br />BCBS          | <br />2017-08-01 | <br />30     | <br />0.015       |
| <br />BCBS          | <br />2018-04-12 | <br />0.25   | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />0.5    | <br />0.03        |
| <br />BCBS          | <br />2018-04-12 | <br />1      | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />2      | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />3      | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />5      | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />10     | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />15     | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />20     | <br />null        |
| <br />BCBS          | <br />2018-04-12 | <br />30     | <br />null        |

In the above example, when we run a query for the run date 2018-04-12 we
only get back results for the vertex 0.5. The reason is because as of
the date <span>2018-03-15, the list of risk weights is overridden and
the new list only defines a risk weight for vertex 0.5. </span>
