Globe logo

Principled Societies Project

Empowering Individuals, Organizations, and Communities to Solve Problems That Matter

Steady State Model

The Task

You are an incipient LEDDA that is exploring its long-term economic goals. Your task is to set parameters of this idealized Token Exchange System (TES) steady-state model so that currency flows are in balance and desired targets are achieved. The token is a transparent local electronic currency that circulates among members alongside a national currency (the dollar, in this model). Thus, a TES is a bi-currency system.

More specifically, because a TES is part of a democratic social choice system that uses money as a voting tool, your task is to create a currency circulation that:

Balances at each node. The sum of inflows at each node must (approximately) equal the sum of outflows. A fitness score is produced based on discrepancies, with a perfect score being zero.

Attains a desired income target. The TES incorporates something like a steadily rising minimum wage and guaranteed basic income. Both increase over time to reach the income target. In the steady state, every member family receives at least the target, regardless of work status.

Attains a desired workforce partition. You choose the percentage of the workforce in each of the three types of organizations: nonprofits, Principled Businesses, and standard businesses. Principled Businesses are a special type of socially responsible business unique to the LEDDA framework. Standard businesses are any for-profit that is not a Principled Business.

Attains a desired partition of organization revenue. Member persons directly support organizations in two ways: (1) they purchase goods and services in the local marketplace; and (2) they provide donations and subsidies through the Crowd-Based Financial System (CBFS). Each member decides how his or her mandatory CBFS contributions will be used. These two paths are the main source of local funding for organizations, and you decide what their partition should be. Other, smaller revenue sources include government grants and contracts.

Think of yourself as the driver of a LEDDA, as if it were a car. A car can be steered toward a desired destination. Similarly, you choose how an idealized TES economy will function. The steady-state model illustrates how choices impact conditions in the long term. Note that this model illustrates an abstract view of a LEDDA economy, and it gives you as the driver full control. As such, it has more choices than an actual implementation would require. It is intended as an academic exercise, an early step toward more sophisticated and functional models.

Model Overview

Flows in the model resemble flows in a national accounts diagram, an example of which is shown in Figure 1. Here, however, flows are for a US county, not a nation. Starting income distributions are synthetic, based on 2011 census microdata for Lane County, Oregon [2].

Components of GDP

Figure 1: Compartments and flows in national accounts [1]

An agent-based simulation model [2] illustrates how conditions can change year to year in an idealized TES. The five primary compartments of that model are shown in Figure 2. The same general layout is used here, only they are subdivided further into 20 nodes, as shown in Figure 3.

more info

simulation objects

Figure 2: Compartments and flows in agent-based model [2]. Dollar-only flows are in dotted green. Token and dollar flows are in solid blue.

steady-state summary

Figure 3: Compartments and flows in 20-node steady-state model. Dollar-only flows are in dotted green. Token and dollar flows are in solid blue.

Whereas agent-based models can illustrate paths of change from initial conditions, the simpler steady-state model illustrates conditions in the long-term, once targets are achieved and the system is in (dynamic) equilibrium (perhaps 15-30 years after initiation). The steady-state model is not intended to be predictive or to capture all or even most salient characteristics of a real economy. Rather, it provides an abstracted, compartmental view of local currency circulation, and serves as a steppingstone toward future, more sophisticated models.

A take-home message is that members choose the long-term makeup of their LEDDA economy. They steer it, not the other way around. They choose income targets, how the workforce is partitioned, and how organizations are funded. As an example, one run of the agent-based model illustrated how a community could use the LEDDA to employ ~50% of the local workforce in the nonprofit sector [3].

How to Run the Simulation

To run the simulation choose values for starting conditions, then values for fixed/flexible variables. Finally, press the "run" button. You might want to press the "run" button once using the default values to see a possibility of how flows can balance.

Several enhancements are planned for the future:

  • Inputs to the model will be simplified. The end goal is to present choices on a few key targets (like the income target and workforce partition) and then have the model optimize all other variables to discover ways that the desired targets can be achieved.
  • As a first step, users will soon be able to choose an optimization algorithm, as well as choose which variables are fixed and which are flexible and subject to optimization.
  • Users will be able to automatically repopulate values for the flexible variables based on the results of an optimization run.
  • To allow sharing of results, variable sets that produce best fitness scores will be saved in a database for user recall.
  • Various other enhancements will occur to this page and to the results page to make variable selection easier and the meaning of variables and results more interpretable. If you have suggestions on how we can improve these pages, let us know. Better yet, contribute to the coding project on Github.

A spreadsheet listing model variables and default settings is available for download. See the glossary for abbreviations and definition of terms.

more info

How it Works

In the simple world of this model, the population is comprised of two-adult families and demographics and the economy are held at a static snapshot except for the direct impacts of the LEDDA (based on your choices). Thus, for example, the population does not grow or age. Also, the incomes of families that do not become members do not change. They remain equal to starting incomes, which are generated based on US Census data [2]. The starting workforce partition is generated using US labor data. Further, there is no inflation, and the purchasing power of a token is equal to that of the dollar.

Once the run button is pressed, a sequence of steps solves for the flows at each node. Briefly, you have specified starting conditions and family income target, token share of income (TSI), and workforce partition. From these alone, many things are known. The starting income distribution is known. The final size of the membership is also known. Suppose that you choose a income target equal to the 90th percentile of starting incomes, say, $100,000. Then 90% of local families will join the LEDDA because doing so increases their income. If you choose an income target equal to the 80th percentile of starting incomes, then 80% of families will join the LEDDA, and so on. In this simple model, families join if doing so increases their income. Because final incomes are known, and the TSI and workforce partition is known, the wages paid by each type of organization, in tokens and dollars, are also known.

You have also specified CBFS earmarks, so the amount of CBFS contributions that members make, in tokens and dollars, is known. The tax rate, amount of government support for the unemployed and NIWF, and donation rate to nonprofits is set by default. From these, the volume of person spending to organizations can be calculated. Persons receive income (from wages, government support, and CBFS nurture support), make CBFS contributions, pay taxes, make donations to nonprofits, and then any remaining currency is spent at organizations. Thus, all (dollar) flows for nonmember person nodes will balance automatically and the fitness for these nodes will be zero (except for rounding errors and similar issues). Fitness of a node is calculated as the absolute value of inflows-outflows, summed over dollars and tokens. The fitness for member person nodes might not be zero. Total (T&D) flows will (nearly) balance for all person nodes, but because the selected TSI might be other than optimal, fitness for tokens separately and/or dollars separately might not be zero.

Flows will automatically balance for the donation, subsidy, and grant arms of the CBFS, and so their fitness scores will be zero (except for rounding errors and similar issues). These CBFS arms spend all their revenue on organizations. The Government node receives taxes (in dollars), spends some fixed amount of money to support local organizations, provides some support to unemployed and NIWF persons, at a default rate, and then spends all the rest of its revenue on the Rest-of-Counties node (that is, outside of the LEDDA county). Thus, the fitness of the Government node will be zero (except for rounding errors and similar issues). Finally, the Rest-of-Counties node spends its excess at organizations, which are taken in sequence, each one taking only what it needs to fill a deficit.

In summary, flows are solved sequentially; once one flow is solved, it is used to solve the flows at other nodes. A fitness score is produced for each node and a grand fitness is calculated as the sum of fitness over all nodes. A perfect score is zero.

Choices for Starting Conditions

In this section, choose values for starting conditions. Use the dials or type in values in center of a dial. Refresh the page to obtain default values.

Adult Population
Initial Unemployment Rate (%)
Family income target, post-CBFS T&D
Token share of income, TSI (%):

The higher the family income target, the larger the volume of dollars and tokens required in local circulation. A LEDDA adjusts the volume of currency in local circulation in two ways: (1) by creating or destroying tokens, by fiat; and (2) by adjusting its trade balance (in dollars) with the Rest-of-Counties node. The latter can be thought of as a sophisticated make-local, buy-local program. In this steady-state model, a LEDDA can only draw in as many dollars as the Rest-of-Counties node has in excess.

A good family income target and token share of income might be such that the dollar income of member families is equal to the national average, and the token share of income is high enough to expand the membership to a desired percentage of the local population. An example is a dollar income of about $80,000 per family (the national average) and a TSI of about 35%. With these values the post-CBFS family income of members is 80,000/(1-0.35)= 123,000 T&D. An income target of about 110,000 T&D was used in the agent-based model, which was equivalent to the 90th percentile of starting incomes for the population studied [2]. Thus, in that simulation, 90% of the local population eventually joined the LEDDA.

If the dollar portion of the family income target is chosen to be equal to the national average dollar income, then the LEDDA would be acting to evenly redistribute income; its members would receive an equal share of the national income pie. A lower family income target can be chosen. Whatever value is chosen will determine, along with the TSI, the percent of the population that joins the LEDDA.


Note that because taxes must be paid in dollars, too high of a TSI can cause problems. Also, in practice, the volume of tokens cannot be any larger than can be beneficially used. Too high of a TSI and token volume could lead to inflation of the token, which by design is intended to be inflation-free.

Workforce Partition

The sum of workforce partition values is 100%. This partition refers to the LEDDA workforce, not the total local workforce. If the LEDDA membership rate is high (90% of the local population, for example), then the LEDDA workforce partition will be similar to the total workforce partition.

Standard Business (%)
Nonprofit (%)
Principled Business (%)

Choices for Fixed/Flexible Variables

In this section, choose values for fixed/flexible variables. Use the dials or type in values in center of a dial. Refresh the page to obtain default values. Currently, all variables in this section are fixed, meaning that they are not subject to optimization during a run. As already noted, the ability to optimize flexible variables will be coming soon.

CBFS Earmarks

Earmarks refer to the percent of gross (pre-CBFS, pre-tax) income that will be contributed to the CBFS. The family income target is equal to the gross income target minus CBFS contributions. The total of all four earmarks (one for each arm of the CBFS) will sum to something less than 100%. If the sum is 65%, for example, then gross family income would be 1/(1-0.65) = 2.86 times higher than the (post-CBFS) family income target.

Values in the Token Share column should be roughly similar. That is, each arm of the CBFS should receive roughly similar token/T&D ratios. Further, token share values should be roughly similar in magnitude to the TSI. When optimization is added as run option, lower and upper bounds for these token shares can be set.

Earmark Type

Earmark Value (%)

Token Share (%)

Subsidy, SB
Donation, NP
Subsidy, PB

Person Spending, Percent

In this section you can set where persons spend their discretionary income. Columns in the table exist for nonmembers and members. Each group can spend their income in any one of the five types of local organizations. The percentages in each column will sum to 100% of discretionary income, which is defined as gross income minus taxes minus CBFS contributions minus regular dollar donations to nonprofits.

It might be that member and nonmember persons support different organizations to a different degree. For example, perhaps members would tend to support member organizations. Further, perhaps most of the spending goes to for-profit organizations (Principled Businesses and standard businsesses), whereas nonprofits might receive more of their revenue from CBFS donations. Keep in mind that many nonprofits do receive some revenue from the sale of products and services.

Organization Type

Person Nonmember (%)

Person Member (%)

Member, SB
Member, NP
Member, PB
Nonmember SB
Nonmember NP

Person Spending, Token Share

In this section you can set the token share of spending by member persons to different member organizations. Nonmember persons and nonmember organizations do not receive tokens. Token Share values for all member organizations should be roughly similar. That is, each should receive roughly similar token/T&D ratios. Further, token share values should be roughly similar in magnitude to the TSI. When optimization is added as run option, lower and upper bounds for these token shares can be set.

Person Member

Member, SB
Member, NP
Member, PB

Run Model

In this section you can choose run options and run the model. The upper and lower bounds for token shares pertain to optimization runs and are currently disabled. They will be enabled when optimization is added as a run option.

Token Share Group

Lower Bound (%)

Upper Bound (%)

All Earmarks
All Member Person Spending

Optimization currently disabled.

Optimization using L-BFGS-B algorithm
Optimization using genetic algorithm
Use random initialization for optimization


1. Russell Cooper, A. Andrew John. Theory and Applications of Macroeconomics. Creative Commons version; unspecified date. link

2. Boik JC. First Micro-Simulation Model of a LEDDA Community Currency-Dollar Economy. International Journal of Community Currency Research; 2015. link

3. Boik JC. LEDDA Framework: Innovation for Thriving, Resilient Communities. Poster for De Lang Conference X: Humans Machines and the Future of Work. Rice University; 2016. link

Fractal globe image by Fdecomite