"Environmental Policy Modeling", by Carlo Perroni and Randall Wigle
Chapter 12 of "Global Trade Analysis: Modeling and Applications", Thomas W. Hertel (editor) 
Based on the README file prepared by Martina Brockmeier.

****************************************************************************

I. REGIONS AND COMMODITIES

Regions:
NAM	Canada and US
JPN	Japan
EU	EU
OHI	Other high income
MID	Middle income
CHN	China
LOW	Low income

Sectors:
AGR	Agriculture
FDM	Food manufacturing
RSC	Primary industry
CLO	Textiles and clothing
DRT	Dirty industry
FMN	Final manufacturing
SVC	Traded services
NTS	Nontraded services

II. EXPERIMENT FILES: SHOCKS, CLOSURES AND SOLUTION METHOD- :

To replicate the experiments with RunGTAP go to "SOLVE", click "Load Experiment" and choose the EXP1 or EXP2 options. This automatically loads the shocks, closure and solution method for the experiment of interest.

EXP1: Simulates environmental policy in the presence of a Leontief production structure (case A in chapter 12). The emission fee is modelled as an increase in the output tax which fully internalizes a given externality.
   The shocks used in experiment 1 are contained in 2 files:
	TO-1.DAT:   shocks to the power of the output tax for 8 commodities in 7 regions in the presence of a Leontief production structure (case 1). The values represent the shocks needed to achieve a full internalization of the externality.
	AO-1.DAT:   shocks to the augmenting technical change parameter in the presence of a Leontief production structure. Since the Leontief production function does not allow for substitution between the emissions and the intermediates and primary factors, the values in AO-1.DAT equal zero.

EXP2: Models the internalization of the externality in the case of a weighted average Cobb-Douglas and Leontief production structure (case B in chapter 12). Here the emission fee is imitated by a change in the output tax which is equivalent to the constructed benchmark pollution taxes. Abatement activities are simulated as a variation in the augmenting technical change parameter. Both of them account for 50% of the internalization rate.
   The shocks used in experiment 2 are contained in 2 files:
	TO-2.DAT:   shocks to the power of the output tax in the presence of a weighted average Cobb-Douglas and Leontief production structure.
	AO-2.DAT:   shocks to the augmenting technical change parameter in the presence of a weighted average Cobb-Douglas and Leontief production structure.

CLOSURE
All the experiments use the regular "Book" general equilibrium closure: MRGE.

SOLUTION METHOD 
	method = Gragg ;
	steps = 2 4 6 ;

*********************************************************************
The original experiments used both GAMS and GEMPACK. GAMS was used to calculate the shock files listed above and to perform post-solution processing after the GTAP simulation. The following notes describe the GAMS calculations, which cannot be performed from within RunGTAP.
*********************************************************************

GAMS FILES (included in the file gams.zip, which can be found in cmf2-08.zip). This can be downloaded from
the GTAP web site -- under GTAP book software.

TEPG.GMS This GAMS file is used to calculate the benchmark
		taxes (table 3) and the optimal emissions taxes (table
		4) for 8 commodities in 7 regions by utilizing
		information on emissions and abatement technologies in
		the US industry and sectoral outputs from the GTAP
		database.

SHOCK.GMS This GAMS program is used to compute the shocks to the
		power of the output tax and the augmenting technical
		change parameter in cases 1 and 2 according to the
		results given by TEPG.GMS. It also writes these
		shocks to the GEMPACK data files TO-1.DAT, TO-2.DAT,
		AO-1.DAT and AO-2.DAT.

BFT-ABC.GMS This GAMS file contains the percentage change in sectoral
		output in cases 1 and 2 (table 5) computed by the GTAP
		model and the implemented shocks to the augmenting
		technical change parameter.

EV-ABC.GMS This GAMS file includes the values of the equivalent
		variation in cases 1 and 2 calculated by the GTAP
		Model (table 6). These values do not take into
		account the benefits accruing from environmental
		cleanup.

BENEFIT.GMS This GAMS program calculates the welfare effects of
		environmental policies in the presence of benefits
		from the emission reduction (table 6) and the dollar
		values of the environmental cleanup (table 7)
		utilizing the information given in TEPG.GMS, BFT
		ABC.GMS and EV-ABC.GMS. 


REPLICATION OF THE EXPERIMENTS


The GAMS files TEPG.GMS and SHOCK.GMS are only presented for 
information purpose. Since these two files create the included 
GEMPACK data files TO-1.DAT, TO-2.DAT, AO-1.DAT and AO-2.DAT, they 
are not necessary to replicate chapter 12.


Running GAMS

