Debt timing and Unexpected Jump in t+1 in a General Equilibrium Model

Hi everyone,

I’m currently working on a model I referred to in a previous post on the forum.

I’m having trouble understanding the behavior of debt in my model. Assuming both worker types have similar productivity initially, an increase in one group’s labor force should lead to borrowing/lending between households.

Debt appears in two equations:

Budget constraint:

C_t2 + B_t2(+1) = (1 + i) * B_t2 + (w_t2 * n_t2 * (1 - t) + z_t2 * u_t2) + T * F_t2;

Bond market clearing:

0 = B_t2 + B_t1;

Still, in the transition path, debt jumps in the first period—even though it’s defined in t+1:

Since agents choose B_t2(+1) today, I need the adjustment to occur with a one-period delay. Is this behavior standard in Dynare? If not, how should I define debt to capture that timing?

I’ve attached the updated codes in case it helps clarify the issue:
runAll.m (67 Bytes)
solve_SS.m (1.5 KB)
model_dynamic.mod (5.3 KB)
model_dynamic_steadystate.m (2.1 KB)
stst_guess.mat (1.7 KB)

Any thoughts or suggestions would be very appreciated.

Thanks in advance!

Best,

Nicolas

You are violating Dynare’s timing convention.

    C_t2 + B_t2(+1)= (1 + i) * B_t2 + (w_t2 * n_t2 * (1 - t) + z_t2 * (u_t2)) + T * F_t2;

means that B_t2 is not predetermined. To make B_t2 predetermined, it would need to be shifted by one period. Put differently, B_t2(-1) would be predetermined, while B_t2 is the value chosen today.

Thank you very much, Professor Pfeifer.

I actually started by defining debt as a predetermined variable:

C_t2 + B_t2 = (1 + i) * B_t2(-1) + (w_t2 * n_t2 * (1 - t) + z_t2 * u_t2) + T * F_t2;

But that leads to an even stranger result. If you look at the attached image, you’ll see that debt stays around zero for most of the transition path and then suddenly drops at the final period. That behavior doesn’t make much economic sense to me.

I was wondering: was your suggestion also implying that I might need to revise the timing of other variables as well? For example, the interest rate i is defined at +1 in the Euler equation—could that be a source of inconsistency here?

Thanks again for your help!

Can you provide the updated version of the codes?

Here is the version of the .mod file that includes the budget constraint following Dynare’s timing convention:

model_dynamic.mod (5.3 KB)

The other files are the same ones I used in my original post.

What I’ve been reading is that when using perfect foresight and having a finite time horizon, there is no optimal path for repaying debt. As a result, the solver determines that the simplier course of action is to accumulate debt until period T-1 and pay the interest in the final period. That dynamic doesn’t seem very reasonable to me.

I read that adding a rising cost to indebtedness could correct this, but I’d prefer not to impose additional conditions.

Thanks in advance!

Best,

Nicolas

Do you have a reference for that?

Not a specific paper or forum post, no. It’s something I’ve inferred through iterations with different LLMs and from the behavior I’ve observed in Dynare while running my model, as well as simpler versions of it, where the same debt path dynamics appeared.

I have seen debt paths like that before, but don’t have a good explanation why they happen. That’s why I was asking.