This post discusses how to introduce finite energy resources (ex. oil, natural gas) into the real business-cycle (RBC) model. The title comes from the fact that I will model the stock of energy as a cake eating problem.

Simple Cake Eating Problem

Imagine you have a cake (that never goes bad) and you need to decide how to optimally spread its consumption over time. The catch is, the amount of cake you have is fixed at . Set up the problem recursively: \begin{equation} V(k)=\max_{c,k’} \frac{c^{1-\frac{1}{\gamma}}}{1-\gamma}+\beta V(k’) \end{equation} such that (Budget Constraint or BC). In this simple model, measures how much you care about your consumption of cake tomorrow, and measures your desire to smooth cake consumption over time. is the value function. Basically, it says how much having units of cake is worth to you today, given optimal consumption for the rest of time. Letting be the multiplier on the BC, taking first order conditions we get:
\begin{equation} \text{[c]} \quad c^{-\frac{1}{\gamma}}=\lambda \end{equation} \begin{equation} \text{[k’]} \quad \beta v’(k’) = \lambda \end{equation} \begin{equation} \text{[Envelope]} \quad v’(k)= \lambda \end{equation}

Combining these, we get that: \begin{equation} c’=\beta^{\gamma} c \end{equation} Now remember, total amount of cake is fixed at , so it must be that total lifetime consumption of cake is equal to the size of the cake. \begin{equation} \sum\limits_{t=0}^{\infty} c_t = k_0 \end{equation} Using our formula for optimal consumption we get:
\begin{equation} c_0=(1-\beta^{\gamma}) k_0 \end{equation} \begin{equation} c_t=\beta^\gamma c_{t-1} \text{ for all }t>0 \end{equation} Below I plot the optimal consumption of a cake of size 100 for different values of and (b is and g is ). We see that the agent with higher consumes almost a constant amount of cake every day, while the agent with a high prefers to eat a large share of the cake the day he gets it.

Cake Eating

RBC Model

First, let’s go over how to solve the RBC model (without labor) by hand. This will be the framework upon which we introduce energy consumption. The discussion here is based on class notes from Luigi Bocola’s Macroeconomics 411-3 lectures.

Equilibrium Conditions

Let uppercase letters denote quantities in levels:
Production Function:
Law of Motion for Capital (LOK):
Preferences are , so the Euler Equation is:
Interest rate comes from firm FOCs (assuming firms pay for depreciation):
Finally, technology is stochastic: where and is N(0,1).

Log-Linearize about the non-stochastic steady-state

Let lowercase letters denote log-deviations from the steady state (except for which is just itself). Let uppercase letters with no subscript denote equilibrium quantities in levels.
Production Function:
LOK: . Use the equation for in the steady state to get and use the expression for LOK in steady state to get . Now, put this back into LOK, along with our expression for : \begin{equation} k_{t+1}=(1+r)k_t + \alpha \frac{r+\delta}{1-\alpha} z_t - \Big( \frac{r+\delta}{1-\alpha}-\delta \Big) c_t \end{equation} we can rewrite this as .
Using the fact that in the steady state, , the Euler Equation becomes: \begin{equation} \sigma E_t [r_{t+1}]=E_t[c_{t+1}-c_t] \end{equation} Log-linearizing our expression for , using R=1+r and our expression for Y/K from above, we get , putting this back into the Euler Equation we get: \begin{equation} \sigma \alpha \frac{r+\delta}{1+r}E_t[z_{t+1}-k_{t+1}]=E_t[\Delta c_{t+1}] \end{equation} where . We rewrite as: .

Guess a Policy Function

We want to eliminate consumption from all the equations above, so we conjecture a linear policy rule: \begin{equation} c_t=\eta_{ck} k_t + \eta_{cz} z_t \end{equation} where and capture how consumption responds to current capital stock and technology, respectively.
Putting this into our LOK to eliminate : \begin{equation} k_{t+1}=(\lambda_1 + (1-\lambda_1 -\lambda_2) \eta_{ck}) k_t + (\lambda_2 + (1-\lambda_1 - \lambda_2) \eta_{cz}) z_t \end{equation} In addition, substitute this into our Euler Equation, and take expectations: \begin{equation} \eta_{ck} \Delta{k_{t+1}} + \eta_{cz}(\phi-1) z_t = \sigma \lambda_3 (\phi z_t - k_{t+1}) \end{equation} Where we used the fact that is totally determined at time so we don’t need expectations, and from our technology process.

Solving the Model

The final work is to substitute our LOK into the Euler Equation to eliminate : \begin{equation} \eta_{ck}(\eta_{kk}-1)k_t+[\eta_{ck} \eta_{kz} + \eta_{cz}(\phi-1)] z_t= \sigma \lambda_3 [ \eta_{kz}-\phi]z_t - \sigma \lambda_3 \eta_{kk} k_t \end{equation} Where we used the following facts:
from our conjectured policy function
from our technology process
from our LOK, where and .
To solve the model, we set and solve for , and set to solve for . We will have two solutions for and we will choose the positive one to get a stable solution. The benefit of this formulation is that we can solve for the time series dynamics of all the variables of interest such as , and .

Future Work

With the basics established, you can add the cake-eating problem to the RBC model by modifying the production function. Rather than , solve the model with where is energy usage and the stock of energy follows