Test Bed Project

[From Bill Powers (2004.01.15.1314 MST)]

Some preliminary moves concerning the Test Bed. I'll pretend that I haven't
circulated a model already and start from scratch.

The original model had just two nonliving entities in it: a plant and a
household. These could be multiple, but for the moment I'll treat them as

The plant is the physical system that produces goods (or services, but I'll
just say goods). To produce them, it pays workers to operate the capital
equipment or in general to do the production at a certain productivity
(goods per worker-day). It sells the goods at a certain price per good.

The goods reside in an inVentory, and the money received for the goods
resides in a Reserve. V is for inVentory, R is for Reserve. I don't know
what technical meanings already exist for these words, but we can make
suitable changes later if there's too much conflict.

If there are N workers working at productivity E (for efficiency) goods per
worker-day, inventory will increase at a rate N*E goods per day due to
production. At the same time, goods are being sold at a rate of G goods per
day, and some fraction of the inVentory depreciates or becomes unsaleable
at the rate Dp*V goods per day, so the net rate of change of inventory is

dV/dt = N*E - G - Dp*V

The goods sell at a price P, and so the monetary Reserve increases at the
rate G*P. At the same time, the workers who make the goods are paid at the
rate N*W, which subtracts from the Reserve. Money is paid to recipients of
capital income, which we can express as a multiplier times the rate at
which wages are paid, or Kk*N*W. And other money is earmarked for
investment at the rate I dollars per day. All this gives the differential
equation for the Reserve:

dR/dt = G*P - N*W*(1+Kk) - I

Both equations should, or course, be marked Version 1. They will be
modified as more details are added to the model. For example, we might want
to distinguish between money paid as daily wages to production workers, and
money paid as salary to managers, these then becoming separate costs of
production. Also, we might want to express productivity E as a function of
the amount of physical machinery times some depreciation factor per unit
time, so that Investment money would have to be spent to maintain
productivity at a given level. We could make maintenance more expensive
when the machines are used than when they are left idle. The money spent
would be paid to maintenance workers or, with multiple plants, other
plants. Eventually, these equations will become quite complex.

Note that these equations convert into step-wise integrations if we treat
the differentials as small increments:

(1) Vp := Vp + (N*E - G - Dp*Vp)*dt (plant inVentory)

(2) Rp := Rp + (G*P - N*W*(1+Kk) - I)*dt (plant Reserve)

   where := is the replacement operator of Pascal or Smalltalk: the new
value of V is on the left, and the old value of V is on the right, for
example. This saves the bother of assigning time indexes to every
variable.The multiplier dt now represents the time interval represented by
one iteration of the simulation we are building. If all rates are in units
per day, dt might be 1/1000 day.

Note that V and R now have an identifier p attached to them: this is the
Plant inventory and the Plant reserve that we are talking about here.

Leaving the plant, we turn to the household.

The household represents the physical system operated by consumers. It has
an inVentory of goods, Vh, and a Reserve of money, Rh.

The household inVentory of goods increases when goods are purchased, and
decreases when goods are used up (or deteriorate unused). The rate of
increase of household inVentory is G, and the rate of decrease is U + Dh*Vh
-- the rate of usage plus the rate of depreciation. So

dVh/dt = G - U - Dh*Vh

The household monetary Reserve, Rh, changes positively as wages are earned,
and negatively as goods are purchased. If N represents the number of
workers available to earn wages at the prevailing wage W, then the
household income is N*W. Thus the differential equation for household
monetary Reserves is

dRh/dt = N*W - G*P
    where P is the price paid per good.

Converting to program format we have

(3) Vh := Vh + (G - U - Dd*Vh)*dt (household inVentory)

(4) Rh := Rh + (N*W - G*P)*dt (household Reserve)

Equations 1, 2, 3, and 4 would be executed during one iteration of the
simulation, meaning that they are treated as occurring at the same time.
Transactions are specified by the fact that G*P is represented in equation
2 positively as plant income, and in equation 4 negatively as a household
expense. G occurs with a negative sign in equation 1, representing a
reduction of inventory of goods, and with a positive sign in equation 3,
representing an increase of inventory. So when these four program steps are
executed, a transaction involving goods and money has occurred.

These equations do NOT pin down price P, rate of purchase of goods G, rate
of use of goods U, number of workers N, or rate of saving for investment I.
Also, the value of Kk, which determines the ratio of capital distributions
to wages, is not pinned down, These variables and factors will be adjusted
by the human agents who operate the household and the plant. The
depreciation constants can be set arbitrarily to reasonable values. When
the model becomes more complex there will be other variables and factors,
such as interest rates, that will also appear in the equations but will
remain unspecified, being decided by the human agents who are not yet
anywhere in the model. Even Wages, W, may be decided by bargaining between
human agents in later versions; for now W is a constant.

Without any human agents in it, this model represents the passive
environment with inherent laws, like physical laws. Taking money from one
reserve decreases that reserve and necessarily increases the other reserve.
A sale reducing plant inventory necessarily increases household inventory.
Those are like the conservation laws of physics. There is no psychology in
the above four equations; just rules expressing the properties of this

If we add another entity, such as a bank, we will have similar equations
for it: it will have an inventory (of money for loans) and a Reserve (its
own money for operating as a business -- not the capital reserve required
by law). If others use its reserve of lending money, they will pay for it,
and the bank will pay workers for performing its services, and will also
distribute capital income to non-wage recipients (including whoever
receives what is called "profit").

As we build this test bed it will probably become necessary to make each
entity into multiple entities. Instead of one household and plant, many.
Instead of one good per plant, many at different prices, and for each
household, a variety of goods obtained from many plants. How far we must
take this multiplicity remains to be determined.

In the end, we will have a system made of many households and many plants,
with goods and services being sold at different prices and being supplied
by more than one plant each, and quite likely being purchased by plants,
too. We may want to add a Government, or at least a not-for-profit sector
that does not make any capital distributions (i.e., no profit). There will
be no human agents in this system: the households and plants will be empty
of life.

Life will appear when we populate this environment with consumers and
managers and owners and dependents. In a PCT economic model, all of these
agents will be hierarchies of control systems, each controlling multiple
variables as dictated by personal or corporate needs and wants. They will
supply the reason that anything is bought or sold, or any work is done, or
any policies are effected. What makes this Test Bed into a model of an
economy is the addition of the living controllers who operate the system.

I hope this gives the basic idea of the Test Bed. I'll be back late next
Tuesday (20th) and will read mail the 21st, if I haven't been able to do so
during the trip. I may have time to read comments today, but not
necessarily to reply today.


Bill P.