I am trying to replicate the model Trigari (2009) “Equilibirum Unemployment, Job Flows, and Inflation Dynamics”. The code is running and the impulse responses look quite similar, but now I am actually wondering whether I have made a mistake with respect to the timing convention of state variables.

Trigaris model features the following law of motion for employment:

n_t =(1-rho_{t-1})n_{t-1}+m_{t-1}

The number of employed workers at the beginning of period n_t are those employed workers n_{t-1} who are not separated endogenously with prob rho_{t-1}, in addition to new matches formed m_{t-1}.
I have typed this equation and all the others where n features into dynare without changing the timing, and the code runs.
But in staying true with the end of period convention of dynare, shouldn’t the law of motion for employment in the code look like this:

n_{t-1} =(1-rho_{t-1})n_{t-2}+m_{t-1}

since the level of employment at the beginning of date t is actually decided at date t-1 right?
However, using this line in dynare, in addition to lagging n in all the other equations, results in the Blanchard Kahn conditions not being satisfied.
What am I not seeing here?

Another thing:
Trigari makes a limited information assumption following Rotemberg and Woodford (1997) that households make their choices about consumption,pricing,separation, vacancy posting at date t with the information available at time t-2.
This is done ino order to better compare the impulse responses to VAR estimates of a monetary policy shock, where a similar identifying restriction was made.
First does this change anything besides delaying all the impulse responses in response to the shock by 2 periods? To my eyes, apart from that delay my impulse responses look very similar.
If it does, can I implement it in dynare somehow?

Actually, from what you describe, I think the law of motion for n should be

n_t =(1-rho_{t})n_{t-1}+m_{t}

You inherit employment n_{t-1} from the previous period, some matches dissolve based on rho_t and you get new matches m_t. This is similar to the law of motion for capital. Alternatively, you could shift the whole equation by 1 period:

n_{t+1} =(1-rho_{t})n_{t}+m_{t}

and use

predetermined_variables n

Regarding the limited information assumption, you need to change the information set of the expectations operator in Dynare. You can use the EXPECTATION(-2) operator for that (see the manual). You can see the change in timing in the working paper version at ecb.europa.eu/pub/pdf/scpwps/ecbwp304.pdf?0ea454554115cfcd977fa9cc2bd4b493

Thanks for your help, I had no idea the limited information assumption would be so easy to implement.
I will also play around a bit more with the law of motion and see what happens, thanks for the tips!

The information given in the paper( targeted steady state values and chosen parameters) yields negative unemployment benefits from the steady state relationships (b=-0.02), as opposed to a value of around 0.08 consistent with the replacement rate b/(w*h)=0.1 given in the paper.

At first I typed in the loglinearized system of equations as it is given in the working paper, but the impulse responses for vacancy creation and destruction looked very different. So I did the loglinearizations myself which yielded slightly different equations for vacancy posting and job destruction. Now, surprisingly the impulse responses are a lot closer.
The author unfortunately hasn’t answered so far.

Also I’m still not sure that I have wrapped my head around the timing thing:
So again the model features this equation:

n_t =(1-rho_{t-1})n_{t-1}+m_{t-1}

The number of employed workers at the beginning of period n_t are those employed workers n_{t-1} who are not separated endogenously with prob rho_{t-1}, in addition to new matches formed m_{t-1}.
To implement it in dynare I have used your first suggestion

n_t =(1-rho_{t})n_{t-1}+m_{t}

Now I have to think of the stock of employment n_t as the end of period stock in the code equivalent to the beginning of period stock in the model, and this is why the impulse response of n in dynare now shows an immediate jump, correct?

The model also features an equation for the amount of searching workers u_t

u_t =1- (1-rho_{t})n_{t}

In words: the amount of searching workers at the beginning of period t, u_t includes those that separate from from firms at the beginning of period t and start searching for work in the same period.

In the code I did this through

u_t =1- (1-rho_{t})n_{t-1}

And I changed the timing of n in all other equations as well…
I don’t understand why doing this had no effect in the model except shifting the impulse response of n by one period. trigarit09.mod (5 KB)