Experiment design

A G-Cubed experiment compares projections produced with one or more simulation layers with the baseline projections. A simulation layer is a CSV file of adjustments to model variables. A design YAML file names those layers, gives their event years and fixes their application order.

Related YAML documentation: design YAML, simulation layers, layer order and event years, generated layers and shock projections.

The two parts of a simulation layer

Keep these responsibilities distinct:

  1. Setup YAML can specify how shocks project through time and generate the simulation-layer CSV.
  2. Design YAML names and orders the layer; it does not contain shock values.

The layer CSV has a name column followed by year columns. Its adjustments use the same units as the corresponding variables in the model database. A shortened example has this tabular form:

name 2023 2024 2025 2026 2027
INFX(USA) 0 0 0 1 1

Only exogenous variables, and state variables where the experiment explicitly supports them, may be adjusted. See layer filenames and CSV data for filename and layout rules.

For example, setup can generate a permanent inflation-target adjustment:

layers:
  - id: inflation_target
    name: Inflation-target adjustment
    data_file_name: inflation_target.csv
    event_year: 2026
    description: Raise the USA inflation target
    shocks:
      - variable_prefix: INFX
        selectors:
          - dimension: regions
            members: [USA]
        value_path:
          type: permanent_constant
          value: 1.0
          units: percentage points

Setup then writes a design containing the generated layer:

schema_version: 1
layers:
  - name: Inflation-target adjustment
    data_file: inflation_target.csv
    event_year: 2026
    description: Raise the USA inflation target

Event years and ordering

The event year is when information in a layer becomes known. Event years must stay the same or increase down the design. Layers with the same event year are applied in the sequence shown.

schema_version: 1
layers:
  - name: Tariff announcement
    data_file: tariffs.csv
    event_year: 2026
  - name: Retaliation
    data_file: retaliation.csv
    event_year: 2026
  - name: Later policy response
    data_file: policy_response.csv
    event_year: 2027

Standard and custom layers

Use setup-generated layers for the six supported shock projections. Use a maintained layer when a run script, optimisation or external fixed-point calculation owns the values.

Continue with running experiments.

Explain the experiment

Keep a README.md in the experiment folder to explain its purpose, economic assumptions and instructions. A separate documentation.md can provide the text inserted into generated HTML reports. These maintained files are not generated by setup and should cite the sources used for the experiment’s assumptions.


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