Issue with one of the constraints


I have a question about imposing wage rigidity constraint in the model. I consider wage rigidity of the form: w=max( gamma* w(-1), w*) where gamma is a parameter between 0 and 1 and w* is the wage that would emerge in the absence of the lower bound.

I added the constraint in Dynare using the slackness condition, however, Dynare estimates the model assuming the constraint does not bind. I also tried imposing the constraint directly but then the code won’t run so I guess I must be doing something wrong. Do you know how I could fix it? The answer might be obvious, I just can’t see it.

model.mod (2.4 KB)

Non-differentiabilities require a different filter. You need to set up the problem as one in OccBin and then use the inversion filter or the PKF.

Thank you!

Hi Prof. Pfeifer,

I have a related question about OccBin - I was trying to understand how to implement the constraint based on Occbin_example.mod file. However, my code is still not working. I am not sure if I can use the max() this way (please see attached for the .mod file). I haven’t used OccBin before so I would appreciate any help on what I am doing wrong.

model.mod (2.7 KB)

You don’t need a max operator here. Usually, you should have something like:

[name='WageRigidity', bind = 'WR']
[name='WageRigidity', relax = 'WR']


name 'WR'; bind w<gamma*w_lag; 

Note that there is still an issue with the number of equations in your model.

Thank you very much for your help, Prof. Pfeifer. That clarifies it!

I have one more question - starting from the baseline regime where the wage rigidity constraint is not binding, when simulating the model, how can I check how often the model hits the constraint? Attached is the adjusted file. Thank you once again!
model.mod (3.8 KB)

That information should be in


Thank you! I have one last question: I tried simulating the model for different parameter values and different shock size, but it seems the model never hits the constraint. Do you maybe have any suggestion how to make the constraint binding? I am just wondering how the results would differ if the model hit the constraint

Without knowing the model, it’s impossible to tell. Usually, it’s about having a sufficiently big shock.

I see. It is a rather simple model with working capital constraint and the financial shock as in Jermann and Quadrini (2012). I tried increasing the shock size but then the code won’t run, which is a bit odd. I’ll keep working on it, thanks once again for all the help!

My mistake. I think it needs to be

name 'WR'; bind zeta*n^(eta)*c^(sigma)<gamma*w_lag; 

that is, you need to compare the counterfactual wage to last period’s one. Try
model_occ.mod (3.8 KB)

It works now! Thank you very much, I really appreciate all the help!