G-Cubed
Python G-Cubed 5.0.2.0 · build 1
Generation details
Source revision
4c4a95aded1b5ca5e8f9c292ad8250440cd9c18b (modified inputs)
Source fingerprint
e2c719b38e03c6b1748f10e26bc1caf1ead5674dd1beee6628a6ccf7b90fd39b
Generated (UTC)
2026-11-11T03:06:22.844261+00:00
Generator
pdoc 16.0.0, CPython 3.14.8
Generation metadata

gcubed.exogenous_adjustments.labor_productivity

This module provides the Productivity class which loads baseline productivity growth projections.

VARNAME: str = 'LATC'
class LaborProductivity(gcubed.base.Base):

Overview

Provides convenience methods for all classes.

All G-Cubed classes inherit from this base class.

LaborProductivity(sym_data: gcubed.sym_data.SymData, *, write_file: bool = True)

Constructor

This class loads labor productivity parameters and converts them into effective labor productivity projections for all sectors in all regions.

### Arguments

sym_data: The information about the SYM model definition.

write_file: Whether to write generated LATC immediately. Model setup defers the write until preserved baseline growth rows also validate.

The model configuration is accessible via this argument, thus enabling discovery of the location of the information determining productivity growth rates.

That data is available in 3 files:

#### technology_advancement_rates.csv

The CSV file containing the information about the advancement rates for technology in each sector, through all projection years. Values are percentage-point deviations from the configured long-run growth rate. With configured growth of 1.4%, a value of 0.6 means technology advances at a 2% annual log rate. The final 50 configured projection years must contain exactly zero deviations in every sector. The data is stored with sectors for rows and projection years for columns. The row labels are the SYM sector codes. The columns are the projection years in YYYY format out to the last projection year.

For example, for the 2R model:

sector 2018 ... 2150
a01 0.0 ... 0.0
a02 0.0 ... 0.0

#### technology_gaps.csv

The CSV file containing the information about the technology gaps in each region for each sector, expressed as a percentage. Thus, a value of 50 means the region has a sector that is 50% as efficient as is possible in the first projection year. The data is stored with sector rows and region columns. The row labels are the SYM sector codes. The column labels are the SYM region codes.

For example, for the 2R model:

sector USA ROW
a01 90 100
a02 100 90

Note that the maximum value is 100 and the minimum value must be positive.

It is not mandatory, but it is typical that at least one region is on the technology frontier, with a sector value of 100.

#### technology_catchup_rates.csv

The CSV file containing the information about the catchup rates for technology in each sector, through all projection years. Values are expressed as a percentage so a value of 2.0 means that the technology gap will close by 2% in the associated year. The data is stored with region in the first column and sector in the second column. The columns are the projection years in YYYY format out to the last projection year.

For example, for the 2R model:

region sector 2018 ... 2150
USA a01 2 ... 2
USA a02 2 ... 2
ROW a01 2 ... 2
ROW a02 2 ... 2

Note that the maximum value is 100 and the minimum value must be great than -100.

configuration

The model configuration

sym_data

The SYM model details

technology_advancement_rates: pandas.DataFrame

The dataframe of resolved decimal technology-frontier log growth rates for all sectors in all projection years.

technology_gaps: pandas.DataFrame

The dataframe of technology gaps for all regions and all sectors.

technology_catchup_rates: pandas.DataFrame

The dataframe of technology catchup rates for all regions and all sectors.

labor_productivity_growth_rates: pandas.DataFrame

The dataframe of labor productivity growth rates for all sectors in all regions. The columns are projection years.

The rows are a multi-index with the level 0 being the gcubed region code and level 1 being the gcubed sector code.

def write_growth_rates_file(self) -> None:

Overview

Responsible for writing out the productivity projections to a data CSV file using the name specified in the model configuration.

Respects preservation after constructor validation. Otherwise generates variable names with regions grouped for each sector.

region_productivity_growth_rates: dict[str, pandas.DataFrame]

The dictionary of dataframes used to store sectoral productivity growth rate projections for each region. It is indexed by region code. The dataframes are indexed by sector code. The columns of the dataframes are the projection years.

def region_growth_rates(self, region: str) -> pandas.DataFrame:

Overview

Accessor for productivity growth projections for all sectors in the specified region.

Arguments

region: The region for which the productivity growth rates are required.

Returns

The dataframe of productivity growth rate projections for all sectors in the region with rows indexed by sector code and columns indexed by projection year.

Exceptions

Raises an exception if the region is not valid.