* C:\JHResearch\BHI\FairTax\Keshab\uslargeDec1.gms * Keshab Bhattarai and Jonathan Haughton * University of Hull and Suffolk University * December 2005 $TITLE NATIONAL DYNAMIC MULTISECTOR MULTIHOUSEHOLD US CGE MODEL OF DECEMBER 2005 *$OFFLISTING n0 *----------------THE EXPERIMENT TABLE - FOR EASY ACCESS ------------------------------------------ *-------------------------------------------------------------------------------------------------- *-------------------------------------------------------------------------------------------------- * 1.0 CONTROLS PLACED ON OUTPUT GENERATION *-------------------------------------------------------------------------------------------------- $EOLCOM # $INLINECOM { } $OFFSYMLIST OFFSYMXREF * LISTING DETAIL - PLEASE CHOOSE ONE * VERBOSE *OPTIONS DECIMALS=8, SYSOUT=ON, SOLPRINT=ON, MCP=MILES, NLP=MINOS5, LIMROW=400, LIMCOL=400, RESLIM = 6000, ITERLIM = 50000; OPTIONS DECIMALS=8, SYSOUT=ON, SOLPRINT=ON, MCP=PATH, NLP=MINOS5, LIMROW=400, LIMCOL=400, RESLIM = 6000, ITERLIM = 50000; * QUIET *OPTIONS DECIMALS=8, SYSOUT=OFF, SOLPRINT=OFF, NLP=MINOS5, LIMROW=0, LIMCOL=0; *-------------------------------------------------------------------------------------------------- * 1.1 INCLUDE SAM FROM EXCEL FILE *-------------------------------------------------------------------------------------------------- $CALL GDXXRW US_SAM_09.08.05.xls PAR=SAM RNG=SAM PAR=B RNG=CCM $GDXIN US_SAM_09.08.05.gdx *$INCLUDE US_SAM_09.08.05.gdx PARAMETER SAM(*,*),B(*,*); $LOAD SAM B $GDXIN *-------------------------------------------------------------------------------------------------- * 1.2 SET UP FILE FOR SOLUTION VALUES *-------------------------------------------------------------------------------------------------- FILE RES /RESULTS.TXT/; RES.PW = 250; RES.ND = 4; RES.LW = 10; RES.NW = 10; RES.LJ = 1; PUT RES; *-------------------------------------------------------------------------------------------------- * 2. SET DEFINITION *-------------------------------------------------------------------------------------------------- * 2.1 EXPLICIT SET DECLARATION *-------------------------------------------------------------------------------------------------- sets *tt /2004*2031/ *t(tt) /2004*2030/ tt /2004*2016/ t(tt) /2004*2015/ t0(t) tl(t) tterm(tt) tp(tt) ; t0(t) =yes$(ord(t) eq 1); tl(t) =yes$(ord(t) eq card(t)); tterm(tt) = yes$(ord(tt) eq card(tt)); tp(tt) = yes$(ord(tt) eq card(tt)); display t0, tl, tp; Sets Z ALL ACCOUNTS IN SOCIAL ACCOUNTING MATRIX / AGRICF AGRICULTURE FORESTRY AND FISHING MINING MINING CONSTR CONSTRUCTION FOODPR FOOD & TOBACCO PRODUCTS APPARL TEXTILES AND APPAREL MFRCON BUILDING MATERIALS PPAPER PAPER AND PUBLISHING CHEMIC CHEMICALS PETROLEUM RUBBER PLASTICS COMPUT ELECTRONIC AND ELECTRONIC EQUIPMENT MVOTRA MOTOR VEHICLES AND OTHER TRAN METALS PRIMARY AND FABRICATED METAL MACHIN INDUSTRIAL MACHINERY AND EQUIPMENT ELECTR BUSINESS MACHINERY AND INSTRUMENTS MFROTH OTHER MANUFACTURING(INCLUDES METALS MACHINERY AND OTHER) TRANSP TRANSPORTATION INFORM COMMUNICATIONS UTILIT ELECTRICITY GAS SANITARY WHOLSA WHOLESALE TRADE RETAIL RETAIL TRADE BANKNG BANKING INSURS INSURANCE REALST REAL ESTATE ADMSVC PERSONAL AND REPAIR SERVICES BSVCES BUSINESS SERVICES ENTRHO HOTELS AMUSEMENTS MOTION PICTURES HEALTH HEALTH SERVICES OTHSVC EATING DRINKING MISC SERVICES FLABOR LABOR FKAPIT CAPITAL (INCLUDING LAND) LESS10 INCOME UNDER $10000 PA PER HOUSEHOLD LESS25 INCOME $10000 - $24999 LESS50 INCOME $25000 - $49999 LESS75 INCOME $50000 - $74999 LES100 INCOME $75000 - $99999 LES150 INCOME $100000 - $149999 MOR150 INCOME $150000 AND UP INVEST INVESTMENT USPITX FEDERAL PERSONAL INCOME TAX USCITX FEDERAL CORPORATION INCOME TAX USSSTX FEDERAL SOCIAL SECURITY TAX USEXTX FEDERAL EXCISE TAXES USEGTX FEDERAL ESTATE AND GIFT TAX USDUTY FEDERAL IMPORT DUTIES USFEES FEDERAL FEES USFAIR FEDERAL FAIRTAX STPITX STATE INCOME TAX STSATX STATE SALES TAX STCITX STATE CORPORATE INCOME TAX STOTTX STATE OTHER TAXES STFEES STATE FEES LICENSE PERMITS AND OTHER REVENUE LOPRTX TAX ON RESIDENTIAL PROPERTY LOPBTX TAX ON BUSINESS PROPERTY LOSATX SALES TAX LOOTTX TAXES OTHER LOFEES LOCAL FEES LICENSE PERMITS AND OTHER REVENUE USNOND FEDERAL NORMAL SPENDING USSSSP FEDERAL SOCIAL SECURITY SPENDING USCARE USCAID USINCS USRETR USDEFF FEDERAL DEFENSE SPENDING USOTHS SLEDUC STATE SPENDING ON EDUCATION SLNOED STATE CURRENT SPENDING OTHER THAN EDUCATION SLINVE STATE AND LOCAL INVESTMENT SPENDING ROWSCT REST OF THE WORLD / I1(Z) INDUSTRY SECTORS / AGRICF AGRICULTURE FORESTRY AND FISHING MINING MINING CONSTR CONSTRUCTION FOODPR FOOD & TOBACCO PRODUCTS APPARL TEXTILES AND APPAREL MFRCON BUILDING MATERIALS PPAPER PAPER AND PUBLISHING CHEMIC CHEMICALS PETROLEUM RUBBER PLASTICS COMPUT ELECTRONIC AND ELECTRONIC EQUIPMENT MVOTRA MOTOR VEHICLES AND OTHER TRAN METALS PRIMARY AND FABRICATED METAL MACHIN INDUSTRIAL MACHINERY AND EQUIPMENT ELECTR BUSINESS MACHINERY AND INSTRUMENTS MFROTH OTHER MANUFACTURING(INCLUDES METALS MACHINERY AND OTHER) TRANSP TRANSPORTATION INFORM COMMUNICATIONS UTILIT ELECTRICITY GAS SANITARY WHOLSA WHOLESALE TRADE RETAIL RETAIL TRADE BANKNG BANKING INSURS INSURANCE REALST REAL ESTATE ADMSVC PERSONAL AND REPAIR SERVICES BSVCES BUSINESS SERVICES ENTRHO HOTELS AMUSEMENTS MOTION PICTURES HEALTH HEALTH SERVICES OTHSVC EATING DRINKING MISC SERVICES / ha HOUSEHOLDS / LESS10 INCOME UNDER $10000 PA PER HOUSEHOLD LESS25 INCOME $10000 - $24999 LESS50 INCOME $25000 - $49999 LESS75 INCOME $50000 - $74999 LES100 INCOME $75000 - $99999 LES150 INCOME $100000 - $149999 MOR150 INCOME $150000 AND UP / GT(Z) GOVERNMENT TAXES / USPITX FEDERAL PERSONAL INCOME TAX USCITX FEDERAL CORPORATION INCOME TAX USSSTX FEDERAL SOCIAL SECURITY TAX USEXTX FEDERAL EXCISE TAXES USEGTX FEDERAL ESTATE AND GIFT TAX USDUTY FEDERAL IMPORT DUTIES USFEES FEDERAL FEES USFAIR FEDERAL FAIRTAX STPITX STATE INCOME TAX STSATX STATE SALES TAX STCITX STATE CORPORATE INCOME TAX STOTTX STATE OTHER TAXES STFEES STATE FEES LICENSE PERMITS AND OTHER REVENUE LOPRTX TAX ON RESIDENTIAL PROPERTY LOPBTX TAX ON BUSINESS PROPERTY LOSATX SALES TAX LOOTTX TAXES OTHER LOFEES LOCAL FEES LICENSE PERMITS AND OTHER REVENUE / GI(GT) INCOME TAX UNITS / USPITX FEDERAL PERSONAL INCOME TAX USEGTX Federal estate and gift tax STPITX STATE PERSONAL INCOME TAX LOPRTX Local property tax / GS(z) GOVERNMENT SPENDING / USNOND FEDERAL NORMAL SPENDING USSSSP FEDERAL SOCIAL SECURITY SPENDING USCARE USCAID USINCS USRETR USDEFF FEDERAL DEFENSE SPENDING USOTHS SLEDUC STATE SPENDING ON EDUCATION SLNOED STATE CURRENT SPENDING OTHER THAN EDUCATION SLINVE STATE AND LOCAL INVESTMENT SPENDING / ; *-------------------------------------------------------------------------------------------------- * 2.2 ALIASES *-------------------------------------------------------------------------------------------------- alias (z, zz), (i1, j1), (ha, hha), (gi, gi1), (gt, gt1), (gs, gs1) ; $INCLUDE USCGE_MSC_Dec1.TXT option decimals =4; *-------------------------------------------------------------------------------------------------- * 3.0 DECLARE SCALARS AND PARAMETERS AND SET VALUES FOR CALIBRATION *-------------------------------------------------------------------------------------------------- * 3.1 SCALARS DECLARATION *-------------------------------------------------------------------------------------------------- SCALARS jtrans calc Government transfer payments esubu elasticity of substitution in utility function /0.2/ esubc elascitity of substitution in consumption aggregate /1.5/ gr growth rate of output /0.02/ r rate of interest /0.05/ depr rate of depreciation /0.02/ intersub /1.1/ elas /1.0/ jlendow ; *-------------------------------------------------------------------------------------------------- * 3.2 PARAMETER DECLARATION *-------------------------------------------------------------------------------------------------- parameters jiot input output jl0 labor value added in industry jlg0 labor value added in government jlf0 labor earnings from abroad jk0 capital value added * Sector Y jy0 sectoral output at factor cost jyy0 output by sector at market prices * Sector A jsd0 sectoral demand by domestic agents jssd0 another sectoral demand jlabtax taxes falling on labor costs jcaptax taxes falling on capital costs jp0 One plus capital tax rate jpL0 One plus labor tax rate * Sector C jc0 consumption demand * Sector U jcc0 total utility from sum of consumption and leisure jleisure leisure is three-quarters of net wage initially * Sector LS jwages wages including all sst jnetwage wages net of pit and sst jwageshare share of jwages by household group jsstshare share of sst paid directly by households jhit household income tax over all income jintr capital income * Sector ID jinv0 investment demand jresinv0 residential investment * Sector GV jgov government consumption jtransf government transfers to households * Sectors FX and im jexp exports jimps imports by sector jhhimps imports by household jothimps all other imports jhhimpsa imports by households and by sector for final goods jhhimpsb final goods imports by sector jtm taxes on imports set to zero jpx0 export price jtbal trade balance jendowL labor endowment jendowk capital endowment jgk0 capital income gross of tax incbal income balance for households saving savings of households nincbal net of tax income jgovrev government revenue revvat sales tax revenue revpit personal income tax revenue revcap revenue from taxes on capital income revlab revenue from taxes on payments to labor revsst social security tax revenue bal balance between sectoral demand and supply sibal saving investment balance imexbal trade balance or BOP zeprof zero profit condition amongst production sectors tinv total investment rbal resource balance * Sector K jcap0 capital income Kstockt total capital stock jvat(ha,i1) VAT rate or sales tax rate jsst(ha) social security tax rate jsstb(i1) social security tax as levied on income by sector jsigma Top level elasticity of substitution for production function jetran Elasticity of transformation for domestic goods to exports jetae Armington elasticity of substitution jdepr Depreciation rate by sector * Used in sector LU pref(tt) reference prices qref(t) reference quantities jcref(t) reference consumption jkstock(i1) initial capital stock jkshare household share of total capital stock etran(i1) elasticity of transformation in production set to 2 * Sector ID jinvest investment by destination (i.e. to raise capital stock in sector) idiffer invadj gdef government budget deficit ; *-------------------------------------------------------------------------------------------------- * 3.3 CALCULATIONS OF PARAMETERS AND INITIAL VALUES *-------------------------------------------------------------------------------------------------- * This is the capital coefficients matrix. Columns add up to 1. display b; pref(tt) = (1/(1+r))**(ORD(tt)-1); * NB: This runs to the end period qref(t) = (1+gr)**(ord(t)-1); * NB: This runs to the period before the end period display pref, qref; * Basic input-output table data etran(i1) = 2; jiot(i1, j1) = sam(i1,j1); display jiot; * Value added in labor and capital jL0(i1) = sam("flabor",i1); jlg0(gs) = sam("flabor",gs); jk0(i1) = sam("fkapit",i1); jlf0 = sam("rowsct","flabor") display jL0, jlg0, jk0, jlf0; * This is spending on investment by sector of origin so a lot is spent on * construction and not much on agriculture (for example) jinv0(i1) = sam(i1,"invest"); jresinv0(i1) =RESINV(i1,"resinv"); display jinv0, jresinv0; jgov(i1) = sam(i1,"usdeff") + sam(i1,"usoths") + sam(i1,"sleduc") + sam(i1,"slnoed") + sam(i1,"slinve"); display jgov; jexp(i1) = sam(i1,"rowsct"); jimps(i1) = sam("rowsct",i1); jhhimps(ha) = sam("rowsct",ha); jothimps = sum(z, sam("rowsct",z)) - sum(i1, jimps(i1)) - sum(ha, jhhimps(ha)) - sam("rowsct","invest"); * Note: This leaves -653.4 in the US model, which is payments from investment to ROW * or in other words, borrowing from the rest of the world. display jexp, jhhimps, jothimps ; * Reminder: this shows capital income (a flow) jcap0(i1) = jk0(i1); * This measure comes from the steady state where It - (delta + g) * Kt *kstock(i) = cap0(i)/(depr + r); * Note that this uses actual values, and is not on the steady state path * NB: the jvat rate expresses tax revenue as a fraction of the tax-inclusive price * This assumes no tax on government purchases or on exports or on intermediate purchases. jvat(ha,i1) = (sam("usextx",i1) + sam("usfair",i1) + sam("stsatx",i1) + sam("losatx",i1))/(sum(hha, sam(i1,hha))); display jvat ; * Note that sam(i1,ha) is the consumption level including vat so it needs * to be adjusted to strip out the VAT * Does not include imports jc0(ha, i1) = (1-jvat(ha,i1))*sam(i1, ha); jcref(t) = sum((ha, i1), jc0(ha,i1))*qref(t)*pref(t); display jc0, jcref ; *supply at factor cost/supply side jy0(i1) = sum(j1, jiot(j1,i1)) + jL0(i1) + jk0(i1); display jy0; jintr(ha) = sam(ha,"fkapit"); jsst(ha) = (sum(i1, sam("ussstx",i1)) + sam("ussstx","flabor"))/(sum(hha, sam(hha,"flabor"))); jsstb(i1) = sam("ussstx",i1)/sam("flabor",i1); jwages(ha) = (sam(ha,"flabor"))*(1+jsst(ha)); *jwages(ha) =(sam(ha,"flabor")/sum(hha,sam(hha,"flabor")))*sum(i1, jL0(i1)); jwageshare(ha) = jwages(ha)/(sum(hha,jwages(hha))); jsstshare(ha) = ((sam("ussstx","flabor"))/(sum(hha, sam(hha,"flabor"))))/jsst(ha); * NB: jhit is levied on labor and capital income jhit(ha) = (sum(gi,sam(gi,ha))+sam("stottx",ha)+sam("loottx",ha))/(sam(ha,"flabor") + sam(ha,"fkapit")); display jhit, jsst, jsstb, jwages, jintr, jwageshare, jsstshare; jnetwage(ha) = (1-jhit(ha)) * (jwages(ha)/(1+jsst(ha))); *JH Note denominator is only wages here display jnetwage; jleisure(ha) = (3/4)*jnetwage(ha); display jleisure; * Aggregate consumption, including leisure, is the measure of utility used here. * Note the inclusion of final goods imports, which are not included in jc0. * But note that indirect business taxes have not been stripped out of jc0. jcc0(ha) = sum(i1, jc0(ha,i1)) + jleisure(ha) + sam("rowsct",ha); display jcc0; *supply at market prices/supply side * Note that part of social security tax is in here; may need to be removed. jyy0(i1) = sum(j1,sam(j1,i1)) + jL0(i1) + jk0(i1) + sum(gt1, sam(gt1,i1)) + sam("rowsct",i1) - sam("usextx",i1) - sam("usfair",i1) - sam("stsatx",i1) - sam("losatx",i1) ; *+ sam("rowsct",i1) - sam("ussstx",i1) - sam("usextx",i1) - sam("usfair",i1) *jyy0(i1) = sum(j1,sam(j1,i1)) + jL0(i1) + jk0(i1) + sum(gt1, sam(gt1,i1)) * + sam("rowsct",i1) ; * This gives the value of output net of sales taxes or VAT, which is the * appropriate measure for a production function. display jyy0; *demand side jsd0(i1) = sum(j1, sam(i1,j1)) + sum(ha, jc0(ha,i1)) + jgov(i1) + jinv0(i1); * JH: exports not included here display jsd0; *trade balance/BOP jtbal = sum(i1, jimps(i1)) + sum(ha, jhhimps(ha)) + jothimps - sum(i1, jexp(i1)); display jtbal; *labour endownment jendowL = sum(i1, jL0(i1)); jendowk = sum(i1, jk0(i1)); display jendowL, jendowk; *tax rates jlabtax(i1) = (sam("usduty",i1) + sam("usfees",i1) + sam("stottx",i1) + sam("stfees",i1) + sam("loottx",i1) + sam("lofees",i1)) / jL0(i1); jcaptax(i1) = (sam("uscitx",i1) + sam("stcitx",i1) + sam("lopbtx",i1)) / jk0(i1); jgk0(i1) = jk0(i1) * (1+jcaptax(i1)); display jlabtax, jcaptax, jgk0 ; *income balance (net of tax income) *saving(h) = ((1-hit(h))*WAGES(H)+INTR(H))-SUM(I, (1+vat(h,i))*C0(H,I)); *JH this may not be needed *Saving= sum(i,L0(i)+k0(i)-c0(i)); *investment saving balance *sibal=SUM(H,saving(H)) - sum(i,inv0(i)); *tinv =sum(i,inv0(i)); *JH this may not be needed *revenue balance jgovrev = sum((ha,i1), (jvat(ha,i1)/(1-jvat(ha,i1)))*jc0(ha,i1)) + sum(ha, jhit(ha)*((jwages(ha)/(1+jsst(ha)))+jintr(ha))) + sum(i1, jk0(i1)*jcaptax(i1) + jL0(i1)*jlabtax(i1)) + sum(ha, jsst(ha)*(jwages(ha)/(1+jsst(ha)))) ; revvat = sum((ha,i1), (jvat(ha,i1)/(1-jvat(ha,i1)))*jc0(ha,i1)); revpit = sum(ha, jhit(ha)*((jwages(ha)/(1+jsst(ha)))+jintr(ha))); revcap = sum(i1, jk0(i1)*jcaptax(i1)); revlab = sum(i1, jL0(i1)*jlabtax(i1)); revsst = sum(ha, jsst(ha)*(jwages(ha)/(1+jsst(ha)))); gdef = jgovrev-sum(i1,jgov(i1)); display jgovrev, revvat, revpit, revcap, revlab, revsst; *zero profit *zeprof(i)= yy0(i)- sum(j,io(j,i))-L0(i)-k0(i)-tax(i); *JH another accounting equation *rbal = sibal+revbal; *JH also not needed jpx0(i1) = 1; * No taxes on imports jtm(i1) = 0; jsigma(i1) = misc(i1,"sigma"); jetran(i1) = misc(i1,"etran"); jetae(i1) = -misc(i1,"etae"); display jsigma, jetran, jetae; jp0(i1) = (1+jcaptax(i1)); jpL0(i1) = (1+jlabtax(i1)); display jp0, jpL0 ; jtrans = sum((ha,gs), sam(ha,gs)); jtransf(ha) = sum(gs, sam(ha, gs)); *JH Need to tailor this by household group display jtrans, jtransf; jlendow = sum(i1, jL0(i1)); *invest(i) = ((r+depr)/(depr+gr))*cap0(i); jdepr(i1) = misc(i1,"drate"); jinvest(i1) = misc(i1,"knew") - misc(i1,"kold") + jdepr(i1)*misc(i1,"kold"); * JH This refers to non-residential private investment only jresinv0(i1) = sam(i1,"invest")-sum(j1, b(i1,j1)*jinvest(j1)); display jinvest, jresinv0; *kstock(i) = invest(i)/(depr + r); * Use a steady-state capital stock model for now *jkstock(i1) = jinvest(i1)/(depr+r); jkstock(i1) = jk0(i1)/(depr+r); * Share of capital stock owned by each household group jkshare(ha) = hhmisc(ha,"knew")/sum(hha,hhmisc(hha,"knew")); *jkstock(i1) = misc(i1,"knew"); display jcap0, jkstock, jkshare ; *cref(t) = sum((h,i), c0(h,i))*qref(t)*pref(t); *tinv = sum(i, inv0(i)); Parameter jhhimpsb(i1); jhhimpsb(i1) = sum(ha, hhimp(i1,ha)); display jhhimpsb ; *parameters for computing the adjustment cost of capital Parameters phi(i1),adj0(i1),beta, rkf, incadj(ha); phi(i1) = 0.5; beta = 2; rkf(i1, t) = 0.03; adj0(i1) = phi(i1)*(jinvest(i1)/(jkstock(i1))); display adj0; Table adj(ha, *) income adjustment incajd LES100 -2667.208 LES150 -4083.699 LESS10 3734.037 LESS25 3891.332 LESS50 -1129.068 LESS75 -6608.922 MOR150 -3310.264 ; incadj(ha) = adj(ha, "incajd"); display incadj; *-------------------------------------------------------------------------------------------------- * 4.0 SPECIFY AND RUN MPSGE MODEL *-------------------------------------------------------------------------------------------------- $ontext $echop:.true $datech:.true $funlog:.true $model:sevenus $Sectors: Y(i1,t) ! Activity level for production in i sectors K(i1,t) A(i1,t) *x(i1,t)$exp(i1) id(t) FX(t) im(i1,t) inv(i1,t) gv(t) U(ha,t) ls(ha,t) c(ha,t) lu(ha) $commodities: pd(i1,t) pk(i1,tt) p(i1,t) ! Price of final goods pinv(t) px(i1,t)$jexp(i1) rk(i1,t) pl(t) pfx(t) pm(i1,t) ! Price of final goods imports by sector pg(t) pu(ha,t) pc(ha,t) ple(ha,t) plu(ha) * padj(i1,t) $consumers: ra(ha) govt * trader(t) $auxiliary: JTcap(i1) * kflow(t) * US total investment by origin (i.e. by amount spent on construction, on manufacturing, etc.) * Think of it as the price of the composite investment good $prod:id(t) k:1 o:pinv(t) q:(sum(i1,jinvest(i1))) i:p(i1,t) q:(sum(j1,b(i1,j1)*jinvest(j1))) k: *$prod:id(i1,t) k:2 *o:pinv(i1,t) q:(jinvest(i1)) *i:p(i1,t) q:(sum(j1,b(i1,j1)*jinvest(j1))) *US investment by destination $prod:inv(i1,tt)$T(tt) *o:pk(i1,tt+1) q:(sum(j1,b(i1,j1)*jinvest(j1))) *o:pk(i1,tt+1) q(jinvest(i1)-adj(i1)) o:pk(i1,tt+1) q:jinvest(i1) *i:padj(i1,tt) q:adj0(i1) i:pinv(tt) q:jinvest(i1) *Note the use of the capital coefficients matrix b(i1,j1) to convert jinvest(j1) to * jinv(j1). Note that jinvest(j1) is the amount of investment destined for agriculture * for manufacturing and so on. And jinv(j1) is the spending on purchasing investment goods * from construction or from manufacturing etc. * Note that this does not include a terminal condition. Do we need a price of terminal capital? * US law of motion of capital $prod:K(i1,tt)$t(tt) O:rk(i1,tt) q:(jcap0(i1)) O:pk(i1,tt+1) q:(jkstock(i1)*(1-depr)) *O:pk(i1,tt+1) q:(jkstock(i1)*(1-jdepr(i1))) *o:padj(i1,tt) q:adj0(i1) I:PK(i1,tt) q:jkstock(i1) * Use sector-specific depreciation rates? * Note that this does not include a terminal condition. * US production $prod:y(i1,t) s:0 t:(jetran(i1)) va:2 L(va):5 a:1 *$prod:y(i1,t) s:0 t:(jetran(i1)) s:2 o:pd(i1,t) q:(jyy0(i1) - jexp(i1)) o:px(i1,t)$jexp(i1) q:jexp(i1) i:p(j1,t) q:jiot(j1,i1) i:pl(t) q:JL0(i1) A:govt T:jlabtax(i1) t:jsstb(i1) P:(1+jlabtax(i1)+jsstb(i1)) va: *i:pl(t) q:JL0(i1) A:govt T:(jlabtax(i1)+ jsstb(i1)) P:((1+jlabtax(i1))*(1+jsstb(i1))) va: i:rk(i1,t) q:Jk0(i1) A:govt T:jcaptax(i1) P:(1+jcaptax(i1)) L: i:pfx(t) q:jimps(i1) a: *i:pm(j1,t) q:jimps(i1) a: *Maybe not i:pfx(t) q:jimps(i1) a: *Note that imported intermediate goods are included here with an elasticity of 0.5, * which is relatively inelastic but not as strong as the Leontief condition. * Here pl is the price of labor to the firm, and so has to include taxes. Ditto for capital. * The main q: in the first o: line is domestic sales from domestic production. * US absorbtion and Armington assumption $prod:A(i1,t) d:1.5 o:p(i1,t)$(jhhimpsb(i1)+jyy0(i1)-jexp(i1)) q:(jsd0(i1)+jhhimpsb(i1)) *o:p(i1,t) q:jsd0(i1) i:pd(i1,t)$(jyy0(i1)-jexp(i1)) q:(jyy0(i1)-jexp(i1)) d: i:pm(i1,t)$jhhimpsb(i1) q:(jhhimpsb(i1)) d: *i:pfx(t) q: (jimps(i1)) *Note that household purchases of final goods imports are included here. * US foreign exchange rate $prod:fx(t) a:2 o:pfx(t) q:(sum(i1,jexp(i1))) i:px(i1,t)$jexp(i1) q:(jexp(i1)) a: * This is a price index for fx. Why use a:2 here? An arbitrary CES aggregation? * US import equation $prod:im(i1,t)$jhhimpsb(i1) o:pm(i1,t)$jhhimpsb(i1) q:(jhhimpsb(i1)) i:pfx(t) q:jhhimpsb(i1) $prod:u(ha,t) b:esubu o:pu(ha,t) q:(jcc0(ha)) p:pref(t) i:pc(ha,t) q:(sum(i1,jc0(ha,i1))+jhhimps(ha)) p:pref(t) b: i:ple(ha,t) q:(jleisure(ha)) p:pref(t) b: * Will want to allow elasticity of substitution to vary by household group * And we will want to refine the measurement of leisure by group *composite consumption $prod:c(ha,t) c:esubc o:pc(ha,t) q:(sum(i1,jc0(ha,i1)*(1+jvat(ha,i1)))+jhhimps(ha)) i:p(i1,t) q:(jc0(ha,i1)) a:govt t:jvat(ha,i1) p:(1+jvat(ha,i1)) c: i:pfx(t) q:jhhimps(ha) *labour supply $prod:ls(ha,t) *o:pl(t) q:jwages(ha) a:govt t:jhit(ha) *o:pl(t) q:jwages(ha) *i:ple(ha,t) q:jnetwage(ha) a:govt t:jsst(ha) *i:ple(ha,t) q:(jnetwage(ha)*(1+jsst(ha))) * These led to low marginals but did not take taxes into account o:pl(t) q: (sum(i1, jl0(i1))*jwageshare(ha)) a:govt t:jhit(ha) o:pl(t) q: (sum(gs, jlg0(gs))*jwageshare(ha)) a:govt t:jhit(ha) *o:pl(t) q: ((sum(i1, jl0(i1))*jwageshare(ha))+(sum(gs, jlg0(gs))*jwageshare(ha))) a:govt t:jhit(ha) P:(1-jhit(ha)) i:ple(ha,t) q:jnetwage(ha) a:govt t:(jsst(ha)*jsstshare(ha)) *i:ple(ha,t) q:jnetwage(ha) i:pfx(t) q:(jlf0*jwageshare(ha)) *lifetime utility $prod:lu(ha) f:intersub o:plu(ha) q:(sum(t, jcc0(ha)*qref(t)*pref(t))) i:pu(ha,t) q:(jcc0(ha)*qref(t)) p:pref(t) f: * Composite price of government purchases of goods and services $prod:gv(t) j:1 o:pg(t) q:(sum(i1,jgov(i1))) i:p(i1,t) q:(jgov(i1)) j: *$demand:trader (t) *D:pfx(t) q:((1/card(ha))*jtbal*qref(t)) *E:pfx(t) q:((1/card(ha))*jtbal*qref(t)) r:kflow(t) $demand:ra(ha) D:plu(ha) q:(sum(t, jcc0(ha)*qref(t)*pref(t))) E:ple(ha,t) q:((jnetwage(ha)+jleisure(ha))*qref(t)) E:P(i1,t) q:(-jresinv0(i1)*jkshare(ha)) *E:pk(i1,t0) q:(jkstock(i1)/card(ha)) E:pk(i1,t0) q:((jkshare(ha))*(jkstock(i1))) E:pk(i1,tp) q:(-jkshare(ha)) r:jtcap(i1) *E:pk(i1,tp) q:(-1/card(ha)) r:jtcap(i1) E:pfx(t) q:((jkshare(ha))*jtbal*qref(t)) E:pg(t) q:(jkshare(ha)*gdef*qref(t)) * Government revenue and spending account * Revenue is implicit and comes from the govt terms above * Spending on goods and services is measured by jgov * Transfers are a sort of residual perhaps? $demand:govt D:pg(t) q:((sum(i1,jgov(i1)*qref(t)))) E:pfx(t) q:(-(jothimps-jlf0)*qref(t)+314.5) E:pl(t) q: (sum(gs, -jlg0(gs)*qref(t))) E:plu(ha) q:(sum(t,((jtrans/card(ha))*qref(t)))-640) E:plu(ha) q: (-incadj(ha)) $constraint:jtcap(i1) Sum(T$tl(t+1), inv(i1,t+1)/inv(i1,t) -k(i1,t+1)/k(i1,t)) =e=0; *$constraint:kflow(t) * pfx(t) =e= sum(i1,beta*(rk(i1,t) -rkf(i1,t)))/card(i1); $report: V:Y1(i1,t) o:pd(i1,t) prod:y(i1,t) V:K1(i1,t) i:rk(i1,t) prod:y(i1,t) V:A1(i1,t) o:p(i1,t) prod:A(i1,t) V:INV1(i1,t) I:pinv(t) prod:inv(i1,t) V:L1(i1,t) i:pl(t) Prod:y(i1,t) V:FX1(t) o:pfx(t) Prod:fx(t) V:U1(ha,t) o:pu(ha,t) Prod:U(ha,t) V:GV1(t) o:pg(t) Prod:GV(t) V:w1(ha) W:ra(ha) *V:w2(i1) W:jgov(i1) $offtext $sysinclude mpsgeset sevenus *-------------------------------------------------------------------------------------------------- * 5.0 SET INITIAL CONDITIONS AND SOLVE MODEL *-------------------------------------------------------------------------------------------------- sevenus.scaleopt=1; C.l(ha,t) = qref(t); LS.l(ha,t) = qref(t); K.l(i1,t) = qref(t); A.l(i1,t) = qref(t); *x(i1,t)$jexp(i) FX.l(t) = qref(t); inv.l(i1,t) = qref(t); *U.l(t) = qref(t); gv.l(t) = qref(t); *Jtcap.l(i1)=sum(ha,(jkshare(ha))*jkstock(i1)*((1+gr)**card(t))); Jtcap.l(i1) = jkstock(i1)*((1+gr)**card(t)); id.l(t) = qref(t); U.l(ha,t) = qref(t); lu.l(ha) = 1; pu.l(ha,t) = pref(t); plu.l(ha) = 1; ple.l(ha,t) = pref(t); pc.l(ha,t) = pref(t); Y.l(i1,t) = qref(t); pd.l(i1,t) = pref(t); pk.l(i1,tt) = (1+r)*pref(tt); p.l(i1,t) = pref(t); pinv.l(t) = pref(t); px.l(i1,t)$jexp(i1)=pref(t); rk.l(i1,t) = pref(t); pl.l(t) = pref(t); *pu.l(t) = pref(t); *tcap.l(i1) = kstock(i1)*(1+gr)**card(t); pfx.l(t) = pref(t); pg.l(t) = pref(t); *padj.l(i1,t) = pref(t); ra.l(ha) = 1; *ra.l(ha) = (sum(t, jcc0(ha)*qref(t)*pref(t))); *ra.l(ha) = w0(ha)+leisure(ha); govt.l = jgovrev; *kflow.l(t) = 1; option mcp = path; sevenus.iterlim = 0; sevenus.workspace = 30; Option sysout= on; sevenus.scaleopt = 0; $include sevenus.gen solve sevenus using mcp; parameter yb, sb, kb, lb, pb, rb, ib, ub, gry, rep, reph, reph1, incb, inch, report,rep1, report1; yb(i1,t) = y1.l(i1,t); sb(i1,t) = a1.l(i1,t); kb(i1,t) = k1.l(i1,t); lb(i1,t) = l1.l(i1,t); pb(i1,t) = p.l(i1,t); rb(i1,t) = rk.l(i1,t); ib(i1,t) = inv1.l(i1,t); ub(ha,t) = U1.l(ha, t); reph("Utility",ha,t) = U1.l(ha, t); incb(ha, "income") =w1.l(ha); sevenus.iterlim = 1000000; jcaptax(i1) = 0; jlabtax(i1) = 0.2; option decimals = 4; $include sevenus.gen solve sevenus using mcp; *-------------------------------------------------------------------------------------------------- * 6.0 REPORT RESULTS *-------------------------------------------------------------------------------------------------- *$exit report(i1, t,"output") = y1.l(i1,t); report(i1, t,"supply") = a1.l(i1,t); report(i1, t,"capital") = k1.l(i1,t); report(i1, t,"labour") = L1.l(i1,t); report(i1, t,"price") = p.l(i1,t); report(i1, t,"rental") = rk.l(i1,t); report(i1, t,"invest") = inv1.l(i1,t); rep(t,"Forex") = FX1.l(t); rep(t,"GV1") = GV1.l(t); inch(ha, "income") = w1.l(ha); reph1("chutil",ha,t)$(card(ha) gt 1) = (U1.l(ha, t)-U1.l(ha, t-1))/U1.l(ha, t); reph1("U_BU", ha,t)$(card(ha) gt 1) = (Ub(ha, t)-U1.l(ha, t-1))/ub(ha,t); display rep, report, reph,reph1, incb, inch; gry(i1,t) = (y.l(i1,t)-y.l(i1,t-1)/y.l(i1,t-1))*100; report1(i1, t, "output") = y1.l(i1,t); report1(i1, t,"supply") = a1.l(i1,t); report1(i1, t,"capital") = k1.l(i1,t); report1(i1, t,"labour") = L1.l(i1,t); report1(i1, t,"price") = p.l(i1,t); report1(i1, t,"rental") = rk.l(i1,t); report1(i1, t,"investment") = inv1.l(i1,t); rep1(t, "Forex") = FX1.l(t); *rep1(t, "Utility") = U1.l(t); rep1(t, "GV1") = GV1.l(t); display gry,rep, report,rep1, report1 ;