PSLmodels / OG-Core

An overlapping generations model framework for evaluating fiscal policies.
https://pslmodels.github.io/OG-Core/
Creative Commons Zero v1.0 Universal
68 stars 119 forks source link

Solving the model with EGM and progressive tax functions #961

Open jdebacker opened 3 months ago

jdebacker commented 3 months ago

Via email, @john-p-ryan writes:

I have one question which I have been thinking about for a few days with regards to implementing EGM in OG-Core. The final step in solving for the policy functions involves inferring current period assets from the budget constraint. But the budget constraint also includes taxes, which depend on assets. Does this mean we have to solve for a fixed point for every grid point to back out assets from the budget constraint? This would probably considerably slow down the code, so if you have any other recommendations let me know.

We can think about EGM iterating backwards through the lifetime of the agent, using the 3 necessary conditions from the household: (1) the FOC for savings, (2) the FOC for the choice of labor, and (3) the budget constraint.

The FOC for savings (1) implies (in a model with wealth and income taxes, but abstracting from bequests):

$$ c{s-1} = \left( \beta E{s-1} \frac{\partial T_s}{\partial b_s} R_s c_s \right)^{\frac{-1}{\sigma}} $$

where $\frac{\partial T_s}{\partial b_s}$ is the change in net taxes paid as a function of a change in $b_s$. This marginal change in taxes is itself is a function of $b_s$ and $n_s$ when there are progressive income and wealth taxes.

$c_s$ and $n_s$ would have been solved for in the prior period (see this in the final step with the budget constraint below). Without the progressive taxes, an analytical solution for $n_s$ as a function of $c_s$ could be found from the FOC for labor:

With progressive income taxes, the FOC for labor supply:

$$ n_s(c_s) = \left( \frac{(1 - \tau^{mtrx}(y_s))w e_s c_s^{-\sigma} }{\chi^n_s} \right)^{\gamma} $$

where $y_s = w e_s ns + r b{s}$

Now we need to solve for the endogenous grid of $b{s-1}$ (i.e. the values of $b{s-1}$ that correspond to each element in $b_s$). This is determined via the budget constraint:

\underbrace{c_{s-1}}_{\text{known from above}} = \underbrace{w e_{s-1}n_{s-1} n_{s-1}}_{\text{do not know }} + \underbrace{R_{s-1}b_{s-1}}_{\text{do not know } b_{s-1}} - \underbrace{b_{s}}_{\text{known}} - \underbrace{T(b_{s-1}, n_{s-1})}_{\text{do not know } n_{s-1}, b_{s-1}}

$c{s-1}$ was solved for above. The other unknowns, $b{s-1}$ and $n_{s-1}$ will be solved for via a root finder with 2 equations (the FOC for labor supply and the budget constraint) and two unknowns.

Now with $c{s-1}$, $n{s-1}$, and $b{s-1}$, we are back to solving for prior period consumption, now $c{s-2}$...

In short, I think the solution will be slower because one won't have analytical solutions throughout. But one should be able to avoid having to solve a fixed point problem.

cc @rickecon