Category Archives: Economics

Simulating Greed Results – Part 1

So the first round of simulations have been finished and the results have been very interesting. On the one hand, the results are pretty much what you’d expect; greed by one entity affects the entities closest to the greedy one. On the other hand, because this simulation makes it possible to monitor total throughput, it allows us to quantify and measure the impact of greed on the complete system. In other words, this simulation can be thought of as a way to study the impact of greed on the GDP of the system.

In the first round of testing, every farmer tries to turn on the water no more than 3 times a second. The nap() method in BasicBirds get a random value between 10ms and the nap length value for each bird after each time the bird has eaten. This means that “lucky” birds will attempt to turn on the water more frequently because the Java random number generator produced lower nap numbers. Unlucky birds will attempt to turn on the water less frequently, again because the Java random function generated higher nap numbers.

Luckiness also manifests itself in another way. Because each farmer (bird) must successfully get two shared resources, a farmer must be lucky enough to try to turn on the water when neighboring farmers aren’t already using the water. Sometimes trying more frequently just means failing more frequently. In general, however, trying more frequently results in water being turned on more frequently.

So in the first round of testing with all the farmers set up the same way, all of the farmers had pretty similar results. Some failed more than others, some succeeded more than others, but it was always different farmers in each run who succeeded or who failed. The consistent variability of the results provides assurance that ConcX isn’t favoring one farmer over another and biasing the outcomes. Click on the charts below to see the full charts.


Total Failed Attempts and Successful Attempts


Total Amount of Water Delivered by Run


Difference Between Farmers Receiving Most and Receiving Least








Run 1 – Ajia1 Received Most Water


Run 2 – Dave1 Received Most Water


Run 3 – Irma1 Received Most Water







The actual numbers reported in these runs are unimportant. With this first round (3 runs) what’s important is that most of the farmers are receiving similar amounts of water and the differences attributable to luck or chance. This round establishes the baseline that will be used for comparison to later rounds of testing.

In the next round of testing, one of the farmers is changed to try to turn on 3 times more frequently than the other farmers. Which farmer is selected is completely arbitrary; any of the 10 farmers could have been selected and similar results would have been achieved. In these results, Bill1 was selected to be greedy and try more frequently to get water.

The following results show that the number of failed attempts has gone up slightly even though the total number of successful attempts is almost unchanged. The total water delivered is also almost unchanged; it goes up slightly. The biggest change is seen in the Difference chart (Farmers: Max Deliv vs Min Deliv). The Max amount that any one farmer received (Bill1) has gone up while the least amount that any one farmer received (Ajia1 or Cate1) has gone done. Again, be sure to click on the thumbnails below to see the details.


Successes & Failures – 1 Slightly Greedy Farmer


Total Water Delivered – 1 Slightly Greedy Farmer


Differences – 1 Slightly Greedy Farmer







Bill1 is Greedy Farmer – Ajia1 and Cate1 Suffer – Run 1


Bill1 is Greedy Farmer – Ajia1 and Cate1 Suffer – Run 2


Bill1 is Greedy Farmer – Ajia1 and Cate1 Suffer – Run 3







In the next round of testing (3 runs), the greedy farmer becomes even greedier and tries to turn on the water 10 times more frequently than the neighboring farmers. Again, the farmer that was selected was completely arbitrary.


Total Failures & Successes – 1 Greedy Farmer


Total Amount Delivered – 1 Greedy Farmer


Differences Max & Min – 1 Greedy Farmer





Run 1 – Edna1 is Greedy Farmer – Dave1 and Fred1 Suffer


Run 2 – Edna1 is Greedy Farmer – Dave1 and Fred1 Suffer


Run 3 – Edna1 is the Greedy Farmer – Dave1 and Fred1 Suffer









The results of this round of testing are similar to the previous run; the total number of failed attempts have gone up while the total number of successful attempts is about the same. The total amount of water delivered is moving slightly higher. However, the difference between the maximum amount delivered to a farmer (Edna1) has gone significantly from before while the amount of water delivered to the least fortunate farmers (her neighbors Dave1 and Fred1) has dropped significantly.

One lesson that could be taken from these three rounds of testing is that the total amount of water delivered to the whole system doesn’t go up significantly by allowing one farmer to be more greedy. In this example, the gains of one greedy farmer is greater than the losses of the neighboring farmers. The biggest difference from one test to another has been in the “inequality” in the distribution of water; the additional water that the greedy farmer gained has come at the expense of the neighbors.

It is tempting to draw conclusions from these results, that in societies where there are limitations to resources (every society on earth) that the greediness of an individual is frowned upon because it doesn’t significantly increase the overall amount of product while increasing the hardship of others.

But is this always the case? What happens if death is introduced into the system? Followers of Avian Computing know that birds dying from lack of food has been part of the system design from the beginning. In the next rounds of testing, farmers who receive insufficient water are allowed to give up and move away because their crops died because of lack of water. While this seems cruel, it is in keeping with standard economic theory, where producers with a “competitive advantage” succeed while less efficient producers are allowed (or encouraged) to give up making their current product and begin making a new product.

Stay tuned for the next results.

Simulating Greed

One of the unexpected benefits of Avian Computing and ConcX is the relative ease that simulations can be developed. ConcX is based on an asynchronous model with loosely-coupled threads, allowing the threads to dynamically adjust to their environment, the way that individual birds in a flock would dynamically adjust to their real-world situations.

I was remarking to a friend that the Dining Philosophers problem was interesting because it was a dynamic representation resource allocation much discussed and dissected by standard economics. Further, when using ConcX to solve the Dining Philosophers problem, I had noticed that it was possible to give one philosopher “competitive advantages” over the other philosophers. And that was when the Simulating Greed project was born.

Diagram 1. Basic 10 Farmer Setup.

The Simulating Greed project begins by increasing the number of participants and resources. And to make it a little more realistic, the philosophers were changed to Farmers and the resources changed from forks to Faucets. Every Farmer wants to water his crops. To do that, a Farmer must turn on two Faucets, one on each side of their property. See Diagram 1. Each Faucet is shared with the Farmer’s neighbors and can be set to provide water to one Farmer or the other but not both. Each Farmer, when they have control of both Faucets, can also set how long they will receive water.

Varying levels of greed can then simulated by the Farmers by how frequently they try to water their crops and how long they set the water to run. A greedy Farmer will try to water their crops very frequently and will also set the water to run a long time. A less greedy Farmer will try to water less often and for shorter durations.

In this simulation, the assumption is that greedy Farmers always want as much water as they can possibly get. More water is always assumed to be better and there is no limit to the supply of water. In real life, there is an effective limit to how much water a single farmer can use and to the amount of water available.

Another factor in the simulation is whether or not Farmer death is allowed. A Farmer can be configured to never die, regardless of the amount of water they have received, or they can be set to die if they haven’t received water within some configurable time period. This factor can have a significant impact on the results because dead Farmers no longer compete for water. If a Farmer dies early, the neighbors of that Farmer find it easier to get water.

Basic Setup

The Farmers have properties all in a row, with Faucets between each pair of properties. The basic setup has 10 Farmers with 10 Faucets. Each neighboring pair of Farmers have to share the Faucet between them. And to make demand even, the two end neighbors have to share with each other, even though they are furthest apart. See Diagram 1. This setup makes each Faucet a shared resource for 2 Farmers.

Note that Faucet 10 is shared between Ajia1 and Jack 1. There should be a dotted line that runs between these farmers, but there wasn’t any clean way to draw this relationship without cluttering up the image. Instead of the dotted line, Faucet 10 is shown at both the top and bottom of Diagram 1with half of the valve grayed out; you’ll have to use your imagination to draw in the water line between them. Ajia 1 and Jack 1 must share a Faucet to make it a closed and equal system where they both must compete with two other Farmer, just like all the rest.

Advanced Setup


Diagram 2. Setup for 20 Farmers.

The number of Farmers is increased to 20 but the number of Faucets remains unchanged. See diagram 2. This setup makes each Faucet a shared resource for 4 Farmers.

Even More Setups

The number of Farmers is increased to 40 and 80 but the number of Faucets remains unchanged. There is no diagram for these setups because I can’t visualize a configuration of Farmers that would allow the to share the Faucets without moving their farms into satellites in outer space. With 40 Farmers, each Faucet is a shared resource for 8 Farmers. With 80 Farmers, each Faucet is a shared resource for 16 farmers.


Nap times are initially set to 300ms for each Farmer. The length of time they keep the Faucet on is initially 300ms. The amount of water delivered to a Farmer is calculated based on the number of milliseconds the Farmer keeps the water flowing and the number of times the Farmer successfully turns on the water. For example, a Farmer who successfully turns on the water 7 times for 300ms receives 2100 units of water. If the Farmer’s neighbor successfully turns on the water 7 times for 500ms receives 3500 units of water.

