Translog Demand PE Model of Tariff Changes

S. Schreiber, 8/8/2019

This industry-specific partial equilibrium (PE) model of trade policy quantifies the economic impacts of a tariff change on prices and quantities. Instead of CES preferences, this model uses transcendental logarithmic (translog) preferences originally proposed by Christensen, Jorgenson, and Lau (1975) and made popular in recent times by Feenstra and others. There are three sources of supply to a single market: domestic shipments (d), subject imports (s) and non-subject imports (n). The market operates under the perfect competition assumption. 

The user inputs translog demand parameters, price elasticities of supply, original and new tariff rates, and initial expenditure and price data on domestic shipments, subject imports, and non-subject imports. The user can modify data inputs in the simulation by changing the values in the ORANGE - shaded lines in the notebook below. The spreadsheet will  update the estimated changes in economic outcomes that are reported in the GREEN - shaded cells once the user selects “Evaluate Notebook” under “Evaluation” in the Menu above. The own- and cross-price elasticity values populate in BLUE.
   
This model is provided as a generic analytical tool, and the data and parameter values are fictional and illustrative. Actual data and parameter values should be supplied by the user based on the industry and market to which the model is applied. The model is the result of ongoing professional research of USITC staff and may be updated. The model is not meant to represent in any way the view of the U.S. International Trade Commission or any of its individual Commissioners. The model is posted to promote the active exchange of ideas between USITC staff and experts outside the USITC and to provide useful economic modeling tools to the public.

ClearAll[f];

Demand Parameters

Coefficient on interaction of log prices of domestic and subject import goods

gammads=-0.4;

Coefficient on interaction of log prices of domestic and non-subject import goods

gammadn=-0.3;

Coefficient on interaction of log prices of subject import and non-subject import goods

gammasn=0;

Coefficient on interaction of log prices of subject import and domestic goods (restricted)

gammasd=gammads;

Coefficient on interaction of log prices of non-subject and domestic goods (restricted)

gammand=gammadn;

Coefficient on interaction of log prices of non-subject and subject import goods (restricted)

gammans=gammasn;

Coefficient on log price of domestic good (restricted)

gammadd=-(gammads+gammadn);

Coefficient on log price of subject import good (restricted)

gammass=-(gammasd+gammasn);

Coefficient on log price of non-subject import good  (restricted)

gammann=-(gammand+gammans);

Price Elasticities of Supply

Price elasticity of supply, domestic production

ed=2;

Price elasticity of supply, subject imports

es=10;

Price elasticity of supply, non-subject imports

en=10;

Policy Shocks

Initial Tariff

ts0=0.0;

Revised Tariff

ts1=0.10;

Data Inputs for Initial Equilibrium

Value of Domestic Shipments

vd0 = 70;

Value of Subject Imports

vs0 =20;

Value of Non-Subject Imports

vn0 = 10;

Price of Domestic Shipments

pd0 = 1;

Price of Subject Imports

ps0 = 1;

Price of Non-Subject Imports

pn0 = 1;

qd0 = vd0/pd0;

qs0 = vs0/(ps0(1+ts0));

qn0 = vn0/pn0;

Calibration of Parameters

M = vd0+vs0+vn0;

The formulas below impose a common translog restriction that sum alpha_i = -1

alphaD = -(vd0/M)-gammadd Log[(pd0/M)]+(((gammadd+gammand+gammasd) vd0 Log[(pd0/M)])/M)-gammadn Log[(pn0/M)]+(((gammadn+gammann+gammasn) vd0 Log[(pn0/M)])/M)-gammads Log[((ps0 (1+ts0))/M)]+(((gammads+gammans+gammass) vd0 Log[((ps0 (1+ts0))/M)])/M);

alphaS = -(vs0/M)-gammasd Log[(pd0/M)]+(((gammadd+gammand+gammasd) vs0 Log[(pd0/M)])/M)-gammasn Log[(pn0/M)]+(((gammadn+gammann+gammasn) vs0 Log[(pn0/M)])/M)-gammass Log[((ps0 (1+ts0))/M)]+(((gammads+gammans+gammass) vs0 Log[((ps0 (1+ts0))/M)])/M);

