The new predetermined_variables is used to declare some endogenous variables as predetermined.
predetermined_variables VARIABLE_NAME [VARIABLE_NAME...] ;
In Dynare, the default convention is that the timing of a variable reflects when this variable is decided. The typical example is for capital stock: since the capital stock used at current period is actually decided at the previous period, then the capital stock entering the production function is k(-1), and the law of motion of capital must be written:
k = i + (1-delta)*k(-1)
Put another way, for stock variables, the default in Dynare is to use a “stock at the end of the period” concept, instead of a “stock at the beginning of the period” convention.
The predetermined_variables is used to change that convention. The endogenous variables declared as predetermined variables are supposed to be decided one period ahead of all other endogenous variables. For stock variables, they are supposed to follow a “stock at the beginning of the period” convention.
The following two program snippets are strictly equivalent.
Using default Dynare timing convention
var y, k, i; ... model; y = k(-1)^alpha; k = i + (1-delta)*k(-1); ... end;
Using the alternative timing convention
var y, k, i; predetermined_variables k; ... model; y = k^alpha; k(+1) = i + (1-delta)*k; ... end;