Summarizing Results

Each Farmer keeps track of his own results during each simulation run. When the Farmer terminates (either by early death or end of natural life), they write their individual Results to the TupleTree. A Summarizer bird is running during the run and any time a Farmer dies for any reason, the Summarizer eats their Results and adds their stats to the stats for the other users. For example, Ajia1 had 100 units of water delivered and Cate1 had 200 units of water delivered, so the Summarizer records that 300 units of water had been delivered.

When the Summarizer terminates, it writes its Summary info to the TupleTree. When the user selects the TupleTree tab and clicks the Show Tree button, all of the Food items in the tree are listed. The ResultsProcessed Food items contain summaries of the results for individual Farmers. The Summary Food item contains the totals for all Farmers as well as detailed summaries of each bird in it’s Content object. To see the SummaryDetails object contained in the Summary.Contents object, enter a filename in the field at the bottom of the TupleTree tab and the press the Save button. Any object contained in a Contents object will print the values that they hold IF that object implements the toDetailString() method. Otherwise it will print the info generated by that object’s toString() method.

In Conclusion

All together, the new features available in the TupleTree combined with saving the results of the runs provides the ability to analyze how individual Farmers are affected by the greed of their neighboring Farmers. More about those results in the next blog.

Markets, Equilibrium, and

One of the fundamental concepts of Economics over the past 50 years has been market equilibrium. Simply stated, if markets are left to their own, they will naturally balance supply and demand for all products and markets will efficiently determine the prices and amounts of all products. No need for government intervention or price controls; it will all be achieved by the “invisible elbow”* of market competition. In fact, Equilibriumists believe that the government is the force that prevents markets from achieving true equilibrium. If government were only kept from interfering with markets, market equilibrium would be restored to the throne of Shangri-La and riches and profits would stream out of the mountains of commerce to quench the thirst of everyone.

IF THIS IS TRUE, then why do all markets move in the direction of monopolies? Recent history demonstrates this point.

When Bell telephone was broken up into multiple phone companies, reducing the barrier to competition, the number of phone companies exploded. Now, 30 years later, we’re down to 4 or 5 mega-phone companies.

When the US airlines were deregulated, the number of airline companies increased, providing increased competition. Now, 30 years later, the number of airline companies in the US is down to a handful, with a bunch of regional airlines handling the less-profitable scraps. How long until they’re all consolidated into a handful or regional airlines?

When I was first old enough to buy beer, there were about a dozen nationwide beer makers. That number has been reduced to only a few – the latest merger of SAB Miller and AB InBev ensures that 1 in 3 beers purchased in the US will be bought from AB InBev. And when the trend for craft beers runs its course, AB InBev will probably sell 2 out of 3 beers.

It is irrelevant what equations or theories the Equilibriumists produce; the evidence of what actually has happened is quite different from their beliefs. For equilibrium to exist, the number of producers of any product must be large enough to develop a healthy competition. Without competition, markets lose their invisible kneecap* that regulates prices. That is why most economists are against monopolies and oligopolies – they reduce competition among sellers that produces the lowest prices that “the most benefits for society at large.” (Lowest prices producing the most benefits for society is a different subject open for debate.) Instead of moving in the direction of increased competition, markets always move in the direction of consolidating competitors into fewer, larger competitors, despite the efforts of the government to limit the consolidations.

Equilibriumists and conservative economists in general agree that the government shouldn’t be in the business of picking winners and losers in business and that competition should be the sole determinant of said winners and losers, underpinning their beliefs that markets work best when left alone. However, when competition is the sole determinant of winners and losers, the market will always move in the direction of monopolies.

The commonly accepted economic thought is that the winners (or luckiest or most efficient producers, etc) will do better and sell more product and thereby claim increased market share, driving out the less efficient or more obsolete producers. However, this fails to follow the thought to its logical conclusion, that the winners eventually out-produce the majority of their competition, driving out the competition, which leads to oligopolies or monopolies, thereby producing a market for that product that is out of equilibrium because the winners no longer are constrained by competition. They can charge whatever they want.

In other words, free markets always end up destroying free markets.

Consider this: the description of markets always moving in the direction of monopolies is similar to the description of the universe and how stars and planets formed. In this description, the early universe is filled with an almost uniform distribution of atoms and nothing else. The tiny differences in uniformity causes the atoms in slightly more densely populated areas to be pulled together into clumps. Those clumps attract more of the surrounding atoms until they start to form a large body. That large body draws in even more surrounding atoms and the body grows until it is so large that it’s combined gravitation attraction forms the body into a planet or into a stars. Eventually all of the free atoms are absorbed by the planets and the stars.

Market equilibrium is a description of a perfect, ideal state which can never exist for very long, just like the early universe with its (almost perfectly) uniform distribution of atoms. Eventually, without any outside forces or influences, the markets (and atoms) begin to consolidate into larger units. Because the competitors in a market will never be exactly equal, true market equilibrium can exist for only moments because competition and innovation and efficiency and just plain good (or bad) luck will upset the equilibrium and send the market into consolidation and reduction of competition.

Market equilibrium is cloudy economic thinking; it focuses on only one part of the issue (of the cloud) and ignores its effect on other parts of the economy (on the rest of the cloud). For economics to become a useful tool, we have to move beyond wishful thinking and our dreams of ideal perfect worlds that can never exist. We have to accept that markets will twist and turn and change because of innovation and chaos, because of fashions and consumer whims, because of improvements and resistance to change. We have to abandon our (bordering on) religious belief that markets will always right themselves because of equilibrium or that bubbles can’t really exist in a market, or ONLY government interference prevents the proper functioning of markets. W have to accept that markets can, by themselves, run off into a ditch and fail. It is the nature and the essence of the beast called free markets.

*If the “invisible hand” really is invisible, how do they know it’s a hand? An elbow or a buttock are equally valid body parts UNTIL someone actually sees the invisible hand, at which point it is no longer invisible!!!

The Economics Simulation Project – Part 6

So far we have introduced the following entities that will form the baseline of the Economic Simulation:

  • Individuals
  • Consumers
  • Government
  • Vendors
  • Producers

The final entities to the Economic Simulation are all financial entities:

  • Banks
  • Credit Cards
  • Investments (Stocks, Bonds, etc)

Bank entities will begin as savings and loaning organizations. The other aspect of banks will be covered in the Investment entities. Banks will make loans to Individuals, Consumers, Vendors, and Producers and collect installment payments (with interest). Initially, Consumers, Vendors, and Producers will all pay some amount for loans, which, on average, most Consumers, Vendors, and Producers all have.

Credit Cards are usually backed by Banks but because they have such a significant role in the lives of Individuals and Consumers, Credit Card entities will be split out separately. Credit cards also have a much broader distribution than bank loans; approx 40% of Americans households rent instead of having a home mortgage, but approximately 70% to 80% of households have at least 1 credit card, depending on the year selected. Credit cards will be another payment that Consumers will make based on some typical amount for a quintile. However, Individuals will have to make credit card payments based on their individual profiles that will try to estimate their tendency to buy on credit and their tendency to carry a balance on their credit cards. And based on income and other factors, their “credit score” will affect the interest that they pay but typically in the 15% to 30% range.

Investment entities play a significant role in the US economy but in many ways they behave like a separate, parallel economy that is only connected to the mainstream economy at a few points. Some of those intersections are the Bank entities, consumer confidence, and Individuals.

When dealing with Consumers at the quintile level, investments look like savings accounts and 2% interest earned and 7% stock market returns just look like savings with different interest rates. On average, throughout a quintile, some Consumers will save more and some will save less, some Consumers will receive higher interest payments and others will receive less. The investment entitiy doesn’t really affect Consumers.

However, Banks are strongly associated with Investments and Prime Interest rates, etc, so their lending is affected by Investments in general. So changes in Fed policy will affect lending policies and interest payments and more.

Just as importantly, the stock market and bond markets affect (and reflect) consumer confidence. If consumers are feeling nervous, they will put more money into bonds. If consumers are feeling optimistic that everything is getting better, they will put more money into stocks, perhaps even taking out savings to invest heavily in wildly speculative stocks. When the stock market goes up consistently for a while, the “wealth effect” comes into play, making people feel more confident, reducing savings rates and increasing purchases, setting the “virtuous cycle” in motion.

Individuals are affected by their Investments more than Consumers in general. This is intentional as some people are lucky when they invest and others lose everything. Some individuals put their money is steady performers; others invest their money in stocks that might grow significantly or might fail completely. Based on the Individual’s investment profile and how “lucky” the individual is, an Individual may be helped greatly or lose greatly. On average, however, it is expected that most Individuals will have their Investments pay approx 5% year over year.