The percentage changes in sectoral output and the equivalent variation 
calculated by the GTAP model are included in the GAMS files EV-ABC.GMS 
and BFT-ABC.GMS. In order to get the welfare calculations and the dollar 
value of environmental cleanup documented in tables 6 and 7 of chapter 
12, you finally need to use the GAMS program BENEFIT.GMS. When running 
BENEFIT.GMS the programs TEPG.GMS, EV-ABC.GMS, and BFT-ABC.GMS are 
utilized via the command INCLUDE. To run the program BENEFIT.GMS enter 
the command below followed by a <carriage return>:

GAMS BENEFIT

This creates a GAMS solution file which is called BENEFIT.LST. Since 
this file is a text file, you can use your text editor to view it. 
In order to compare the results with the number presented in tables 6 
and 7 of chapter 12, search for "PARAMETER CLEANUP", "PARAMETER 
WELFARE" and "PARAMETER WWELF".

=======================================================
Explaining theory and procedure used for the Perroni and Wigle experiment 
=======================================================
					By Wolfgang Lemke


REMARKS

The purpose of the following is to support the understanding of the approach 
used by Perroni and Wigle to examine environmental policy using GTAP. Since some 
of the crucial steps and assumptions used for understanding and conducting the 
experiment are "hidden" in the source code of the GAMS files, this write up 
tries to make the ideas used by the authors more accessible. If important 
parameters or relationship are derived I mostly stick to the GAMS notation 
followed by a short explanation. 

OVERVIEW

Analysis of environmental policy as done by Perroni and Wigle is an example of how 
GTAP can be used to analyze a problem that is not directly accommodated by GTAP. 
In this particular case GTAP is used in tandem with GAMS (General Algebraic 
Modeling System). The limitations of the standard GTAP program that make the use 
of such an auxiliary program necessary are the following: the GTAP database does 
not contain data about environmental damages, there is no sector for abatement 
in GTAP, and GTAP does not account for welfare due to environmental quality.
The translation between the true model that is to be evaluated and GTAP 
basically happens in four steps: In the first step emission fees needed for full 
internalization of externalities are determined using GAMS. After that GAMS 
computes the GTAP shocks that mimic those taxes. In a third step GTAP is run 
with these shocks. Finally the results from GTAP are used by GAMS to compute 
welfare changes due to environmental quality change. 

STEP 1 - COMPUTATION OF EMISSION FEES

Sets and data
Given is a set (SET SIC_4) containing 37 industries. For every industry three 
types (different risk weights) of toxic emissions are given. For the experiment 
linearly risk weighted emissions per million dollars of output are used.
For another set of 19 industries (set SIC_2) the following pair of data is given 
for every industry: Abatement cost in % of output value (ABATE) and the value of 
output (Q) .

