Tutorials › Linear Algebra › Building Leontief Input-Output Models

Applications in Networks, Economics and Data · Tutorial 937 of 1000

Building Leontief Input-Output Models

Build an input-output model from production data and verify that its matrix equation matches the sector-by-sector accounting.

Intermediate 9 min read

What You'll Learn

  • Read a transaction table with input-producing sectors in rows and output-producing sectors in columns
  • Calculate technical coefficients by dividing each transaction by the output of the purchasing sector
  • Distinguish intermediate transactions from final demand and combine final-demand categories
  • Formulate and check the Leontief balance equation in column-vector form
  • Identify how a transposed coefficient matrix changes the accounting

From Production Data to a Matrix Model

An input-output model records how the output of one sector is used by other sectors. For example, a manufacturing sector may purchase energy and materials from other sectors to produce its own output. Some output is used in this intermediate production; the rest goes to final users such as households, government, or export markets. The Leontief balance equation puts this accounting into a matrix equation. Its meaning depends on using a consistent convention for the rows, columns, and vectors.

Suppose an economy has \(n\) sectors. Use the same ordering of sectors throughout the model. Let \(x_j\) be the gross output of sector \(j\) over a specified period. Let \(z_{ij}\) be the amount of output from sector \(i\) used as an intermediate input by sector \(j\) during that period. Thus the first index identifies the supplying sector, and the second identifies the sector using the input. Put these transactions in the matrix \(\mathbf{Z}\), with \(z_{ij}\) in row \(i\), column \(j\). The vector \(\mathbf{x}\) of gross outputs is a column vector.

$$ \mathbf{x}= \begin{bmatrix} x_1\\ \vdots\\ x_n \end{bmatrix}, \qquad \mathbf{Z}= \begin{bmatrix} z_{11}&\cdots&z_{1n}\\ \vdots&\ddots&\vdots\\ z_{n1}&\cdots&z_{nn} \end{bmatrix}. $$

Each column of \(\mathbf{Z}\) describes the intermediate inputs used by one sector. For example, column \(j\) lists the inputs from all sectors that are used to produce sector \(j\)'s output. A transaction and its corresponding output must use compatible units and refer to the same period.

Definition: If \(x_j>0\), the technical coefficient \(a_{ij}\) is \(z_{ij}/x_j\). It measures the amount of sector \(i\)'s output used as an intermediate input per unit of sector \(j\)'s gross output. The technical-coefficient matrix is \(\mathbf{A}=[a_{ij}]\), with supplying sectors indexing rows and using sectors indexing columns. A column of \(\mathbf{A}\) therefore gives the input recipe per unit of output for the corresponding sector.

The condition \(x_j>0\) matters: if sector \(j\) has zero output, the ratio \(z_{ij}/x_j\) is undefined, so its technical coefficients cannot be calculated from that period's transaction data by this formula. When positive output is observed, these ratios give the period's measured input proportions. Using them to model other output levels assumes those proportions remain fixed.

Final demand is output delivered to users outside the modeled intermediate production process. Let \(d_i\) be total final demand for sector \(i\)'s output, and collect these amounts in the column vector \(\mathbf{d}\). Final demand may combine several categories, such as household consumption, government purchases, and exports. These categories are uses of output, not additional columns of intermediate inputs in \(\mathbf{Z}\).

Deriving the Balance Equation

For each sector \(i\), its gross output must account for all intermediate use of that sector's output and its final demand. The intermediate use of sector \(i\)'s output by sector \(j\) is \(z_{ij}\); summing across the using sectors gives \(\sum_{j=1}^{n}z_{ij}\). Thus sector \(i\)'s accounting identity is \(x_i=\sum_{j=1}^{n}z_{ij}+d_i\). In vector form, the sum of intermediate use across each row is \(\mathbf{Z}\mathbf{1}\), where \(\mathbf{1}\) is the column vector whose entries are all \(1\).

$$ \mathbf{x}=\mathbf{Z}\mathbf{1}+\mathbf{d}. $$

