NEWS shocks

Hi guys,
I’m working on an RBC model with news (anticipated) shocks.

Apparently it quite easy to model them in Dynare. For instance I’ve found this post: Modelling anticipated shocks
The same approach can be found here (, last page. The news shock is modeled as:

a = a(-1) +news3t (-1) + e
news3 = news2(-1)
news2 = news1(-1)
news1 = v

I used the same approach in my code.** HOWEVER, one issue emerges: some of the relevant variables (for instance consumption!) jumps AT THE MOMENT of the shock and NOT when the news is released (as it should be).**

Any idea why this happens and how to modify the code?

First of all, the statement in ( is not true. Dynare will create automatically create auxiliary variables if you write

where v is now a three-period anticipated news shock.

Second, do you mean consumption only moves when the shock realizes? A movement in anticipation and a jump at realization is very common, see e.g. Beaudry/Portier (2004): An exploration into Pigou’s theory of cycles, JME, e.g. Figure 1.

Dear jpfeifer,
First of all many thanks for suggesting how to re-write the code. The calibration is still a work-in-progress but consumption reacts immediately to a news shock and then jumps again once the shock materializes. As you correctly mentioned, this is exactly the same effect as in Beaudry/Portier (2004).
Many thanks for everything.
Have a good day!

Related to this topic, in order to have anticipated shocks it suffices to lag them in the specification, right? I.e. if “e” is specified as a shock, then the economy with shocks as pure surprises is:

a = rho*a(-1) + e

and the economy with expected shocks (news-shocks) of one period is:

a = rho*a(-1) + e(-1)



Since the topic seems to be interesting I have one additional question:

If you program the news shock as a = rho*a(-1) + e(-4) it implies that the shock is announced at period (t-4) AND REALIZES at period t.
However, is there a way to program a shock announced at (t-4) **BUT that do not materializes at time t? **

Many thanks!

Sorry, but I think it is not directly possible. However, if you are doing first order approximations, everything is linear. Hence, you can simply add up the IRFs of a 4-period anticipated shock and a countervailing (surprise) shock of the same size at t=0.

Thanks I tried with that but I then realized that it’s a zero probability event… so I think I have to linearize the system by hand and solve it differently… : (

Hi, what do you mean with 0 probability event? In these type of models the only way a news shock does not realize at t=0 is to have an unanticipated surprise shock at t=0 that exactly offsets the news shock. Of course having a shock of an exact size drawn from a continuous distribution has 0 probability. But the definition of a news shock is that you already know today at t<0 that it will materialize with 100% certainty at t=0. Having it not realize must be an additional surprise shock.

I also do not understand what do you mean by “zero probability event”. As jpfeifer says, in Beaudry and Portier and their followers the shock is perfectly anticipated. Also note that the news-shock is the actual shock as well. Thats why we model it as y(t) = rho*(y(t-1) + e(-1). Thus, if you want that there are shocks that are also surprises, or if you wish a “part” of the shock that is not anticipated, you need to assume a different shock. In that case you model the exogenous process as:

y(t) = rho*y(t-1) + u(t) + e(t-1)

There is some literature (Jaimovich and Rebelo) that assumes that the news-component is an imperfect signal with noise. That I guess would be more tricky to model.

Hi Guys,

I am confused…
A news shock in dynare 4.2.5 as I understood can be modeled without defining auxiliary variables. Then, what is v in your equation jpfeifer let’s say if a is the technology and e is the shock

a = rho*a(-1) +v(-3) + e ?

If e is a 3-period anticipated news shock rather than a surprise shock, then shouldn’t it be coded as

a = rho*a(-1) + e(-3) in dynare 4.2.5. ?

Thanks very much!

v was a news shock and e a surprise shock (i.e. both elements of var_exo) as in the original first post by rteconomics.

thanks a lot!