(Note: The equations in this article are hard to read in HTML. For a PDF version click here.)
When I sat down to write a paper on gross receipts taxes two years ago, there was surprisingly little written on them. Since then, there’s been an outpouring of scholarship as states like Illinois and Texas have considered replacing corporate income taxes with them. But a big drawback of these studies—including mine—is that few estimate the most important economic effect of gross receipt taxes: so-called “tax pyramiding.”
Gross receipts taxes work like a sales tax, except they apply to inputs as well as final goods. For a baker selling loaves of bread, the flour, electricity and packaging are all taxed first, then the loaf itself is taxed when sold to consumers. These extra layers of taxation get quietly built into the final selling price—something economists call “tax pyramiding.”
In this post I’ll explain how to quantify tax pyramiding using a simple input-output model. We’ll walk through an example for Washington State’s “Business & Occupation” (B&O) tax, which is one of the nation’s oldest gross receipts tax. At the end, I’ll hand over an input-output model I built to estimate pyramiding from the B&O tax using new state-level input-output tables released this year.
The last published estimate of pyramiding from the B&O tax was a 2002 study from the Washington State Tax Structure Study Committee. In that study, economists from the state Department of Revenue developed a method to estimate pyramiding using state-level input-output tables. Using 1998 data they found the tax pyramids 2.5 times on average, ranging from 1.4 times on computer services to a whopping 6.7 times on manufactured food.
In this example, we’ll use their method on the new 2002 input-output tables for Washington State. These data were just released in May. That means our estimate will not only be the first one in six years, but will also be most current one available anywhere.
Theory of Input-Output
The first step is to start with theory. Imagine we divide the economy into n industries, with each one buying materials, adding value to them, and selling the results to consumers. This is what’s known as an “input-output” view of the economy.
In this world, there are two basic identities that should always be true. First, the total value of an industry’s output should equal how much they spent on inputs, plus the amount of value they add in the production process. Think of a baker making bread: the value of the final loaf is equal to the value of the inputs plus the baker’s profit.
For industry number one, we can summarize this relationship like this:
(1) ![]()
Where:
= Total output from industry one;
= Intermediate inputs purchased by industry one from industries one through n; and
= The value added by industry one.
The second identity that’s always true is that an industry’s total output will be equal to the amount other industries buy from them, plus the amount they sell to consumers as final products. In the example of the baker, his total output must equal the number of loaves he sells to restaurants and other firms, plus the number he sells directly to consumers.
Again for industry number one, we can write this second relationship like this:
(2) ![]()
Where:
= Total output from industry one;
= The amount of output from industry one purchased as intermediate inputs by industries one through n; and
= The amount of industry one’s output sold to consumers as final demand.
We can summarize these relationships in a table known as an input-output table. Here’s what it looks like. Summing down the columns gives equation one, while summing across the rows gives equation two:
(3) 
So that’s the theory of the input-output table. To see what an actual I-O table looks like in practice, see the table I’ve posted here.
For now, we’re only going to focus on the first relationship summarized in equation (1) and the columns of the table. Look at the first column. It says the sum of inputs purchased by industry one plus their value added is equal to their total output. Put differently,
(4) ![]()
Now, what we want to do is find a way to modify equation (4) so that we get rid of the x’s, and find a way to express them in terms of Y’s instead. You’ll see why we want to do this in a minute—it makes the math a lot easier.
To do this, let’s define a new number
. It’s equal to the share of industry j’s total output that’s purchased as an intermediate input by industry i. That is,
(5) ![]()
This means a will be a fraction somewhere between zero and one. Think of it like this: industry j’s total output is a pie. The number
is the slice of that pie industry i buys from them as inputs. So for example, if
, then industry one buys 20 percent of the “pie” of output from industry two.
Now we can re-write equation (4) like this, substituting in a from equation (5):
(6) ![]()
At this point, we’ve got something we can work with. Let’s translate equation (6) into linear algebra using matrices.
First, let’s put all the
coefficients into one giant matrix. We’ll call this A. The way we’ll calculate A is by dividing every x in the input-output table (3) by its row sum. This makes sense—dividing
by the sum of the first row is simply dividing industry two’s purchases from industry one by the total output from industry one. That is, it’s the share of industry one’s “pie” that’s purchased by industry two.
Here’s what the matrix A looks like:
(7) A = 
Now, let’s re-write equation (6) in matrix notation, using the new matrix A we just created:
(8) 
If you look carefully at equation (8), you’ll see that the n x n matrix of a’s on the right-hand side is just the transpose of the A matrix we defined in equation (7). We’ll dente this transposed matrix using a single quotation mark as A’.
Now, if we label the matrix of Y’s on the left Y, and the matrix of V’s on the far right V, we can re-write this jungle of matrix notation more simply as:
(9) ![]()
Now, let’s solve this equation for Y, like this:
In the above, the matrix labeled I is an n x n identity matrix, which works just like the number one in regular algebra.
Equation (10) is a pretty famous one in input-output models. It’s the basic equation relating the output of the economy to the input coefficients matrix A and the value-added of industries in the economy. This is sometimes called a “Leontief model” of the economy, named after economist Wassily Leontief.
Now that we’ve got a model of the economy without any taxes, we need to create a model with a gross receipts tax added in. This will let us see the difference between the two, which is basically the impact of the tax. This comparison of side-by-side models—one with taxes and one without—is how we’ll measure tax pyramiding.
To create a model with a gross receipts tax, recall equation (6), which says the output of industry one is equal to its input purchases plus value added.
(6) ![]()
A gross receipts tax applies to both intermediate inputs and final sales. So adding on a gross receipts tax simply multiplies the right-hand side of equation (6) by
, where
is the effective gross receipts tax rate on industry j. So equation (6) becomes,
(11) ![]()
In the above, note that we’ve re-labeled industry output Y as
to denote that it’s total output including the built-in gross receipts tax. To finish our model with taxes, we’ve got to define one more matrix. Let’s call it T, which is an n x n matrix with (1 + industry effective gross receipts tax rates) down the diagonal and zeros elsewhere:
(12) T = 
Now, we’re ready to add taxes into our model. Using the T matrix defined above, we can add in a gross receipts tax and re-write equation (8) like this:
(13)
Using our simpler notation from equation (9), we can re-write this mess as the following:
(14) ![]()
The last step is to solve this equation for
. At that point, we’ll have our model that includes gross receipts taxes. Solve it like this:

