$$ \begin{array}{lcl} Y = C + G \hspace{1cm} & (1) \\ T = \theta Y \hspace{1cm} & (2) \\ Y_{d} = Y - T = (1 - \theta) Y \hspace{1cm} & (3) \\ C = \alpha Y_{d} \hspace{1cm} & (4) \\ G = G_0 + T \hspace{1cm} & (5) \\ \Delta H_g = T - G \hspace{1cm} & (6) \\ \Delta H_h = (1 - \alpha) Y_{d} \hspace{1cm} & (7) \\ \end{array} $$

So consumption is strict fraction of disposable income - no $\alpha_0$ Government spending is no longer constant but increases with tax take


In [114]:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline  

N = 200

G0     = 5
theta = 0.2
alpha = 0.95

C   = np.zeros(N) # consumption
G   = np.zeros(N) # government spending
Y   = np.zeros(N) # income
Y_d = np.zeros(N) # disposable income
T   = np.zeros(N) # tax revenue
H_h = np.zeros(N) # private savings
H_g = np.zeros(N) # government debt

for t in range(0, N):
    
    # calculate consumer spending
    C[t]   = alpha*Y_d[t-1] 
    
    # calculate government spending
    G[t]   = G0 + theta*Y[t-1] 
    
    # calculate total income (consumer spending plus constant government spending)
    Y[t]   = G[t] + C[t] 
    
    # calculate the tax take
    T[t] = theta * Y[t]
    
    # calculate disposable income
    Y_d[t] = Y[t] - T[t]
    
    # calculate the change in private savings
    H_h[t] = H_h[t-1] + (1-alpha)*Y_d[t-1] 
    
    # calculate the change in government debt
    H_g[t] = H_g[t-1] + T[t]- G[t]

In [115]:
fig = plt.figure(figsize=(12, 8))

consumption_plot = fig.add_subplot(241, xlim=(0, N), ylim=(0, np.max(Y)))
consumption_plot.plot(range(N), C, lw=3)
consumption_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('consumption')

gov_plot = fig.add_subplot(242, xlim=(0, N), ylim=(0, np.max(Y)))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')

income_plot = fig.add_subplot(243, xlim=(0, N), ylim=(0, np.max(Y)))
income_plot.plot(range(N), Y, lw=3)
income_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('income')

savings_plot = fig.add_subplot(244, xlim=(0, N), ylim=(0, np.max(H_h)))
savings_plot.plot(range(N), H_h, lw=3)
savings_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('private savings')

gov_plot = fig.add_subplot(245, xlim=(0, N), ylim=(0, np.max(G)*1.5))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')

tax_plot = fig.add_subplot(246, xlim=(0, N), ylim=(0, np.max(G)*1.5))
tax_plot.plot(range(N), T, lw=3)
tax_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('tax revenue')

deficit_plot = fig.add_subplot(247, xlim=(0, N), ylim=(np.min(T-G)*1.5,0))
deficit_plot.plot(range(N), T-G, lw=3)
deficit_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government budget')

debt_plot = fig.add_subplot(248, xlim=(0, N), ylim=(np.min(H_g)*1.5,0))
debt_plot.plot(range(N), H_g, lw=3)
debt_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government debt')

# space subplots neatly
plt.tight_layout()


Points to note

  1. Total income is greater than in similar model with constant government spending
  2. Government spending ends up larger than in similar, constant spending model
  3. Deficit never closes, since the tax take in each time step is entirely spent in the next plus the fiscal transfer. Fiscal transfer represents the steady-state deficit
  4. Time to steady state is much longer in this model, presumably because it takes a while for government spending to grow

In [61]:
Y[-1]


Out[61]:
124.96442404059118

In [62]:
G[-1]


Out[62]:
29.992588341789833

In [63]:
T[-1]


Out[63]:
24.992884808118237

In [67]:


In [ ]:


In [ ]:

Steady state equations

$$ \begin{array}{lcl} Y^* = C^* + G^* \hspace{1cm} & (8) \\ T^* = \theta Y^* \hspace{1cm} & (9) \\ Y_{d}^* = Y^* - T^* = (1 - \theta) Y^* \hspace{1cm} & (10) \\ C^* = \alpha Y_{d}^* \hspace{1cm} & (11) \\ G^* = G_0 + T^* \hspace{1cm} & (12) \\ \end{array} $$

Solve for $Y^*$ in terms of exogeneous parameters

$$Y^* = C^* + G^*$$$$Y^* = \alpha Y_{d}^* + G_0 + T^*$$$$Y^* = \alpha (1 - \theta) Y^* + G_0 + \theta Y^*$$$$1 = \alpha (1 - \theta) + \frac {G_0}{Y^*} + \theta$$$$\frac {G_0}{Y^*} = 1 - \alpha (1 - \theta) - \theta$$$$ Y^* = \frac {G_0}{1 - \alpha (1 - \theta) - \theta}$$$$ Y^* = \frac {G_0}{1 - \alpha + \alpha \theta - \theta}$$$$ Y^* = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$

Same as yours!

Change of Y with $\theta$

$$ Y^* = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$ Y^* = \frac {G_0}{(1 - \alpha)}(1 - \theta)^{-1}$$

let $u(\theta) = 1 - \theta$

then

$$ Y^* = \frac {G_0}{(1 - \alpha)}u^{-1}$$$$\frac {dY}{d \theta} = \frac {dY}{du} \frac {du}{d \theta}$$$$\frac {dY}{du} = -\frac {G_0}{(1 - \alpha)}u^{-2}$$$$\frac {du}{d \theta} = -1$$$$\frac {dY}{d \theta} = -1 \times \frac {G_0}{(1 - \alpha)}u^{-2} \times -1 $$$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$

