$$ \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 [1]:
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 + T[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 [2]:
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^* = \frac {\alpha G_0}{(1 - \alpha)}$$$$\frac {dC^*}{d \theta} = 0$$

Disposable income...

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

Government spending...

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

Use product rule

$$f(\theta) = \theta$$$$\frac {df}{d \theta} = 1$$$$g(\theta) = \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$\frac {dg}{d \theta} =\frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$$$\frac {dG^*}{d \theta} = f \frac{dg}{d \theta} + \frac {df}{d \theta}g$$$$\frac {dG^*}{d \theta} = \theta \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} + 1 \times \frac {G_0}{(1 - \alpha)(1 - \theta)}$$$$\frac {dG^*}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)}\Big (\frac {\theta}{1 - \theta} + 1 \Big)$$

but

$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}} $$$$\frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)} \Big (\frac {1}{1 - \theta} \Big) $$

since

$$\Big (\frac {1}{1 - \theta} \Big) = \Big (\frac {\theta}{1 - \theta} + 1 \Big)$$

then

$$\frac {dG^*}{d \theta} = \frac {dY}{d \theta} = \frac {G_0}{(1 - \alpha)(1 - \theta)^{2}}$$

In [235]:
(G0/((1-alpha)*(1-0.2)))*((0.2/(1-0.2))+1)*0.05


Out[235]:
7.812499999999993

In [255]:
val = 0.5
print(1/(1-val))
print((val/(1-val))+1)


2.0
2.0

Savings rate...

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

In [280]:
((G0/((1.0-alpha)*(1.0-0.25)))-(G0/((1.0-alpha)*(1.0-0.2))))


Out[280]:
8.333333333333343

In [279]:
(G0/((1.0-alpha)*(1.0-0.2)**2))*0.05


Out[279]:
7.812499999999992

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 [3]:
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.25


for t in range(0, N):
    
    # calculate consumer spending
    C[t]   = alpha*Y_d[t-1] 
    
    # calculate government spending
    G[t]   = G0 + T[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 [4]:
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 [268]:
Y[-1]


Out[268]:
133.33271980633023

In [269]:
G[-1]


Out[269]:
38.333173975670192

In [270]:
T[-1]


Out[270]:
33.333179951582558

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


94.9963418574
94.9964881831
89.0593393648
89.2821141386
94.9995458307

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


29.9990373309
29.9990758377
36.2488910052
36.3270575925
38.3331739757

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


124.995379188
124.995564021
125.30823037
125.609171731
133.332719806
8.33734061805

In [274]:
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.69176963
1139.39082827
2366.66728019
4.99997609635

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 [ ]: