Documentation for GCAM
The Global Change Analysis Model
View the Project on GitHub JGCRI/gcam-doc
Table 1: Inputs required by the demand module 1
Name | Resolution | Unit | Source |
---|---|---|---|
Historical demand for agriculture (used for calibration) | By region, demand, commodity, and year | Mt/yr | Exogenous |
Historical demand for livestock (used for calibration) | By region, demand, commodity, and year | Mt/yr | Exogenous |
Historical demand for forest (used for calibration) | By region and year | billion km3/yr | Exogenous |
Commodity prices | By region, commodity, and year | 1975$/kg or 1975$/m3 | Marketplace |
Income and price elasticity (for non-food, non-feed) | By region, demand, and year | unitless | Exogenous |
Scale parameter, self-price elasticity, cross-price elasticity, income elasticity, regional bias, price scaling parameters (for food demand) | By region | unitless | Exogenous |
Logit exponents | By region and sector or subsector | unitless | Exogenous |
GDP per capita | By region and year | thous 1990$ per person | Economy module |
Population | By region and year | thousand | Economy module |
Food demand, i.e., income and own-/cross-price respones of staples and non-staples composites, is based on the approach documented in Edmonds et al. (2017). A nested logit structure is used to aggregate GCAM food commodities (calorie-based) and connect them to the top-level food demand model. See additional details in food data updates in CMP #360 and related parameter updates in CMP #393.
Food demand nesting structure in GCAM. Note, FiberCrop is moved to the Oil nest since over 99% of the FiberCrop for food consumption is cottonseed oil.
Shares of feed are determined by a logit sharing approach, which depends on the relative costs of the different feed options. Demand for feed is determined by the scale of livestock demand and these feed shares
Non-food, non-feed demand, including forestry demand, is determined by price, income, and population size.
Note that forestry demand is represented for two product pools, namely wood pulp and sawnwood production.
In GCAM v7.1
, GCAM incorporated agricultural stockholding behavior as a technology of regional consumers who allocate regional supply to current consumption or future consumption (storage carried over to the next period). The schematic showing the structure updates is presented in the following figure.
The development leveraged the recently compiled supply-utilization accounts to separate stock variations, opening stock, closing stock, and loss associated with stockholding behavior. The competitive storage model employs a logit sharing structure, where changes in the ratio between closing stock and “current consumption” (i.e., stock-to-use ratio) are responsive to current market prices and expected prices for storage in the next period. We use a lagged price expectation and apply a loss parameter to closing stock to derive the loss associated with interannual storage in a region for a given sector. Currently, agricultural storage is introduced for 13 GCAM crop commodities. See additional details in CMP #382.
Schematic of the updating GCAM modeling structure to represent stockholder behaviors. Source: Zhao et al. (2024).
The equations that determine food, feed, and forest demand are described here.
where \(A\) is a scale parameter, \(x\) is the income divided by price of materials, \(h(x)\) is the income elasticity, and \(w_i\) is the price of the food input divided by the price of materials times some scale factor, and \(e_i\) are price elasticities.
\(x^{h(x)}\) is calculated all together depending on the type of FoodDemandInput. See StaplesFoodDemandInput::calcIncomeTerm
and NonStaplesFoodDemandInput::calcIncomeTerm
in food_demand_input.cpp.
\(e_{self} = g_{self} - \alpha * f(x)\), \(e_{cross} = g_{cross} - \alpha_{cross} * f(x)\), where \(g_{self}\) is self price elasticity parameter, \(g_{cross}\) is the cross price elasticity, \(\alpha\) is the share of the total budget for the good, and \(f(x)\) is the derivative of the income term. See StaplesFoodDemandInput::getCrossPriceElasticity
, NonStaplesFoodDemandInput::getCrossPriceElasticity
, StaplesFoodDemandInput::calcIncomeTermDerivative
, and NonStaplesFoodDemandInput::calcIncomeTermDerivative
in food_demand_input.cpp.
See also food_demand_function.cpp
Per-capita non-food, non-feed demands (D) from time period t-1 to time period t.
\[D_t = D_{t-1} * (\frac{pcGDP_t}{pcGDP_{t-1}})^{\alpha^i_t} * (\frac{P_t}{P_{t-1}})^{\alpha^p_t}\]where \(pcGDP\) is per-capita GDP, \(P\) is the commodity price, \(\alpha^i_t\) is the income elasticity in time \(t\) and \(\alpha^p_t\) is the price elasticity at time t
See calcDemand
in minicam_price_elasticity_function.cpp.
One of the main policy options is the usage of the food preference elasticity for SSPs (especially SSP1) which increases the demand for certain food types which correspond to a more sustainable diet which reduces meat consumption. Moreover, the bio-externality cost adds restrictions to the amount of bio-energy that will be demanded. This is also a user modifiable parameter.
Future food demand is determined dynamically by changes in income and prices. This also dictates changes in demand for land since preferences of food dictates the amount of land that is dedicated to crop production. (Edmonds et al. 2017)
This paper looked at demand pathways across sectors under different land scarcity scenarios. (Dolan et al. 2022)
Agriculture and forestry demands
[Edmonds et al. (2017)] EDMONDS, J. A., R. LINK, S. T. WALDHOFF, and R. CUI, 2017: A GLOBAL FOOD DEMAND MODEL FOR THE ASSESSMENT OF COMPLEX HUMAN-EARTH SYSTEMS. Clim. Chang. Econ., 08, 1750012, https://doi.org/10.1142/S2010007817500129.