Estimate the Laffer curve with a DSGE on Dynare

Dear Professors and Colleagues,
Once again, I come here to ask for your help. I wanted to estimate the Laffer curve in my DSGE analysis. Some of you suggested me to review “F-de-Córdoba and Torres (2012)”, but the latter did not show the useful technique well.
Finally, I thought of asking you again for help on this; what are the steps to take to bring out the laffer curve that concerns VAT for example.
Thanks in advance.

What exactly are you trying to do? What do you mean with “estimate the Laffer curve”?

In fact, the exact question is asked about looping a dynare.mod around a parameter. Is this possible? If yes, and if you allow it, can you give a simple example.

I mentioned the Laffer curve as an example, how to show stationary states when tax rates vary from 0 to 1.

Have a look at

1 Like

Very important, Thank You very much Professor.

Dear Professor @jpfeifer ,
Knowing that I have seen all the similar publications that have already been posted here on the forum, I still have two problems:
1- I don’t know how to export the steady state results in Excel format.
2- The second problem is the most important one. Indeed, I now need to plot the evolution of the variables around the parameter, but I don’t know how to do it on dynare.
Thank you in advance.

  1. Use xlswrite. See (Not recommended) Write Microsoft Excel spreadsheet file - MATLAB xlswrite - MathWorks Deutschland
  2. What do you mean with


Dear @jpfeifer
After calculating the different values of Y at equilibrium, giving varpi=0.001, 0.002, 0.003, …, 1 using just dynare, I want to plot the (Y, varpi) but I don’t know how to do it.
Thank you very much

You save both into a vector and then plot them using Matlab functions.

1 Like

It is not clear. how I record the equilibrium matrix, then select the vectors to plot them. If you allow me to give a simple example, I really need it. I just looked at similar publications, but no case is appropriate for me.

In case of need, you will find attached my code solt.mod (2.1 KB)

It should be something along the lines of

tau_parameters = 0.1:0.3:0.8;
for i=1:length(tau_parameters)
    [oo_.steady_state,M_.params,info] = steady_(M_,options_,oo_);
    if ~info

1 Like

Dear @jpfeifer ,
Your answer is appropriate. I tested this code and the result was very good.
Thank you very much for your help.
Best Regards