Comsumption...

$$$$$$C^* = \alpha (1 - \theta) Y^*$$$$C^* = \frac {\alpha (1 - \theta) G_0}{(1 - \alpha)(1 - \theta)}$$$$C^* = \alpha \frac {G_0}{(1 - \alpha)}$$$$\frac {dC^*}{d \theta} = 0$$

Savings rate...

$$\Delta H_h = (1 - \alpha) Y_{d} $$$$\Delta H_h = (1 - \alpha) (1 - \theta) Y^* $$$$\Delta H_h = (1 - \alpha) (1 - \theta) \frac {G_0}{(1 - \alpha)(1 - \theta)} $$$$\Delta H_h = G_0 $$

In [180]:
(G0*0.05/((1.0-alpha)*(1.0-0.2)**2.0))


Out[180]:
7.812499999999991

In [164]:
alpha*(G0/(1-alpha))


Out[164]:
94.99999999999991

In [206]:
(1-alpha)*(1-0.25)*Y[-1]


Out[206]:
4.9999942383663223

Now try increasing the tax rate halfway through...


In [207]:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline  

N = 500

G0     = 5
alpha = 0.95

C   = np.zeros(N) # consumption
G   = np.zeros(N) # government spending
Y   = np.zeros(N) # income
Y_d = np.zeros(N) # disposable income
T   = np.zeros(N) # tax revenue
H_h = np.zeros(N) # private savings
H_g = np.zeros(N) # government debt



theta = np.zeros(N) # tax rate
theta[0:250] = 0.2
theta[250:] = 0.5


for t in range(0, N):
    
    # calculate consumer spending
    C[t]   = alpha*Y_d[t-1] 
    
    # calculate government spending
    G[t]   = G0 + theta[t]*Y[t-1] 
    
    # calculate total income (consumer spending plus constant government spending)
    Y[t]   = G[t] + C[t] 
    
    # calculate the tax take
    T[t] = theta[t] * Y[t]
    
    # calculate disposable income
    Y_d[t] = Y[t] - T[t]
    
    # calculate the change in private savings
    H_h[t] = H_h[t-1] + (1-alpha)*Y_d[t-1] 
    
    # calculate the change in government debt
    H_g[t] = H_g[t-1] + T[t]- G[t]

In [208]:
fig = plt.figure(figsize=(12, 8))

consumption_plot = fig.add_subplot(241, xlim=(0, N), ylim=(0, np.max(Y)))
consumption_plot.plot(range(N), C, lw=3)
consumption_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('consumption')

gov_plot = fig.add_subplot(242, xlim=(0, N), ylim=(0, np.max(Y)))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')

income_plot = fig.add_subplot(243, xlim=(0, N), ylim=(0, np.max(Y)))
income_plot.plot(range(N), Y, lw=3)
income_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('income')

savings_plot = fig.add_subplot(244, xlim=(0, N), ylim=(0, np.max(H_h)))
savings_plot.plot(range(N), H_h, lw=3)
savings_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('private savings')

gov_plot = fig.add_subplot(245, xlim=(0, N), ylim=(0, np.max(G)*1.5))
gov_plot.plot(range(N), G, lw=3)
gov_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government spending')

tax_plot = fig.add_subplot(246, xlim=(0, N), ylim=(0, np.max(G)*1.5))
tax_plot.plot(range(N), T, lw=3)
tax_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('tax revenue')

deficit_plot = fig.add_subplot(247, xlim=(0, N), ylim=(np.min(T-G)*1.5,0))
deficit_plot.plot(range(N), T-G, lw=3)
deficit_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government budget')

debt_plot = fig.add_subplot(248, xlim=(0, N), ylim=(np.min(H_g)*1.5,0))
debt_plot.plot(range(N), H_g, lw=3)
debt_plot.grid()
# label axes
plt.xlabel('time')
plt.ylabel('government debt')

# space subplots neatly
plt.tight_layout()



In [174]:
Y[-1]


Out[174]:
133.33317968976849

In [175]:
G[-1]


Out[175]:
38.333293425913894

In [176]:
T[-1]


Out[176]:
33.333294922442121

In [177]:
print(C[249])
print(C[250])
print(C[251])
print(C[252])
print(C[-1])


94.9963418574
94.9964881831
93.5122997484
93.5680885078
94.9998862639

In [178]:
print(G[249])
print(G[250])
print(G[251])
print(G[252])
print(G[-1])


29.9990373309
36.2488447971
37.811333245
37.8309082484
38.3332934259

In [205]:
print(Y[249])
print(Y[250])
print(Y[251])
print(Y[252])
print(Y[-1])
print(Y[-1]-Y[249])


124.995379188
131.24533298
131.323632993
131.398996756
133.33317969
8.33780050149

In [203]:
print(H_h[249])
print(H_h[250])
print(H_h[251])
print(H_h[252])
print(H_h[-1])
print(H_h[-1]-H_h[-2])


1125.00462081
1130.00443598
1134.92613597
1139.8507722
2372.91658927
4.99999401389

Note, the income, government spend, and tax take all increase by the same amount. This is consistent with what we said about the balanced budget model - increasing Y, G and T by the same amount implies a change in tax rate.

Is the intuitive explanation as simple as this: saving happens after tax. So when the government taxes at a greater rate, that leaves less to be spent but also less to be saved, and when the government spends the same amount in the next time step, it does not take off the corresponding saved fraction, so more ends up being spent in total. If that is the case, then it is the case that the increase in income arises because the government is spending money which would otherwise be saved. It's not resolved in this model but in reality that would disproportionately come from richer folk probably, since $\alpha$ would be greater for them.


In [ ]: