Skip to main content

Building the WiNDC National Data

Mitch Phillipson August 15, 2025


Today I am going to discuss the build process for the WiNDC National data. I will demonstrate taking the data from the raw Supply/Use tables and transforming it into the final National data product.

As a quick follow up to the post on August 1, I stated that we “we make values from use positive and supply negative. Much like Ben Franklin declaring the charge on an electron to be negative, I have made the wrong decision. However, at this stage of development it easy to change our convention, which I have. Credit goes to Mei Yuan who pointed out this issue during the WiNDC Weekly this past week.

This post will be using terminology from WiNDCNational.jl.

Raw Data to Pre Calibrated Data

The only necessary data for the national model is the BEA Supply and Use tables. These tables have the following structure:

Note that the Other_Final_Demand region is a collection of multiple columns. However, in the national model we don’t distinguish between the values so they are all treated as a single category. The data does not get aggregated together, retrieving that parameter returns all the raw data.

Coming from the BEA, this data is not suitable for use in our CGE models. In the following sections we will outline the steps taken to transform the raw data into a format suitable for our models.

Flip Sign of Use

The first step to flip the sign of all the values in the Use table. We consider inputs to be negative.

Reverse Negative Flows in Intermediate Tables

We want all values in the Intermediate tables to have the same sign as their flow. For example, in the 2023 Use table the sector 111CA (Farms) and commodity Used (Scrap, Used and secondhand goods) has a value of 18. We expect all values in the Use table to be negative. Note, this is after flipping the sign from the previous step. In the Use table that value is -18.

To solve this issue we reverse the flow of good with the wrong sign in Intermediate_Demand and Intermediate_Supply. The 18 moves from Use to be 18 in Supply in the same commodity/sector.

Redistribute CIF/FOB Adjustments

The CIF/FOB column is used to adjust Transport margins and Imports. The CIF/FOB values get added to Imports values on insurance commodities and Transport on non-insurance commodities. In the Summary-level table their is only a single insurance commodity, 524 (Insurance carriers and related activities). In the detailed table there are three:

  • 524113 (Direct life insurance carriers)
  • 5241XX (Insurance carriers, except direct life)
  • 524200 (Insurance agencies, brokerages, and related activities)

The CIF/FOB column is then removed from our data.

Disaggregation of Trade and Transport

The two marginal columns Trade and Transport are transformed into two parameters, Margin_Demand and Margin_Supply. The positive values from Trade and Transport become Margin_Demand and the negative values become Margin_Supply. We do not adjust the signs of these values, Margin_Supply acts like an input which means it should be negative.

We also create a new set margin which includes the NAICS codes for Trade and Transport. This set is the column domain of both Margin_Demand and Margin_Supply.

Personal_Consumption and Household_Supply

The Personal_Consumption column has a mix of positive and negative values. This could should only contain negative values, as it is on the input side. The Household_Supply column is created from the positive values.

Sector_Subsidy and Subsidy

The Sector_Subsidy is a new addition to the Supply/Use framework. It was introduced post-Covid to account for the large subsidies provided to various sectors of the economy. Direct from the BEA, this row is positive and it should be negative. That means in our final data, this row should be positive, so we re-flip the sign.

This is in contrast to the Subsidy column which, direct from the BEA, is negative. Which is the correct sign so we make no adjustments.

The Final Data Structure

The final WiNDC National parameters are given by:

These are the actual parameters in the WiNDC National dataset. This means if you want to extract Export, you can run

table(summary, :Export)

and get the corresponding values from the dataset.