Besides these two sets we have the GTAP set of eight commodity aggregates (Set 
GDS): 
AGR (Agriculture)
FDM (Food manufacturing)
RSC (Primary industry)
CLO (Textiles and clothing)
DRT (Dirty industry)
FMN (Final manufacturing)
SVC (Traded services)
NTS (Nontraded services

Now the industries from SIC_4 and SIC_2, the two industry sets, are assigned to 
the GTAP-aggregates. The following simplifications are made in the Perroni and 
Wigle experiment: Neither SIC_4 nor SIC_2 contains data for the services sector. 
Concerning the mapping from SIC_4 to GDS, Perroni and Wigle assign the data of 
the beverages industry from SIC_4 to the services sector in GTAP. For the 
mapping between SIC_2 and GDS they assign the printing and publishing sector to 
the service sector. 
Furthermore data for agriculture are missing in SIC_4 and SIC_2. Perroni and 
Wigle assign the simple mean of all industries in SIC_4 and SIC_2 respectively. 
Another - in our viewpoint more reasonable - approach to solving the problem of 
the missing data in the agricultural sector is taken as our modification of the 
experiment. 

The following set of GTAP regions is used (set REG): 
High income:
NAM (Canada and US)
JPN (Japan)
EU (European Union)
OHI (Other high income)
Middle income:
MID (Middle Income)
Low income:
CHN (China)
LOW (Low income (< $2000))

Procedure 
The following contains the computations that are necessary to determine the value of 
the benchmark emission taxes and the new emission taxes.

Damage-equivalent emissions per dollar of output (lbs) in GTAP sector GDS:
DMG_Q(GDS)
 = SUM( S4_FY( GDS,SIC_4 ) , ( TOXIC(SIC_4,"LIN")/1000000) / SICS(GDS) ) ;
Explanation: DMG_Q is the simple average of emissions per $ output over all 
sectors in SIC_4 that belong to the GTAP sector GDS.
(Remark: here and in the following X(GDS) means: X(i), i element of the set GDS. 
Similarly for X(REG))

 Abatement per Dollar of output in GTAP-sector GDS:
AB_Q(GDS) = 
SUM( S2_FY(GDS,S) , LOW( S ,"ABATE") * LOW( S ,"Q") ) / 
(100 * SUM( S2_FY(GDS,S) , LOW( S ,"Q") ) ) ;
Explanation: Abatement expenditure in sector j in SIC_2 is %age abatement times 
value of output. Then sum up over all industries in SIC_2 that belong to GDS and 
divide the whole thing by total output in GDS to obtain average abatement per 
dollar of output in GDS

Now the values of the internalization rates in every industry PI(GDS) and the 
valuation of damage in NAM (VNA) are determined.

The following assumptions are made: 
Damage caused by emissions is valued differently according to income (if OHI, 
NAM, JPN, EU value a certain amount of emission $1, then MID values it $0.5 and 
CHN and LOW value it $0.2) This assumption is about the relative valuation of 
damages. To get the absolute values, the valuation in NAM (VNA) will be computed 
below. 
For a given industry the same rate of internalization prevails in every region. 
("PI(GDS,REG)=PI(GDS)") The average internalization rate (PIBAR) is 0.5.
The following serves to find the internalization rates in each of the eight GTAP 
industries and the valuation of damages in NAM:

AB_Q(GDS) =PI(GDS) * DMG_Q(GDS) * VNA (*)
The latter is a system of eight identities derived by the definition of PI(GDS).

PIBAR = SUM( GDS , PI(GDS) * DMG_Q(GDS) * VNA * Q(GDS,"NAM") )
 / SUM( GDS , DMG_Q(GDS) * VNA * Q(GDS,"NAM") )
The last identity is the formula to compute the average internalization rate 
(that is assumed to be 0.5).

(To solve for the eight PI(GDS) and the "Numeraire-evalutation" VNA, the 
following trick is used: one minimizes (or maximizes, that does not matter) VNA, 
subject to the nine equality constraints. Since the feasible set contains only 
one element, this yields the solution for VNA and (*) can then be used to find 
the PI(GDS). ) 

Now the emission taxes are computed:

Emission taxes before the policy shock:
TBCH(GDS,REG) = ( VAL(REG) * VNA.L ) * AB_Q(GDS) ;

Optimal emission taxes for full internalization of externalities:
TSTAR(GDS,REG) = TBCH(GDS,REG) / PI.L(GDS) ;

And from that get 

Change in emission taxes:
TAUDOT(GDS,REG) = 
100* ( TSTAR(GDS,REG) - TBCH(GDS,REG) ) / TBCH(GDS,REG) ;


STEP 2 - Compute GTAP Shocks that mimic change in emission taxes

The following tries to explain how the theoretical relationships for the link 
between GTAP and the real model can be derived. The notation is arbitrary since 
the following is not part of the GAMS code. 

Assumptions
It is assumed that production in the real model uses two inputs, market inputs X 
and emissions E. So production is of the form 
Q=f(X,E)
The emission tax TAU can be interpreted as the price for the emission input. 
Consider two cases for f(), Cobb Douglas and Leontief.
In GTAP Production only uses market inputs:
Q=AO*X
To map between GTAP and the real model Perroni and Wigle impose the conditions 
that GTAP shocks have to be such that the following are equal in the true model 
and GTAP: market price changes (C1), changes in ratio of market input to output 
(C2), tax revenue per unit (C3).
The following tries to help understanding the authors' results:

Cobb Douglas (CD) case:
Cobb Douglas Production:
Q=X^(1-beta) * E^beta 
GTAP Production:
Q=AO*X
From the formula for CD conditional factor demands, get input output ratio x as:
x=(1-beta) * (px/(1-beta))^(1-beta) * (TAU/beta)^beta
Totally differentiating yields change in input output ratio for CD:
xdot=beta*TAUdot
For GTAP:
x=1/AO
therefore:
xdot=-ao
So from condition (C2):
-ao = beta * TAUdot	(1)

For the market price in CD function:
PM=(TAU/beta)^beta * (PX/(1-beta))^(1-beta)
Totally differentiating yields:
pm=beta*TAUdot + (1-beta)*px 
For GTAP:
Firms maximize: (PM*TO)*AO*X - PX*X
In equilibrium we have:
PM=PX/(TO*AO)
Totally differentiating yields:
pm=px-to-ao
Noticing that in the CD case the share of market inputs is (1-beta) we get from 
condition (C1):
beta*TAUdot=-ao-to	(2)

In order to have (1) and (2) holding at the same time we must have

to=0
ao=-beta*TAUdot

as the GTAP shocks for mimicking the Cobb Douglas case.


Leontief case:
For the change of the ratio of market input to output we get
xdot=0 
Using condition (C2) i.e. letting this be equal to the GTAP change we get:
0=-ao			(3)

Going from the cost function we get for the market price in the Leontief model:
PM=PX+TAU
Totally differentiating and using the shares Sx=PX/(PX+TAU) and Se=TAU/(PX+TAU) 
(Sx share of market inputs and Se share of emission inputs) yields:
pm=Sx*px+Se*TAUdot
for GTAP we have again:
pm=px-to-ao
Noticing that Se and Sx initially correspond to beta and (1-beta) in the Cobb Douglas 
case, we get from the condition (C1):
to=-beta*TAUdot
So the GTAP shocks for mimicking the Leontief case are:

to=-beta*TAUdot
ao=0

Weighted case;
A third experiment mixes the Cobb Douglas case and the Leontief case. It assigns 
weighted shocks to "ao" and "to". The weights used in the experiment are 1/2 so 
we get:

to=-(1/2)*beta*TAUdot
ao=-(1/2)*beta*TAUdot

Having computed the optimal tax changes TAUdot in Step 1 GAMS computes the shock 
matrices ao(GDS,REG) and to(GDS,REG) for GTAP, depending on what case is 
simulated. 

STEP 3 - Run GTAP

GTAP is run using the shocks to and ao. The GTAP results for qo(GDS,REG) and 
EV(REG) are written into the GAMS files BFT-ABC.GMS and EV-ABC.GMS respectively 
because they are needed as inputs for the welfare computations in STEP 4.


STEP 4 - Compute "real" welfare changes

Overview
In order to compute a welfare measure that takes utility gains due to 
environmental benefits into account, a CES money metric utility function 
"V(UG,UE)" is defined. UG is based on GTAP-EV, and UE is the new component 
measuring environmental quality. (Remark UG, UE, and the function V() are not 
GAMS notation. I rather introduced them to simplify the understanding.) 
Environmental quality is measured as the difference of Endowment of 
environmental quality and damage to the environment. 
For the following the authors assume two parameters: The share of damages in 
total endowments of environmental quality (DELTAREG) is assumed to be 0.25 in 
all regions and the elasticity of substitution in the CES Utility function is 
assumed to be 0.5

Procedure
First derive the environmental benefit component of the new utility function 
(the UE)

Damage by region before the policy shock:
DAMAGE(REG) = SUM(GDS, Q(GDS,REG) * TSTAR(GDS,REG) ) 

New emissions per unit of output:
EQ(GDS,REG,"A") = ECON(GDS,REG) * 
 ( (1-TBCH(GDS,REG))**(TBCH(GDS,REG)-1) / TBCH(GDS,REG) )
		 * TBCH(GDS,REG)**(TBCH(GDS,REG)-1) ;
EQ(GDS,REG,"B") = ECON(GDS,REG) * 
 ( (1-TBCH(GDS,REG))**(TBCH(GDS,REG)-1) / TBCH(GDS,REG) )
		 * TSTAR(GDS,REG)**(TBCH(GDS,REG)-1) ;
EQ(GDS,REG,"C") = L_WT("C") * EQ(GDS,REG,"A")
	 + (1-L_WT("C")) * EQ(GDS,REG,"B") ;
Without going into detail: A,B,C denote Leontief, Cobb Douglas, and the weighted 
case respectively and ECON() is some scaling factor that makes the computations 
easier.

New value of damage by region:
NDAMAGE(REG,CASES) =
SUM( GDS, Q(GDS,REG) *(1+QO(REG,GDS,CASES)/100) * EQ(GDS,REG,CASES))
 Explanation: Take the old value of GTAP-output (Q) and multiply by the qo 
results to get new output. Multiplying by per unit emissions and summing over 
all goods aggregates yields new value of damage per region.

Environmental endowment:
EE(REG) = DAMAGE(REG)/DELTA(REG);
where DELTA(REG) assumed to be 0.25

Now all components are given to compute environmental quality under the old and 
under the new emission taxes

Environmental quality under the old taxes
UEold(REG)=EE(REG)-DAMAGE(REG)

Environmental quality under the new taxes depending on which experiment was 
conducted (Case)
UEnew(REG)=EE(REG)-NDAMAGE(REG,CASES)

Now turn to the goods component of utility:

Old consumption
CONS0(GDS,REG) =VGA(GDS,REG) + VPA(GDS,REG) 
Total consumption as sum of private and government consumption

Old GDP
GDP0(REG) = SUM(GDS, CONS0(GDS,REG))
GDP per region as sum over consumption of all commodities

New GDP
GDPC(REG,CASES) = GDP0(REG) + EV(CASES,REG) 
EV(REG) are the results from GTAP

The last steps for computing welfare changes can be described as follows:
(Remark: For these last steps the original GAMS notation would not yield much 
insight, it would rather be confusing)

Old money metric utility:
Vold(GDP0(REG)), UEold)

New money metric utility:
Vnew(GDPC(REG)), UEnew)

and finally:

Welfare change per region:
REV(REG)=Vnew-Vold

To get World-EV sum REV(REG) over all regions.

