IRFs, deviation or %deviation? from steady state?

I have left a clarifying remake in the first post. The second one is correct. relative_irf only transforms the size of the initial shock from one standard deviation (each shock with its own standard deviation) to a unit shock size (absolute shock of 1 for all shocks).

Dynare only performs linearizations, not log-linearizations. The only exception is at first order where you can use the loglinear option of stoch_simul. See Remark 17 (Dynare’s loglinear option) in sites.google.com/site/pfeiferecon/Pfeifer_2013_Observation_Equations.pdf

At higher order, you need to perform a variable substitution to get IRFs in percentages. See Section “4.4 Linearization vs. Log-linearization” in the same document.

**Question 1: **At first order they are deviations from the steady state. At higher order, they are relative to a baseline stochastic simulation as you call it. To be more precise, the IRFs at higher order are Generalized Impulse responses where the location in the state space is average out. You can interpret this along the lines of a GIRF at the ergodic mean.

Question 2: The easiest thing is to add auxiliary variables that perform a log-transformation. For example, define

The IRF for y_percent will be in percentage deviations. You could divide by steady state, but the problem at higher order is that you get the average IRF in percent of the steady state values, but it is not in percentage deviations from steady state, because your baseline point relative to which the IRFs are computed is not the steady state.

Question 3: oo_.endo_simul stores a simulation series of length options_.periods. It is generated whenever periods>0. It has nothing to do with IRF-generation. See also [Gathering multiple IRFs)