OK, that’s everything that I can think of for now. I’ll add more as I come across it.

The Economics Simulation Project – Part 5

So far we’ve covered Individuals, Consumers, and the Government entities in the simulation. That leaves Vendors and Producers.

Vendors sell stuff or services to Individuals, Consumers, and to the Government entities. Right now the Vendors reflect the purchases that Individuals and Consumers typically make, based on the standard Basket of Goods and Services defined for the Consumer Price Index (CPI). Using this categorization makes some unrealistic combination of vendors, such as in the Other category, which includes cigarettes and bubblegum and other miscellaneous items. Transportation is another odd Vendor because it represents both Public Transportation and Auto Dealers. These odd combinations are not considered significant at this point in the development of the Economic Simulator, although it is expected that more detailed definitions of Vendors will become part of this project.

Vendors also buy all of their stuff from Producers. If the amount spent on clothing by Individuals and Consumers increases, then the amount of clothes that the Vendor buys from Producers should also go up. If the amount spent on food goes down, then the amount the Vendors buy from Producers should also go down.

Vendors also are employers, which means that as their sales increase, the number of employees will increase, increasing their expenses. The number of employees will be allowed to increase by fractional amounts (.13 employees) because this number represents the overall increase in their specific vendor category. If the demand goes down, the number of employees will also go down.

Producers include raw materials producers, such as miners, wheat growers, and blue jeans makers. They are both employers and sellers of stuff and services to Vendors. Employees are part of their expenses, as are buying or mining or refining materials needed to make their products. When their costs go up, their prices to Vendors go up. When Vendors order more, Producers respond by producing more. More employees are hired when they need to produce more (including fractional amounts); employees are laid off when demand goes down.

Vendors and Producers will also need to have an “Automation” factor that represents the increased productivity of workers due to automation and computerization. For example, the coal mining industry has seen significant reductions in the size of their workforce primarily due to improved coal mining equipment and techniques. For example, “hilltop removal” in West Virginia has applied open pit mining techniques to extract coal, allowing huge earth moving equipment to replace the manual efforts of thousands of coal miners. For another example, large corporations used to have entire floors of accountants tracking all of their income and expenses. These hundreds of accountants have been replaced by a dozen or so accountants working at their computers.

No attempt at this time will be made to try to track the off-shoring of work, sending manufacturing jobs oversees where employments costs are lower. At the current level of analysis, a streamlined job in the US is the same as an off-shored job; both are reductions in the costs to the Producer. Some Producers in one industry will have larger cost reductions than Producers in other industries. Some Producers will be more efficient and will drive out or absorb the less efficient Producers.

All of the churning caused by automation and computerization and mergers and acquisitions and off-shoring among Producers is not going to be captured at this point. In fact, the initial representation of ALL Producers will be a single Producer entity that all Vendors buy from. Since individual consumers account for 70% of GDP, it is more important to capture their activity with some fidelity than to capture every detail of Producers.

As with Government expenses, the reporting needs and curiosity of developers will drive the level of detail applied to the Producers. If the amount of cotton grown for clothing is important, then it will be necessary to estimate how much cotton clothing is sold by Vendors as well as what affects the amount sold (styles, product options, weather, etc). If the trade-offs between renewable energy and fossil-fuel energy need to be simulated, then those Producers and the resources they consume will need to be modeled.

Temporarily, the details of Vendors and Producers will be minimized. As their models are better understood, their models will be improved to produce finer levels of detail.

More next blog

The Economics Simulation Project – Part 4

So far we have described 3 major pieces of the Economics Simulator; Individuals (who suffer the ups and downs of real life), Consumers (who as a quintile buy and work like people do in their quintile), and the Government (who collects taxes and makes expenditures).

As a side note, Consumers don’t pay state taxes or sales taxes. Instead, Consumers just pay lump-sum rolled up taxes. This was required because the members of each quintile are spread across all of the states in the US, making it impossible to correctly apply State taxes because each state has it’s own State taxes – some states have high Income Taxes, some states have no Income taxes. Individuals, however, resolve this issue because every Individual must reside in one State within the US. The Sales taxes and Income taxes applicable for the selected State will then be used whenever the Individual performs some economic activity, such as earn money or buy stuff.

As another side note, Consumers provide the economic framework within which Individuals operate. Consumers are built-in “Sanity Checks” for every economic run. If changes are made that affect both Individuals and Consumers at large, then the economic results should produce reasonable results for both Individuals and Consumers. For example, if a 1% increase were made to the minimum wage, a 100% increase in Consumer spending wouldn’t be expected.

