I am faced with a rank failure problem and hoping some of you could help me.

I have a simple cash in advance model with production carried out using only labour and monetary policy implemented with a Taylor rule. The model works without a problem if I do not use money as an endogenous variable (setting AggResCons = 1 in line 60 in the mod file). In this case I use the aggregate resource constraint as a model equation and switch off money and tax by specifying them as equal to zero (since the model is log-linearised). However, if I use money as an endogenous variable (setting AggResCons = 0 in line 60 in the mod file) I get the rank failure error;

There are 3 eigenvalue(s) larger than 1 in modulus
for 2 forward-looking variable(s)

The rank condition ISN’T verified!

In the latter scenario, I do not use the aggregate resource constraint as a model equation but use the budget constraints of households and government and the cash in advance constraint as model equations (since the aggregate resource constraint was anyway derived by using the budget constraint).

To my knowledge the timing of the equations is correct, and I am puzzled as to why the model works when we rearrange the same set of equations in one way (to get aggregate resource constraint) and why it does not when we rearrange it differently (we keep budget constraints as they are). I would be very much thankful if someone can provide any insight as to why this problem occurs.

Sorry, but I don’t see how the remaining equations assure that M is stable. The equations are all backward-looking. So what determines M here? Shouldn’t there be an Euler equation?

I have the Euler equation in Eq 03 [21] (line 88) where it is defined in terms of marginal utilities rather than in consumption. And as far as I understand M is defined by Eq 06 [24] (line 98, which is the budget constraint of households). Please correct me if I am wrong to think so.

Here, I basically used the budget constraint, cash in advance constraint and government budget (which simply equates exogenous government expenditure to revenue from lump-sum tax and seigniorage revenue). The model we have when we specify “AggResCons = 1” is obtained by substituting out M and Tax in these equations.

Can I also ask what conditions should we look at in order to check whether a variable is stable please?

I am not that familiar with the model, but in the working version, you impose that M=0 at all points in time. What assures this in the current version? Also, there is no seignorage in the old version as money holdings are 0. That seems different in the current version.

By making M=0 in the working version what I want is to remove that variable from the system. I guess this is ok given that the model is log-linearised and that it does not appear in any other equations. Both systems are of the same model but in one I do not have money (and therefore seigniorage revenue and also the lump-sum transfer on households) as a model variable.

I believe the proper way to remove model variable(s) from the system is to use a macro language block with a conditional statement in all places the variable(s) appear, but I took a shortcut by simply defining the variables not used as being equal to zero in all periods, by exploiting the fact that the model is log-linearised. This is the reason I have M=0 and Tax=0 in the working version. So, let me do it properly and use conditional blocks instead of making the variables equal to zero. I attach herewith this corrected version.CIA_LL.mod (3.1 KB)

In the model, the problem of the household (attached) is to maximise expected life time utility subject to a cash in advance constraint and the budget constraint. Meanwhile the government budget constraint is assumed to be balanced and uses seigniorage revenue as an inflow.Households.pdf (119.5 KB)

In the working version (i.e., when AggResCons = 1), I substitute the government budget constraint into the household budget constraint and substitute out lumpsum tax and money growth. By combining this with the definition of profits of firms I can derive the aggregate resource constraint. So, in the working version, I do not have money and the lump-sum transfer as endogenous variables, and I use the aggregate resource constraint as an equation, while I do not use cash in advance constraint, the budget constraint of households and government budget constraint.

In the version that does not work (i.e., when AggResCons = 0), what I want to do is to use the budget constraint and cash in advance constraint as model equations. In this version, I do not use the aggregate resource constraint, but instead use the cash in advance constraint (line 97), household budget constraint (line 98) and government budget constraint (line 99), while money and lumpsum transfer are used as model variables (lines 16-18). I guess the reason why this version does not work is due to some issue in the way I have defined the cash in advance constraint but could not yet figure the reason. I guess when I substitute money out, cash in advance constraint becomes obsolete and it works without an issue. I would like to get some advice on whether my guess is correct please, and if so I would very much value your comments on the intuition as well.

You need to think hard whether the two approaches are the same. The CIA constraint determines money demand, but the question is what determines money supply? It seems that this is the government budget constraint. If your intuition is right that the two approaches are equivalent due to Walras Law (the left-out equation is implied), then there must be a timing error related to the CIA constraint