Allocation in Earthster

This article describes how to do allocations based on the ISO 14044 allocation hierarchy.

Updated over a week ago

This article has been written by Dr. Gregory Norris.

The ISO 14044 allocation hierarchy

Recall the ISO 14044 hierarchy of allocation methods. In order of preference, with the most-preferred approach first, the methods are:

  1. Avoid allocation either by:

    • a. Gathering data at greater granularity so that we can model a separate production process for the product of interest

    • b. "Expanding the system" -- giving the product system credit for avoiding the alternative production of the co-product(s).

  2. Model the causal relationship from the outputs to the inputs

  3. Allocate a portion of the process burdens to each product and co-product, based on "the relationships between" the products. In practice, this means selecting some measurable property that they all have in common, and using each products' share of the total process output of this property to determine the fraction of process burden to assign to each product.

    Revenue share is the example suggested by ISO 14044; mass or energy content are also sometimes used.

Example: Soy oil and soy meal

Next, let's consider the classic example of co-producing soy oil and soy meal from soy beans. Here is an excerpt from Wikipedia:


To produce soybean oil, the soybeans are cracked, adjusted for moisture content, heated to between 60 and 88 °C (140–190 °F), rolled into flakes, and solvent-extracted with hexanes. The oil is then refined, blended for different applications, and sometimes hydrogenated. Soybean oils, both liquid and partially hydrogenated are sold as "vegetable oil", or are ingredients in a wide variety of processed foods. Most of the remaining residue (soybean meal) is used as animal feed.

See on Wikipedia Soybean oil.

Image for soy products (Wikipedia)

Let's assume the simplified and hypothetical data shown below offers a good description of the inputs to, and outputs from, the process that produces soy oil and soy meal from soybeans, using electricity for heating, refining, and blending.













Mass share

Price ($/kg)

Value ($)

Value share

Soy oil




$ 2.60

$ 1.56


Soy meal




$ 1.00

$ 0.40





$ 1.96

Modeling allocation in Earthster

It's time to start modeling in Earthster. We'll begin by creating an explicit model of the process input and output data provided in the table above. This model will provide us with:

  • A model that we can use for mass-based allocation of burdens among co-products, and

TIP: Actually, mass is most often the physical unit that is in common among process outputs, but in some (rare) cases this may be energy-based allocation or volume-based allocation. In other cases, it is possible that the co-products are measured in physical units which cannot be made equivalent; for example, when one is modeled in mass units but the other is measured in energy units.

  • A model to copy and modify to create two additional models:

    • One that avoids allocation through system expansion, and

    • One that performs revenue-based allocation. (This functionality can be actually be added to the first model as described below, but we also show how to create a separate process for revenue-based allocation.)

Our process produces multiple outputs, so we include all of these in the name. We create a process named "Soy oil and soy meal" or "Production of soy oil and soy meal" or something similar. Based on the table, the production of 1 kg of "soy oil and soy meal" requires the following inputs:

  • 0.5 kWh of electricity (low voltage, US market group)

  • 1 kg of soy beans (we'll use Ecoinvent data for US soybean production)

Now, the ISO 14044 standard for LCA presents a hierarchy of preferred approaches for modeling in the presence of multiple product outputs. The first step in the allocation hierarchy is to try to avoid allocation. We can do this either by gathering more granular data, or through "system expansion" which means giving our process credit for the ways that its co-product(s) avoid the need to otherwise produce the same or functionally equivalent products.

Gathering more granular data would not resolve the problem in this case: the whole bean is cracked, heated, rolled, and solvent-extracted. But avoiding allocation via system expansion is indeed feasible, if we can identify the most likely alternative animal feed, of which less will be needed/used/produced as a result of our production of soy meal. In this example, let's imagine that we surveyed farmers using our process's soy meal, asking they what they would be using if we did not sell them our soy meal, and they answer: barley grain feed. We further verify with the farmers that one pound of our soy meal substitutes for a bit less than a pound of barley feed; an average substitution rate appears to be 0.85 lbs of barley feed replaced by 1 lb of soy meal.

Fortunately for us, Ecoinvent contains a process for the global market for barley grain feed. Based on the table of process data presented above, the production of 0.6 kg of soy oil brings co-production of 0.4 kg of soy meal. Given the substitution factor reported by the farmers, co-production of 0.4 kg of soy meal will replace or avoid the need to produce 0.4 * 85% = 0.34 kg of barley grain feed. Thus, the process will produce 0.6 kg of soil oil, and will avoid the production of 0.34 kg of barley grain feed.

We begin the process of creating the system expansion model by creating a copy of our initial process, and naming it "soy oil with system expansion for meal." In this new process model, we edit the "Scale" of the process to specify an output of 0.6 kg of product (which is now soil oil) instead of the original 1 kg of product output (which was a combination of soy oil and soy meal). This output is also quantified as $1.56 of output using the functional unit specification. To give a process credit for avoiding the production of something (in our case, barley grain feed), we simply add the avoided product flow(s) as one or more negative inputs to the process. This is an explicit model of the fact that producing soy oil also reduces the need for production of barley grain feed. Doing this will complete the conversion of our process from one that produces two outputs (a combined 1 kg of soy oil and soy meal) to one that produces 0.6 kg of the single product of soy oil, while avoiding production of 0.34 kg of barley grain.

Under some circumstances, we could find ourselves unable to use system expansion to avoid allocation. One possibility would be if the farmers reported to us that they could not vary the diets much for nutritional reasons, so that soy meal, while being an important part of the diet, could not be substituted for other types of feed. If we are unable to use system expansion, we would end up at ISO step 3, and would allocate based on revenue share. Following good LCA practice, we would also perform a sensitivity analysis to find out how the results would change if we allocated based on mass share instead.

In order to perform revenue-based and mass-based allocation, we take the following steps.

First, we open the Info tab for the cycle, and enter data for the mass shares and revenue shares for each of the process outputs. Next, we set the value of barley grain feed being produced to 0, effectively nullifying the system expansion. if we wish to obtain results for the production of 1 kg of soy oil using mass-based allocation, we simply specify the production of 1 kg of output from this process. And If we wish to obtain results for the production of 1 kg of soy oil, using revenue-based allocation, we simply specify the production of 1 kg of soy oil from this process, expressed as the production of $2.6 of output from this process.

You can create a comparison of the three allocation approaches side-by-side by creating copies of the cycle, editing one of the copies to restore the avoided product credit (system expansion modeling) described before.

Did this answer your question?