In this way, the Individuals and the Consumers provide off-setting perspectives on the impacts of any changes to economic policy. Policy changes to improve the economic life of a specific Individual might not provide benefits to Consumers in general, or might improve one quintile to the detriment of another quintile.

I just realized that I’m going to have to add “Propensity to Save” to Consumers. The national confidence index, that captures how optimistic people are in general about their economic situation, reflects how people spend and save their money. In recent history, consumer savings has been in the 3% to 5% range, at times dipping negative when consumers as a whole were spending more than the earned and spending every penny and then borrowing more to spend that as well.

At the time of this writing (late 2015), the savings rate is about 6%, indicating that we as a nation are uncertain about what’s going to happen economically in the coming year(s). This increased savings has prevented the extra spending that was expected when the cost of gasoline dropped significantly in 2014-2015, and muting the expected GDP growth.

I just realized that this blog should have been titled “Sidenotes to the Economic Simulation”. Oh well, at least I got these things covered.

More in the next blog

The Economics Simulation Project – Part 3

So to summarize, Individuals will go to work and buy stuff based on their profile and rise and fall in relation to the background of Consumers. Individual Profiles include each Individual’s propensity to spend, propensity to keep up with friends, propensity to buy name brand instead of store brand, propensity to save, propensity to buy on credit, etc.  Consumers buy and sell and work as appropriate for their quintile, the 20% of the US households to which they belong.

In 1985, each quintile was approximately 25 million households or about 125 million households. The average number of people in each household varied by quintile from less than 2 to less than three, which puts us up around 270 million people in the US which is approximately correct for 1985.

Now to make the Economic Simulator in any way valid, the other major components of economic society must be simulated: the Government, Vendors, and Producers.  All three of these categories are both consumers and employers. All three of these will grow or shrink according to the economic situation and their long term plans.

The Government is (initially) the easiest to model. They collect taxes from Individuals and Consumers and purchase from Vendors. They also provide employment in accordance with the actual numbers since 1985. For example, in 1985 there were “X” number of non-military government  employees earning an average of “Y” dollars each. Ideally, these numbers will be further refined as research identifies more accurate accounting of employees, such as the number of GS-3 employees at a typical salary, for a particular year.  A specific goal is to get the total number of non-military government employees for each year so the growth or shrinkage of employees is generally accurate over time.

Since Government employment specifically excluded military, there will also need to be an accounting of the soldiers and other direct hires of the Department of Defense. Expenditures for military support (food, housing, transportation, materiel, etc) will also need to be tracked so that increases or decreases in soldiers and operational readiness because of times of war are not invisibly included into Government expenditures and thereby invalidating any analysis of Government expenditures. For example, ramping up the military for a war would cause increased Government expenditures, but if this were not tracked separately, any wars (economically speaking) would be indistinguishable from increased welfare spending or increased infrastructure spending.

Since government budget and expenses are available for the recent past, these numbers will be used whenever possible. Just like the Consumer Price Index breaks down expenditures into 7 or 8 categories, Government expenditures will similarly be broken down into categories. Perhaps it makes sense to break them down into Discretionary and Mandatory spending, as the budget information is frequently broken out this way. Initially, the spending might be broken out into just Mandatory (Social Security, Medicare, etc) and Discretionary broken out into just Defense and non-Defense spending. And then increase the number of categories as reporting needs and curiosity requires.

More next blog


Economics and Weather Forecasting

While thinking about economic simulations, I couldn’t help but notice their similarities to climate prediction simulations and weather forecasting. They are sensitive to the data used to define their initial situations and they can produce different outcomes even when using the identical initial setups.  This variability of outcomes is required because the real world is NOT exactly deterministic. Sometimes the panther jumps on the baby antelope and the antelope escapes anyway, despite the odds being against that outcome. Sometimes someone is pulled out alive from the rubble two weeks after an earthquake. Sometimes it doesn’t rain on the parade, even though it should have.

This variability is generally accomplished using random numbers that fit some range of expected values. But randomness isn’t enough. The variability should also have a probability associated with the value selected for the range of expected values. Randomness assumes that if you dropped a marble on a plate, the atoms in the marble and in the plate could randomly line up at some point and the marble would fall right thru the plate. Probability says that you’d have to drop the marble a lot of times before their atoms would align well enough that the marble would fall thru the plate.