And that’s our input-output model that includes a gross receipts tax. Now, what we can do is compare the value of output for each industry in our two models—one without the tax, and one with the tax. Here are the two models:
(10) No Tax: ![]()
(15) With Tax: ![]()
The difference between these is the tax burden for each industry caused by the gross receipts tax. What we’ll do is take this tax burden for each industry, express it as a percentage of that industry’s value added, and divide the result by the effective gross receipts tax rate for the industry.
If the result is one, there’s no tax pyramiding. In that case, the industry tax burden would simply be equal to the gross receipts tax rate, which means the tax was only paid once. If the result is greater than one, then the gross receipts tax is causing a pyramided tax burden greater than the actual gross receipts tax rate. Whatever this number is, we’ll call it the “degree of pyramiding” of the tax. That’s the number we’re after here.
Putting Theory into Practice
Now that we’ve got the theory worked out, let’s go find some data. In this example, we’ll calculate tax pyramiding for the Washington State B&O tax.
First, we need some input-output tables. Washington State has some of the best regional input-output tables in the nation, and new 2002 tables were just released in May 2008. You’ll find the table here:
http://www.ofm.wa.gov/economy/io/2002/default.asp
Open up this table in Excel, and use it to create the matrices that go into our two models in equations (10) and (15). Create one tab with the full input-output table. You’ll have to create a row with total value added and label it “V”, and label the column with total industry output “Y”. In separate tabs, create the matrices A and I following the directions in the theory section above.
The last step is to create the T matrix. To do this, you’ll need data on industry effective B&O tax rates. You’ll find that at the following link to the Washington State Department of Revenue’s website. Look for Table 5 in the “Quarterly Business Review” section, which has B&O tax collections and bases by industry. The effective tax rate is just the tax collections divided by the base for each industry:
That’s everything you’ll need. All that’s left is to plug in equations (10) and (15) into two 51 x 1 column vectors in Excel, compare the differences for each industry, and calculate the degree tax pyramiding.
Once you’re done, your model should look something like this. Here’s my own Excel model estimating tax pyramiding of the B&O tax using 2007 tax collections and bases. The tax pyramids on average around three times, ranging from 1.6 on computer services to a sky-high 16.7 on petroleum products manufacturing:
Washington I-O Tax Pyramiding Model.xls
Posted by Andrew on Saturday August 16, 2008 | Feedback?