alphaN = -(1/M)(M-vd0-vs0-gammadd M Log[(pd0/M)]-gammasd M Log[(pd0/M)]+gammadd vd0 Log[(pd0/M)]+gammand vd0 Log[(pd0/M)]+gammasd vd0 Log[(pd0/M)]+gammadd vs0 Log[(pd0/M)]+gammand vs0 Log[(pd0/M)]+gammasd vs0 Log[(pd0/M)]-gammadn M Log[(pn0/M)]-gammasn M Log[(pn0/M)]+gammadn vd0 Log[(pn0/M)]+gammann vd0 Log[(pn0/M)]+gammasn vd0 Log[(pn0/M)]+gammadn vs0 Log[(pn0/M)]+gammann vs0 Log[(pn0/M)]+gammasn vs0 Log[(pn0/M)]-gammads M Log[((ps0 (1+ts0))/M)]-gammass M Log[((ps0 (1+ts0))/M)]+gammads vd0 Log[((ps0 (1+ts0))/M)]+gammans vd0 Log[((ps0 (1+ts0))/M)]+gammass vd0 Log[((ps0 (1+ts0))/M)]+gammads vs0 Log[((ps0 (1+ts0))/M)]+gammans vs0 Log[((ps0 (1+ts0))/M)]+gammass vs0 Log[((ps0 (1+ts0))/M)]);

bd = qd0 (pd0^(-ed));

bs = qs0 (ps0^(-es));

bn = qn0 (pn0^(-en));

Calculation of Uncompensated Elasticities of Demand

etadd = -1 + ((gammadd/((vd0/M)))- (gammads+gammadd+gammadn))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)])

etass = -1 + (((gammass/((vs0/M)))- (gammass+gammasd+gammasn))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etann = -1 + (((gammann/((vn0/M)))- (gammans+gammand+gammann))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etads = (((gammads/((vd0/M)))- (gammads+gammadd+gammadn))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etadn = (((gammadn/((vd0/M)))- (gammads+gammadd+gammadn))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etasn = (((gammasn/((vs0/M)))- (gammasn+gammasd+gammass))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etasd = (((gammasd/((vs0/M)))- (gammasn+gammasd+gammass))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etand = (((gammand/((vn0/M)))- (gammann+gammand+gammans))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

etans = (((gammans/((vn0/M)))- (gammann+gammand+gammans))/(-1+(gammads+gammans+gammass)Log[((ps0(1+ts0))/M)]+(gammadn+gammann+gammasn) Log[(pn0/M)]+(gammadd+gammand+gammasd)Log[(pd0/M)]))

Changes in Equilibrium Prices and Quantities

qd = bd (pd^ed);

qs = bs (ps^es);

qn = bn (pn^en);

EQd1=((qd pd)/M)== (((alphaD + (gammads Log[((ps(1+ts1))/M)] + gammadn Log[(pn/M)]+gammadd Log[(pd/M)]))/((alphaD+alphaN+alphaS)+(gammads+gammans+gammass)Log[((ps(1+ts1))/M)]+(gammadn+gammann+gammasn) Log[(pn/M)]+(gammadd+gammand+gammasd)Log[(pd/M)])));

EQs1=((qs ps(1+ts1))/M)== (((alphaS + (gammass Log[((ps(1+ts1))/M)] + gammasn Log[(pn/M)]+gammasd Log[(pd/M)]))/((alphaD+alphaN+alphaS)+(gammads+gammans+gammass)Log[((ps(1+ts1))/M)]+(gammadn+gammann+gammasn) Log[(pn/M)]+(gammadd+gammand+gammasd)Log[(pd/M)])));

EQn1=((qn pn)/M)== (((alphaN + (gammans Log[((ps(1+ts1))/M)] + gammann Log[(pn/M)]+gammand Log[(pd/M)]))/((alphaD+alphaN+alphaS)+(gammads+gammans+gammass)Log[((ps(1+ts1))/M)]+(gammadn+gammann+gammasn) Log[(pn/M)]+(gammadd+gammand+gammasd)Log[(pd/M)])));

FindRoot[{EQd1,EQs1,EQn1},{pd,pd0}, {ps,ps0},{pn,pn0}]

pd1 = pd /.%;

ps1 = ps/.%%;

pn1 = pn/.%%%;

qd1 =bd (pd1^ed);

qs1 = bs (ps1^es);

qn1 = bn (pn1^en);

% Change in price of domestic shipments

(((pd1-pd0)100)/pd0)

% Change in producer price of subject imports

(((ps1-ps0)100)/ps0)

% Change in consumer price of subject imports

(((ps1(1+ts1)-pd0(1+ts0))100)/(pd0(1+ts0)))

% Change in producer price of non-subject imports

(((pn1-pn0)100)/pn0)

% Change in the quantity of domestic shipments

(((qd1-qd0)100)/qd0)

% Change in the quantity of subject imports

(((qs1-qs0)100)/qs0)

% Change in the quantity of non-subject imports

(((qn1-qn0)100)/qn0)