class Government(Agent):
self.breed = "Government"
# Has power to issue a tax obligation in its unit of account (money).
# 1. Liability side: Governmenet decides on the services it requires.
government_agent.Gd -= stimulus_amount # Services paid for in the money required to satisfy tax obligation.
producer_agent.Gs += stimulus_amount # Money split equally between producer agents in model.
# 2. Asset side: A record of money returned to the government agent by consumer agents.
government_agent.Td
class Producer(Agent):
self.breed = "Producer"
# Government agent supplied. (Quadruple accounting system (Copeland)).
producer_agent.Gs -= government_agent_supplied # 1
producer_agent.W_Nd += government_agent_supplied # 2
producer_agent.W_Nd -= government_agent_supplied # 3
consumer_agent.W_Ns += government_agent_supplied # 4
# Consumer agent supplied. (Quadruple accounting system (Copeland)).
producer_agent.Cs -= consumer_agent_supplied # 1
producer_agent.W_Nd += consumer_agent_supplied # 2
producer_agent.W_Nd -= consumer_agent_supplied # 3
consumer_agent.W_Ns += consumer_agent_supplied # 4
class Consumer(Agent):
self.breed = "Consumer"
# *** A note on ABMSIM tax payment and how it differs from G&L's Model SIM. *** An ABMSIM model run test with one producer agent and one consumer agent. In the first period the producer will employ and pay a consumer 20 units of cash (government stimulus). The consumer is then forced to pay taxes on 20% of that, that is, it has to pay 4 units in taxes. A consumer will then purchase services from a producer using 60% of the remaining 16 units, that is, 9.6 units, while the rest, 40% of the 16 units, will be put aside to accumulate wealth in the form of cash balances. But the 9.6 units of consumption now generate production and an income equal to 9.6 units. Out of this income, more tax will be paid, more cash will be accumulated (Monetary Econ, p69).
# In the 'expected income' system described by G&L (Monetary Econ, p81), ModelSIM total tax within the same (first) period of economic activity equals 5.92 units (20% of 20 units plus 20% of 9.6 units). Within the ABMSIM test, total first period tax equals 4 units (20% of 20 units). The additional 1.92 units not paid in tax in the first period increases income consumption spending by the exact same amount in the same period. In the second period, the 1.92 units are to be found within the wage supplied to the consumer agent, that is then subject to 20% tax.
# Over time, the amount of tax paid to the government within ABMSIM equalises with that of the G&L 'expected income' ModelSIM and a steady state is achieved. ABMSIM may contain many consumer and producer agents. Tax is paid from the wages supplied to employed consumer agents, not at all from the equity consumption spending of consumer agents that may be unemployed within the period.
# 1. Calculate and pay taxes to the government agent.
tax_to_pay = taxToPay(wage, tax_rate)
# Quadruple accounting system (Copeland)
consumer_agent.W_Ns -= tax_to_pay # 1
consumer_agent.Ts += tax_to_pay # 2
consumer_agent.Ts -= tax_to_pay # 3
government_agent.Td += tax_to_pay # 4
# 2. Purchase services from a producer agent and accumulate cash wealth (equity).
total_consumption = income_consumption + equity_consumption
# Quadruple accounting system (Copeland)
consumer_agent.W_Ns -= total_consumption # 1
consumer_agent.Cd += total_consumption # 2
consumer_agent.Cd -= total_consumption # 3
producer_agent.Cs += total_consumption # 4