By the definition \(a_{ij}=z_{ij}/x_j\), each transaction satisfies \(z_{ij}=a_{ij}x_j\). Consequently, the intermediate use of sector \(i\)'s output is \(\sum_{j=1}^{n}a_{ij}x_j\), which is entry \(i\) of \(\mathbf{A}\mathbf{x}\). This gives the standard column-vector form of the balance equation.

Theorem (Leontief balance equation): Suppose there are \(n\) sectors, every \(x_j>0\), and the technical coefficients are defined by \(a_{ij}=z_{ij}/x_j\). If sector \(i\)'s gross output is allocated to intermediate use and final demand, so that \(x_i=\sum_{j=1}^{n}z_{ij}+d_i\), then $$ \mathbf{x}=\mathbf{A}\mathbf{x}+\mathbf{d}, \qquad\text{equivalently}\qquad (\mathbf{I}_n-\mathbf{A})\mathbf{x}=\mathbf{d}. $$

Proof. For each pair \(i,j\), the coefficient definition and \(x_j>0\) give \(z_{ij}=a_{ij}x_j\). Substituting these equalities into the sector \(i\) accounting identity gives \(x_i=\sum_{j=1}^{n}a_{ij}x_j+d_i\). By matrix multiplication, \(\sum_{j=1}^{n}a_{ij}x_j\) is entry \(i\) of \(\mathbf{A}\mathbf{x}\). Since this holds for every \(i\), the component identities combine to \(\mathbf{x}=\mathbf{A}\mathbf{x}+\mathbf{d}\). Subtracting \(\mathbf{A}\mathbf{x}\) from both sides yields \((\mathbf{I}_n-\mathbf{A})\mathbf{x}=\mathbf{d}\). \(\square\)

The equation is an accounting model, not by itself a guarantee that a production plan exists or is unique. Its purpose here is to express the balance consistently: gross output equals intermediate requirements plus final demand. Determining a production plan from a given final-demand vector is a separate question.

Worked Examples: Constructing and Checking the Model

Worked Example: Computing Coefficients from Transactions

Suppose three sectors have gross outputs \(100\), \(80\), and \(60\) units, respectively. Their intermediate transactions, with rows giving the supplying sector and columns giving the using sector, are

$$ \mathbf{Z}= \begin{bmatrix} 20&10&0\\ 5&20&10\\ 5&10&20 \end{bmatrix}, \qquad \mathbf{x}= \begin{bmatrix} 100\\ 80\\ 60 \end{bmatrix}. $$

Calculate each column of \(\mathbf{A}\) by dividing the corresponding column of \(\mathbf{Z}\) by the gross output of the using sector. The first column is divided by \(100\), the second by \(80\), and the third by \(60\):

$$ \mathbf{A}= \begin{bmatrix} 20/100&10/80&0/60\\ 5/100&20/80&10/60\\ 5/100&10/80&20/60 \end{bmatrix} = \begin{bmatrix} 1/5&1/8&0\\ 1/20&1/4&1/6\\ 1/20&1/8&1/3 \end{bmatrix}. $$

For example, \(a_{23}=1/6\) means sector 3 uses \(1/6\) of a unit from sector 2 for each unit of its own output. The intermediate use totals by supplying sector are the row sums of \(\mathbf{Z}\): \(30\), \(35\), and \(35\). Therefore the final-demand vector required by the observed output is

$$ \mathbf{d}= \begin{bmatrix} 100-30\\ 80-35\\ 60-35 \end{bmatrix} = \begin{bmatrix} 70\\ 45\\ 25 \end{bmatrix}. $$

Check: Multiply the coefficient matrix by the output vector:

$$ \mathbf{A}\mathbf{x} = \begin{bmatrix} 100/5+80/8+0\\ 100/20+80/4+60/6\\ 100/20+80/8+60/3 \end{bmatrix} = \begin{bmatrix} 30\\ 35\\ 35 \end{bmatrix}. $$

Adding final demand gives \((30+70,\;35+45,\;35+25)^{\top}=(100,80,60)^{\top}=\mathbf{x}\), as required.

Worked Example: Combining Final-Demand Categories

For two sectors, suppose the technical-coefficient matrix and gross-output vector are

