# Blachard-Kahn indeterminacy error

**URL:** https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858
**Category:** Stochastic simulations
**Created:** [5 August 2025 21:18 UTC](https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858 "2025-08-05T21:18:39Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![IbrahimRihani](https://forum.dynare.org/letter_avatar_proxy/v4/letter/i/97f17d/32.png) [@IbrahimRihani](https://forum.dynare.org/u/IbrahimRihani)
#### Post date: [5 August 2025 21:18 UTC](https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858/1 "2025-08-05T21:18:39Z")

</div>

[tankfixed.mod](https://forum.dynare.org/uploads/short-url/xfLMQTcROPrhbNusV85HCBJhaW5.mod) (7.4 KB)  
This is the first time I try DSGE modelling, and when I run the attached log-linear TANK DSGE (oil-augmented, Calvo pricing) in Dynare 5.2, the Blanchard-Kahn check returns “2 eigenvalues larger than 1 for 3 forward-looking variables – indeterminacy”. Inspection of the eigen-spectrum shows two unstable roots at ≈ 1.484 and a third root stuck just inside the unit circle at 0.996, generated by the policy block. Because the rule does not react to domestic inflation, anticipated inflation behaves like a unit root (β), leaving only two explosive roots to match three forward-looking states ( 𝑐 𝑅 , 𝑡 , 𝜋 𝑑 , 𝑡 , 𝜋 𝑡 ) (c R,t ​ ,π d,t ​ ,π t ​ ). The rank condition is therefore violated, and the model cannot determine a unique equilibrium. If anyone can help fix this, under a fixed exchange regime where monetary policy is passive, it would be greatly appreciated.

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [6 August 2025 08:36 UTC](https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858/2 "2025-08-06T08:36:40Z")

</div>

I don’t understand that setup. What is determining domestic inflation in that setup?

---

<div class="post-metadata">

### Author: ![IbrahimRihani](https://forum.dynare.org/letter_avatar_proxy/v4/letter/i/97f17d/32.png) [@IbrahimRihani](https://forum.dynare.org/u/IbrahimRihani)
#### Post date: [6 August 2025 10:31 UTC](https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858/3 "2025-08-06T10:31:23Z")

</div>

Domestic inflation is a hybrid NKPC, so it’s a function of future inflation, past inflation and marginal cost. Inflation is a weighted average of domestic and foreign inflation, where foreign inflation is just an AR(1) process. For reference there is a spelling mistake,  
" e = 0; // Labour endowment normalised"  
is just the nominal exchange rate’s deviatio from steady state being 0 at all times since it is pegged.

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [6 August 2025 20:51 UTC](https://forum.dynare.org/t/blachard-kahn-indeterminacy-error/27858/4 "2025-08-06T20:51:01Z")

</div>

Did you try starting from a setup like Gali/Monacelli ([DSGE\_mod/Gali\_Monacelli\_2005/Gali\_Monacelli\_2005.mod at master · JohannesPfeifer/DSGE\_mod · GitHub](https://github.com/JohannesPfeifer/DSGE_mod/blob/master/Gali_Monacelli_2005/Gali_Monacelli_2005.mod))? Usually, there is a some risk sharing condition in the model that seems to be absent in yours.
