PDF version of this document is located at http://web.mit.edu/paltsev/www/docs/exburden.pdf

From an Input-Output Table to a General Equilibrium Model: Assessing the Excess Burden of Indirect Taxes in Russia

Thomas Rutherford and Sergey Paltsev

August, 1999

Abstract

The paper documents the development of a pilot Shoven-Whalley general equilibrium model for Russia based on a recent (1995) input-output table. The paper is intended to serve two goals. At first, it has a pedagogic purpose, as a guide to the steps involved in the specification and application of a computable model. A second purpose of the paper is provide insight into the current domestic tax system in Russia. As a preliminary application of the 1995 IO table, this paper has assessed the marginal excess burden of different tax instruments. Based on the simple static model, we find that import tax is the least efficient source of public funds. However, the results are sensitive to interpretation of data and the choice of the model.

Content

1  Introduction
2  Input-Output Tables
2.1  IO Tables: An Overview
2.2  The 1995 IO Table for Russia
3  A Static General Equilibrium Model
3.1  Economic Flows
3.2  Functional Forms
3.3  Behavioral Assumptions
3.4  Equilibrium Conditions
4  The Russian Tax System and its Portrayal in the 1995 IO Table
5  Calculating the Marginal Excess Burden of Taxes
6  Conclusion
7  References
Appendix 1. Taxation in Russia
Appendix 2. Programming Preliminaries
Appendix 3. File listings
Appendix 4. MCP Formulation

1  Introduction

The analysis of economic policy in a micro-consistent framework demands both theory and data. A common theoretical basis for economic analysis is the Shoven-Whalley (1992) applied general equilibrium framework which is quite flexible and can be applied to a large number of economy-wide issues (commercial policy, tax reform, environmental policy, etc.). The Shoven-Whalley approach is normally based on a multi-sectoral dataset, such as can be provided by an input-output table. While, in a textbook exposition, the development of the model and the dataset are conceptually separate activities; in practice, these two activities proceed in parallel.

The purpose of this paper is to document the development of a pilot Shoven-Whalley general equilibrium model for Russia based on a recent (1995) input-output table. The paper is intended to serve two goals. At first, it has a pedagogic purpose, as a guide to the steps involved in the specification and application of a computable model. A second purpose of the paper is provide insight into the current domestic tax system in Russia. We do not attempt to model non-standard aspects of the current system of indirect taxation such as tax avoidance or corruption 1. Instead, we formulate a fairly standard static, constant-returns to scale model, and use this model to assess the excess burden of various tax instruments based on what can be inferred from the input-output data. This analysis is intended to document a dataset and core model. It is understood that this analysis will ultimately provide a point of departure for subsequent assessments of tax policy options based on more complex formulations.

A draft of a 1995 table is provided by Russia's Bureau of Economic Analysis. The Russian tax system in 1995 is described in Appendix 1. It should be noted that the tax system is characterized by a heavy burden of taxes other than those based on net income, notably value-added tax, payroll-based taxes, and other indirect taxes. Based on IO information, in our core model indirect taxes are combined into five groups: value-added tax (VAT), import tax, net taxes on goods (excises, etc.), social security tax, other taxes included into cost of production (natural resource tax, road usage tax, etc.). We calculate rates of the existing tax instruments. Calculated tax rates are different from the statutory tax rates. Both calculated and existing rates are not uniform across sectors. For example, the calculated VAT rate varies from 1 to 13%, whereas a statutory VAT rate is 20% (10% for basic food and pharmaceuticals).

Based on the core model, we calculate the marginal excess burden (MEB) of the existing tax instruments in Russia. Social security tax is relatively efficient with MEB of 5%. The reason for this is a relatively small difference in tax rates between sectors. When social security tax is increased, resources cannot move easily into less taxed sectors. We find that the MEB of VAT, net taxes on goods, and other taxes is equal approximately to 5.5%. Import tax is particularly costly with the MEB of 9.5%. Import tax imposes a higher distortion cost than other tax instruments because it favors domestic production over imports. The results from this analysis are tentative, as we have ignored a number of potentially important mechanisms. First, we have not modelled tax evasion. Second, the result is sensitive to interpretation of data in the IO table. In addition, introduction of steady-state capital rule drastically changes the MEB calculations, which leads to a conclusion that the results may differ with a truly dynamic model.

The paper has the following structure. In Section 2, we consider general features of an IO table and describe a 1995 Russian IO table. Section 3 presents a simple static general equilibrium model. Section 4 portrays the presentation of Russian tax system in the IO table and provides computed rates of different tax instruments. The results of illustrative calculation of the MEB are discussed in Section 5. In Appendicies, we describe major Russian taxes and their rates in 1995, and a step-by-step procedure of developing the static model in GAMS/MPSGE format from an MS Excel file with an IO table.

2  Input-Output Tables

Data for a particular country or region are often organized in the form of an input-output (IO) table which presents a static image of the economy. However, an IO table is not a model. In order to analyze how the economy works and make predictions on the effects of policy changes, a model of the economy has to be created. The information contained in the IO table provides a basis for the creation of a plausible model.

2.1  IO Tables: An Overview

An input-output (IO) table contains the valuable information about the market allocation of resources in an economic system. Based on this information, a variety of general economic equilibrium models can be created. Detailed data on the flows among different sectors of an economy can be used for building static models or can serve as a benchmark dataset for dynamic models. Modern computerized economic techniques enhance traditional input-output analysis developed originally by Wassily Leontief (1936) 2.

An IO table describes the flows among the various sectors of the economy. It represents the value of economic transactions in a given period of time. Transactions of goods and services are broken down by intermediate and final use. An IO table also shows the cost structure of production activities: intermediate inputs, compensation to labor and capital, taxes on production. Table 1 illustrates a general structure of an IO table, according to the European System of Integrated Economic Accounts (Eurostat, 1986).

INTERMEDIATE USEFINAL USE
by Production SectorsPrivateGov'tOUT-
1 2 ...j... n consum.consum.Invest.ExportPUT
1
Domestic2
Production:
i ABC
:
n
1
2
Imports:
i DEF
:
n
Value added:
-labor
-capitalGHI
-indirect
taxes
INPUT J

Table 1. Input-Output Table

In the standard Eurostat framework, Matrix A represents an intermediate demand. Rows in the matrix A describe production sector outputs. Columns represent sectors which use outputs of production as intermediate inputs. As such, a number in a cell Aij tells the amount of sector i's output used in the production of a sector j. A breakdown of a final demand on private consumption, government consumption, investment, and export is shown in Matrix B. Matrix C gives the information on total domestic production. Matrices D, E and F give the corresponding information on imported goods and services. Payments to labor and capital, depreciation, and indirect taxes are presented in Matrix G. Matrix H is normally empty, and summation over rows in Matrix I gives information on value-added. If an IO table is balanced, then columns of Matrix J should be the same as the rows of Matrix C because total input equals total output for production sectors.

There are several possible ways of measuring values of transaction: basic prices, producers' prices, and consumers' prices. The basic price equals the sum of costs of the goods and services used and of the remuneration of the factors of production needed to produce that product. Producers' price is equal to the basic price plus net taxes on the products paid by the producer unit. Consumers' price is the total price paid by the user. It equals to producers' price plus trade and transportation margins. The use of IO tables for economic analysis may follow different purposes, and so different price systems may be used.

An IO table shows only the relationship between production accounts and the other accounts (factors of production, consumption, government, investment, export, import). In traditional general economic modeling, data is presented in a form of balanced Social Accounting Matrix (SAM) (Pyatt and Round (1985)). A SAM is an expanded version of an IO table which contains additional information on interrelations between all accounts. In terms of Table 1, it means that information on transactions of Matrix H is available.

A SAM illustrates the circular process of demand leading to production leading to income, which in turn leads back to demand. An IO table has information on incomes to factors of production (capital and labor), but there is no information on the owners of these factors. Among owners are households, corporations, government (which can provide capital and levy indirect taxes), and foreign entities. As such, an IO table misses a link on distribution of income. A SAM also contains additional data on payments among owners. Payments arise from a variety of reasons: ownership of certain assets, direct taxes on corporations and households, pensions, and transfers. An IO table has information on indirect taxes but not on direct taxes. Indirect taxes are levied on the expenditure of the final purchaser of goods and services or on intermediate goods purchased by producers. On the other side, direct taxes are extracted from income and, therefore, constitute a transfer from corporations and households to a government.

There is an exact correspondence between rows and columns in a balanced SAM. This means that supply equals demand for all goods and factors, tax payments equals tax receipts, there are no excess profits in production, the value of each household expenditure equals the value of factor income plus transfers, and the value of government tax revenue equals the value of transfers.

It should be noted that there is a relationship between an IO table and Gross Domestic Product (GDP). GDP is defined as the value of final goods and services produced in a given year. In order to extract information on GDP from an IO table, we need to eliminate intermediate production - goods that are used up to produce other goods. There are two approaches to measuring GDP: product approach and earnings approach. Product approach includes summation of private consumption, investment, government spending, and net export. This approach is represented by a usual formula for GDP:

GDP = C+I+G+EX-IM
(1)
Earnings approach is based on counting earnings or costs, such as wages, indirect taxes, depreciation, profits, and other income.

2.2  The 1995 IO Table for Russia

Converting a particular IO table into a general economic equilibrium model may bring several problems. At first, different IO tables may have different formats, not exactly corresponding to an IO table described in the section above. In regard to that, a modeller faces the question of interpreting different rows and columns. Second, assumptions on the nature of equilibrium, particular functional forms, elasticities, etc., should be made.

The original 1995 Russia IO table is different from the Eurostat standard. It allows us to highlight possible adjustments when a modeller deals with different formats. For compactness, we have made several changes to the original IO table including aggregation of 13 sectors of industry into one industry sector and other minor changes. An aggregated IO table is presented in Table 2. In order to fit this into an article size, Table 2 is divided into four subtables. Tables 2.1, 2.2, and 2.3 correspond to Table's 1 Matricies A, D, and B, respectively. Table 2.4 does not exactly fit into the Eurostat standard. It represents taxes, margins, and imports evaluated at basic prices to convert the output into basic prices. The available data on imported goods is aggregated, and we have no information on Matricies D and E. Another important issue is that the IO table is not balanced. Here we make an assumption that the IO data represents an equilibrium and statistical errors occurred during the collection of the data. In this case, statistical errors should be corrected by balancing the IO table in the way described later in the paper.

Table 2. The 1995 Russian IO Table

                                                                                       
    Table 2.1
                                 Industry        Construction    Agriculture     Transport       Lease           Communal        Education       Banking         Others       Interm. Cons                                                                                                            
                                     1               2               3               4               5               6               7               8               9            10                                                                                                              
Industry                     1   543,377,284     90,450,789      40,031,134      69,881,621      48,621,711      45,998,503      46,163,329      45,953,488      2,563,330    933,041,189                                                                                                             
Construction                 2   2,744,031       666,058         362,993         2,327,089       2,825,451       4,020,760       6,967,433       3,446,843       91,201       23,451,859                                                                                                              
Agriculture and forestry     3   37,566,006      390             51,371,826      322             3,801,253       109,103         1,338,161       1,257,834       3,562        95,448,457                                                                                                              
Transport and communications 4   16,612,675      8,206,444       2,834,779       8,191,387       30,506,774      1,540,011       4,945,306       14,901,200      514,268      88,252,844                                                                                                              
Lease, advertising, trade    5   2,769,076       1,109,196       47,138          3,482,954       13,054,082      114,156         1,598,547       4,811,450       210,904      27,197,503                                                                                                              
Communal services            6   1,607,517       650,550         565,958         3,794,739       6,025,608       1,344,537       16,275,651      7,477,728       227,030      37,969,318                                                                                                              
Education, medicine          7   1,725,368       181,173         78,343          291,094         1,746,561       58,715          8,271,628       1,551,860       20,767       13,925,509                                                                                                              
Banking, insurance           8   6,637,802       402,377         114,784         843,702         5,092,641       560,312         348,630         6,539,254       44,269       20,583,771                                                                                                              
Others                       9   3,377,485       450,323         84,037          1,056,753       5,331,501       300,812         1,953,920       3,086,069       377,174      16,018,074                                                                                                              
Subtotal                     10  616,417,244     102,117,300     95,490,992      89,869,661      117,005,582     54,046,909      87,862,605      89,025,726      4,052,505    1,255,888,524                                                                                                           


     Table 2.2
Wage                         11  158,405,280     64,738,237      25,876,439      76,145,876      116,491,318     19,430,071      57,939,456      63,790,994      5,494,102    588,311,773                                                                                                             
Social insurance contrib.    12  37,680,723      15,652,377      5,768,461       16,496,039      8,639,405       5,800,762       19,495,144      7,628,106       1,986,145    119,147,162                                                                                                             
Net profit                   13  45,135,946      1,116,533       -39,910,914     -18,617,428     79,923,003      -30,725,703     -4,904,083      3,647,163       3,070,909    38,735,426                                                                                                              
Net mixed income             14  6,059,448       6,610,033       66,721,551      3,560,416       80,211,771      13,169,875      1,261,821       6,218,262       0            183,813,177                                                                                                             
Other taxes on prodution     15  24,188,399      5,468,620       2,038,941       11,078,549      9,428,112       1,547,822       1,016,892       2,612,992       427,493      57,807,820                                                                                                              
Subsidies on production      16  0               0               -2,184,997      0               0               0               0               0               0            -2,184,997                                                                                                              
Depreciation                 17  221,104,391     40,510,800      64,875,144      90,483,515      21,574,450      69,806,964      37,720,565      19,869,663      1,040,050    566,985,542                                                                                                             
Gross value added            18  492,574,187     134,096,600     123,184,625     179,146,967     316,268,059     79,029,791      112,529,795     103,767,180     12,018,699   1,552,615,903                                                                                                           
Total input (row 10+row 18)  19  1,108,991,431   236,213,900     218,675,617     269,016,628     433,273,641     133,076,700     200,392,400     192,792,906     16,071,204   2,808,504,427   
                                    
                                    
    Table 2.3                                                                                                                                                                 
                                      Final Consumption             Gross accumulation                                                                                                                                                           
                                 Households      Government      Incr. in fixed assets  Chg. in Stocks          Export          Total use                                                                                                                                                                                           
                                    11              12              13                     14                     15              16                                                                                                                                                                                   
Industry                     1   467,025,189     559,018         71,989,877             183,598,722             375,193,303     2,031,407,298                                                                                                                                                                                       
Construction                 2   681,809         0               244,109,150            6,535,939               469,000         275,247,757                                                                                                                                                                                         
Agriculture and forestry     3   101,744,966     3,563,800       -13,199,063            39,511,187              1,989,157       229,058,504                                                                                                                                                                                         
Transport and communications 4   44,590,098      0               0                      0                       21,080,832      153,923,774                                                                                                                                                                                         
Lease, advertising, trade    5   14,756,915      8,308           1,015                  0                       3,866,506       45,830,247                                                                                                                                                                                          
Communal services            6   40,786,288      22,346,030      0                      0                       175,925         101,277,561                                                                                                                       
Education, medicine          7   20,211,334      163,992,100     6,251,264              0                       913,401         205,293,608                                                                                                                       
Banking, insurance           8   17,766,601      145,396,700     0                      0                       566,096         184,313,168                                                                                                                       
Others                       9   4,984,544       0               28,655                 1,356,778               81,580          22,469,631                                                                                                                        
Subtotal                     10  712,547,744     335,865,956     309,180,898            231,002,626             404,335,800     3,248,821,548
                                                                                                                     


    Table 2.4
                                 Transp. margin  Trade margin    VAT in use      Taxes on goods  Import taxes    Import          Total      
                                    17              18              19              20              21              22              23         
Industry                     1   127,855,458     376,959,873     50,274,091      44,633,517      8,980,843       280,165,313     1,142,538,203 
Construction                 2   0               1,111,854       36,281,466      0               0               7,604,278       230,250,159   
Agriculture and forestry     3   4,122,198       15,670,028      3,158,669       -3,827,110      88,973          9,115,460       200,730,286   
Transport and communications 4   -132,079,025    671,177         12,696,562      -10,974,262     0               14,307,396      269,301,926   
Lease, advertising, trade    5   0               -398,378,913    4,249,640       -426,434        0               6,901,462       433,484,492   
Communal services            6   0               14,809          6,971,161       -36,370,002     0               267,555         130,394,038   
Education, medicine          7   0               546,100         2,382,116       -867,300        0               2,453,768       200,778,924   
Banking, insurance           8   0               967,765         2,290,218       0               0               1,260,475       179,794,710   
Others                       9   101,369         2,437,307       1,631,577       -747,209        4,484           2,141,594       16,900,509    
Subtotal                     10  0               0               119,935,500     -8,578,800      9,074,300       324,217,301     2,804,173,247 

Let us take a closer look at Table 2 to see its correspondence with Table 1. Rows in the Tables 2.1, 2.3, and 2.4 are identical. They represent production sector outputs which are used as intermediate inputs for other sectors and in final consumption. Rows in Table 2.2 show the other factors of production, such as capital and labor, depreciation, indirect taxes, and other adjustments. Columns in Tables 2.1-2.3 represent demanders of factors of production: intermediate consumers (production sectors which use an output of production sectors as intermediate inputs), final consumers (households and government), investment, and export. Looking along a particular column of Tables 2.1 and 2.2, one can see how inputs are used for production in a certain sector.

Consider an example: following the numbers associated with a particular row, a usage of output of the particular sector by other sectors of the economy can be seen. Take for example row 3 of Table 2.1, Agriculture and forestry. We can see, from column 1, that the industry has consumed an agricultural output in the value of 37,566,006. The next column shows that Construction has consumed the agricultural output worth of 390. The summation over columns 1-9 gives a total use of the output of agriculture and forestry by all industries, including agriculture and forestry itself. It is equal to 95,448,457. Numbers in Table 2.3 (columns 11-14) give us a final consumption by households, government, and investment. By adding export (column 15), a total consumption of agriculture's output is calculated, which is 229,058,504. Table 2.4 provides a correction of the result for transportation and trade margins, taxes, and import. As such, the total use of output of agricultural sector evaluated at basic prices is 200,730,286.

Now, consider a particular column, say again column 3. The summation over the first nine rows gives the total amount of payments from agriculture to other sectors for use of their products as intermediate goods, which is 95,490,992. Value added is calculated as a sum of wages, return to capital, taxes, and depreciation. From the row 18, it is equal to 123,184,625. Total input payment is a combination of payments for all factors of production (intermediates, labor, capital), indirect taxes, and depreciation. From the row 19, the value of total input is 218,675,617.

Even before the conversion from Excel, several checks of IO data can be performed. The first check can be made based on GDP information. GDP data is a widely cited statistic; therefore, it gives a good starting point for the checks. The information on GDP can be extracted from Table 2 in the following way. As described in Section 2, there are two approaches which give approximately the same result. According to equation (1), the product approach GDP can be obtained by summation of the columns 11-15 which represent final consumption, investment, and export, and subtraction of the column 22 which represents import. These manipulations with row 10 give the number of 1,668,715,723. The earnings approach GDP can be seen from gross value added. In table 2.2, column 10 shows the total number of value added for all sectors of the economy. A summation over rows 11-17 gives the total value added which is represented on the intersection of row 18 and column 10 and equals to 1,552,615,903. Both of these numbers are close to the Russian 1995 GDP which was 1,540 trillion rubles. As noted, we assume that the difference is due to statistical errors which occur in the process of collecting information. Another helpful check is to calculate aggregate numbers for intermediate consumption by all sectors of the industry, all sectors of the economy, total consumption, and value added.

If an IO table is not balanced, a modeller has to decide how to make appropriate adjustments. In the example described in this paper, we rearrange the returns to capital because profits are usually calculated as a residual. Another question is interpretation of certain taxes, subsidies, and other adjustments. For example, value-added tax (VAT) can be interpreted as a tax on labor and capital as factors of production, or it can be interpreted as a consumption tax (since investment is not taxed). We describe these options in Section 5.8. Different interpretation affects the results of the counterfactual experiments.

The process of converting is described in detail in Appendix 2 and consists of the following steps: modification of an Excel file; saving an Excel file as a Lotus file; reading IO table into GAMS format; data check and creation of a dataset; interpretation of a dataset; development of a benchmark static model.

3  A Static General Equilibrium Model

A static model represents production and distribution of goods and services in an economy in a given period of time. General equilibrium models are a useful tool for national or regional economic planning because they allow one to see impacts from different policy mechanisms. This type of analysis is extremely valuable because it can account for interrelated and balanced transactions between all sectors in the economy. In the present paper we develop a simple model to assess the cost of raising revenue from alternative sources.

3.1  Economic Flows

The static model recreates an Arrow-Debrew (1954) general economic equilibrium model 3. The number of consumers in the model is specified. Each consumer has an initial endowment of the N commodities and a set of preferences resulting in demand functions for each commodity. Market demands are the sum of all consumers' demands. Often a representative agent is introduced to describe market demands and total endowments. Commodity market demands depend on all prices and satisfy Walras's law. That is, at any set of prices, the total value of consumer expenditures equals consumer incomes. Technology is described by constant returns to scale production functions. Producers maximize profits. The zero homogeneity of demand functions and the linear homogeneity of profits in prices (i.e. doubling all prices double money profits) imply that only relative prices are of any significance in such a model. The absolute price level has no impact on the equilibrium outcome.

Equilibrium in this model is characterized by a set of prices and levels of production in each industry such that the market demand equals supply for all commodities. Since producers are assumed to maximize profits, and production exhibits constant returns to scale, this implies that no activity (or cost-minimizing technique for production functions) does any better than break even at the equilibrium prices. Mathiesen (1985) has shown that an Arrow-Debreu model can be formulated and solved as a complimentarity problem. Accordingly, three types of equations define an equilibrium: market clearance, zero profit, and income balance.

The relationship between different blocks of a typical model is shown in Figure 1. Taxes are discussed in the next section and therefore, for simplicity, do not appear in this figure.

Fig. 1. Flows in a static model

Sector's i output (denoted as Yi) is produced using capital K, labor L, and intermediate inputs described by an Armington aggregate Aji. Following Armington (1969), an intermediate demand is represented as a composite of domestic goods Dj and imports Mj used in sector's i production. Armington aggregate is also used for private consumption C, government consumption G, and investment I. Output Yi is divided into domestic goods Di and export Ei. A representative agent RA represents a collective decision process for allocating income to households and to a government. RA has an endowment of capital K and labor L, collects taxes, and demands C, I and G.

3.2  Functional Forms

In order to specify the model further, specific functional forms of the basic blocks which characterize preferences and technology should be assumed 4. In the footnotes, we provide an algebraic formulation of the functional forms for an interested reader. However, a nice feature of MPSGE is that a modeller does not have to worry about programming the algebraic equations like that. Rather, a modeller needs to have a picture of the economic flows among the agents. MPSGE constructs underlying production and utility functions based on reference prices, quantities and elasticities.

As noted, each production sector Y produces two types of commodities: domestic goods D and goods for export E. These goods are assumed to be imperfect substitutes, and they have a constant elasticity of transformation. For production, each sector uses capital, labor, and intermediate goods. As such, the sector's i production function is

Yi = g(Di,Ei) = f(Ki, Li, Aji)
(2)
where g is output transformation function, and f is input transformation function. Output transformation is assumed to be the constant elasticity of transformation (CET) function 5:
g(Di,Ei) = CET(Di, Ei)
(3)

For input combination, we have a Leontief aggregation of factors of production. Capital and labor enters as a Cobb-Douglas value-added aggregate 6. Intermediate inputs from different sectors enter as a Leontief aggregate into a sector's i production function:

f(Ki, Li, Aji) = LF[CD(Ki, Li), LF(A1i, A2i, ... , Aji)]
(4)
where LF is the Leontief aggregate; CD is the Cobb-Douglas aggregate.

An intermediate input to a sector i from a sector j is an Armington aggregate of domestic output and import. Users regard these goods as imperfect substitutes, and these goods are assumed to have a constant elasticity of substitution (CES). 7

Aji = CES(Dj, Mj)
(5)
Armington aggregate is used for private consumption, government consumption, investment, and as an intermediate input for production. Investment and government consumption are both Leontief aggregates across Armington composites of domestic goods and imports.
I = LF(Ai);   G = LF(Ai)
(6)

A representative agent has an endowment of primary factors of production: capital and labor. She demands investment, private and government goods, and collects all applicable taxes. The investment and government sector's output are exogenous while private demand is determined by utility maximizing behavior. Consumer utility consists of a Cobb-Douglas utility index defined over Armington aggregation of domestic and imported commodities 8 .

C = CD(Ai)
(7)

Another way of presenting the model structure is shown in Figure 2, where s is the elasticity of substitution and h is the elasticity of transformation.

Fig. 2. Structure of the static model

3.3  Behavioral Assumptions

The structure of the model represented in Figures 1 and 2 does not contain any information about the assumptions of economic agents' behavior. In a traditional planning model, it is assumed that a central planner has a goal of ``maximum satisfaction of the growing needs of a society as a whole and of its individual citizens'' 9. A general equilibrium model differs from a planning model in that it describes the interaction of a number of autonomous economic agents. It should be stressed that the assumptions are very different in regard of the competitive behavior of the economic agents who are acting on their own interests. In the standard Arrow-Debreu economic model, there are two agents: consumers (or households) and producers (or firms). We will include a government later.

Consumers have an initial endowment of goods and factors of production. They earn income from sales of the endowment and from dividend payments. Then consumers engage in buying goods to maximize their satisfaction or utility. Producers use inputs and turn them into goods. Inputs may come from the initial endowments of consumers or they may be intermediate goods produced by other firms. Producers produce outputs subject to the technological knowledge they have available. Their goal is to maximize profit. All profits earned are distributed to shareholders. All agents treat prices as given. That is, in determining their optimal behavior, the agents believe that their actions do not affect prices.

The third economic agent, a government, collects tax revenues to maximize social welfare function which represents the state's preferences. The role of taxes is to redistribute income, to finance government expenditures, to alter a behavior of the economic agents, and to stabilize an economy. A related question is a question of the optimal taxation. That is, what taxes should be used if the goal is to maximize social welfare. The aim of the optimal taxation is to balance efficiency losses from taxes with equity gains.

3.4  Equilibrium Conditions

It has been noted that an Arrow-Debreu model can be formulated and solved as a complimentarity problem where three types of equations define an equilibrium: market clearance, zero profit, and income balance. An introduction of taxes by the government changes relative prices in the economy. Producers and consumers, who treat prices as given, adjust their behavior to clear the markets. As such, in presence of taxation, equilibrium conditions should reflect the fact of different consumers' and producers' prices.

Zero profit conditions are produced for all production sectors. They state that a cost of production gross of tax equals value of output. For our model, zero profit conditions for seven sectors should be satisfied: final production, Armington aggregation, public goods, private goods, investment goods, export, and import. Zero profit conditions are associated with levels of production.

Market clearance conditions reflect the fact that output plus initial endowment equals to intermediate and final demands. These conditions should be satisfied for each good and factor of production. We have ten market clearance conditions: for final goods, Armington supply, public goods, private goods, investment goods, export, import, foreign exchange, capital, and labor.

Income balance condition states that the level of expenditure equal the value of income from sales of factor endowment, dividend payments, and tax revenue. In a simple static model, a representative agent represents a collective decision process for allocating income to households and to a government. We introduce government as a separate economic agent later in the paper.

MPSGE automatically generates the equations which represent equilibrium conditions. For an interested reader, we provide a mixed complimentarity (MCP) version of the model in Appendix 4, where an explicit algebraic formulation of the equilibrium conditions might be found. After initial calibration, a modeller can test different counterfactual scenarios. In section 5, we present a calculation of marginal excess burden of indirect taxes in Russia (see Appendix 2.7 for the MEB programming issues).

4  The Russian Tax System and its Portrayal in the 1995 IO Table

There were about 30 separate federal taxes and over 170 local and regional taxes in 1995. Today Russia has 89 regional tax offices and 2,639 local tax offices employing over 180,000 tax officials. Yet, evasion is endemic. Despite some of the highest tax rates in the world, Russia has one of the lowest rates of overall tax collections. Other problems with Russian taxes include too many types of taxes both on the federal and on the local level. This multitude of taxes not only makes compliance difficult, but also makes it challenging to keep current with changes and amendments. The Russian government is currently working on a new tax code. The current draft of the code includes a drastic revision in the number of taxes (from more than 200 to less than 40). Progress on the four-part code, which requires approval by the full Russian parliament, is moving forward very slowly.

A description of Russian taxes and their rates is in Appendix 1. A 1995 IO Table contains the data for the following tax instruments: VAT, net taxes on goods, social security tax, import tax, other taxes included into cost of production. Unfortunately, there is no documentation on how the taxes are divided into these five categories. It is our understanding that VAT, import tax, and social security tax in the IO table are related to the corresponding taxes described in Appendix 1. It is our guess that a revenue reported in Net taxes on goods is a combination of a revenue from such taxes as oil sales tax, excise tax, and different subsidies. Other taxes included into a cost of production row of the IO table consist of such taxes as a natural resource tax, road usage tax, land tax, etc. The rates of the existing tax instruments are computed based on the information provided in the IO table. As one can see from Table 3, these rates exhibit a high variance across sectors.

VAT NETTAX LABOR IMPORT OUTPUT
Industry 3 3 24 3 2
Construction 13 24 2
Agriculture 1 -2 22 1
Transport 10 -8 22 4
Trade 10 -1 7 2
Communal services 7 -36 30 1
Education 1 34 1
Finance 1 12 1
Others 7 -3 36 3

Table 3. Calculated rates of different tax instruments.

We also developed a utility for recalibrating the data to an exogenously specified set of tax rates. A modeller can define the rates of different tax instruments and create a new benchmark dataset.

5  Calculating the Marginal Excess Burden of Taxes

As described in the previous section, we can calculate several basic ratios of the economy based on information contained in the IO table. However, an IO table is not a model. In order to analyze how the economy works and make predictions on the effects of policy changes, a model should be used. As have been noted earlier, the results from the model depend on certain assumptions about the basic structure of the economy and a behavior of economic agents. In our model, choices are consistent with optimization and market clearing. That is, a government can change relative prices using different tax instruments. Then consumers and producers adjust their optimal behavior based on the new set of prices.

Taxes distort decisions made by economic agents. One measure of the distortion is an excess burden. The excess burden is defined as a reduction in utility in addition to the amount taken by the government if it uses a lump-sum taxation. As such, a total burden of a tax is equal to a sum of a tax burden (an amount which consumer actually pays) and the excess burden (extra loss in utility). The excess burden arises when a behavior of the economic agents changes due to introduction of taxes. The excess burden increases with the square of a tax rate.

We can evaluate an excess burden using a Hicksian equivalent variation. For this, we compute a Hicksian money-metric welfare index for a consumer and compare welfare level in a benchmark with a counterfactual calculation. Change in welfare is

EV = 100 · W1 - W0
W0
(8)
where W0 is a benchmark welfare level and W1 is a welfare level after introduction or removal a tax.

If, in a presence of an existing tax, a government decides to raise an additional tax revenue, then the change in excess burden per dollar of extra revenue constitutes a Marginal Excess Burden (MEB). MEB is defined as the percentage efficiency cost of a marginal transfer of funds from the private consumer to the government using the specified tax instrument. It means that if the MEB of, for example, labor tax is 15 percent, then for every 100 rubles raised by the Russian government through labor tax, Russian consumers effectively pay 15 rubles in addition to the 100 that they transfer to the government. These extra costs are not paid literally to the government, but reflect lower standards of living due to higher prices and resource misallocation induced by the increase in taxes.

We compute MEB of different tax instruments in the following way. A government, as a separate economic agent who collects taxes and demand government goods, is introduced. Then, we increase a government spending by 1 percent and calculate a change in the excess burden as:

MEB = 100 · (W0-W1)-(G1-G0)
G1-G0
(9)
where G0 is a benchmark level of a government spending and G1 is a level of a government spending in a counterfactual experiment. For a consistent comparison with a money-term government spending, the change in consumer welfare is measured by means of money-metric utility concept, such as equivalent variation.

The results of the MEB calculations, based on different elasticities of transformation between domestic output and exports, h, and elasticities of substitution between domestic goods and imports, s, are presented in Table 4. Based on the core model, we find that import tax is relatively costly. The MEB of all other tax instruments is approximately the same with small differences. Despite the highest rate, social security tax is relatively efficient with an MEB of 5%. The intuition behind it is a relatively small difference in tax rates between sectors. When social security tax is increased, resources cannot move easily into less taxed sectors. The MEB of VAT, net taxes on goods and other taxes is equal approximately to 5.3 - 5.6%. Import tax is particularly costly with an MEB of 9.5-19% depending on different elasticities. Import tax imposes a higher distortion cost than other tax instruments because it favors domestic production over imports.

h s OUT LAB VAT NET IMP
1 4 5.34 4.96 5.49 5.49 9.53
1 16 5.46 4.97 5.62 5.62 11.20
4 4 5.34 4.92 5.50 5.50 13.12
4 16 5.48 4.94 5.64 5.64 19.35

Table 4. Marginal Excess Burden in a core model.

An assumption about the elasticities plays an important role in the MEB calculation. Higher values of elasticities imply more responsive behavior of economic agents when taxes (hence, relative prices) are changed. That is, in the case of higher elasticity of substitution between domestic goods and imports, consumers may switch between these goods more easily. An excess burden arises when a behavior of economic agents changes due to introduction of taxes, and the excess burden is bigger when behavior changes to a greater degree. From econometric estimations for the United States, h is usually around unity for manufacturing goods and sigma is around four. However, in CGE literature these values are higher and sometimes they assumed to be infinity. We provide the results of calculations for both low- and medium- levels of elasticities.

We calculated MEB for a disaggregated model also. The MEB estimates of all tax instruments except for import tax do not change greatly with disaggregation of industry into 13 sectors as in the original IO table. With h=1 and s = 4, the MEB of import tax has arisen with disaggregation to 30% from 9.5%. The increase is due to a higher difference of import tax rates among the sectors of the industry.

The results from this analysis are tentative, as we have ignored a number of potentially important mechanisms. First, in our basic model we have not modelled important aspects of Russian tax system such as tax avoidance or corruption. Second, the result is sensitive to interpretation of data in the IO table. Different benchmark models can be built based on different interpretation of tax data.

In our benchmark model we have specified taxes in the way shown in Figure 3. In comparison with a model presented in Figure 1, we have introduced one more economic agent, a government GOV, who collects taxes and demands government goods. Taxes are applied as follows: ty is a combination of the indirect production taxes, levied on production for both the domestic and export markets (output tax), ta is a value added tax, tn represents net taxes on goods, tm is an import tax, and tl is a social security tax. A difference between tax revenue from indirect taxes and government demand is financed by direct taxes tc.

Fig. 3. Taxes in a benchmark static model

However, the interpretation can differ depending on the modeller's view of the appropriate tax base for these taxes. For example, VAT can be treated differently. Instead of putting a tax on Armington supply, VAT can be interpreted as a tax on labor and capital as factors of production, or since, in Russia, the VAT base is sales of goods and services, it can be interpreted as an domestic output tax. Tables 5 and 6 show the results of the MEB calculations based on different VAT specification.

h s OUT LAB VAT NET IMP
1 4 5.04 4.53 4.80 5.22 9.48
1 16 5.17 4.39 4.74 5.35 11.00
4 4 5.05 4.48 4.75 5.23 13.20
4 16 5.20 4.36 4.70 5.38 19.60

Table 5. MEB when VAT is levied on capital and labor.

h s OUT LAB VAT NET IMP
1 4 5.37 4.92 5.49 5.52 5.17
1 16 5.61 4.91 5.71 5.67 5.69
4 4 5.48 4.94 6.10 5.59 2.57
4 16 5.71 4.92 6.83 5.72 0.62

Table 6. MEB when VAT is levied on domestic output.

Interpretation of VAT as a tax on capital and labor does not change greatly the MEB estimation. However, treating a VAT as domestic output tax decreases distortion between domestic production and imports. It leads to lower MEB from import tax. We should note that import tax reflects only import duties. Goods going into Russia are subject to three levies: an import duty/tariff, a VAT, and an excise tax, included in net taxes on goods (See Appendix 1).

The results of the MEB calculation are very different if a steady-state constraint is introduced. If we assume that an economy is on a steady-state balanced growth path, then there is a specific relationship between capital and investment (Rutherford and Tarr (1999)). An increase in government spendings will produce a new equilibrium, where for many of the changes we consider, the rate of return on capital changes (relative to the cost of investment) due to a less efficient allocation of resources. This implies that, in a dynamic sense, a fixed capital stock can no longer be optimal in the new equilibrium of the static model. Investment would be changing until the marginal productivity of capital is reduced to the long run equilibrium where the ratio of rate of return on capital to the cost of the capital good is restored to its initial value. In the core model, we allow the price of capital and the price of investment to vary. Steady-state calculations establish a link between these two prices. The goal of a steady-state calculation is not to describe the full adjustment path following a change in a policy. Rather, we want to evaluate the bound on welfare change in a Solow type model.

h s OUT LAB VAT NET IMP
1 4 98.1 20.1 103.9 103.9 119.0
1 16 100.7 20.2 106.7 106.7 136.2
4 4 98.6 20.1 104.4 104.4 124.4
4 16 101.2 20.2 107.3 107.3 160.6

Table 7. MEB with a steady-state capital constraint.

Based on a core model, we find that an introduction of steady-state capital rule drastically changes the MEB calculations, which are presented in Table 7. It means that a static model underestimates the welfare losses. As one can see from Tables 5-7, import tax is more costly in terms of efficiency except for the case when VAT is treated as a tax levied on domestic output.

6  Conclusion

An IO table provides an overview of the relative magnitude of tax rates and economic activities, yet it gives limited information regarding the economic cost of raising public funds. This paper has described how an IO table can be used to construct a general economic equilibrium model which can then be used to assess the excess burden of different tax instruments. Creating a general equilibrium model is a multi-stage process. Features of the model depend on a modeller's assumptions and interpretation of an input-output data. After developing an appropriate equilibrium structure and calibrating the model, the static model might be modified to study specific issues, such as dynamic effects (Rutherford and Tarr (1999)) or foreign direct investment in services (Markusen, Rutherford, Tarr (1999)).

As a preliminary application of the 1995 IO table, this paper has assessed the marginal excess burden of different tax instruments. Based on the simple static model, we find that import tax is the least efficient source of public funds. However, the results are sensitive to interpretation of data and the choice of the model. For example, an estimated welfare loss of an increase in government spending is significantly different if a steady-state capital constraint is introduced. Another potentially interesting extension of the model is a consideration of the issues related to tax evasion.

7  References

Armington, P.S. (1969) ``A Theory of Demand for Products Distinguished by Place of Production.'' International Monetary Fund Staff Papers 16, 159-76.


Arrow, K.J., and G. Debreu (1954) ``Existence of an Equilibrium for a Competitive Economy.'' Econometrica, 22, 265-90.


Arrow, K.J., and F.H. Hahn (1971) General Competitive Analysis. San-Francisco: Holden-Day.


Eurostat (1986), ``National Accounts ESA, input-output tables 1980.'' Luxembourg: Eurostat.


Mathiesen, L. (1985) ``Computation of economic equilibria by a sequence of linear complimentarity problems.'' Mathematical Programming Study, 23, 144-62.


Leontief, W.W. (1936) ``Quantitative Input-Output Relations in the Economic System of the United States.'' The Review of Economics and Statistics, XVIII (August 1936), 105-25.


Leontief, W.W. (1966) Input-Output Economics. New York: Oxford University Press.


Markusen, J.R., Rutherford T.F., and D.Tarr (1999) ``Foreign Direct Investment and the Domestic Market for Expertise.'', unpublished.


Pyatt, G., and J.I. Round, eds. (1985) ``Social Accounting Matrices: A Basis for Planning.'' Washington: World Bank.


Rutherford, T.F. (1994) ``Applied general equilibrium modeling with MPSGE as a GAMS subsystem.'' In T.Rutherford, ed., The GAMS/MPSGE and GAMS/MILES User Notes. Washington: GAMS Development Corporation.


Rutherford, T.F., and D.G.Tarr ``Regional Trading Arrangements for Chile: Do the Results Differ with a Dynamic Model?'', unpublished.


Shoven, J.B., and J. Whalley (1992) Applying general equilibrium. New York: Cambridge University Press.


Shvyrkov, Y.M. (1980) Centralized Planning of the Economy. Moscow: Progress Publishers.

Appendix 1. Taxation in Russia

The following is a breakdown of various taxes in 1995.

Federal Taxes:

Taxes of Republics within the Russian Federation and Taxes of the Territories, Regions, and Autonomous Formations:

Local Taxes:

VALUE ADDED TAX: The VAT rate is 20%. Certain basic food products and children's goods are subject to a reduced rate of 10%. Exported goods and services, and some other specified supplies are exempt from VAT. The VAT is levied on the value that an enterprise adds to the materials or finished components used in the production or sale of products or goods. The VAT on imported goods must be paid at customs border points, in cash, before goods can be cleared. The VAT on imported goods is calculated on the basis of the customs value of the goods, including any applicable customs duties and excise taxes. Upon resale of the goods, the VAT is based on the difference between the retail price and the customs value, including customs duties, excise taxes and the VAT. Goods produced in or imported from Belarus, Kazakstan, and other countries, which join the CIS Customs Union are exempt from excise taxes and the VAT. In addition, certain types of equipment and machinery are exempt from excise taxes and the VAT.

EXCISE TAX: An Excise Tax is levied on most imported goods considered "luxury items," such as cars, jewelry, alcohol, and cigarettes. The present range of excise taxes run between 35% and 250%. The rates are expressed as a percentage of the local producer's sales price and the declared customs value.

IMPORT TAX (IMPORT TARIFF): Import tariffs generally run between 5 to 20%, with the mean duty ranging between 10 and 15%. Import levies are an important part of Russian government revenue. However, importing into Russia is not an easy procedure. In addition to miscellaneous customs processing fees, goods going into Russia are potentially subject to three levies (an "Import duty/tariff," a "Value Added Tax," and an "Excise Tax"). The majority of goods shipped to Russia are also subject to various types of certification, labeling, documentation, and customs requirements. Importers of goods subject to import duties and excise taxes are obliged to pay these fees at Russian customs entry points. Export tariffs generally are found on a scale between 20 and 30%.

ENTERPRISE PROFIT TAX: The Federal enterprise profit tax rate is 13%. The regions have the right to set a profits tax rate of up to 22% for most entities and up to 30% for banks, insurance companies, brokers and intermediaries. Thus, a combined rate of 35% (13% federal and 22% regional) applies for most taxpayers. Higher rates (up to 90%) can apply to certain entertainment and gaming activities.

PERSONAL INCOME TAX: Russia taxes individuals resident in Russia on their worldwide income, and those who are not resident on income derived from sources within the Russian Federation. The rates are between 12 and 35%.

SOCIAL SECURITY CONTRIBUTIONS: Employers must make social security, pension and employment fund contributions, as well as obligatory medical insurance contributions. The total amount payable, which is deductible for profits tax purposes, is equal to 38.5% of each employee's gross salary. For Russian nationals employed in Russia by either Russian or foreign legal entities, there is a requirement to contribute 1% of the gross salary to the Pension Fund. This amount is deductible at source by the employer. Self-employed individuals have to register with the Pension Fund and must contribute 5% of their income.

OTHER TAXES: Companies may expect to pay a variety of other taxes, depending upon the geographic location, legal structure, and sector of their planned activity.

Road usage tax: The tax rate is applied to the gross sales of all companies excluding VAT and excise duties. The tax rate is in principle 2.5%, although the rate can be increased (or decreased) by local authorities.

Social infrastructure maintenance tax: For non-trading companies, the tax rate of a maximum of 1.5% is applied to the gross sales of the company, excluding VAT and excise duties. For trading companies the same rate is applied to the gross margin.

Property tax: Property tax (also called the real estate or fixed assets tax) is paid on the value of permanent or liquid stock, buildings, and property under construction. Certain assets are excluded from the tax base, namely monetary assets, social and cultural assets, environmental protection assets, agricultural equipment, pipelines, electricity lines, and land. The maximum rate of tax is 2%, but the actual rate is set by local authorities.

Education needs tax: Education needs tax is levied on all enterprises involved in commercial activities at the rate of 1% of the total payroll.

Advertising tax: Advertising tax is levied on all enterprises that have advertising activity. The rate is 5% of the direct and indirect advertising expenses, excluding VAT.

Tax on the use of the names ``Russia'', ``Russian Federation'', etc.: Under Russian legislation, companies with the words ``Russia'' or ``Russian Federation'' in their name are required to pay a turnover tax on the use of these names. The rate of tax is either 0.05% or 0.5% depending on the type of income received and the type of activities in which the company is engaged.

Excess wage tax: This tax is applied to employees who earn more than 6 times the Russian minimum wage. In April 1995, this levy, which was previously only applied to registered offices (those actively involved in commercial transactions), was extended to representative offices (not involved in commercial transactions).

Securities emissions tax: Securities emissions tax is based on the nominal value of securities issued and is payable by issuing entities. The tax does not apply to a primary issue of securities (ie the initial share capital) or an issue of securities in respect of a revaluation of fixed assets. The tax rate is 0.8% of the nominal value of the securities.

Tax on vehicles: There are two taxes on vehicles, a tax on the purchase of vehicles and a tax on vehicle owners. The tax on the purchase of vehicles (which applies to legal entities, but not to individuals) is a percentage of the purchase price of the vehicle excluding VAT, excise, and customs duties (for imported vehicles). The rates are 20% for cars, vans, and trucks, and 10% for trailers and semi-trailers. The tax on vehicle owners applies to both individuals and legal entities. Although this is a federal tax, the regional authorities can increase the rate of tax. (Separately, VAT, excise, and customs duties also generally apply to imported vehicles.)

Oil sales tax: Oil sales tax is levied on companies that carry out domestic sales of oil products (gasoline, diesel fuel, and motor oils). The tax base is the wholesale price excluding VAT, or, in the case of entities buying and reselling oil products, the difference between the VAT exclusive sales and the purchase price. The tax rate is 25%.

Land tax: A land tax must be paid by all public, private, or individual land owners or lessees. The tax rates are determined annually and levied on a per-hectare rate by the type of land and location.

Natural resource tax: Natural resource taxes must be paid by companies involved in extracting natural resources, disposing of waste and pollutants, or other activities which cause damage to the environment. The tax rate depends on the resource or type of pollutant.

Appendix 2. Programming Preliminaries

The first step in dealing with an input-output table is to transfer the data into a GAMS readable format. In order to transfer an Excel file into GAMS format, you need:

In addition, you need the following files in your GAMS directory:

If you do not have these GAMS utilities, you can download them from
http://nash.colorado.edu/tomruth/inclib/inclib.pck

We start from an MS Excel file with the data from Table 2. The spreadsheet has one row and one column of titles and 19x23 data matrix 10. A conversion is made in the following way. At first, we prepare an Excel file; then save it as a Lotus file 11; then the iodata.gms file reads the data into GAMS format, checks the data, and creates a dataset file; and the model.gms file prepares data for a static model and contains a benchmark static model. In order to minimize the number of potential mistakes, we stress the necessity of multiple checks during the process of data transformation and model building.

A.2.1. Preparing the Excel file for the conversion

In section 2, we refer to rows and columns by their numbers from Table 2. However, an Excel spreadsheet usually has description titles, rather than numbers, to denote rows and columns. Often, rows and columns with the same title have different abbreviations in different parts of the spreadsheet (or sometimes simply misspellings). As an example from Table 2, we have ``Agriculture and forestry'' in row 3 title, but just ``Agriculture'' in column 3, even though we refer to the same sector. Converting it in this way would lead to an assignment of the data to two different sectors. The easy way to avoid potential mistakes is to number the rows and columns as shown in Table 3. An additional row and column can be inserted in Excel by clicking at Insert, then Rows or Columns.


                               Industry        Construction    Agriculture                                                                                                             
Industry                       543,377,284     90,450,789      40,031,134                                                                                                                     
Construction                   2,744,031       666,058         362,993                                                                                                              
Agriculture and forestry       37,566,006      390             51,371,826                                                                                                           
Transport and communications   16,612,675      8,206,444       2,834,779                                                                                                            

Table 3.a. Excel spreadsheet - an original format

								 
                                 Industry        Construction  Agriculture                                                                                                             
                                     1               2             3                                                                                                               
Industry                     1   543,377,284     90,450,789    40,031,134                                                                                                              
Construction                 2   2,744,031       666,058       362,993                                                                                                                 
Agriculture and forestry     3   37,566,006      390           51,371,826                                                                                                              
Transport and communications 4   16,612,675      8,206,444     2,834,779                                                                                                               
Table 3.b. Excel spreadsheet after adjustment

A.2.2. Saving an Excel file as a Lotus file

The program we use to convert a file from Excel into GAMS is SSLINK which works with Lotus and Excel worksheets, but not with Excel workbooks. In order to assure a proper transfer, an intermediate step of saving an Excel worksheet as a Lotus 123 file is needed. It can be done in the following way:

  1. Run MS Excel.
  2. In Excel menu, choose File, then the Save as option.
  3. At the bottom of the Save as dialog box, choose the Save as type option by clicking at the appropriate down arrow.
  4. Scroll over the dropdown menu and choose the type WK1(1-2-3)(*.wk1).
  5. Click on the Save button (or just hit Enter) and *.wk1 file will be created.

Excel sometimes introduces incompatible bytes in exported .wk1 files. In order to assure proper transfer, the 123 (Lotus) program can be used.

  1. Run 123.exe.
  2. Go to the Lotus menu by hitting ``/''.
  3. Read your *.wk1 file by choosing File and Retrieve.
  4. Make sure that it is the correct data and note the range of cells which contain the data. Numeric representation of rows and columns should be included in the range. In the example of Table 4, the range starts from the cell B4.
  5. Save the file by hitting ``/'', then File and Save.

Sometimes, it is helpful to give a name to the range of cells which contain the data. To do it, hit ``/'', then Range, Name, Create. You will be asked to Enter   name and Enter   range. A range can be specified explicitly by writing at the prompt or by highlighting the cells by moving the cursor 12. Before you quit Lotus, save your file after the changes. Now you are ready for the next step.

A.2.3. Reading an IO table into GAMS with SSIMPORT

The program which reads *.wk1 file is iodata.gms (See Appendix for a program listing). It uses ssimport.gms as an interface to sslink.exe. A call of ssimport from a GAMS file can be done in the following way:

$LIBINCLUDE SSIMPORT parameter file range
where parameter is a name of the GAMS parameter to which data will be retrieved; file is a name of a file from which data will be read; range is a range of data in the file which needs to be imported.

ssimport reads data from the spreadsheets at compile time. The spreadsheet range must be specified. The parameter must be declared and dimensioned prior to the import. GAMS does range checking if it has explicit domains in the declaration. A general syntax of ssimport can be found at
http://nash.colorado.edu/tomruth/sslink/ssdoc.htm

We have named our *.wk1 file as iopaper.wk1, and the range of our data is B4..Z23. So, we use: ssimport iodata iopaper.wk1 b4..z23; which means that GAMS reads data from the range b4..z23 in the file iopaper.wk1 into a parameter iodata. If in Lotus, the range b4..z23 has been named as DATA, then one can use: ssimport iodata iopaper.wk1 data.

A.2.4. Data check and creation of a dataset

From Table 2, we have 19 parameters: one 9x9 matrix of intermediate demand, and the other 11 columns and 7 rows (excluding rows and columns representing subtotals and totals). Three rows, Net  Profit, Net   Mixed   Income, and Depreciation, will be combined into one GAMS parameter, Gross   return   to   capital. As a result of iodata.gms program, a dataset file russia.dat with 17 GAMS parameters is created. In the process of creating the dataset file, several checks of correctness of data transfer are made. For convenience, we move from a numeric to symbol representation of the sectors and make an adjustment in the data, dividing it by 1,000,000.

The program iodata.gms has the following structure (see Appendix for a file listing). After reading data into GAMS format with ssimport utility, a single parameter IODATA is created. The next step is to transfer data into appropriate parameters of a dataset file. As such, we need to declare all 19 parameters.

 iod     Input-output demand
 wages   Wage payments
 socsec  Social security contribution
 profit  Net return to capital
 mixed   Net mixed income
 othtax  Other taxes 
 subsidy Other subsidies
 deprec  Depreciation
 consum  Household consumption
 govdem  Government demand
 fixedi  Increments in fixed assets 
 stock   Stock change            
 export  Export demand
 trnspt  Transport margin
 trade   Trade margin
 vat     VAT in use
 nettax  Net taxes on goods
 imptax  Import taxes
 import  Imports evaluated at basic prices

To do the transfer from IODATA parameter, a set MAP(N,I) is used where N is a numeric representation of industries and I is a symbol representation. For intermediate demands, it is done as:

iod(i,j)=sum((n,m)$(map(n,i) and map(m,j)),iodata(n,m))/1000000;
For row based parameters 13:
wages(i)=sum(map(n,i),iodata("11",n))/1000000;
And for column based parameters:
consum(i)=sum(map(n,i),iodata(n,''11''))/1000000;	

Then, we check to see if the transfer was correct by comparing major rows and columns in GAMS and Excel.

iod("rowsum",j)=sum(i,iod(i,j));
iod("chk",j)=sum(map(m,j), iodata("10",m))/1000000-iod("rowsum",j);
                              
iod(i,"colsum")=sum(j,iod(i,j));
iod(i,"chk")=sum(map(n,i), iodata(n,"10"))/1000000-iod(i,"colsum");
The same type of checks are done for all subtotals and totals from Table 2.

Then, a profit check is performed. It shows the difference between total input and total output for every sector.

prchk(j,"output")=sum(i,iod(i,j))+grvad(j);
prchk(i,"use")=usetotbas(i);
prchk(i,"chk")=prchk(i,"use")-prchk(i,"output");
Because our IO table is not balanced, an adjustment is done as described in Section 4. Return to capital is modified by the amount of difference between inputs and outputs. We combine net profit, mixed income, and depreciation into one parameter of gross return to capital. If return is negative, we make an adjustment to the corresponding wage account. As such, gross value added equals to a sum of non-negative return to capital, wages, and social security contributions.
return(i)=prchk(i,"chk")+deprec(i)+profit(i)+mixed(i);
wages(i)=wages(i)+min(0,return(i));
return(i)=max(0,return(i));
va(i)=return(i)+wages(i)+socsec(i);
Then, a check of data is done to make sure that we balanced an IO table.
prchk(j,"bal")=va(j)+othtax(j)-subsidy(i)+sum(i,iod(i,j))-prchk(j,"use");
In terms of Table 1, the balance means that there is an exact correspondence between Matricies C and J. After checking that the data is balanced, relevant GAMS parameters are created using gams2prm utility. The result is a file, russia.dat, with the data assigned to the following parameters:
  iod(i,j)        Input-output demand
  wages(i)        Wage payments
  socsec(i)       Social security contribution
  return(i)       Gross return to capital
  othtax(i)       Other taxes
  subsidy(i)      Other subsidies
  consum(i)       Household consumption
  govdem(i)       Government demand
  stock(i)        Stock change
  fixedi(i)       Increments in fixed assets 
  export(i)       Export demand
  trnspt(i)       Transport margin
  trade(i)        Trade margin
  vat(i)          VAT in use
  nettax(i)       Net taxes on goods
  imptax(i)       Import taxes
  import(i)       Imports evaluated at basic prices

A.2.5. Interpreting the dataset

We use russia.dat file as our dataset file. The program which reads the data from the dataset, prepares it for a static model, and describes the static model in MPSGE format is model.gms (see Appendix for a file listing).

At first, we simply read the data into one array and copy it into another, e.g. export(i) is copied into x0(i). This is done simply due to the authors' preference to use shorter identifiers in the MPSGE model. At the same time, the other assingments to the static model parameters are made in the following way. For private consumption, investment and government:

cd0(i) = consum(i);
c0 = sum(i, cd0(i));
id0(i) = stock(i) + fixedi(i);
i0 = sum(i, id0(i));
gd0(i) = govdem(i);
g0 = sum(i, gd0(i));
For export and import (note that the reference price of imports, pm0(i), equals one plus the benchmark tariff rate, 1 + tm(i)):
x0(i) = export(i);
m0(i) = import(i);
tm(i)$import(i) = imptax(i)/import(i);
pm0(i) = 1 + tm(i);
For capital, labor, labor tax, and labor reference price, accordingly:
kd0(i) = return(i);
ks0 = sum(i, kd0(i));
ld0(i) = wages(i);
ls0 = sum(i, ld0(i));
tl(i)$ld0(i) = socsec(i) / ld0(i);
pl0(i) = 1 + tl(i);
For trade and transportation margins:
trd(i) = max(0, trade(i));
trn(i) = max(0, trnspt(i));
margin(i) = max(0, -trade(i)) + max(0, -trnspt(i));
For Armington supply, VAT and net taxes:
a0(i) = sum(j, iod(i,j)) + cd0(i) + gd0(i) + id0(i);
ta(i) = vat(i)/a0(i);
tn(i) = nettax(i)/a0(i);
For domestic sales and indirect production taxes:
d0(i) = a0(i)*(1-ta(i)-tn(i)) - pm0(i) * m0(i) - trn(i) - trd(i);
ty(i) = (othtax(i)-subsidy(i))/(d0(i) + margin(i) + x0(i));
For balance of payment:
bopdef = sum(i, m0(i) - x0(i));

The program computes and displays a listing of the benchmark tax rates for all sectors. They are presented in Table 3. Tax rates are calculated based on IO information. They do not represent statutory rates. These tax rates apply as follows:

ta(i) Value-added tax rate, applying on Armington supply to sector i (column 19 from Table 2).
tn(i) Net taxes on goods, applying on Armington supply to sector i (column 20 from Table 2).
tl(i) Social security taxes applying to labor inputs to sector i, row 12 from Table 2, entitled "Social security contributions".
tm(i) Import tariff applying on sector i, column 21 from Table 2, entitled Ïmport taxes".
ty(i) Indirect production taxes, levied on production for both the domestic and export markets, sum of rows 15 and 16 from Table 2.

Other possible ways of interpreting taxes are described in Section 5.

A.2.6. A benchmark static model

The template static general equilibrium model in model.gms contains a minimal set of elements to illustrate the data. The general equilibrium model is intended to be as standard as possible. A representative agent is endowed with primary factors (labor, capital). Investment demand, public provision, and the balance of payments deficit are held constant. After selling primary factors, purchasing investment and public provision, the remaining income is devoted to private consumption. The MPSGE code describing final demand is:

$demand:ra
        d:pc            q:c0
        e:pl            q:ls0
        e:rk            q:ks0
        e:pfx           q:bopdef
        e:pg            q:(-g0)
        e:pinv          q:(-i0)

Investment and public output aggregates are both Leontief aggregates across Armington composites of domestic and imported goods. All users are based on an identical CES aggregation of imports and domestic varieties. These functions are

$prod:g
        o:pg            q:g0
        i:pa(i)         q:gd0(i)

$prod:inv
        o:pinv          q:i0
        i:pa(i)         q:id0(i)

Final demand is a Cobb-Douglas aggregation of goods, defined in the model as:

$prod:c  s:1
        o:pc            q:c0
        i:pa(i)         q:cd0(i)        

The Armington aggregation sector combines domestic and imported varieties and applied trade and transport margins. There is an elasticity of substitution equal to 4 between domestic and imported goods. This function is as defined in MPSGE follows:

$prod:a(i)  s:0  dm:4
        o:pa(i)         q:a0(i)         a:ra    t:ta(i)
        i:pd("trd")     q:trd(i)
        i:pd("trn")     q:trn(i)
        i:pd(i)         q:d0(i)                 dm:
        i:pm(i)         q:(pm0(i)*m0(i))        dm:

Note that "trd" is a subset of i which defines the trade margin sector, and "trn" is a subset of i defining the transport margin sector.

The production of goods follows from a nested Leontief-Cobb Douglas production function. Output is allocated to the domestic and export markets according to a constant-elasticity-of-transformation. Intermediate inputs are Leontief, while labor and capital enter as a Cobb-Douglas value-added aggregate, identified as nest "va:" in the MPSGE production block:

$prod:y(i)  t:1  s:0 va:1
        o:px(i)         q:x0(i)                 a:ra    t:ty(i)
        o:pd(i)         q:(d0(i)+margin(i))     a:ra    t:ty(i)
        i:pa(j)         q:iod(j,i)
        i:pl            q:ld0(i)     p:pl0(i)   a:ra    t:tl(i)  va:
        i:rk            q:kd0(i)     va:
Two sets of taxes apply to the production function. The output tax ty(i) applies to both domestic and export supplies. The social security tax, tl(i), applies to labor inputs.

Reference prices for labor and capital are required here because those inputs trade off in a price-responsive nest. The intermediate inputs are untaxed, and they enter in a Leontief aggregate. For both of these reasons, a reference price is not needed - the default input price is unity, the actual benchmark value, and because these inputs are Leontief, the marginal rate of substitution at the benchmark point has no effect on the functional form.

If there were different benchmark tax rates on production for the domestic and export markets, it would specify explicit reference prices for those outputs. However, because the same benchmark tax rate applies to both outputs, the relative price is unity, and no reference price field is needed.

Export and import are defined as:

$prod:x(i)
        o:pfx           q:x0(i)
        i:px(i)         q:x0(i)

$prod:m(i)
        o:pm(i)         q:(pm0(i)*m0(i))
        i:pfx           q:m0(i)  a:ra  t:tm(i)
The pfx in this function represents a foreign exchange, and tax, tm(i), is applied on imports. Export and import blocks could be implicitely specified within production and Armington blocks rather than described in separate blocks as

$prod:y(i)  t:1  s:0 va:1
        o:pfx           q:x0(i)                 a:ra    t:ty(i)
        o:pd(i)         q:(d0(i)+margin(i))     a:ra    t:ty(i)
        i:pa(j)         q:iod(j,i)
        i:pl            q:ld0(i)    p:pl0(i)    a:ra    t:tl(i)  va:
        i:rk            q:kd0(i)                                 va:

$prod:a(i)  s:0  dm:4
        o:pa(i)         q:a0(i)              a:ra    t:ta(i)
        i:pd("trd")     q:trd(i)
        i:pd("trn")     q:trn(i)
        i:pd(i)         q:d0(i)                              dm:
        i:pfx           q:m0(i)     p:pm0(i) a:ra  t:tm(i)   dm:

We can check to see if the model recreates an equilibrium presented in a balanced IO table by setting the iteration limit to zero.

A.2.7. MEB calculation and a steady-state constraint

A file listing of the benchmark static model in GAMS/MPSGE format can be found in Appendix 3. For the MEB calculation, the model should be modified. First, a government should be declared in $CONSUMER block and intoduced explicitely as:

$demand:gov
        d:pg            q:g0
        e:pc            q:dt

The agent who collects taxes and demands government goods becomes the government rather than a representative agent as in a core model. Another modification is an introduction of direct taxes in the amount of the difference dt between tax revenue from indirect taxes and government demand. It is assigned as an endowment to the government.

The MEB can be calculated as:

eb(sizegov,taxinst) = 100*(c0*(1-c.l)/(g0*(g.l-1))-1);
where sizegov shows the percentage increase in the size of a government, taxinst - different tax instruments, c0 - benchmark private consumption (and welfare level), g0 - benchmark government spending, c.l and g.l - current levels. To compute MEB, one needs to loop over sizegov and taxinst.

In the case of a static model, a steady-state capital contstraint can be introduced in MPSGE as:

$constraint:k
        pinv =E= rk;
capital and investment fields in the demand block are modified by a rationing instrument r
        e:rk            q:ks0           r:k
        e:pinv          q:(-i0)         r:k
and a constraint k is declared in $AUXILIARY block. The orientation of the constraint is important to reflect the fact that more capital leads to a decrease in return to capital, which in turn leads to increase in the price of investment.

Appendix 3. File listings

Appendix 3 contains a listing of three GAMS files iodata.gms, model.gms, and meb.gms. The iodata.gms file reads the data into GAMS format, checks the data, and creates a dataset file russia.dat. The model.gms file prepares the data for a static model and contains a core static MPSGE model. The meb.gms file shows the modification of the core static model for the marginal excess burden calculations.



File 1. IODATA.GMS

$title  Excel into GAMS

parameter iodata(*,*);

* Read data from a file iopaper.wk1 to parameter IODATA 

$libinclude ssimport iodata iopaper.wk1 b4..z23
display iodata;

set n   Sectors numeric /
1       Industry        
2       Construction    
3       Agriculture and forestry        
4       Transport and communications    
5       Lease  advertising  audit  trade                
6       Communal services       
7       Education science medical care and recreation servicies 
8       Administration  banking  insurance      
9       Others    /;


set i   Sectors - symbols /
IND     Industry        
CON     Construction    
AGR     Agriculture and forestry        
TRN     Transport and communications    
TRD     Lease  advertising  audit  trade        
COM     Communal services       
EDU     Education science  medical care and recreation servicies        
FIN     Administration  banking  insurance 
OTH     Others  /;

set map(n,i) /
        1.IND, 2.CON, 3.AGR, 4.TRN, 5.TRD, 
        6.COM, 7.EDU, 8.FIN, 9.OTH /;

alias (n,m),(i,j);


* Assign data to parameters ********************

* Row parameters

parameter       iod     Input-output demand
                wages   Wage payments
                socsec  Social security contribution
                profit  Net return to capital
                mixed   Net mixed income
                othtax  Other taxes 
                subsidy Other subsidies
                deprec  Depreciation

                grossva Gross value-added
                vachk   Check of value-added;



iod(i,j)=sum((n,m)$(map(n,i) and map(m,j)),iodata(n,m))/1000000;
wages(i)=sum(map(n,i),iodata("11",n))/1000000;
socsec(i)=sum(map(n,i),iodata("12",n))/1000000; 
profit(i)=sum(map(n,i),iodata("13",n))/1000000; 
mixed(i)=sum(map(n,i),iodata("14",n))/1000000;  
othtax(i)=sum(map(n,i),iodata("15",n))/1000000; 
subsidy(i)=-sum(map(n,i),iodata("16",n))/1000000;
deprec(i)=sum(map(n,i),iodata("17",n))/1000000;

* Note alternative formulation
* deprec(i)=sum(n$map(n,i),iodata("17",n))/1000000;


* Column parameters

parameter       consum  Household consumption
                govdem  Government demand
                fixedi  Increments in fixed assets 
                stock   Stock change            
                export  Export demand
                trnspt  Transport margin
                trade   Trade margin
                vat     VAT in use
                nettax  Net taxes on goods
                imptax  Import taxes
                import  Imports evaluated at basic prices;

consum(i)=sum(map(n,i), iodata(n,"11"))/1000000;
govdem(i)=sum(map(n,i), iodata(n,"12"))/1000000;
fixedi(i)=sum(map(n,i), iodata(n,"13"))/1000000;
stock(i)=sum(map(n,i), iodata(n,"14"))/1000000;
export(i)=sum(map(n,i), iodata(n,"15"))/1000000;
trnspt(i)=sum(map(n,i), iodata(n,"17"))/1000000;
trade(i)=sum(map(n,i), iodata(n,"18"))/1000000;
vat(i)=sum(map(n,i), iodata(n,"19"))/1000000;
nettax(i)=sum(map(n,i), iodata(n,"20"))/1000000;
imptax(i)=sum(map(n,i), iodata(n,"21"))/1000000;
import(i)=sum(map(n,i), iodata(n,"22"))/1000000;

* Checks **********************

* Check of Subtotal (row 10)

iod("rowsum",j)=sum(i,iod(i,j));
iod("chk",j)=sum(map(m,j), iodata("10",m))/1000000-iod("rowsum",j);
               
* Check of Intermediate Consumption (column 10)
               
iod(i,"colsum")=sum(j,iod(i,j));
iod(i,"chk")=sum(map(n,i), iodata(n,"10"))/1000000-iod(i,"colsum");

display iod;

* Zero out check rows and colomns

iod("rowsum",j)=0;
iod("chk",j)=0;
iod(i,"colsum")=0;
iod(i,"chk")=0;

* Check of Gross Value added (row 18)

parameter grvad, vachk1;

grvad(i)=wages(i)+socsec(i)+profit(i)+mixed(i)+othtax(i)-subsidy(i)+deprec(i);
vachk1(i)=sum(map(n,i), iodata("18",n))/1000000-grvad(i);
display grvad,vachk1;


* Check of Total Use (Final+Intermediate+Export) (column 16)

parameter usetot, vachk2, ops;

usetot(i)=sum(j,iod(i,j))+consum(i)+govdem(i)+stock(i)+fixedi(i)+export(i);
vachk2(i)=sum(map(n,i),iodata(n,"16"))/1000000-usetot(i);
ops=sum(i,usetot(i));
display usetot, vachk2, ops;

* Check of Total Use at Basic Prices (column 23)

parameter usetotbas, vachk3, ops1;
usetotbas(i)=usetot(i)-trnspt(i)-trade(i)-vat(i)-nettax(i)-imptax(i)-import(i);
vachk3(i)=sum(map(n,i),iodata(n,"23"))/1000000-usetotbas(i);
ops1=sum(i,usetotbas(i));
display usetotbas, vachk3, ops1;


* Profit check

parameter prchk;

prchk(j,"output")=sum(i,iod(i,j))+grvad(j);
prchk(i,"use")=usetotbas(i);
prchk(i,"chk")=prchk(i,"use")-prchk(i,"output");

display prchk;

parameter totprofit;

totprofit("output")=sum(i,prchk(i,"output"));
totprofit("use")=sum(i,prchk(i,"use"));
totprofit("total")=totprofit("output")-totprofit("use");
totprofit("dumb")=sum(i,prchk(i,"chk"));

display totprofit;


* Additional parameters to correct for gross return

*Gross return = sectoral profit(use-output)+net profit+depreciation+mixed income
*if return is negative - move to wage account
*value added = return(positive)+wages+social security


parameter       return  Imputed gross return to capital
                va      Sectoral value added;

return(i)=prchk(i,"chk")+deprec(i)+profit(i)+mixed(i);
wages(i)=wages(i)+min(0,return(i));
return(i)=max(0,return(i));
va(i)=return(i)+wages(i)+socsec(i);

prchk(j,"balanced")=va(j)+othtax(j)-subsidy(j)+sum(i,iod(i,j))-prchk(j,"use");
display prchk;

file kdat /russia.dat/;
put kdat;
$libinclude gams2prm consum
$libinclude gams2prm govdem
$libinclude gams2prm stock
$libinclude gams2prm fixedi
$libinclude gams2prm export
$libinclude gams2prm trnspt
$libinclude gams2prm trade
$libinclude gams2prm vat
$libinclude gams2prm nettax
$libinclude gams2prm imptax
$libinclude gams2prm import
$libinclude gams2prm iod
$libinclude gams2prm wages
$libinclude gams2prm socsec
$libinclude gams2prm othtax
$libinclude gams2prm subsidy
$libinclude gams2prm return

File 2. MODEL.GMS

$title MPSGE static model

set     i       Industries - symbols /
IND     Industry        
CON     Construction    
AGR     Agriculture and forestry        
TRN     Transport and communications    
TRD     Lease  advertising  audit  trade        
OSG     Communal services       
EDU     Education science  medical care and recreation servicies        
FIN     Administration  banking  insurance 
OTH     Others  /;

alias (i,j);

parameter       iod(i,j)        Input-output demand
                wages(i)        Wage payments
                socsec(i)       Social security contribution
                return(i)       Gross return to capital
                othtax(i)       Other taxes
                subsidy(i)      Other subsidies
                consum(i)       Household consumption
                govdem(i)       Government demand
                stock(i)        Stock change
                fixedi(i)       Increments in fixed assets 
                export(i)       Export demand
                trnspt(i)       Transport margin
                trade(i)        Trade margin
                vat(i)          VAT in use
                nettax(i)       Net taxes on goods
                imptax(i)       Import taxes
                import(i)       Imports evaluated at basic prices;


$include russia.dat

parameter       x0(i)           Exports
                d0(i)           Domestic sales
                ld0(i)          Labor demand
                kd0(i)          Capital demand
                ks0             Capital supply
                ty(i)           Output tax
                tl(i)           Social security tax
                pl0(i)          Benchmark gross wage
                a0(i)           Armington supply
                trd(i)          Trade margin
                trn(i)          Transport margin
                m0(i)           Imports (gross of tariff)
                pm0(i)          Benchmark import price
                tm(i)           Tariff rate
                g0              Government output
                gd0(i)          Government demand
                i0              Investment
                id0(i)          Investment demand
                c0              Private consumption
                cd0(i)          Consumption demand
                tn(i)           Net tax on goods rate
                ls0             Labor supply
                ta(i)		VAT rate
                margin          Margin
                bopdef          Balance of payments deficit;
                
cd0(i) = consum(i);
c0 = sum(i, cd0(i));
x0(i) = export(i);
m0(i) = import(i);
tm(i)$import(i) = imptax(i)/import(i);
pm0(i) = 1 + tm(i);
id0(i) = stock(i) + fixedi(i);
i0 = sum(i, id0(i));
gd0(i) = govdem(i);
g0 = sum(i, gd0(i));

kd0(i) = return(i);
ks0 = sum(i, kd0(i));
ld0(i) = wages(i);
ls0 = sum(i, ld0(i));
tl(i)$ld0(i) = socsec(i) / ld0(i);
pl0(i) = 1 + tl(i);

parameter profitchk;

trd(i) = max(0, trade(i));
trn(i) = max(0, trnspt(i));
margin(i) = max(0, -trade(i)) + max(0, -trnspt(i));
display margin;

a0(i) = sum(j, iod(i,j)) + cd0(i) + gd0(i) + id0(i);
ta(i) = vat(i)/a0(i);
tn(i) = nettax/a0(i);
d0(i) = a0(i)*(1-ta(i)-tn(i)) - pm0(i) * m0(i) - trn(i) - trd(i);
ty(i) = (othtax(i)-subsidy(i))/(d0(i) + margin(i) + x0(i));

profitchk(i,"orig") = kd0(i) + pl0(i)*ld0(i) + sum(j, iod(j,i)) - 
        (d0(i)+margin(i)+export(i))*(1-ty(i));

profitchk(i,"d0") = d0(i);
display profitchk;

bopdef = sum(i, m0(i) - x0(i));

parameter       taxes   Benchmark tax rates;
taxes(i, "ta") = round(100 * ta(i));
taxes(i, "tn") = round(100 * tn(i));
taxes(i, "tl") = round(100 * tl(i));
taxes(i, "tm") = round(100 * tm(i));
taxes(i, "ty") = round(100 * ty(i));
option taxes:0;
display taxes;

* core MPSGE model

$ontext

$model:static

$sectors:

        y(i)    ! Sectoral production 
        a(i)    ! Armington supply
        x(i)    ! Export
        m(i)    ! Import
        c       ! Private consumption
        g       ! Public sector demand
        inv     ! Investment

$commodities:
        pa(i)   ! Armington price
        pd(i)   ! Domestic market price
        pm(i)   ! Import price
        px(i)   ! Export price
        pc      ! Consumption price
        pinv    ! Investment price
        pfx     ! Foreign exchange
        pg      ! Public goods price
        pl      ! Wage rate
        rk      ! Return to capital

$consumer:
        ra      ! Representative agent

$prod:y(i)  t:1  s:0 va:1
        o:px(i)         q:x0(i)                 a:ra    t:ty(i)
        o:pd(i)         q:(d0(i)+margin(i))     a:ra    t:ty(i)
        i:pa(j)         q:iod(j,i)
        i:pl            q:ld0(i)        p:pl0(i)        a:ra    t:tl(i)  va:
        i:rk            q:kd0(i)        va:

$prod:a(i)  s:0  dm:4
        o:pa(i)         q:a0(i)         a:ra    t:(ta(i)+tn(i))
        i:pd("trd")     q:trd(i)
        i:pd("trn")     q:trn(i)
        i:pd(i)         q:d0(i)                 dm:
        i:pm(i)         q:(pm0(i)*m0(i))        dm:

$prod:x(i)
        o:pfx           q:x0(i)
        i:px(i)         q:x0(i)

$prod:m(i)
        o:pm(i)         q:(pm0(i)*m0(i))
        i:pfx           q:m0(i)  a:ra  t:tm(i)

$prod:g
        o:pg            q:g0
        i:pa(i)         q:gd0(i)

$prod:inv
        o:pinv          q:i0
        i:pa(i)         q:id0(i)

$prod:c  s:1
        o:pc            q:c0
        i:pa(i)         q:cd0(i)        

$demand:ra
        d:pc            q:c0
        e:pl            q:ls0
        e:rk            q:ks0
        e:pfx           q:bopdef
        e:pg            q:(-g0)
        e:pinv          q:(-i0)

$offtext
$sysinclude mpsgeset static

static.iterlim = 0;
$include static.gen
solve static using mcp;

File 3. MEB.GMS

* MEB calculation: MPSGE formulation

parameter       dt      Direct tax
                taxrev  Indirect Tax revenue;

taxrev = sum(i, (ta(i)+tn(i))*a0(i) + tm(i)*m0(i) + 
        tl(i)*ld0(i) + ty(i)*(d0(i)+margin(i)+x0(i)));
dt = g0 - taxrev;

parameter gsize  Size of government;
gsize=1;
set     taxinst         Tax instruments /out, lab, vat, net, imp/
        inst(taxinst)   Instrument;

inst(taxinst)=no;


* MPSGE model

$ontext

$model:static

$sectors:

        y(i)    ! Sectoral production 
        a(i)    ! Armington supply
        x(i)    ! Export
        m(i)    ! Import
        c       ! Private consumption
        g       ! Public sector demand
        inv     ! Investment

$commodities:
        pa(i)   ! Armington price
        pd(i)   ! Domestic market price
        pm(i)   ! Import price
        px(i)   ! Export price
        pc      ! Consumption price
        pinv    ! Investment price
        pfx     ! Foreign exchange
        pg      ! Public goods price
        pl      ! Wage rate
        rk      ! Return to capital
                
$consumer:      
        ra      ! Representative agent
        gov     ! Government
                
$auxiliary:     
        tau     ! Tax adjustment

$prod:y(i)  t:1  s:0 va:1
        o:px(i)         q:x0(i)              a:gov   t:ty(i)  n:tau$inst("out")
        o:pd(i)         q:(d0(i)+margin(i))  a:gov   t:ty(i)  n:tau$inst("out")
        i:pa(j)         q:iod(j,i)
        i:pl            q:ld0(i)  p:pl0(i)  a:gov  t:tl(i) n:tau$inst("lab") va:
        i:rk            q:kd0(i)      va:

$prod:a(i)  s:0  dm:4
        o:pa(i)         q:a0(i)   a:gov t:tn(i)  n:tau$inst("net")   
+ a:gov  t:ta(i)   n:tau$inst("vat")  
        i:pd("trd")     q:trd(i)
        i:pd("trn")     q:trn(i)
        i:pd(i)         q:d0(i)                 dm:
        i:pm(i)         q:(pm0(i)*m0(i))        dm:

$prod:x(i)
        o:pfx           q:x0(i)
        i:px(i)         q:x0(i)

$prod:m(i)
        o:pm(i)         q:(pm0(i)*m0(i))
        i:pfx           q:m0(i)  a:gov  t:tm(i)  n:tau$inst("imp")

$prod:g
        o:pg            q:g0
        i:pa(i)         q:gd0(i)

$prod:inv
        o:pinv          q:i0
        i:pa(i)         q:id0(i)

$prod:c  s:1
        o:pc            q:c0    
        i:pa(i)         q:cd0(i)        

$demand:ra
        d:pc            q:c0
        e:pl            q:ls0
        e:rk            q:ks0
        e:pfx           q:bopdef
        e:pc            q:(-dt)
        e:pinv          q:(-i0)

$demand:gov
        d:pg            q:g0
        e:pc            q:dt

$constraint:tau
        g =E= gsize;

$offtext
$sysinclude mpsgeset static

tau.l=0;
static.iterlim = 0;
$include static.gen
solve static using mcp;

static.iterlim=2000;

set sizegov   Size of the government (percentage increase) /1*5/;
parameter eb  Excess burden;

loop((sizegov,taxinst),
gsize = 1 + ord(sizegov)/100;
inst(taxinst)=yes;
$include static.gen
solve static using mcp;
eb(sizegov,taxinst) = 100*(c0*(1-c.l)/(g0*(g.l-1))-1);
inst(taxinst)=no;
);

display eb;

Appendix 4. MCP formulation

Appendix 4 contains a part of the file with a mixed complimentarity problem (MCP) formulation of the static model. The program calculates the MEB of the value added tax. MCP formulation explicitely describes the equilibrium conditions: zero profit, market clearance and income balance, which are automatically constructed by MPSGE.

set trd(i) /trd/, trn(i) /trn/;

* MCP model

scalar          eta     elasticity of transformation: domestic vs export /1/
                dm      elasticity of substitution: domestic vs import /4/;

* Shares

PARAMETER
                vad(i)          Sectoral Value added (Capital+Labor) 
                thetag(i)       Government share
                thetap(i)       Private
                thetai(i)       Investment
                thetal(i)       Labor
                thetak(i)       Capital
                thetad(i)       Domestic
                thetam(i)       Import;


vad(i) = ld0(i)*pl0(i) + kd0(i);
thetag(i) = gd0(i)/g0;
thetap(i) = cd0(i)/c0;
thetai(i) = id0(i)/i0;
thetal(i)$vad(i) = pl0(i)*ld0(i)/vad(i);      
thetak(i)$vad(i) = kd0(i)/vad(i);
thetad(i) = (d0(i)+margin(i))/(d0(i)+margin(i)+x0(i));
thetam(i) = (pm0(i)*m0(i)) / (d0(i) + (pm0(i)* m0(i)));


VARIABLES
        C       Private consumption
        G       Public provision
        INV     Investment
        Y(i)    Output
        X(i)    Export
        M(i)    Import 
        A(i)    Armington aggregation of domestic and import 
                
        PC      Private demand
        PG      Public provision
        PINV    Investment price
        PD(i)   Domestic price
        PX(i)   Export price
        PM(i)   Import price
        PFX     Foreign exchange
        PA(i)   Armington composite price
        PL      Wage rate
        PK      Return to capital
                
        RA      Representative agent income
        GOV     Government income

        TAU     Tax adjustment;

EQUATIONS
        MKT_PC          Private demand
        MKT_PG          Public provision
        MKT_PINV        Investment
        MKT_PD(i)       Domestic price
        MKT_PX(i)       Export price
        MKT_PM(i)       Import price
        MKT_PFX         Foreign exchange
        MKT_PA(i)       Armington composite price
        MKT_PL          Labor price
        MKT_PK          Capital price
                        
        PRF_C           Private consumption
        PRF_G           Public provision
        PRF_INV         Investment
        PRF_Y(i)        Output  
        PRF_A(i)        Armington aggregation  
        PRF_M(i)        Import 
        PRF_X(i)        Export
                        
        INC_RA          Representative agent
        INC_GOV         Government

        CONSTR          Constraint on government size;


* For MCP version, three conditions should be specified explicitely:
* 1) Zero profit (cost = value of output)
* 2) Market clearance (supply = demand)
* 3) Income balance (expenditure = income)


* Definitions for cost functions

* Final production

C_Y(i) == SUM(j, iod(j,i) * PA(j)) + kd0(i) *
       (PL*(1+tl(i))/pl0(i))**thetal(i) * PK**thetak(i)
       + ld0(i) * pl0(i) * (PL*(1+tl(i))/pl0(i))**thetal(i) * PK**thetak(i);



* Armington aggregation


C_A1(i) == ((1-thetam(i))*PD(i)**(1-dm)+(thetam(i))*PM(i)**(1-dm))**(1/(1-dm));

C_A(i) == (d0(i) + (pm0(i)*m0(i))) * C_A1(i) + 
          trdmrg(i)*PD("trd") + PD("trn")*trnmrg(i);



* Private sector

C_C == c0 * PROD(i, PA(i)**thetap(i));



* Public sector

C_G == g0 * sum(i, PA(i)*thetag(i));



* Investment

C_INV == i0 * sum(i, PA(i)*thetai(i));



* Import

C_M(i) == m0(i) * pm0(i) * PFX;



* Export

C_X(i) == PX(i)*x0(i);



* Export supply 

A_X(i) ==  x0(i) * (PX(i) / (thetad(i)  * PD(i)**(1+eta) + 
          (1-thetad(i)) * PX(i)**(1+eta))**(1/(1+eta)) )**eta;



* Domestic supply

A_D(i) ==  (d0(i)+margin(i)) * (PD(i) / (thetad(i)  * PD(i)**(1+eta) + 
          (1-thetad(i)) * PX(i)**(1+eta))**(1/(1+eta)) )**eta;





* Definitions for demand functions

* Private Demand

D_C == RA/PC;


* Government Demand

D_G == GOV/PG;


* Investment Demand

D_INV == i0;


* Domestic demand

D_D(i) == A(i) * d0(i) * (C_A1(i) / PD(i))**dm 
   + sum(j, A(j)*trdmrg(j))$trd(i) + sum(j, A(j)*trnmrg(j))$trn(i);

* Export demand

D_X(i) == x0(i) * X(i);


* Import demand  

D_M(i) == A(i) * pm0(i) * m0(i) * (C_A1(i) / PM(i))**dm;                


* Foreign exchange demand

D_F == sum(i, m0(i));


* Armington good demand

D_A(i) == sum(j, iod(i,j)*Y(j)) + cd0(i) * PROD(j, PA(j)**thetap(j))/PA(i) * C +
gd0(i) * G + id0(i) * INV;

                      
* Labor demand

A_L(i) == ld0(i) * (PL*(1+tl(i))/pl0(i))**thetal(i) * PK**thetak(i) /
                        ( PL * (1+tl(i))/pl0(i) );

D_L == sum(i, A_L(i) * Y(i));


* Capital demand


A_K(i) == kd0(i) * (PL*(1+tl(i))/pl0(i))**thetal(i) * PK**thetak(i) / PK;

D_K == sum(i, A_K(i) * Y(i));





* Zero profit

*       Production:

PRF_Y(i)$(d0(i)+margin(i)+x0(i))..

C_Y(i) =E= (1 - ty(i)) * ((PD(i) * (d0(i)+margin(i))) + PX(i) * x0(i));


*  Armington aggregation:

PRF_A(i)$a0(i)..   C_A(i) =E= (1 - ta(i) - TAU - tn(i)) * PA(i) * a0(i);


* Public output:

PRF_G..         C_G =E= PG * g0;

* Private consumption:

PRF_C..         C_C =E= PC * c0;

* Investment

PRF_INV..       C_INV =E= PINV * i0;

* Export

PRF_X(i)$x0(i)..        C_X(i) =E= PFX * x0(i);


* Import

PRF_M(i)$m0(i)..        C_M(i) =E= PM(i) * m0(i) * pm0(i);




* Market clearance
* Output + Initial Endowment = Intermediate + Final Demand
* Complimentary to price


*       Private demand:

MKT_PC..        C * c0 =E= D_C;


*       Government provision:

MKT_PG..        G * g0 =E= D_G;

*       Investment:

MKT_PINV..      
                INV * i0 =E= D_INV;


*       Domestic supply:

MKT_PD(i)..

        A_D(i)*Y(i) =E= D_D(i);



*       Exports:

MKT_PX(i)$x0(i)..

        A_X(i) * Y(i) =E= D_X(i);


*       Imports:
 
MKT_PM(i)$m0(i)..

        (m0(i)*pm0(i))*M(i) =E= D_M(i);          


* Foreign Exchange

MKT_PFX..
        
        bopdef + sum(i, x0(i)*X(i)) =E= sum(i, m0(i)*M(i));



*       Armington supply:

MKT_PA(i)$a0(i)..

        a0(i)*A(i) =E= D_A(i);
                      

*       Labor market:

MKT_PL..        ls0 =E= D_L;


*       Capital market:

MKT_PK..        ks0 =E= D_K;




* Income balance **********

INC_RA..        

        RA =E= PL * ls0 + PK * ks0 + PFX * bopdef - PINV*i0 - PC * dt;


INC_GOV..

        GOV =E= PC * dt 


* Output tax:

        + sum(i, ty(i) * Y(i) * (PX(i) * A_X(i) + PD(i) * A_D(i)))

* VAT:

        + sum(i, (ta(i) + TAU) * PA(i) * a0(i) * A(i))


* Net taxes on goods:

        + sum(i, tn(i) * PA(i) * a0(i) * A(i))


* Labor tax:

        + sum(i, tl(i) * PL * A_L(i) * Y(i))

* Import tax:

        + sum(i, tm(i) * PFX * m0(i) * M(i));


* Constraint on government size

CONSTR..        G =E= gsize;



*       Define the mcp model:

MODEL STAT /    
PRF_C.C, PRF_G.G, PRF_INV.INV, PRF_Y.Y, PRF_A.A, PRF_M.M, PRF_X.X,      
MKT_PC.PC, MKT_PG.PG, MKT_PINV.PINV, MKT_PD.PD, MKT_PX.PX, MKT_PM.PM,   
MKT_PA.PA, MKT_PL.PL, MKT_PK.PK, MKT_PFX.PFX, INC_RA.RA, INC_GOV.GOV
CONSTR.TAU
/;              


Footnotes:

1 At the end of 1996, the following figures on tax collection in Russia were released: 2.6 million enterprises and organizations are registered for tax purposes. One third of this number are ``dead'', i.e., fail to pay taxes altogether. Another 1.7 million are ``sick'', i.e., don't pay their taxes regularly or in full. Only 16.5 percent (436,000) are not facing serious claims against them by the tax service.

2 For detailed discussion, see Leontief (1966).

3 For detailed discussion, see Arrow and Hahn (1971), and Shoven and Whalley (1992).

4 Many alternative functional forms and elasticity parameters might be used. These are presented solely for concretness.

5 An algebraic formulation of output transformation function can be written:

Yi = g(Di,Ei) = é
ê
ê
ê
ë
qiD æ
ç
ç
ç
è
Di
_
D
 
i
ö
÷
÷
÷
ø
1+h


 
+ (1-qiD) æ
ç
ç
ç
è
Ei
_
E
 
i
ö
÷
÷
÷
ø
1+h


 
ù
ú
ú
ú
û
1/(1+h)


 
In this equation parameters [`D]i and [`E]i are the base year (benchmark) levels of output to the domestic and export markets, and qiD is the benchmark value share of domestic sales in total output for sector i.

6 Algebraic formulation for Cobb-Douglas aggregate of capital and labor

CD(Ki, Li) = æ
ç
ç
ç
è
Ki
_
K
 
i
ö
÷
÷
÷
ø
aiK


 
  æ
ç
ç
ç
è
Li
_
L
 
i
ö
÷
÷
÷
ø
aiL


 

7 Algebraic formulation for Armington aggregation

Aji(XjiD,XjiM) = é
ê
ê
ê
ë
bji æ
ç
ç
ç
è
XjiD
_
X
 
jiD
ö
÷
÷
÷
ø
r


 
+ (1-bji) æ
ç
ç
ç
è
XjiM
_
X
 
jiM
ö
÷
÷
÷
ø
r


 
ù
ú
ú
ú
û
1/r


 
    "j

8 Aggregate consumption is then expressed as:

C =
Õ
i 
ciai
where the domestic-import composite is defined:
ci = é
ê
ê
ê
ë
bi æ
ç
ç
ç
è
ciD
_
c
 
iD
ö
÷
÷
÷
ø
r


 
+(1-bi) æ
ç
ç
ç
è
ciM
_
c
 
iM
ö
÷
÷
÷
ø
r


 
ù
ú
ú
ú
û
1/r


 
in which sDM = [1/( 1-r)] is the elasticity of substitution between domestic and imported goods.

9 See Shvyrkov (1980), p.16.

10 You can recreate the spreadsheet file from Table 2 by deleting extra space, table names, and moving tables 2.3 and 2.4 to the top right corner.

11 This step can be avoided if you use new Rutherford's utility xllink. The utility operates only with a PC version of GAMS. It requires that Excel be installed on the same machine. XLLINK can be found at
http://nash.colorado.edu/tomruth/xllink/xllink.htm

12 In our example, the range is B4..Z23

13 Note the alternative formulation which leads to the same result: wages(i)=sum(n$map(n,i),iodata("11",n))/1000000;


File translated from TEX by TTH, version 2.20.
On 2 Sep 1999, 10:10.