$$ \mathbf{A}= \begin{bmatrix} 1/4&1/10\\ 1/8&1/5 \end{bmatrix}, \qquad \mathbf{x}= \begin{bmatrix} 80\\ 50 \end{bmatrix}. $$

Suppose final demand is reported in three categories. Household demand is \((40,20)^{\top}\), government demand is \((10,5)^{\top}\), and exports are \((5,5)^{\top}\). Add the categories by sector:

$$ \mathbf{d}= \begin{bmatrix} 40\\20 \end{bmatrix} + \begin{bmatrix} 10\\5 \end{bmatrix} + \begin{bmatrix} 5\\5 \end{bmatrix} = \begin{bmatrix} 55\\30 \end{bmatrix}. $$

To check the balance, compute intermediate requirements:

$$ \mathbf{A}\mathbf{x} = \begin{bmatrix} 80/4+50/10\\ 80/8+50/5 \end{bmatrix} = \begin{bmatrix} 25\\ 20 \end{bmatrix}. $$

Then \(\mathbf{A}\mathbf{x}+\mathbf{d}=(25+55,\;20+30)^{\top}=(80,50)^{\top}=\mathbf{x}\). The categories are added to form total final demand; they are not substituted for the intermediate-use vector.

Keeping Sector Order Consistent

The formulas rely on one shared sector ordering. If the order changes, the rows and columns of the coefficient matrix and the entries of both vectors must change together. A useful way to state this precisely is with a permutation matrix. Such a matrix \(\mathbf{P}\) reorders coordinates: each column is a standard basis vector, and each standard basis vector appears exactly once.

