The RAS Method is a widely used technique for balancing matrices. A matrix is balanced when the sum of the values in both rows and columns sum to the control total for each. RAS is utilized when some values in the matrix are missing and must be estimated or when new row or column values become available and you want to update the values inside the matrix to reflect the change.


At IMPLAN, the RAS technique is used both in the production of the annual data sets and in the construction of IMPLAN models (i.e., the construction of balanced Social Accounting Matrices (SAMs)). The biggest undertaking using RAS that IMPLAN performs is adjusting all the annually-released data values to the BEA Benchmark Tables (Use and Byproducts matrices). Because the BEA only releases these tables every five years, and are always lagged relative to the annual IMPLAN data, a rebalancing of the matrix is required annually. Additionally, once the national model’s Social Accounting Matrix (SAM) has been balanced, a RAS is also used for filling in the missing values for sub-national SAMs. Balancing of sub-national SAMs and custom regions is accomplished by making adjustments in the foreign trade and capital accounts and is done by the software during the model building process. When producing the annual IMPLAN data sets, the RAS technique is also used to ensure that the economic data estimates balance across geographical and industrial hierarchies simultaneously, and across geographical and other hierarchies, such as household income groups.


RAS is a method of bi-proportional balancing. It is an iterative process that adjusts rows and columns back and forth, over and over. Each time the changes that need to be made to values being adjusted get smaller and smaller until all the row and column values add up to their control values.

First, the rows are balanced by adjusting the values in the row so that they sum to the control value (row total). For example, if the sum of the values in a row is 160 and the control for that row is 100, then each value in that row is too big, so each value in the row will be multiplied by 100/160 (0.625) so that the row sums to 100.

Next, the columns must be balanced following the same method as outlined in the first step. But when we change some of the values in a column, that corresponding row will be unbalanced again! So the rows will be unbalanced, but this time around they will be less unbalanced than before, with a smaller difference between their sum and the row total. 

So we rebalance the rows, and then once again have unbalanced columns (but less so than the last round), so we return to the columns and rebalance them. Then back to the rows. Then back to the columns. This is done until all the rows and columns add up to their respective control values.


In some cases, we only want to adjust a subset of the values in a matrix, like those that are estimates versus those that are known raw values. If Industry 2 has a known value of 50, then we want to hold that value constant while adjusting all the other values in that row. 

In this case, we subtract the sum of the values we want to hold constant (40 in this example) from the control total (100), leaving us with a control total that pertains only to the non-disclosed values (i.e., the numbers we’ll be adjusting): (100 - 40 = 60). This means that our non-disclosed values must sum to 60. That way, the sum of non-disclosed values plus the sum of the disclosed values will still sum to the overall row total (100) without having changed/adjusted any disclosed values!

In this example, our adjustment factor will be 0.54545 (60/110). Then we multiply the adjustment factor by only those values we want to estimate to get our balanced values.

Industry 1 2 3 4 5 Total Sum of Non-disclosed Control less Known Value Adjustment Factor
Original Values 15 40 35 40 20 150 110 60 0.54545
Balanced Values 8.2 40 19.1 21.8 10.9 100      


If a row or a column contains a mix of positive and negative values, simple proportional multiplication won’t work the way we want. If the current sum of values is too small, all the values will be multiplied by a value greater than 1, which means that the negative values will become even more negative (larger). What we really want is for the positive values to get bigger and the negative values to get smaller (less negative). If the current sum of the values is too large, all values will be multiplied by a value less than 1, which means that the negative values will become less negative (smaller). The RAS will work in the sense that it will produce a balanced matrix, but it will result in extreme values. Good news for you: IMPLAN has a proprietary method for ensuring that these intense adjustments aren’t created within our datasets.


RAS never changes a zero value into a non-zero value or vice-versa. Only values that are not zero will be adjusted up or down.


No one seems to know for sure! Some think that it is named for a pioneer in this field, Richard Stone. However, his middle name was Nicholas, so that is an unlikely explanation (Trinh & Phong, 2013). Also, the RAS procedure is referred to as bi-proportional balancing.


Video with Chief Economist Jenny Thorvaldson on RAS


Constructing the IMPLAN SAM

Accounting for Non-Disclosures, Exclusions, and Undercoverage in Employment Data

Intermediate Input Data


Trinh, B. & Phong, N.V. (2013). A Short Note on RAS Method. Advances in Management & Applied Economics, 3 (4), 133-137. https://www.scienpress.com/Upload/AMAE/Vol%203_4_12.pdf


Written December 29, 2022

Updated April 15, 2024