Combining shock projections

One generated simulation layer can contain several shocks with different projections.

Two projections in one layer

layers:
  - id: policy_package
    name: Policy package
    data_file_name: policy_package.csv
    event_year: 2026
    description: Inflation-target and country-risk adjustments
    shocks:
      - variable_prefix: INFX
        selectors:
          - dimension: regions
            members: [USA]
        value_path:
          type: permanent_constant
          value: 1.0
          units: percentage points
      - variable_prefix: EXCR
        selectors:
          - dimension: regions
            members: [TWN]
        value_path:
          type: temporary_constant
          start_year: 2026
          end_year: 2028
          value: 2.0
          units: percentage points

The generated CSV contains rows like these:

name,2026,2027,2028,2029
INFX(USA),1.0,1.0,1.0,1.0
EXCR(TWN),2.0,2.0,2.0,0

Use different paths in ordered layers

layers:
  - id: announcement
    name: Policy announcement
    data_file_name: announcement.csv
    event_year: 2026
    description: Initial temporary adjustment
    shocks:
      - variable_prefix: INFX
        selectors:
          - dimension: regions
            members: [USA]
        value_path:
          type: temporary_constant
          start_year: 2026
          end_year: 2027
          value: 0.5
  - id: permanent_policy
    name: Permanent policy
    data_file_name: permanent_policy.csv
    event_year: 2028
    description: Later permanent adjustment
    shocks:
      - variable_prefix: INFX
        selectors:
          - dimension: regions
            members: [USA]
        value_path:
          type: permanent_constant
          value: 1.0

artefacts:
  design_file_name: design.yaml
design:
  name: Policy experiment
  layer_ids: [announcement, permanent_policy]

Setup generates two CSV files and this design:

schema_version: 1
layers:
  - name: Policy announcement
    data_file: announcement.csv
    event_year: 2026
    description: Initial temporary adjustment
  - name: Permanent policy
    data_file: permanent_policy.csv
    event_year: 2028
    description: Later permanent adjustment

Setup defines the shock projections and generates the layer CSV files. Design YAML names and orders those layers; it does not repeat their shock values.

When to maintain a layer instead

Use a maintained layer when its rows are written by an optimisation, fixed-point process or other custom calculation that the six standard projections cannot express.


This site uses Just the Docs, a documentation theme for Jekyll.