Theorem (Reordering preserves the balance): If \(\mathbf{x}=\mathbf{A}\mathbf{x}+\mathbf{d}\) and \(\mathbf{P}\) is a permutation matrix, define \(\mathbf{x}'=\mathbf{P}\mathbf{x}\), \(\mathbf{d}'=\mathbf{P}\mathbf{d}\), and \(\mathbf{A}'=\mathbf{P}\mathbf{A}\mathbf{P}^{\top}\). Then \(\mathbf{x}'=\mathbf{A}'\mathbf{x}'+\mathbf{d}'\). Conversely, this reordered equation implies the original balance equation.

Proof. A permutation matrix has \(\mathbf{P}^{\top}\mathbf{P}=\mathbf{I}_n\), because its columns are distinct standard basis vectors, which have dot product \(1\) with themselves and \(0\) with one another. Using \(\mathbf{x}'=\mathbf{P}\mathbf{x}\), we obtain \(\mathbf{A}'\mathbf{x}'+\mathbf{d}'=\mathbf{P}\mathbf{A}\mathbf{P}^{\top}\mathbf{P}\mathbf{x}+\mathbf{P}\mathbf{d}=\mathbf{P}(\mathbf{A}\mathbf{x}+\mathbf{d})=\mathbf{P}\mathbf{x}=\mathbf{x}'\). For the converse, multiply \(\mathbf{x}'=\mathbf{A}'\mathbf{x}'+\mathbf{d}'\) by \(\mathbf{P}^{\top}\). Since \(\mathbf{P}^{\top}\mathbf{P}=\mathbf{I}_n\), substitution of the definitions gives \(\mathbf{x}=\mathbf{A}\mathbf{x}+\mathbf{d}\). \(\square\)

This result explains why simply reordering the entries of \(\mathbf{x}\) and \(\mathbf{d}\), while leaving \(\mathbf{A}\) unchanged, generally breaks the model. Both the supplying-sector rows and using-sector columns of \(\mathbf{A}\) must be reordered.

Common Pitfall: Transposing the Coefficient Matrix

Worked Example: Checking the Row and Column Convention

Consider the two-sector coefficient matrix and output vector below. The rows of \(\mathbf{A}\) identify suppliers; its columns identify sectors that use the inputs.

$$ \mathbf{A}= \begin{bmatrix} 1/5&1/4\\ 1/10&1/5 \end{bmatrix}, \qquad \mathbf{x}= \begin{bmatrix} 100\\ 80 \end{bmatrix}. $$

The correct intermediate-use vector is \(\mathbf{A}\mathbf{x}\), since the \(j\)th coefficient column is multiplied by the output \(x_j\) of the using sector:

$$ \mathbf{A}\mathbf{x} = \begin{bmatrix} 100/5+80/4\\ 100/10+80/5 \end{bmatrix} = \begin{bmatrix} 40\\ 26 \end{bmatrix}. $$

If final demand is \(\mathbf{d}=(60,54)^{\top}\), the balance check is \((40+60,\;26+54)^{\top}=(100,80)^{\top}\). The corresponding transaction matrix is obtained by multiplying each coefficient column by that sector's output:

$$ \mathbf{Z}= \begin{bmatrix} (1/5)100&(1/4)80\\ (1/10)100&(1/5)80 \end{bmatrix} = \begin{bmatrix} 20&20\\ 10&16 \end{bmatrix}. $$

A common incorrect calculation is to use \(\mathbf{A}^{\top}\mathbf{x}\), as if rows rather than columns were input recipes. It gives

$$ \mathbf{A}^{\top}\mathbf{x} = \begin{bmatrix} 1/5&1/10\\ 1/4&1/5 \end{bmatrix} \begin{bmatrix} 100\\80 \end{bmatrix} = \begin{bmatrix} 28\\41 \end{bmatrix}. $$

These numbers do not match the transaction matrix's row sums, \((20+20,\;10+16)^{\top}=(40,26)^{\top}\), so the transposed calculation does not give the intermediate-use totals by supplying sector. The correction is to keep the stated convention and calculate \(\mathbf{A}\mathbf{x}\), not \(\mathbf{A}^{\top}\mathbf{x}\).

Why the Formulation Matters

The technical-coefficient matrix separates input proportions from the scale of production. Each coefficient is a per-unit requirement, while \(\mathbf{x}\) records the output levels to which those proportions are applied. Final demand then accounts for output not used as an intermediate input. This separation makes the bookkeeping explicit and allows the same model structure to represent different sector sizes, provided the fixed-proportion assumption is appropriate.

Before using a model, check three things: rows and columns follow the stated supplier/user convention; each coefficient divides a transaction by the output of its column's sector; and the final-demand vector is indexed in the same sector order as \(\mathbf{x}\). Finally, verify the accounting componentwise by comparing \(\mathbf{x}\) with \(\mathbf{A}\mathbf{x}+\mathbf{d}\). A mismatch may indicate an arithmetic error, inconsistent units, omitted final-demand categories, or a convention that has been applied inconsistently.

Check Your Understanding

Use the supplier-as-row and user-as-column convention in each question.

  1. If \(z_{12}=18\) and \(x_2=72\), what does \(a_{12}\) measure, and what is its value?
  2. For \(\mathbf{A}=\begin{bmatrix}1/4&1/5\\1/10&1/4\end{bmatrix}\) and \(\mathbf{x}=(40,20)^{\top}\), calculate the intermediate-use vector \(\mathbf{A}\mathbf{x}\).
  3. If household demand is \((12,8)^{\top}\) and export demand is \((3,5)^{\top}\), what is the total final-demand vector?
  4. Explain why a column of \(\mathbf{A}\) is divided by the gross output of the sector named by that column.
  5. In the balance equation, what accounting error can result from using \(\mathbf{A}^{\top}\mathbf{x}\) under the stated convention?

Test yourself: Linear Algebra final exam practice

Ready to check what you know? Work a full-length practice final, then open the complete worked solutions.

Want all 1,114 practice problems?

This tutorial covers one topic. Calc Pass covers the full Calculus AB & BC curriculum (the core of Calculus I and II): full review, every practice question, and step-by-step solutions to each one.

QR code to download the Calc Pass app

Get the Calc Pass App

Scan to download and practice on the go, with instant scoring.

Calc Pass Volume 1: 1,114 Practice Questions book cover

Vol. 1: 1,114 Questions

The complete practice question bank, organized by AB & BC topic.

View on Amazon
Calc Pass Volume 2: Solutions Manual book cover

Vol. 2: Solutions Manual

Fully worked solutions to every question in Volume 1.

View on Amazon