So any economics simulation should be able to meet these twin requirements of variability and probability. The starting numbers should affect but not determine the final outcome. The final outcomes should be different for the various runs but their outcomes should fit into some range of final outcomes that match a probability curve that makes sense.

For example, an individual might start off in poverty and (rarely) grow to great wealth, but if the simulation shows it happening most of the time, there’s something inherently wrong with the simulation, something that produces an unrealistic outcome. It doesn’t mean that there can’t be circumstances and coincidences that allow for happy outcomes, just that they shouldn’t happen most of the time.

Just like every time a cloud approaches it doesn’t mean that a flood is going to wash out the inhabitants of a valley, valid and useful economic simulations have to be able to produce a range of possible outcomes approximately in proportion to their real world probabilities.

Once we have an economic simulation capable of producing a stable range of probable results, we will be able to change the operating parameters (raise minimum wage or reduce taxes) and study the range of results that are produced. If they produce unexpected results, either our software is wrong or our expectations are wrong.

My suspicion is that it wouldn’t take too long to wring out the errors in the simulation software because of the many sets of eyes with great vested interests in the results. And once the simulation is cleaned up, economics will finally be able to move away from the Farmer’s Almanac version of weather prediction and into a time where the effects of economic policy changes can be predicted with the same level of precision as weather is predicted now.

Consider how much weather prediction has improved in the past 50 years. Weather predictions used to be, “It will probably rain next week” to “we will probably see some light rain starting late next Tuesday and get heavier overnight into Wednesday and will probably be gone by Thursday morning.” Sure, there’s always some variability, such as when the rain starts Tuesday noon instead of late afternoon, or doesn’t start until Wednesday morning, but for the most part they are much more accurate than they ever used to be.

I look forward to when we can expect the same improved accuracy in our predictions of the impacts of changes to economic policy.

The Economics Simulation Project – Part 2

In preceding posts, I complained about the various schools of economics basing their theories on different parts of clouds and complained that there was little empirical evidence to support their theories. All of which led to the Economics Simulation Project using Avian Computing and ConcX instead of using assumptions and math formulas that normally produce the results needed to support their initial assumptions.

Economic simulations based on formulas are generally unsuccessful because formulas are solved one math chunk at a time and the value(s) determined by each chunk is applied to other chunks of the formula, normally in the same order. Each part of the formula is the manifestation of the assumptions of the authors. And if the results don’t match the desired outcomes, the formula is “tweaked” until it produces the desired outcome. But in the course of tweaking to make the desired outcome, they lose their generality and can only answer one set of conditions and assumptions and produce less useful answers for other conditions and assumptions.

Because ConcX was designed to be multi-threaded and to respond asynchronously to inputs, it more naturally models the complex interactions of consumers and vendors encountered in the real world than formulas. Instead of trying to build a formula that describes consumer expenditures, each individual and consumer in the Avian Economic Simulation has a salary that they spend buying the stuff they need to live; food, shelter, clothing, etc. They have a hierarchy of needs so they buy the most important stuff first. They buy goods and services in typical amounts for the various categories that comprise the standard “market basket” identified by the Bureau of Labor Statistics (BLS). Things that they cannot buy are recorded as skipped so that the total amount of unfulfilled economic activity can be estimated.

Initially, only Consumers (Consumer Units) make expenditures. Consumers are representatives of the five income quintiles of American society and have salaries and make expenditures according to their salaries. The sum total of all Consumer purchases is the “C” in the following GDP equation:

Y = C + I + G + (X − M), where Y represents the sum (GDP) of C (consumer expenditures) + I (Investment) + G (Government spending) + Net Exports (Exports – Imports).

When the Consumers for 5 quintiles are configured correctly, the amount of their expenditures should be equal to the “C” amount in the GDP equation. We should be able to verify that this amount correlates to the actual amounts of consumer expenditures for that year in history.

But that isn’t really satisfactory because we know that people have unforseen events in their lives, events that aren’t captured by the quintile Consumers. Eventually, “Individual” consumers will also participate in the simulated economy, individuals who will suffer the ups and downs of living in an economic world. Each Individual may endure difficult life events, such as unemployment, health problems and bad business investments. Each Individual may also have blessings such as getting married and having babies,

Once Individuals are available, the Economic Simulation will be made available on the internet. People will be able to create an Individual who will be configured to make personal buying decisions (Name brand vs store brand, latest most popular vs last year’s model, stylish vs functional) and then see how that Individual performs in the simulated economy. Not only will it be interesting to see who gets rich and who becomes poor, it could also be a useful tool for high school students considering how their current choices could affect their futures.

