SCALAR TX Ad-valorem tax rate for X sector inputs /0/; $ONTEXT $MODEL:M1_7S $SECTORS: X ! Activity level for sector X Y ! Activity level for sector Y W ! Activity level for sector W (Hicksian welfare index) Z ! Alternative activity for producing X. $COMMODITIES: PX ! Price index for commodity X PY ! Price index for commodity Y PL ! Price index for primary factor L PK ! Price index for primary factor K PW ! Price index for welfare (expenditure function) $CONSUMERS: CONS ! Income level for consumer CONS $PROD:X s:1 O:PX Q:100 I:PL Q: 40 A:CONS T:TX I:PK Q: 60 A:CONS T:TX $PROD:Y s:1 O:PY Q:100 I:PL Q:60 I:PK Q:40 * Note that at the benchmark (when all prices equal unity), the * cost of Z inputs equals 1.1 and the value of outputs equals 1.0. * An economic equilibrium prevails provided that this sector is * idle: $PROD:Z s:1 O:PX Q: 1.00 I:PL Q: 0.44 I:PK Q: 0.66 $PROD:W s:1 O:PW Q:200 I:PX Q:100 I:PY Q:100 $DEMAND:CONS D:PW Q:200 E:PL Q:100 E:PK Q:100 $OFFTEXT $SYSINCLUDE mpsgeset M1_7S * Check the benchmark calibration --- after setting the activity * level for Z equal to 0: Z.L = 0; M1_7S.ITERLIM = 0; $INCLUDE M1_7S.GEN SOLVE M1_7S USINCP MCP; M1_7S.ITERLIM = 2000; * Lets levy a high tax on sector X and see what happens: TX = 1.00; $INCLUDE M1_7S.GEN SOLVE M1_7S USINCP MCP; * Omit activity Z: Z.FX=0; * Plot Laffer Curve (relationship between TAX rate and TAX revenue): SET SC Scenarios /SC1*SC4/; PARAMETER TXVALUE(SC) Value of TX by scenario /SC1 0.1, SC2 0.2, SC3 0.5, SC4 1.0/ TAX_REV(SC,*) TAX revenue by scenario; LOOP(SC, * Install a TAX rate for the current scenario: TX = TXVALUE(SC); $INCLUDE M1_7S.GEN SOLVE M1_7S USING MCP; * Extract solution value of TAX revenue. Since taxes are * accrued to the consumer, Gov revenue is the difference * between total income and factor incomes: TAX_REV(SC, "NO_Z") = CONS.L - PL.L*100 - PK.L*100; ); * Include activity Z in the model: Z.LO = 0; Z.UP = +INF; LOOP(SC, * Install a TAX rate for the current scenario: TX = TXVALUE(SC); $INCLUDE M1_7S.GEN SOLVE M1_7S USING MCP; * Extract solution value of TAX revenue: TAX_REV(SC, "Z") = CONS.L - PL.L*100 - PK.L*100; ); DISPLAY TAX_REV;