There are a variety of ways in which fiscal policy can be implemented and the options open to governments differ, depending particularly on whether the government creates and controls it's own currency or not. Here we'll go for the simplest approach we can, and assume that our government has no currency issuing powers. That places our government in the category which includes most local and regional governments, state governments within federated systems, and even the national governments of the Eurozone. But we'll add one more constraint, for now at least: our government cannot borrow money, as real governments often can (we'll deal with that later on). Our government is therefore reduced to collecting tax and spending the proceeds.

A digression: stock-flow consistency

Our model is going to become more complex with the introduction of government. A useful technique for navigating this complexity is to complile a table of all the flows which occur in the model economy. The columns in the table will represent the various sectors in the model economy and the rows will represent particularly types of flows. The trick is to ensure that all of the rows and all of the columns sum to zero - in this way we keep track of all quantities and guarantee that nothing goes missing. This condition is called stock-flow consistency.

In order to handle the accounting of our economy, it is useful at this stage to conceptualise the private sector as comprising a household sector and a production sector. This enables us to characterise the flows of spending and income as occuring between two sectors in the form of purchases of produced goods or services and the payment of wages. For example, our last model can be represented in the following way:

households production $\Sigma$
consumer spending $-C$ $+C$ $0$
wages $+Y$ $-Y$ $0$
$\Sigma$ 0 0

Consumption spending ($C$) is represented as a debit to the household sector and a credit to the production sector, and income ($Y$) flows from the production sector to households, i.e. as wages. Notice that each row sums to zero. This simply arises from the fact that each flow of money can be viewed from two equal and opposite perspectives (e.g. the supplier and the recipient) which balance one another. Notice that each column also sums to zero, although it is a bit less obvious why that should be so. But the point of working with a table like this is to question our assumptions and the structure of our model and ensure there are no holes in the implementation.

Columns represent the accounts of individual sectors and describe the inflows and outflows that arise for that sector according to the different operations in which they engage. If we can account for all of the inflows and outflows and find that they sum to zero this tells us that there are no leakages in our model. Bearing this in mind, let's consider what the household column in the table above is telling us, as is:

$$Y - C = 0$$

or:

$$C = Y$$

So at present, the table is implying that household consumption is exacly equal to household income. In other words, this scenario is identical to that in our first model, in which households simply spend all of their income. But in the last model, our citizens also saved some of their income and so the condition $C = Y$ is not valid. This is a clue that our table is incomplete. In the savings model income was used to fund two things, consumption and savings. The amount saved at any given point in time was labelled $\Delta H$, representing the change in savings. We can write this situation as:

$$Y = C + \Delta H$$

This is now a correct statement about the last model: consumption plus the change in accumulated savings is equal to income. We have accounted for every inflow to ($Y$) and outflow out of ($C$, $\Delta H$) the household account and found that they match. Every outflow is funded by an equivalent inflow. Or, put another way, every pound that comes in is put to use in some way that we can define and label. Saving might not seem like a "use" of money - perhaps the opposite of using money - but for the purposes of keeping the accounting in our model watertight we track it. Rearranging the last equation, we get:

$$Y - C - \Delta H = 0$$

We can redraw out table:

households production source of funds $\Sigma$
money issuance $+M_0$ $-M_0$ $0$
consumer spending $-C$ $+C$ $0$
wages $+Y$ $-Y$ $0$
change in savings $-\Delta H$ $+\Delta H$ $0$
$\Sigma$ $0$ $0$
households production monetary authority balancing item $\Sigma$
initial monetary endowment $+M_0$ $-M_0$ $0$
consumer spending $-C$ $+C$ $0$
wages $+Y$ $-Y$ $0$
change in cash balances $-\Delta H$ $ +M_0$ $-\frac {1}{V}\Delta Y$ $0$
$\Sigma$ $0$ $0$ $0$
$$M_0 - H - \frac {Y}{V}= 0 $$$$ H = M_0 - \frac {1}{V}Y $$

If $V = 1$:

$$ H = M_0 - Y $$$$\frac {dH}{dY} = -\frac {1}{V} = -1$$$$Y = VM_0 - VH$$$$\frac {dY}{dH} = -V = -1$$$$M - \Delta H - \frac {Y}{V}= 0 $$
households production bank balancing item $\Sigma$
consumer spending $-C$ $+C$ $0$
wages $+Y$ $-Y$ $0$
loans $+\Delta L$ $-\Delta L$ $0$
change in cash held $-\Delta M_h$ $ +\Delta M_h$ $0$
$\Sigma$ $0$ $0$ $0$

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

Y = np.arange(1, 100)
M_0 = 100
V = 100
H = M_0 - (1/V)*Y

plt.plot(Y,H)


Out[1]:
[<matplotlib.lines.Line2D at 0x7f6c161bfed0>]

A first model with government

We'll start off with the same basic framework as used in the last model. Recall that in the last model the population could save as well as spend. We defined two "propensities" which described their spending and saving behaviour: the propensity to spend out of income and the propensity to spend out of savings (or wealth). Recall also that these two values determined how much wealth the population ultimately held relative to aggregate income. Here, we'll start off by assuming that no saving occurs - simply by setting these propensity variables to the appropriate values. This enables us understand the effect of adding government taxation and spending to the model without the added complication of savings. Once we've established a base model including government we'll pull a few levers and experiment with some different scenarios, including private saving.

The two new features in this model will be government spending and taxation. Since our government has no currency issuing or borrowing powers it can only spend once it has raised the funds by collecting taxes. Taxation will be levied on our private citizens as a proportion of their income, i.e. an income tax. We can defined tax revenue, $T$, therefore, as:

$$T = \theta Y$$

where $\theta$ is the tax rate ($0 < T < 1$); $Y$, as before, is the aggregate income of the economy. Our government has a very simple fiscal policy, for now. Whatever it collects in taxes, it spends back into the economy in the provision of services for the society.


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

N = 200

theta = np.zeros(N) # tax rate
theta[0:100] = 0.0
theta[100:] = 0.25

alpha_y = 1.0
alpha_h = 1.0

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_g = np.zeros(N) # government debt
H_h = np.zeros(N) # private wealth

C[0] = 33.33
Y[0] = 33.33
Y_d[0] = 33.33
H_h[0] = 66.66

for t in range(1, N):
    
    # calculate consumer spending
    C[t]   = alpha_y*Y_d[t-1] + alpha_h*H_h[t-1] 
    
    # calculate government spending
    G[t]   = 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 government debt
    H_g[t] = H_g[t-1] + T[t]- G[t]
    
    H_h[t] = H_h[t-1] +(1-alpha_y)*Y_d[t-1] - alpha_h*H_h[t-1]

In [3]:
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')



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,np.max(T-G)*1.5))
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,np.max(H_g)*1.5))
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 [29]:
H_g


Out[29]:
array([  0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,   0.    ,   0.    ,
         0.    ,   0.    ,   0.    ,   0.    ,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975,  24.9975,  24.9975,  24.9975,  24.9975,
        24.9975,  24.9975])

simplest model just recycles spending - no aggregate impact

increasing tax rate grows economy - as long as there are savings

attempting surplus is self-defeating - budget adjusts (paradox of thrift). Surplus clearly not a viable long-term goal.Perhaps occasions when surplus useful.

Government literally can't run deficit (unless borrowing allowed)


In [ ]: