Economic Networks

A series of posts about those things. Oldest posts first.

This is the third in a series of posts about how to visualize economic networks. After this post, I'll write another comparing those three techniques.

The Social Economy Canvas is a European Community project. Seems to be lots of projects funded by grants from the European Community that are aimed at a better economic system. They must not like the one they got now very much.

The Social Economy Canvas was introduced to the Holo-REA project by Alessandro Rancati.

Alessandro helped to apply the canvas to a Holo-REA user network that was previously used as an example in the Resource Flow diagram blog post. At that time, the network was called Holo-Food, although I think they have renamed themselves to something like Holo-Agriculture.

So here's the Holo-Food canvas.

Holo-Food canvas

To explore the diagram, scroll down on that page (the hyperlink above the picture) until you see it, hover over the picture, and click the Full Screen button, and then Zoom In (it's huge).

The Social Economy Canvas is complex, and really needed Alessandro to guide the Holo-Food crew through the creation of that diagram. But they thought they learned a lot about their project through that exercise.

And the Canvas has some features not found in the previous visual languages in this series.

For example, notice the lightning bolt in this detail screenprint:

Holo-Food canvas detail

It signals that taking food wastes to the biodigestor eliminates traditional waste removal and dumping. The dump fees go instead to the biodigestor, helping to finance its operation.

Note also the different colors. Each has a meaning. An orange arrow suggests unsustainable practices.

The canvas also gets into functional details, like this section about information for seed guardians:

seed info detail

That's as much detail as I will get into in this blog post, but the Canvas website has a lot more:

As you can see from those tutorials, the Canvas provides a lot of documentation and procedures for thinking through all the details of an economic network, which should be particularly useful for a new network that wants to form, but also useful for an existing network that wants to explain itself to itself and others better.

And here's a video showing the Holo-Food crew exploring their diagram:

Next post: comparing resource flow diagrams, commons vs capitalism diagrams, and the Social Economic Canvas.

This post will compare the different visual languages presented in the previous posts:

ResourceFlow diagrams


  • Fairly easy: most people we've seen can read them and also create them for their own processes.
  • Fractal: a diagram at one level can be decomposed into its details or aggregated into a higher level diagram, and all of the levels can be precisely related by input and output resource flows.
  • Mathematical (if you need): Category Theorists have rules and code to create, compose (from components), decompose (into components), connect, and analyze them.


  • Some of the other visual languages provide more guidance about good and bad economic network practices. Resource flow diagrams can be used for capitalist as well as non-capitalist practices and do not clearly distinguish the bad from the good.
  • The Social Economy Canvas provides a lot of guidance explicitly about economic networks, while resource flow diagrams are more general-purpose (but in the next blog post, guest blogger Lynn Foster will explain how to approach creating resource flow diagrams for economic networks).

Commons vs Alienated Production diagrams


  • The simplest to read, once you understand the ideas, which are pretty clear.
  • Clearest distinction between good and bad practices.
  • Comes with some clear economic theory about Generative Justice.


  • Does not depict any of the details of your economic network.
  • Would need to be accompanied by a lot of explanatory text (or other diagrams).

The Social Economy Canvas


  • Provides the most guidance about how to create your own economic network canvas. (Especially if you have Alessandro Rancati to help you.)
  • While not exactly fractal, does provide methods of diving into the details of different parts of a canvas, as well as creating other diagrams to explore other aspects of a network.
  • Provides features for differentiating bad practices as well as showing how features of a proposed network will eliminate some existing bad practices.
  • The color codes are helpful in navigating the diagrams.


  • In practice, creates huge diagrams which would be easier to read as wall posters, compared to resource flow or commons vs alienated diagrams, which can be smaller and simpler.


Would be good to incorporate the contrasts between good and bad practices into resource flow diagrams, which appear to be the most flexible technique.

And some color codes would be nice.

This is a guest post from Lynn Foster, one of the authors and maintainers of the ValueFlows economic network vocabulary. In the fediverse, she is

These are some thoughts about how to model resource flows in an economic network. These models can be done at different levels of detail, depending on your purpose. It is often most useful to start with less detail, to understand the general shape of your network, then proceed to more detail. But don't worry, however you think about it naturally is likely to be the best – just get started!

Side note: This set of techniques map very generally to the ValueFlows vocabulary. But this post is not meant to be a tutorial on ValueFlows. Rather it is a guide for people starting to think about the resource flows involved in their community, supply chain, circular economy, municipality, bio-region, whatever. It can be a step in considering software to support a network based on resource flows, or not.

We will use a proposed co-op to produce olive oil in Palestine and sell it in Europe as an example.

Agent Roles

Agents are people or organizations (formal or informal, including networks). Agents can of course play many roles in the world, but this looks at the roles agents play in relation to the scope of the model. You can even include actual agents if they are important to the model, but that would be less usual. Agent roles are a good place to start thinking about this, but as in all the steps that follow, don’t worry too much, everything can be adjusted as you continue to model.

So, for our olive oil example, we might have these agent roles:

  • farmers
  • processors
  • transporters
  • distributors
  • consumers

It is good to start with roles that one agent would play. So for example if there are two main processes done by processors, pressing and bottling, and those are done by different agents, those should be two roles, pressers and bottlers. But if the same agents always do both pressing and bottling, those might be combined at the start, as we have done here. This is a good rule of thumb, but by no means absolute. As always, this kind of choice should reflect the way you think about it naturally, and the way people involved tend to talk about it.

Types of Processes

Processes can be thought of in many levels of detail. It is often helpful to start with higher levels, levels that roughly correspond to the agent roles, but are verbs. So in our example, we might have

  • Tend
  • Harvest
  • Process
  • Transport
  • Distribute
  • Consume

Notice that both tending the trees and harvesting the olives are included here, even though we only have a farmer role, since those are usually managed by the same agent at a high level. But the processes are so distinct in time and methods that we decided to separate them.

High Level Resource Flows

Now we can start to draw some high level flows using the types of processes. We will want to connect the processes with resource flows. These will start to show the types of resources at a high level. If quantities are known, say per a time period, that can also be very useful. It is often easiest to start with the main flows, to see how types of processes will generally connect. If all processes aren’t connected by resource flows, perhaps something is missing. Here is what this example might start to look like.

high level flows

Notice that this is a static view – it is showing general concepts, not potentially real activities and things. This could be called conceptual vs. concrete, or software developers might understand this as classes vs. instances. I’ll call them static vs active in this document.

For these simple flows, a static view like this is often easier.

Active Resource Flows with Agents

To move to a more detailed understanding, it is often helpful to model example flows, with a few hypothetical (or real) agents, processes, and resource flows. This diagram is usually still stereotyped, but better as an active view. It will start to give you a “graph” of your flows, with some understanding of the possible complexity of the network.

Here is a simplified example of part of the above flow shown as hypothetical concrete instances, using names, dates, and quantities to exemplify that. One key piece of additional information is how the different types of process can split and combine in the network. In this example, there can be many growers, who can send their olives to one or more processors. Any number of farmers could take their olives to any number of processors. This network has only one distributor, so that is shown as one.

flows with agents

Adding More Input and Output Flows

It also can be useful to start to show other inputs and outputs besides the main flows. That could be added into the above view if it doesn’t get too messy. But we’ll show a smaller piece of the overall flow diagram with a more complete set of flows. Sometimes this will be more an internal view for an agent, but is also useful in developing a more robust view of the economic networks created by these operations. This kind of effort could be shown in a static and/or an active view, depending on the needs. We jumped back to a static view here for simplicity.

more flows

Note that transporting the olives to the processor is shown as part of harvesting. It also could be outside of harvesting, if a different agent does the transportation, especially if that agent does transportation for other growers too. If so, we have discovered an addition to the first simple diagram in between harvesting and processing. There are probably more flows that could be discovered involved with the transportation also, perhaps involving the truck, which also needs maintenance for example.

And to emphasize again, these models can be done at many levels of detail – depending on your purpose and stage in thinking. And they can be done to include an ever expanding scope of related networks, including a whole community, as more and more inputs and outputs are identified. This could help the whole community coordinate their own economy, potentially increasing localization and fairness.


So far we have been looking at producing olive oil and getting it into the hands of the people who will consume it. Usually when modeling a network or ecosystem, there will also be some form of reciprocity. The most prevalent today is exchanging something useful for a currency. People are also experimenting with creating newer currencies, like crypto-currencies or local currencies. People are also experimenting with mutual credit, where the credits are exchanged for some useful good or service, and people basically keep track of the credits in a ledger, trying to keep the reciprocity relatively equal. Some people do a lot of barter or gifting, either formally or informally.

Also, if people are using currencies, there are experiments on how to make those exchanges more fair. Again, the most prevalent current practice is a sale/purchase of end-use or intermediate products and services, based on “price” either declared or negotiated between the two agents involved.

One experiment is called a “contribution economy”, where all the actual flows are transparent, and when a product or service is exchanged for some currency (or something else useful), that flows back to the contributors according to a (preferably democratically) decided formula. Another prevalent method in cooperative supply chain networks of small producers is to make the exchanges as the product or service is produced, which requires negotiation and transparency so that all are treated fairly, but does not delay the reciprocal exchange.

Modeling the flows can be part of these kinds of discussions. Let’s go back to the high level to see how we might want to model the reciprocal flows for the olive oil cooperative network, which plans on selling into the current market. This simplified example is based on a contributory economic network.

reciprocal flows

Here’s another example where each agent exchanges their produced resource for currency as it is delivered along the process flow.

agent exchanges

Other kinds of exchanges would also occur along the way, for example purchasing boxes, borrowing a truck.

The End (for now)

We hope this has been helpful for people in networks who are just starting to figure out their resource flows and how to document them. This is a first draft, suggestions for improvement big or small, or just pointing out where things are unclear or missing, are very welcome!

You can comment in the fediverse either to or

A fractal is a structure that is similar at every scale, like a fern, where the shape of the whole plant is similar to the shape of each branch, which is similar to each frond on each branch.

Barnsley fern

That fern was generated on a computer by Michael Barnsley, but the real ones are like that, too:

real fern

An economy at every scale contains processes which take existing resources as inputs and from them, create new resources as outputs.

fractal processes

So for example, a gardener does some work (a resource) and takes some seeds (resources) and plants them in some soil (a resource) and feeds them some compost (a resource created by decomposition from other resources that otherwise would have been wasted) and the seeds enjoy some water and sunlight. The seeds eat the compost and drink the water and use the sunlight as energy and develop into a plant. Maybe a tomato plant. The gardeners eventually harvest the tomatoes, which are the outputs created from all of those inputs via that process.

And of course you could zoom into that whole process and see smaller processes, for example, in each seed, as it develops into a plant. See germination process.

The tomato plant is grown on a farm. It is a community farm, which is organized as a Solawi. This particular Solawi is named Radiesli.

As the gardeners work, they are serenaded by a violinist and a pianist playing on on a stage carried by a forklift.


So the inputs to the whole process of planting include the work of the gardeners, the seeds, the soil, the compost, the sun and rain, and the musicians carried on the forklift.

The outputs include more than tomatoes, but some of the tomatoes become inputs to pizzas baked in the community pizzeria, which feed the hungry gardeners and musicians. And many more tomatoes and other Solawi outputs feed the surrounding community.

But at a larger scale, the whole Solawi requires inputs of money, because many of the other inputs need to be purchased from the surrounding capitalist economy. The Solawi is financed by its members, who participate in yearly budget negotiations between the farmers who figure out how much money will be needed and the community members who will provide the funds. Typically, it takes several rounds of negotiations before everybody agrees to the budget.

Johannes Winter describes the budget negotiation rounds and also some of the ways Solawis are expanding in this paper:

The way that Solawis work has become so successful that their practices are spreading out to cover more than food, to community-managed economies.


“ according to the principle of sharing costs and harvest: A group of people forms a community and allocates the entire running costs of an agricultural operation to all members. This changes the relationship between consumers and producers – they share the risk and responsibility for the production of the food and the development of the organization. The products are no longer sold for a market price, but distributed to the members, because the running costs are already covered by the members' contributions.

“This principle can also be transferred to other areas – from a jointly funded health center to energy supply, crafts, gastronomy and creative services to providers of leisure activities.”


I think growing up and out from the roots would make the most sense. Like from food crops to food processing to cafeterias: maybe first the school cafeteria and later an open community cafeteria. From using farm equipment to repairing farm equipment and then producing farm equipment, maybe by mining junkyards for inputs. Start to use mutual credit and/or a community currency instead of the coin o' the realm. Maybe somewhere in that process the capitalist system becomes irrelevant.

I'd like to live in such a community.

This is based on the Valueflows vocabulary, which defines the terms Economic Event and Agent.

An Economic Event is an event that affects an Economic Resource, like cut up some apples (consuming some resources, apples) and bake them into a pie (creating a new resource, an apple pie).

An Agent has agency and can perform Economic Events and reach agreements with other agents. An Agent could be a person or an organization.

This protocol is for Economic Events that involve more than one Agent, usually a Provider and a Receiver, and the two Agents are operating as different nodes in a distributed computing network with or without a shared database.

The goal of the protocol is to reach agreement between the provider and receiver on the Economic Event.

Reaching such an agreement might seem easy, but it can be difficult in a distributed computing environment. See

One of the components of this protocol will be a Distributed Ledger, and the interaction pattern is sometimes called Triple-Entry Accounting. 

Triple-Entry Accounting is an idea mostly attributed to Ian Grigg:

Distributed Ledgers are often implemented on blockchains, but this protocol will be technology-agnostic. The first implementations will be on Holochain and ActivityPub networks, which are really distributed, while blockchains are just multiple copies of the exact same data. (However, this protocol could also be implemented using a blockchain. It's agnostic.)

Likewise this protocol will differ in two ways from Ian Grigg's original proposal.

One difference is that Ian assumed a blockchain, while this proposal doesn't. The triple entries in Ian's proposal were one for each trading partner and a third on the blockchain as a distributed ledger.

The other difference is that Ian used double-entry accounting in one version of his proposal, so his trading partner entries had two entries each, making it really 5-entry accounting. This protocol assumes REA, which is an ontology for multi-agent accounting that records each entry once and only once from three different views: one for each trading partner, and the “independent view”, recorded on a distributed ledger. So it's like Ian's Single Entry version.

But REA is smart, so from the single entry, using its ontology, it can figure out all of the customary accounting reports as well as new analytical views of the data in the distributed ledger. See Accounting and Algorithms in the Valueflows documentation.

This paper REA, Triple-Entry Accounting and Blockchain: Converging Paths to Shared Ledger Systems explains the background and reasons for this protocol in greater detail. The description below summarizes the interaction steps in that paper.

Here's another shorter article about the same ideas: Blockchain and eBusiness

The Protocol

Each Agent has its own private ledger, where each of them records their own views of the Economic Event.

The Provider signs and records the Economic Event in their private ledger, and sends the Economic Event record to the Receiver as well as to the Distributed Ledger.

The Receiving node signs and sends an acknowledgment that they got the Economic Event record. (This is just a communication acknowledgment, that the message was received by the Receiving Agent's network node.)

If the Provider does not get the Ack, they can resend, but that means the implementations need to use something like Mike Nottingham's POST Once Exactly (POE). Easiest way is probably unique message numbers on all messages and ignore duplicates coming in.

Then the Receiving Agent validates the Economic Event, and signs and sends either a valid or invalid message to the Provider as well as the Distributed Ledger.

Sometimes validation will require a human. For example, if the Economic Event reports a resource delivery, and the resource was not really delivered, or was the wrong resource, or damaged, or defective in some way, human judgment could be better than computation.

If valid, the Distributed Ledger signs the Economic Event record, which has now been committed, and this iteration of the protocol is finished.

If invalid, the two agents will need to engage in a conversation to either resolve the problem and send a validation message to the Distributed Ledger, or give up.

Distributed implementations


Here's an overview from the developer, Pospi.

Using the Holochain “agent-centric” architecture, each Agent has their own Source Chain where they post their own views of the Economic Event. They also post the “independent view” of the Economic Event to the Holochain Distributed Hash Table (DHT), “A Public Distributed Database”.

The DHT is the shared Distributed Ledger. Pospi calls that “the community view”.


Bonfire is an implementation of ActivityPub (mentioned above with a link).

In that architecture, each Agent will have its own Inbox and Outbox. So the Provider will send the Economic Event record to the Inbox of the Receiver, and the Receiver will send their messages to the Inbox of the Provider.

The Distributed Ledger will be a Valueflows Scope, which will have its own ActivityPub Inbox and Outbox, and will save validated Economic Event and other economic records which reference the Scope. (If no Scope, no distributed ledger.)

One of the early use cases for the Bonfire Valueflows Distributed Ledger will be EveryCycle, a citizen-participation app for the Reflow project, creating circular economies in European cities.

EveryCycle Distributed Ledger

The quote and diagram came from Patten, B.C., Witkamp, M., 1967. Systems analysis of Cesium kinetics in terrestrial microcosms. Ecology 48, 813–824.

The first two slides and a lot of the info in this post came from John Baez: Theoretical Physics in the 21st Century

No waste in nature

So that means (paradoxical? (not)) if humans dump their “wastes” into their surrounding ecosystems, they will go somewhere, and be used or eaten by something. But the humans might not like the results.

Like their excess nitrogen fertilizers feeding algae blooms in the Caribbean and killing off the shrimp which the humans wanted to eat. (But the algae were happy...) Or their excess carbon emissions causing global warming such that the tropics will become uninhabitable in their lifetimes, thus triggering massive human and animal migrations to cooler regions, with probable wars and more pandemics from zoonotic diseases like the current coronavirus. (But the viruses are happy...)

In Part 2, we'll try to make this a happier story for the humans (and shrimp, but maybe not the algae and viruses...)