Incorrect steady state, but actually correct


I am having a hard time understanding this strange phenomenon.

I have a system of dynamic equations and have analytically solve for the steady state. I have one equation in this system that Dynare claims there is a residual. This equation is the following.

P_{H,t}^* = \frac{\epsilon}{\epsilon-1}(1+\tau)(I\times \frac{P_{H,t}}{E_t} + (1-I)\times \frac{P_H}{E}) where I is a parameter that takes the value 0 or 1. P_H is the steady state value of P_{H,t} and E is the steady state value of E_t.

If we assume that \frac{\epsilon}{\epsilon-1}(1+\tau)=1, the steady state value of P_{H,t}^* should be equal to \frac{P_H}{E}. This is what I declare in the steady state model block.

However, Dynare always tells me that there is a residual in this equation and the steady state is not correctly defined.

So, I decided to remove \frac{\epsilon}{\epsilon-1}(1+\tau) just in case. Now, the equation looks like this.

P_{H,t}^* = I\times \frac{P_{H,t}}{E_t} + (1-I)\times \frac{P_H}{E}

This should not cause anything to change whatsoever since the value of the coefficient I removed is 1. However, once I do this, now Dynare tells me that the steady state is correct and there is no residual.

Could this be a numerical issue? I have checked the equations multiple times and it does not seem like there is a coding error. \frac{\epsilon}{\epsilon-1}(1+\tau) indeed is equal to 1.

This sounds weird and like a typo in your codes. But without seeing the codes, there is not much we can do to debug this.

You were absolutely correct. There was a coding error related to how I retrieved parameter values from a different file. Thank you!