# Missing non-redundant equation in a energy NK-DSGE model with CES energy aggregation

**URL:** <https://forum.dynare.org/t/missing-non-redundant-equation-in-a-energy-nk-dsge-model-with-ces-energy-aggregation/28336>\
**Category:** General DSGE Modeling\
**Created:** [10 April 2026 12:55 UTC](https://forum.dynare.org/t/missing-non-redundant-equation-in-a-energy-nk-dsge-model-with-ces-energy-aggregation/28336 "2026-04-10T12:55:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Q\_24](https://forum.dynare.org/letter_avatar_proxy/v4/letter/q/76d3ee/32.png) [@Q\_24](https://forum.dynare.org/u/Q_24)\
**Post date:** [10 April 2026 12:55 UTC](https://forum.dynare.org/t/missing-non-redundant-equation-in-a-energy-nk-dsge-model-with-ces-energy-aggregation/28336/1 "2026-04-10T12:55:02Z")

</div>

Hi everyone,

I am working on a nonlinear NK-DSGE model with two energy sectors (brown and green), a CES energy aggregator, Rotemberg price adjustment in both energy sectors and the final-goods sector, and government investment in brown and green energy capital.

I have attached:

1. Paper2\_V9.mod
2. paper2\_V9\_steadystate.m
3. All my model equations
4. An example of the IRFs I am currently getting

The steady state file runs, but the model is not properly closed. My issue is that I appear to be missing one independent equation, but many candidate equations I try become collinear with existing equations.

The problem seems to be in the energy-price / energy-aggregator block.

My current energy aggregator block is:

\begin{align} E\_t &= \left[\phi\_E(\chi\_t^G)^{\frac{\sigma-1}{\sigma}} + (1-\phi\_E)(\chi\_t^B)^{\frac{\sigma-1}{\sigma}}\right]^{\frac{\sigma}{\sigma-1}}\\ \chi\_t^G &= \phi\_E^\sigma \left(\frac{q\_t}{F(q\_t)}\right)^{-\sigma} E\_t\\ F(q\_t) &= \left[\phi\_E^\sigma q\_t^{\,1-\sigma} + (1-\phi\_E)^\sigma \right]^{\frac{1}{1-\sigma}}\\ q\_t &= \frac{\pi\_t^G}{\pi\_t^B} q\_{t-1}\\ \pi\_t^E &= \pi\_t^B \frac{F(q\_t)}{F(q\_{t-1})}\\ P\_t^E &= \frac{\pi\_t^E}{\pi\_t}P\_{t-1}^E \end{align}

Then in the intermediate-goods block I use:

P\_t^E = MC\_t (1-\alpha\_L-\alpha\_K)\frac{Y\_t} {E\_t}

So P\_t^E is being treated as the real relative price of the composite energy input.

My suspicion is that the problematic equation is:

P\_t^E = (\pi\_t^E/\pi\_t) P\_{t-1}^E

I believe this is the wrong closure, but I have not been able to identify the correct replacement.

What I have already tried / ruled out:

- Adding the brown-energy demand equation from the CES aggregator
- Adding explicit marginal-cost level equations for MC\_t^B and MC\_t^G
- Adding the aggregate resource constraint

In each of those cases, Dynare solves the steady state but reports collinearity.

I need help identifying is:

1. In this current setup, is there one genuinely missing independent equation?
2. If so, which equation is the correct one to replace  
P\_t^E = (\pi\_t^E/\pi\_t) P\_{t-1}^E ?
3. Or alternatively, is the issue that one of my existing equations is redundant/mis-specified, so that the model is rank-deficient rather than simply “missing” an equation?

From the image you can see that the equation P\_t^E = (\pi\_t^E/\pi\_t) P\_{t-1}^E cause a 1 period weird jump in my IRFs. This is why I think it is the problem equation in the model.

Any guidance on the correct closure of the energy price block would be greatly appreciated. Or any guidance on where I am implementing something incorrectly.

[Paper2\_V9.mod](https://forum.dynare.org/uploads/short-url/lS4WGDvbrodEVNHLoZLjvu3Uskf.mod) (10.3 KB)

[paper2\_V9\_steadystate.m](https://forum.dynare.org/uploads/short-url/6uFIzAFsebvV2NX1mkvgwkscTwZ.m) (11.2 KB)

# The complete model setup

The equilibrium process in a symmetric equilibrium is described by the following endogenous variables:

\{ C\_t, I\_t, r\_t, K\_t, \pi\_t, W\_t, L\_t, \Psi\_t, T\_t, \Omega\_t^K, \lambda\_t, \lambda\_t^K, \chi\_t^B, A\_t, M\_t, K\_t^B, Z\_t, U\_t, \varphi\_t, \Xi\_t, C\_{A,t}, p\_t^B, \Psi\_t^{\chi,B}, r\_t^B, \pi\_t^B, \tau\_{Z,t}, MC\_t^B, \Omega\_t^B, \chi\_t^G, p\_t^G, K\_t^G, \Psi\_t^{\chi,G}, r\_t^G, \pi\_t^G, MC\_t^G, \Omega\_t^G, E\_t, q\_t, \pi\_t^E, Y\_t, P\_t^E, MC\_t, \Omega\_t, G\_t, I\_t^E, I\_t^G, I\_t^B, I\_t^{B,K}, I\_t^{B,\Xi}, \Omega\_t^{B,K}, \Omega\_t^{G,K} \}

## Households

\begin{aligned} C\_{t} + I\_{t} &= \frac{r\_{t-1}K\_{t-1}}{\pi\_{t}} + W\_tL\_{t} + \Psi\_t - T\_t \\ K\_{t} &= (1 - \delta)K\_{t-1} + (1- \Omega\_{t}^K)I\_{t} \\ \lambda\_{t} &= (C\_{t} - hC\_{t-1})^{-1} - \beta h \mathbb{E}\_t(C\_{t+1} - hC\_{t})^{-1} \\ \lambda^{K}\_t &= \beta\mathbb{E}\_t[\lambda\_{t+1}\frac{r\_{t}}{\pi\_{t+1}} + \lambda\_{t+1}^{K}(1 - \delta)]\\ \lambda\_{t} &= \lambda\_{t}^{K}[1 - \Omega\_{t}^K - \Omega\_{t}^{K'}I\_{t}] - \beta\mathbb{E}\_t[\lambda\_{t+1}^{K}\Omega\_{t+1}^{K'}I\_{t+1}]\\ \lambda\_{t}W\_t &= \gamma(1 - L\_{t})^{-1}\\ \Omega\_t^K &\equiv (\Omega^K/2)[(I\_{t}/I\_{t-1}) - 1]^2\\ \Omega^{K'}\_t &\equiv (\Omega^K/I\_{t-1})[(I\_{t}/I\_{t-1}) - 1]\\ \Omega^{K'}\_{t+1} &\equiv \Omega^K [(I\_{t+1}/I\_{t}) - 1](\frac{-I\_{t+1}}{I\_{t}^2}) \end{aligned}

## Energy Producers

### Brown energy producer

\begin{aligned} \chi\_{t}^B &= A\_t(1 - \Gamma(M\_t))(K^B\_{t-1})^{\alpha\_B}\\ \Gamma(M\_t) &= \gamma\_0 + \gamma\_1 M\_t + \gamma\_2 M\_t^2 \\ M\_{t} &= (1-\delta\_M)M\_{t-1} +Z\_{t} \\ Z\_{t} &= (1 - U\_{t})\varphi\_t \chi\_{t}^B\\ \varphi\_t &= \varphi \exp(-\upsilon \Xi\_{t-1})\\ C\_{A,t}(U\_{t},\chi\_{t}^B) &= \phi\_1(U\_{t})^{\phi\_{2}}\chi\_{t}^B\\ p\_t^B &= \frac{P\_t^E}{\left[\phi\_E^\sigma q\_t^{1-\sigma} + (1-\phi\_E)^\sigma\right]^{\frac{1}{1-\sigma}}}\\ \Psi\_t^{\chi,B} &= p\_t^B\chi\_t^B - p\_t^B\frac{r\_{t-1}^BK\_{t-1}^B}{\pi\_t^B} - C\_{A,t} - \tau\_{Z,t}Z\_t - p\_t^B\Omega\_t^B\chi\_t^B \\ \frac{r^{B}\_{t}}{\pi^B\_{t+1}} &= MC^B\_{t+1}\alpha\_B\frac{\chi\_{t+1}^B}{K^B\_{t}} \\ \varphi\_t \tau\_{Z,t} &= \phi\_{1}\phi\_{2}(U\_{t})^{\phi\_{2} - 1} \\ \Omega^B\_t &= (\Omega\_B/2)[\frac{\pi\_t^B}{\pi^B} - 1]^{2} \\ \Omega^B(\frac{\pi\_t^B}{\pi^B} - 1)\frac{\pi\_t^B}{\pi^B} &= \beta\mathbb{E}\_t\left[\frac{\lambda\_{t+1}}{\lambda\_t}\Omega^B(\frac{\pi\_{t+1}^B}{\pi^B} - 1)\frac{\pi\_{t+1}^B}{\pi^B}\frac{\chi\_{t+1}^B}{\chi\_t^B}\right] + \epsilon\_B MC\_t^B + (1 - \epsilon\_B) \end{aligned}

### Green energy producer

\begin{aligned} \chi\_{t}^G &= A\_t(1 - \Gamma(M\_t))(K^G\_{t-1})^{\alpha\_G}\\ p\_t^G &= q\_t p\_t^B\\ \Psi\_t^{\chi,G} &= p\_t^G \chi\_t^G - p\_t^G \frac{r\_{t-1}^G K\_{t-1}^G}{\pi\_t^G} - p\_t^G \Omega\_t^G \chi\_t^G\\ \frac{r^{G}\_{t}}{\pi^G\_{t+1}} &= MC^G\_{t+1}\alpha\_G\frac{\chi\_{t+1}^G}{K^G\_{t}} \\ \Omega^G\_t &= (\Omega\_G/2)[\frac{\pi\_t^G}{\pi^G} - 1]^{2} \\ \Omega^G(\frac{\pi\_t^G}{\pi^G} - 1)\frac{\pi\_t^G}{\pi^G} &= \beta\mathbb{E}\_t\left[\frac{\lambda\_{t+1}}{\lambda\_t}\Omega^G(\frac{\pi\_{t+1}^G}{\pi^G} - 1)\frac{\pi\_{t+1}^G}{\pi^G}\frac{\chi\_{t+1}^G}{\chi\_t^G}\right] + \epsilon\_G MC\_t^G + (1 - \epsilon\_G) \end{aligned}

### Energy aggregator

\begin{aligned} E\_t &= \left[\phi\_E(\chi\_t^G)^{\frac{\sigma-1}{\sigma}} + (1-\phi\_E)(\chi\_t^B)^{\frac{\sigma-1}{\sigma}}\right]^{\frac{\sigma}{\sigma-1}}\\ \chi\_t^G &= \phi\_E^\sigma \left(\frac{q\_t}{F(q\_t)}\right)^{-\sigma} E\_t\\ F(q\_t) &= \left[\phi\_E^\sigma q\_t^{\,1-\sigma} + (1-\phi\_E)^\sigma \right]^{\frac{1}{1-\sigma}}\\ q\_t &= \frac{\pi\_t^G}{\pi\_t^B} q\_{t-1}\\ \pi\_t^E &= \pi\_t^B \frac{F(q\_t)}{F(q\_{t-1})}\\ P\_t^E &= \frac{\pi\_t^E}{\pi\_t}P\_{t-1}^E \end{aligned}

## Intermediate good firms

\begin{aligned} Y\_{t} &= (1 - \Gamma(M\_t))A\_t(L\_{t})^{\alpha\_L}(K\_{t-1})^{\alpha\_K}(E\_{t})^{1 - \alpha\_L - \alpha\_K}\\ \Psi\_t &= Y\_t - W\_t L\_t - \frac{r\_{t-1} K\_{t-1}}{\pi\_t} - P\_t^E E\_t - \Omega\_t Y\_t \\ \frac{r\_{t}}{\pi\_{t+1}} &= MC\_{t+1}\alpha\_K\frac{Y\_{t+1}}{K\_{t}} \\ W\_t &= MC\_t\alpha\_{L}\frac{Y\_{t}}{L\_{t}} \\ P\_{t}^{E} &= MC\_t (1 - \alpha\_L - \alpha\_K)\frac{Y\_{t}}{E\_{t}} \\ \Omega\_t &= (\Omega/2)[\frac{\pi\_t}{\pi} - 1]^{2} \\ \Omega(\frac{\pi\_t}{\pi} - 1)\frac{\pi\_t}{\pi} &= \beta \mathbb{E}\_t\left[\frac{\lambda\_{t+1}}{\lambda\_t}\Omega(\frac{\pi\_{t+1}}{\pi} - 1)\frac{\pi\_{t+1}}{\pi}\frac{Y\_{t+1}}{Y\_t}\right] + \omega MC\_t + (1 - \omega) \end{aligned}

## Government and environmental regime

\begin{aligned} G\_t + I\_t^E &= T\_t + p\_t^B \frac{r\_{t-1}^B K\_{t-1}^B}{\pi\_t^B} + p\_t^G \frac{r\_{t-1}^G K\_{t-1}^G}{\pi\_t^G} + \Psi\_t^{\chi,B} + \Psi\_t^{\chi,G}\\ G\_{t} &= gY\_{t}\\ I\_{t}^{E} &= [\kappa(I\_{t}^{G})^{\frac{\varsigma-1}{\varsigma}} + (1-\kappa)(I\_{t}^{B})^{\frac{\varsigma-1}{\varsigma}}]^{\frac{\varsigma}{\varsigma-1}}\\ I\_t^{B,K} &= (1-\xi) I\_t^B \\ I\_t^{B,\Xi} &= \xi I\_t^B + \frac{\tau\_{Z,t}Z\_t}{2} \\ K^B\_{t} &= (1 - \delta\_B)K^B\_{t-1} + (1- \Omega^{B,K}\_{t})I^{B,K}\_{t} \\ \Xi\_t &= (1-\delta\_\Xi)\Xi\_{t-1} + I\_t^{B,\Xi} \\ \Omega^{B,K}\_t &\equiv (\Omega^{B}/2)[(I^{B,K}\_{t}/I^{B,K}\_{t-1}) - 1]^2\\ K\_t^G &= (1-\delta\_G)K\_{t-1}^G + (1-\Omega\_{t}^{G,K})I\_{t}^G + \frac{\tau\_{Z,t}Z\_t}{2}\\ \Omega\_t^{G,K} &\equiv \frac{\Omega^{G,K}}{2}\left[\left(\frac{I\_t^G}{I\_{t-1}^G}\right)-1\right]^2\\ \frac{1 + r\_{t}}{1 + r} &= \left(\frac{\pi\_t}{\pi}\right)^{\theta\_{\pi}} \left(\frac{\pi\_t^E}{\pi^E}\right)^{\theta\_E} \left(\frac{Y\_t}{Y}\right)^{\theta\_Y} \end{aligned}

## Model shocks

\begin{aligned} \log (A\_t) &= (1-\rho\_A)\log (A) + \rho\_A\log (A\_{t-1}) + \epsilon\_{A,t}\\ \log (I\_{t}^B) &= (1-\rho\_{I^B})\log (I^B) + \rho\_{I^B}\log (I\_{t-1}^B) + \epsilon\_{I^B,t}\\ \log (I\_{t}^G) &= (1-\rho\_{I^G})\log (I^G) + \rho\_{I^G}\log (I\_{t-1}^G) + \epsilon\_{I^G,t}\\ \log (\tau\_{Z,t}) &= (1-\rho\_{\tau\_{Z}})\log (\tau\_Z) + \rho\_{\tau\_{Z}}\log (\tau\_{Z,t-1}) + \epsilon\_{\tau,t} \end{aligned}

 ![image](https://forum.dynare.org/uploads/default/original/3X/d/3/d32216f82f269aa34799cb08b391d813cb8d334a.png)
