Optimal policy in timeless perspective

Hello everyone,

Is there a command in Dynare for computing the timeless perspective solution for a deterministic Ramsey model
(e.g a command that retrieve and impose the t=0 values for the Langrange multipliers and impose them as initial conditions)?

Thanks in advance for your time.


I am not sure I understand the question. But an example on timeless perspective Ramsey in a perfect foresight context is at github.com/JohannesPfeifer/DSGE_mod/blob/master/Woodford_2003/Woodford_2003_Chapter_7.mod

Dear Professor Pfeifer,

Thank you very much for your rapid reply. Just 2 quick additional questions:

  1. I see the model you used in that example is linear, is that a requirement for this Dynare routine to be able to compute the timeless optimal policy?
    (or does it work also in case of a non-linear model?)

  2. I cannot find the documentation for this command: 'options_.ramsey_policy=1.'
    Is this the one that trigger the timeless perspective computation? (e.g by omitting it I will run the unconstrained optimal policy?)

Thanks a lot for your time,


  1. No, that is not a requirement. Woodford’s example just happened to be linear. The

command will instruct Dynare to take construct the Lagrangian for the planner’s problem and construct the FOC’s. This will result in a nonlinear model. Now it is up to you how to solve this. Either with perturbation or with the perfect foresight solver as is done here.

  1. The

actually is redundant here, because

automatically sets it. It simply indicates to subsequent Dynare commands that we are dealing with a Ramsey problem. I updated the mod-file.

Dear Professor Pfeifer,
Thank you very much for your reply, time and willingness.

Hope you don’t mind if I try to finally clarify a couple of remaining issues regarding your code:

  1. The way timeless perspective is implemented in your code, lead me to conclude that the command ‘‘ramsey_model’’ always triggers the computation of the timeless perspective optimal policy (under perfect foresight). If that is the case maybe this aspect should be pointed out (I could not find any reference in the Dynare user guide).

  2. Conclusion at 1) seems further confirmed by the fact that, when running t0_optimal policy, you don’t rely on Dynare ramsey_model command, but you introduce ramsey FOCs yourself. So as to have control on the Langrangian multiplier, which you set to zero at the initial period.

Is this right?

Finally, is there any documentation relative to the algorithm that dynare uses for implementing optimal policy in time-less perspective?

Thanks again,


  1. This is a tricky issue. What Dynare does when using Ramsey, does not 100% coincide with what Woodford defines as “timeless perspective” (but rather with what other people have taken that concept to mean). Dynare will construct a Lagrangian where the initial Lagrange multiplier is honored, i.e. not automatically set to 0. t0 optimal policy would differ here, because in the first period the inherited Lagrange multiplier is set 0, which then introduces time-dependence, because the solution will depend on how far you are away from the first period.
    Because with Dynare’s Ramsey implementation you get a time-invariant problem where the initial multiplier is honored, you get the same results as e.g. Schmitt-Grohe/Uribe (2005): “Optimal Monetary and Fiscal Policy in a Medium-Scale Macroeconomic Model”, which they call “timeless perspective” with a reference to Woodford, when the initial multiplier is set to steady state. As my mod-file shows, you also effectively get the result that Woodford envisions. The reason is that we set the initial multiplier to the steady state (or to 0 if desired), depending on what we want and then continue with the time-invariant policy from there. Thus, for practical purposes, Dynare always does “timeless perspective”.
    However, Woodford’s actual definition is somewhat broader in that it tells you how the initial multiplier has to look like (instead of simply picking 0 or the steady state). For example, Woodford’s concept would tell you how to continue with your Ramsey policy when e.g. the model changes. Dynare cannot do this, because that concept cannot generally be operationalized. Because we do not generally know the initial multiplier prescribe by his concept, we either choose 0 or the steady state (or whatever you want it to be). That’s where the concepts differ.

But I admit that difference is subtle and not important for most researchers.

We are in the process of updating the respective part of the manual: github.com/DynareTeam/dynare/pull/1139

  1. Yes, in the perfect foresight context, you would need to set the initial multiplier to 0, but we don’t have an interface for that yet. So I went the manual route. We are working on providing access to setting the initial multipliers via initval. For now you could simply manipulate

by hand:


instead of


That will set the Lagrange multiplier (which was set to its steady state for the timeless perspective via steady) to 0 in the initial period. You can verify that this give the same result as the


part I implemented.

Dear Professor Pfeifer,

An enormous thank for such an extensive and clear explanation.
However, from the experiments I have run, it does not seem to me that Dynare is setting the Langrangian multipliers at their steady state level in the initial period.

I post below a .MOD file I created for the unstable version of Dynare where I run a simple optimal fiscal policy exercise in a deterministic framework.
I am using here the Dynare routine: ramsey_model
As you can see, when you try to retrieve the values of the Lagrange multipliers Dynare creates, using the command: MULT_i they are all set to zero in the initial period.

It seems to me therefore that what Dynare is implementing is ‘t0 optimal policy’ not the ‘timeless perspective’ (whatever its definition). Or am I missing something?

RamseyDet.mod (4.15 KB)

Sorry, this was my mistake. I was thinking about stochastic Ramsey.

When doing Ramsey in the perfect foresight context, the behavior of all variables (including multipliers and other auxiliary variables) is in principle governed by initval, endval, and histval blocks as is the case for simul/perfect_foresight_solver. The default is that if nothing is specified, the value is 0. That is what you experience. It was different in the mod-file I linked above, because there was a


command that set


to the steady state.

Therefore, by setting the initial values of your multipliers in that variable, you can indeed select timeless vs t_0-optimal policy in a perfect foresight context. Things are more complicated if you are working with a stochastic model.

Thanks a lot!!


Dear jpfeifer


  1. I like to ask you whether setting initial multipliers to 0 and simulating with perfect foresight solver is corresponding to the IRF as the result of ramsey_policy (setting initial mutipliers to their steady state)

  2. I’m also curious if current Dynare has an interface for the simulation in the perfect foresight context.

Thank you as always!

Best regards

  1. No, those a different things for at least two reasons.
    1. The initial state of the multiplier is chosen differently in your setup: 0 versus the steady state
    2. ramsey_policy uses perturbation techniques to solve the model, while perfect foresight would solve the nonlinear deterministic model
  2. You need to have a combination of ramsey_model and the perfect_foresight-commands. See https://github.com/JohannesPfeifer/DSGE_mod/blob/master/Woodford_2003/Woodford_2003_Chapter_7.mod