More in the next blog

The Economics Simulation Project – Part 1


Std Laffer Curve


Equally Valid Possible Laffer Curve

While discussing the pros and cons of the Laffer Curve (at times a bit too loudly), I realized a basic problem with the standard Laffer Curve Diagram as it is normally shown; it has no numbers along the axes, which means that the chart is purely conjectural and any relationship to the actual economy is purely coincidental. And there is no way to prove that the usual shape of the Laffer Curve is more (or less) accurate than the curves shown in the second image or third image. Without hard numbers and actual research being done, there’s no way of determining the shape of the curve and therefore it is impossible to develop a tax policy that optimizes collection of tax revenue. So instead doing research, they did what economists do best, they made assumptions and then threw a lot of fancy math equations and “proved” what they already believed.


Another Potentially Valid Laffer Curve

At which point, it occurred to me that what is really needed is some kind of empirical evidence instead of theoretical conclusions. Economics, as currently practiced, is taught and discussed using basic assumptions that are never tested or proven and many times seemingly unreasonable. In fact, Milton Friedman, the driving force of the Chicago School of Economics that forms the bedrock of the free market beliefs in favor today stated in no uncertain terms that the assumptions used when discussing economics did NOT have to be realistic or applicable to the real world. Apparently economics has triumphed over GIGO (Garbage In, Garbage Out).

If only there was some way to simulate the American economy and get empirical results, instead of theorizing  . . .

Many have worked on simulating economies before, but as best I can tell, they start by turning their assumptions into math equations and when they are finished running their equations, they have “proved” exactly what they assumed in the beginning. Which allows others to make different assumptions into different equations and generate totally different results. It’s not a very satisfying solution.

The EconoSim Project

Which is where the Concurrency Explorer (ConcX) and Avian Computing come in. Instead of trying to build formulas and equations that mimic human behaviors, ConcX birds can be developed that buy stuff and spend money in ways that generally mimic the way that actual consumers and businesses and governments do. So far, Consumer birds have been developed that “earn” salaries and pay expenses (food, clothes, medicines, rent or mortgages, transportation, etc). Because each Consumer has a budget (based on their earnings) and expenses (again based on their earnings), it becomes possible to identify and track where their money is spent over the years. Perhaps more importantly, Consumers also track where they didn’t spend money, making it possible to precisely estimate how much economic activity was subtracted from the GDP.

In addition to Consumer birds, Vendor birds collect the purchase payments that the Consumers make while Government birds collect taxes that they Consumers pay on their income and purchases.

For a typical run, a different Consumer bird is setup to represent each quintile (20%) of American society. Additional Consumers can be setup with any levels of income or expenses desired. The decision to categorize Consumers by quintile is based on the data that is most readily available.

Data Sources

The data for salaries and expenses are based on data collected by the Bureau of Labor Statistics going back to early 1980’s. Additionally, the percentage spent on each category of expense is also available. Income and poverty data from US Census Bureau is also used, as well as reports generated by the Congressional Budget Office (CBO).

There are several reasons for going back only to the early 1980’s. Primarily and most pragmatically, the data prior to the 1980’s is structured significantly differently, requiring a major effort on the part of yours truly to make the early data usable. But there is another reason. Inflation was rampant in the 70’s and early 80’s, disproportionately affecting different categories, making it more difficult to use the data before 1984-ish.

Consumer Expense Categories

Consumer expenses are based on the same representative basket of goods and services purchased by consumers each month used to calculate the Consumer Price Index (CPI). This data is collected monthly by the Bureau of Labor Statistics (BLS) and is publicly available on their website. There are literally thousands of items in the basket whose prices are tracked from month to month in locations all across America. These individual prices are then put into eight major categories:

  • Housing
  • Food and Beverage
  • Apparel
  • Transportation
  • Medical
  • Recreation
  • Education and Communication
  • Other

By following these same categories in the Consumer birds, we are able to leverage the data made available by the BLS as well as significantly reduce the number of assumptions that need to be made to estimate consumer expenses (I know that many of my initial assumptions about expenses were wrong, based on the amounts & percentages provided by the BLS).

Using this publicly available data also ensures that any others who attempt to simulate the economy have a common starting point for their simulations or analyses. Using common data allows other projects analyzing or simulating the economy to make direct, apples to apples, comparisons.

More in the next blog