Skip to content

  Local supply side

$$ \newcommand{\tsum}{\textstyle\sum} \newcommand{\extern}[1]{\mathrm{\mathbf{{#1}}}} \newcommand{\local}{\mathrm{local}} \newcommand{\roc}[1]{\overset{\scriptsize\Delta}{#1{}}} \newcommand{\ss}{\mathrm{ss}} \newcommand{\aa}{\mathrm{aa}} \newcommand{\bb}{\mathrm{bb}} \newcommand{\E}{\mathrm{E}} \newcommand{\ref}{{\mathrm{ref}}} \newcommand{\blog}{\mathbf{log}\ } \newcommand{\bmax}{\mathbf{max}\ } \newcommand{\bDelta}{\mathbf{\Delta}} \newcommand{\bPi}{\mathbf{\Pi}} \newcommand{\bU}{\mathbf{U}} \newcommand{\newl}{\\[8pt]} \newcommand{\betak}{\mathit{zk}} \newcommand{\betay}{\mathit{zy}} \newcommand{\gg}{\mathrm{gg}} \newcommand{\tsum}{\textstyle{\sum}} \newcommand{\xnf}{\mathit{nf}} \newcommand{\ratio}[2]{\Bigl[\textstyle{\frac{#1}{#2}}\Bigr]} \newcommand{\unc}{\mathrm{unc}} \notag $$


Local supply side


![[math.md]]

Productivity

Global productivity component

\[ \bDelta \blog a_t^{gg} = \rho_a \ \Delta \blog a_{t-1}^{gg} + (1-\rho_a) \left[ \blog \roc{a}^{gg}_\ss + \epsilon_{a,t} \right] \]

Area-specific relative productivity component

\[ \blog ar_t = \rho_{ar} \ \blog ar_{t-1} + (1-\rho_ar) \ \blog ar_\ss + \epsilon_{ar,t} \]


Total area productivity

\[ a_t = a^{gg}_t\, ar_t \]

Production stages

Stage \(T-4\): Combine imports from the rest of the world

Production function with time-varying elasticity of substitution

\[ mm_t = F_4\left( mm_t^1, \dots, mm_t^A \right) \]
\[ mm = my_t + mx_t \]

where

  • \(my_t\) is the intermediate import inputs into local production

  • \(mx_t\) is the intermediate import inputs into export production (re-exports)

Stage \(T-3\): Combine non-commodity variable factors

Production function with time-varying elasticity of substitution

\[ \begin{gathered} y_{3,t} = F_3\bigl( mm_t, nv_t\bigr) \newl nv_t \equiv \left( nh_t - \gamma_{nv} nh_\ss \right) \, nf_t \end{gathered} \]

where

  • \(nv_t\) is the variable labor input with \(\gamma_{nv} nh_\ss\) being the overhead labor needed to maintain production regardless of the output actually produced

Stage \(T-2\): Combine variable factors with business capital

\[ \begin{gathered} y_{2,t} = F_2\bigl( uk_t\, y_{3,t} \bigr) \newl uk_t = u_t \, k_t \end{gathered} \]

Stage \(T-1\): Add dependence on commodity inputs

  • Short-term: No elasticity of substitution (Leontief)
\[ y_{1,t} = \min \left\{ \frac{y_{2,t}}{\alpha_{y1}},\ \frac{mq_t}{\alpha_{mq}} \right\} \]
  • Long-term: Unit elasticity of substitution (Cobb-Douglas)
\[ y_{1,t} = a_{y1} \cdot \kappa_{y1} \cdot y_{2,t}{}^{1-\gamma_{mq}} \cdot mq_t{}^{\gamma_{mq}} \]

Stage \(T-0\): Sticky prices

Sticky price setting

Total profits

Total profits summed up across all production stages are given by

\[ \begin{multline} \Pi_{y,t} \equiv py_t \, y_{0,t} - pmm_t \, my_t - w_t \, nh_t \, \xnf_t - pu_t \, u_t\, k_t - pq_t \, mq_t \ \cdots \\[10pt] \cdots -\ \Xi_{y4,t} - \Xi_{y3,t} - \Xi_{y2,t} - \Xi_{y1,t} - \Xi_{py,t} \end{multline} \]

Final goods

The final goods produced domestically are demanded as one of the following types of goods

  • Private consumption (by households), \(ch_t\)

  • Government consumption, \(cg_t\)

  • Private investment (by households), \(ih_t\)

  • Inputs into export production, \(yx_t\)

The market clearing conditions is therefore given by

\[ y_t = ch_t + cg_t + ih_t + yx_t \]

GEES Local production module

Declare quantities

!variables(:production)

    "Area specific productivity component" ar
    "Shadow value of household budget constraing" vh
    "Price of private consumption" pc
    "Price of private investment" pih
    "Domestic intermediate inputs" yz
    "Stage T-3 output" y3
    "Stage T-2 output" y2
    "Stage T-1 output" y1
    "Stage T-0 output" y
    "Price of stage T-3 output" py3
    "Price of state T-2 output" py2
    "Price of state T-1 output" py1
    "Price of stage T-0 output" py0
    "Price of commodity input into production" pq

    "Commodity input into production" mq
    alpha_mq, alpha_y2
    "Variable labor input into production" nv

    "Nominal GDP" ngdp
    "Real GDP index, Y/Y" roc_gdp
    "Per-capita real GDP index, Y/Y" roc_gdp_to_nn

    "Price of domestic production" py
    "Nominal household rate, LCY" rh

    "Price of final domestic output, Y/Y" roc_py
    "Price of final domestic output, Y/Y, Point of reference" ref_roc_py
    "Price of consumer goods, Y/Y" roc_pc
    "Utilization rate of production capital" u
    "Stage T-3 output, Y/Y" roc_y3
    "Variable labor, Y/Y" roc_nv

    "Auxiliary variable for steady-state calibration of upsilon_0" upsilon_1_py_to_pu
    "Auxiliary equation for steady-state calibration of nu_0" nch_to_netw_minus_nu_0

Control log-status of variables

  1. If a variable is growing at a nonzero rate in steady state then it must be declared as a log-variable

  2. If a variables is changing by a constant in steady state then it must not be declared as a log-variable

  3. If a variable can be negative, then it must not be declared as a log-variable

  4. If there is conflict between rules 1 and 3, redefine the variable as ratio (so that the ratio is stable in steady state), and do not declare the ratio as a log-variable

!log-variables !all-but

    zh, nch_to_netw_minus_nu_0


!parameters(:production :steady)

    "S/S Area specific productivity component !! $\mathit{ar}_\ss$" ss_ar

    "Share of overhead labor !! $\gamma_\mathit{n0}$" gamma_n0
    "Share of intermediate imports in stage T-3 production !! $\gamma_m$" gamma_m
    "Share of capital services in stage T-2 production !! $\gamma_\mathit{uk}$" gamma_uk
    "Share of commodity inputs in stage T-1 production !! $\gamma_mq$" gamma_mq
    "Share of roundabout intermediates in stage T-0 production !! $\gamma_\mathit{yz}$" gamma_yz

    "Monopoly power (markup) of local producers !! $\mu_\mathit{py}$" mu_py
    "Markup to cover overhead labor !! $\mu_{y3}$" mu_y3
    a_y1


!parameters(:production :dynamic)

    "Autoregression in area specific productivity component !! $\rho_\mathit{ar}$" rho_ar
    "Weight on S/S inflation in inflation indexation !! $\zeta_\mathit{py}$" zeta_py
    "Stage T-2 input factor adjustment cost parameter !! $\xi_{y2}$" xi_y2
    "Stage T-1 input factor adjustment cost parameter !! $\xi_{y1}$" xi_y1
    "Price adjustment cost parameters !! $\xi_\mathit{py}$" xi_py
    rho_alpha


!shocks(:production)

    "Shock to area specific productivity component" shk_ar
    "Shock to final price setting" shk_py

Define substitutions

!substitutions

    % Stage T-2 input factor adjustment marginal cost
    adj_uk := (log(uk/y2)-log(uk{-1}/y2{-1}))-&rdf*(log(uk{+1}/y2{+1})-log(uk/y2));
    adj_y3 := (log(y3/y2)-log(y3{-1}/y2{-1}))-&rdf*(log(y3{+1}/y2{+1})-log(y3/y2));

    % Final price adjustment marginal cost
    adj_py := log(roc_py/ref_roc_py) - beta*gg_zy*zy*log(roc_py{+1}/ref_roc_py{+1});

Define equations

!equations(:production)

    %% -----Productivity-----

    "Area-specific relative productivity component"
    log(ar) = ...
        + rho_ar * log(ar{-1}) ...
        + (1 - rho_ar) * log(ss_ar) ...
        + shk_ar ...
    !! ar = ss_ar;


    %% -----Stage T-3 production: Labor and intermediate non-commodity imports-----

    "Definition of variable labor input"
    nv = (nh - gamma_n0*&nh) * nf;

    "Stage T-3 production function"
    y3 = (my/gamma_m)^gamma_m * ([ar * gg_a * nv]/(1-gamma_m))^(1-gamma_m);

    "Demand for intermediate imports"
    gamma_m * py3 * y3 = (pmm * gg_dmm) * my * [1 + xi_y3*($adj_mm$)] ...
    !! gamma_m * py3 * y3 = (pmm * gg_dmm) * my;

    "Demand for labor"
    (1-gamma_m) * py3 * y3 = mu_y3 * w * nv * [1 + xi_y3*($adj_nv$)] ...
    !! (1-gamma_m) * py3 * y3 = mu_y3 * w * nv;


    %% -----Stage T-2 production: Variable inputs and capital-----

    y2 = (uk/gamma_uk)^gamma_uk * (y3/(1-gamma_uk))^(1-gamma_uk);

    gamma_uk * py2 * y2 = pu * uk * [1 + xi_y2*($adj_uk$)] ...
    !! gamma_uk * py2 * y2 = pu * uk;

    (1-gamma_uk) * py2 * y2 = py3 * y3 * [1 + xi_y2*($adj_y3$)] ...
    !! (1-gamma_uk) * py2 * y2 = py3 * y3;


    %% -----Stage T-1 Production: Add Commodity-----


    %py1 = py2^(1 - gamma_mq) * pq^gamma_mq ...
    py1 = alpha_y2*py2 + alpha_mq*pq ...
    !! y1 = a_y1 * (y2/(1-gamma_mq))^(1-gamma_mq) * (mq/gamma_mq)^gamma_mq ...
    ;

    "Demand for Y2 inputs"
    alpha_y2 * y1 = y2;

    "Demand for commodity inputs"
    alpha_mq * y1 = mq;

    "Input share parameter for Y2"
    alpha_y2 = ...
        + rho_alpha * alpha_y2{-1} ...
        + (1 - rho_alpha) * (1-gamma_mq)*(&py1/&py2) ...
    !! alpha_y2 = (1-gamma_mq)*(py1/py2) ...
    ;

    "Input share parameter for commodity"
    alpha_mq = ...
        + rho_alpha * alpha_mq{-1} ...
        + (1 - rho_alpha) * gamma_mq*(&py1/&pq) ...
    !! alpha_mq = gamma_mq*(py1/pq) ...
    ;


    %% -----T-0: Final stage production: Flatter marginal cost-----

%     y + yz = (y1/(1-gamma_yz))^(1-gamma_yz) * (yz/gamma_yz)^gamma_yz;
%     (1-gamma_yz) * py0 * (y + yz) = py1 * y1;
%     gamma_yz * py0 * (y + yz) = py * yz;

    y = y1;
    py0 = py1;
    yz = 1;


    %% -----Final price setting-----

    mu_py*py0*exp(shk_py) = py*[1 + (mu_py-1)*xi_py*($adj_py$)] ...
    !! py = mu_py * py0;

    ref_roc_py = roc_py{-1}^(1-zeta_py) * &roc_py^zeta_py;

    pc = py;
    pih = py;


    %% -----Distribution of final goods-----

    y = ch + cg + ih + yxx;


    %% -----Rates of change-----

    !for cg, pc, py, y3, nv !do
        roc_? = ? / ?{-1};
    !end


    %% -----Definitions-----

    "Per-capita private consumption"
    ch_to_nn = ch / nn;

    "Nominal GDP"
    ngdp = pc*ch + pih*ih + pc*cg + pxx*xx - pmm*mm + pq*(xq - mq);

    "Real GDP index, Y/Y"
    roc_gdp = ...
        + (pc*ch/ngdp + pc{-1}*ch{-1}/ngdp{-1})/2 * roc(ch) ...
        + (pih*ih/ngdp + pih{-1}*ih{-1}/ngdp{-1})/2 * roc(ih) ...
        + (pc*cg/ngdp + pc{-1}*cg{-1}/ngdp{-1})/2 * roc(cg) ...
        + (pxx*xx/ngdp + pxx{-1}*xx{-1}/ngdp{-1})/2 * roc(xx) ...
        - (pmm*mm/ngdp + pmm{-1}*mm{-1}/ngdp{-1})/2 * roc(mm) ...
        + (pq*xq/ngdp + pq{-1}*xq{-1}/ngdp{-1})/2 * roc(xq) ...
        - (pq*mq/ngdp + pq{-1}*mq{-1}/ngdp{-1})/2 * roc(mq) ...
    !! roc_gdp = gg_ss_roc_a * gg_ss_roc_nt;

    "Per-capita real GDP index, Y/Y"
    roc_gdp_to_nn = roc_gdp / roc_nn;

Postprocessing equations

!postprocessor(:production)

    nch_to_ngdp = pc * ch / ngdp;
    nih_to_ngdp = pih * ih / ngdp;
    nkh_to_ngdp = pk * k / ngdp;
    curr_to_ngdp = ($curr$) / ngdp;


!log-variables !all-but

    nch_to_ngdp
    nih_to_ngdp
    nkh_to_ngdp
    curr_to_ngdp