Using LCI techniques to understand and simplify trade flows in the clothing sector

13 Oct 2016


Where garments come from, particulary ones made of cotton, can have a big impact on the social and environmental issues associated with their production. Luckily, the UN comtrade database is a fantastic resource of trade flow data which can help us figure out where garments are likely to have come from. So let’s say we’re in Ireland and we’ve just bought a cotton shirt, where was this shirt likely to have been made? If we look at the comtrade data for 2011-2015, we get the following:

Trading partner % of imports
United Kingdom 30%
China 17%
Bangladesh 17%
Turkey 10%
India 11%
Cambodia 3%
Sri Lanka 2%
Other 10%

Hmmm… something’s up here. Most of the big hitters in global garment production are there (China, Bangladesh, Turkey), but unless there’s been a quiet surge in UK garment manufacturing that I’ve missed, it’s unlikely that 30% of the cotton garments sold in Ireland were made in the UK. A more likely explanation is that they were imported into the UK, and then re-exported to Ireland. So how do we solve this problem?

Matrix inversion to the rescue…

Thankfully, a common technique in Life Cycle Inventory compilation can help us here - matrix inversion. One way of looking at supply chains within LCA is a collection of recipes. Each unit process requires ingredients (inputs) and produced things that can be used as ingredients in other recipes (outputs). We can compile these recipes into a matrix, where the columns represent each of the production processes, and the rows represent each of their outputs. For example, here is a very simple matrix for making bread. Each column tells us the amount of ingredients we require to produce one unit of output.

  Bread production Flour production Water production Yeast production Wheat production
Flour 0.60        
Water 0.35        
Yeast 0.05        
Wheat   1.50      

Note - to keep things simple, we’re assuming that each process only has one output, and we’re ignoring waste treatment for the time being

This matrix tells us that although you don’t need wheat to make bread, you do need wheat to make flour. So in order to make bread, somewhere in the system wheat needs to be produced. But how much wheat needs to be produced to make one unit of bread?

Wassily Leontif, an economist, devised a method of solving a similar problem at a country wide scale using input output tables. He won the 1973 Nobel prize for Economics for this work.

Very simply put, the method is as follows.

The ‘recipe’ matrix above is also known as a coefficient matrix or A. These are the inputs required to make 1 unit of product.

We can come up with another matrix to describe the outputs of our processes. This output will be on the diagonal of the matrix.

  Bread production Flour production Water production Yeast production Wheat production
Bread 1        
Flour   1      
Water     1    
Yeast       1  
Wheat         1

Such a matrix, a square matrix with ones on the diagonal and zeroes everywhere else, is known as an identity matrix, or I.

We want to combine our input matrix with out output matrix to describe our system. An input is the opposite of an output, so if our outputs are positive, our inputs need to be negative. So, if we subtract our recipe matrix (A) from out output matrix (I), we get a description of our whole system in matrix form.

I-A :

  Bread production Flour production Water production Yeast production Wheat production
Bread 1        
Flour -0.60 1      
Water -0.35   1    
Yeast -0.05     1  
Wheat   -1.50     1

Reading down the columns, this matrix tells us that in bread production, we we lose 0.6 units of flour etc, but we gain one unit of bread.

The next step is the clever part. We now find the inverse of this matrix. Mathematically speaking, the inverse of a matrix is the matrix that you can multiply the original matrix by to get the identity matrix. Practically speaking, the inverse leontif matrix tells us how much of all of our ingredients we need to make a certain product, including items not directly demanded by the making of a product.

So for our bread example:


  Bread production Flour production Water production Yeast production Wheat production
Bread 1        
Flour 0.60 1      
Water 0.35   1    
Yeast 0.05     1  
Wheat 0.90 1.50     1

If we now read down the inverse leontif matrix, we can see that if we want one unit of bread, we need 0.9 units of wheat to be produced somewhere in the economy (to make our flour) in addition to the ingredients that we directly demand.

Great… But what does this have to do with the garment trade?

Now that we have a method for tracking indirect inputs through a supply chain, with the help of some assumptions about garment trading patterns, we can frame our garment problem in the same way.

Lets take a simplified hypothetical example.

Austria imports most of its garments direclty from garment producers in Asia (Bangladesh and China), but it also imports a total of 150 tonnes of garments from other EU countries (Belgium and Croatia). These EU countries in turn import garments from garment producing countries in Asia.

The raw trade data looks like this:

Austria Belgium Croatia Bangladesh China
Belgium 50        
Croatia 100        
Bangladesh 500 500      
China 350 500 1000    
Total 1000 1000 1000    

OK, lets make some helpful, but relatively reasonable, assumptions.

  1. The clothes exported by EU countries have the same origin as their imports

  2. There is no (significant) domestic production of garments in the EU countries

This way, imports to a country are equivalent to inputs to a process (in the same way that bread is made from flour etc. in the previous example, Belgian exports are ‘made from’ Chinese/Bangladeshi imports).

This means that if we divide each cell in our trade data table by the column total we get a coefficient matrix, i.e the tonnes required as input per tonne of output.

  Austria Belgium Croatia Bangladesh China
Belgium 0.05        
Croatia 0.1        
Bangladesh 0.5 0.5      
China 0.35 0.5 1    

Following the same steps as before, we subtract this coefficient matrix from the identity matrix, invert it, and we get this:

  Austria Belgium Croatia Bangladesh China
Austria 1.00        
Belgium 0.05 1.00      
Croatia 0.10   1.00    
Bangladesh 0.525 0.50   1.00  
China 0.475 0.50 1.00   1.00

This time however, we don’t care about the intermediate steps - we’re assuming these are just a stopping off point on their journey from the garment producig countries - so we can simplify our table like so:

  Austria Belgium Croatia
Bangladesh 52.5% 50.0% 0.0%
China 47.5% 50.0% 100.0%

The trade routes into Austria that have come via Belgium and Croatia have been resolved, and we can get a better estimate of the likely sources of garments in Austria.

What does this look like when you apply it to real data?

You can apply this technique to real comtrade data for EU member states using the comtrade site’s API calls to get the data, and a bit of python coding (using numpy and pandas). You can find my notebook with the steps in here.

For Ireland, we end up with a more sensible looking estimate for the likely source of cotton garments.

Garment producing country % of imports
China 28%
Bangladesh 24%
Turkey 14%
India 12%
Pakistan 4%
Sri Lanka 3%
Cambodia 3%
Indonesia 2%
Vietnam 1%
Other 7%

Using cotton production and import data we can take this one step further and work out the likely source of the cotton fibres used in garment production in each of these garment producing countries, essentially tracking the supply chain for cotton garments consumed in any of the 28 (for the time being) EU member states back to the growing of the fibres.

It’s not super accurate, but it gives a reasonable estimate of the supply chain at a high level. Not bad using publically available trade figures and a bit of python coding!

If you have any questions or comments, feel free to get in touch via Twitter @KTH_James