$TITLE: Model M3-4b: Closed TWOxTWO Economy - adds taxes * adds taxes to model M3-1 $ONTEXT Production Sectors Consumers Markets | X Y W | CONS ------------------------------------------------------ PX | 100 -100 | PY | 100 -100 | PW | 200 | -200 PL | -25 -75 | 100 PK | -75 -25 | 100 ------------------------------------------------------ PX and PY will denote the consumer prices of X and Y since MC(1+TX) = PX, the producer price of X (MC) is PX/(1+TX) and similarly for Y $OFFTEXT PARAMETERS TX ad-valorem tax rate for X sector inputs TY ad-valorem tax rate for Y sector inputs LENDOW labor endowment multiplier KENDOW capital endowment multiplier; TX = 0; TY = 0; LENDOW = 1; KENDOW = 1; POSITIVE VARIABLES X activity level for X production Y activity level for Y production W activity level for the "production" of welfare from X Y PX price of good X PY price of good Y PW price of a unit of welfare (real consumer-price index) PL price of labor PK price of capital CONS income of the representative consumer; EQUATIONS PRF_X zero profit for sector X PRF_Y zero profit for sector Y PRF_W zero profit for sector W (Hicksian welfare index) MKT_X supply-demand balance for commodity X MKT_Y supply-demand balance for commodity Y MKT_L supply-demand balance for primary factor L MKT_K supply-demand balance for primary factor L MKT_W supply-demand balance for aggregate demand I_CONS income definition for CONS; * Zero profit inequalities PRF_X.. 100*(PL**0.25 * PK**0.75) * (1+TX) =G= 100*PX; PRF_Y.. 100*(PL**0.75 * PK**0.25) * (1+TY) =G= 100*PY; PRF_W.. 200*(PX**0.50 * PY**0.50) =G= 200*PW; * Market clearance inequalities MKT_X.. 100*X =G= 100 * W * PW / PX; MKT_Y.. 100*Y =G= 100 * W * PW / PY; MKT_W.. 200*W =E= CONS / PW; MKT_L.. 100*LENDOW =G= 25 * X * (PX/(1+TX)) / PL + 75 * Y * (PY/(1+TY)) / PL; MKT_K.. 100*KENDOW =G= 75 * X * (PX/(1+TX)) / PK + 25 * Y * (PY/(1+TY)) / PK; * Income balance equations (don't forget tax revenue) I_CONS.. CONS =E= 100*LENDOW*PL + 100*KENDOW*PK + TX*100*X*(PX/(1+TX)) + TY*100*Y*(PY/(1+TY)); MODEL TWOxTWO /PRF_X.X, PRF_Y.Y, PRF_W.W, MKT_X.PX, MKT_Y.PY, MKT_L.PL,MKT_K.PK, MKT_W.PW,I_CONS.CONS /; * Chose a numeraire: real consumer price index PW.FX = 1; * Set initial values of variables: X.L=1; Y.L=1; W.L=1; PX.L=1; PY.L=1; PK.L=1; PL.L=1; CONS.L=200; SOLVE TWOxTWO USING MCP; * counterfactual 1: 50% tax on X TX = 0.5; SOLVE TWOxTWO USING MCP; * counterfactual 1: 50% tax on X and Y TX = 0.5; TY = 0.5; SOLVE TWOxTWO USING MCP; * counterfactual 2: zero taxes, double the labor endowment TX = 0; TY = 0; LENDOW = 2; SOLVE TWOxTWO USING MCP; * counterfactual 3: double both endowments from the benchmark LENDOW = 2; KENDOW = 2; SOLVE TWOxTWO USING MCP; $ontext We emphasize that the above formulation uses a simplifying trick: the marginal costs of X, Y, and W can be replaced by the producer prices PX/(1+TX), PY/(1+TY), and PW. This should "always" work because when marginal cost and price are not equal in equilbrium, the quantity is zero: marginal cost times quantity = producer price times quantity (MC_X*X = PX*X regardless of X > 0 or X = 0). But below is the model done "properly" with Shepard's lemma $offtext $exit EQUATIONS MKT_X2 MKT_Y2 MKT_L2 MKT_K2 I_CONS2; MKT_X2.. 100*X =G= 100 * W * (PX**0.5 * PY**0.5) / PX; MKT_Y2.. 100*Y =G= 100 * W * (PX**0.5 * PY**0.5) / PY; MKT_L2.. 100*LENDOW =G= 25 * X * PL**0.25 * PK**0.75 / PL + 75 * Y * PL**0.75 * PK**0.25 / PL; MKT_K2.. 100*KENDOW =G= 75 * X * PL**0.25 * PK**0.75 / PK + 25 * Y * PL**0.75 * PK**0.25 / PK; * Income balance equations (don't forget tax revenue) I_CONS2.. CONS =E= 100*LENDOW*PL + 100*KENDOW*PK + TX*100*X*(PL**0.25*PK**0.75) + TY*100*Y*(PL**0.75*PK**0.25); MODEL TWOxTWOa /PRF_X.X, PRF_Y.Y, PRF_W.W, MKT_X2.PX, MKT_Y2.PY, MKT_L2.PL,MKT_K2.PK, MKT_W.PW,I_CONS2.CONS /; TX = 0; TY = 0; LENDOW = 1; KENDOW = 1; SOLVE TWOxTWOa USING MCP; TX = 0.5; SOLVE TWOxTWOa USING MCP; $ontext Exercise: declare a parameter alpha, which is a productivity shift parameter producting X. Higher alpha, more output per input. Code this up. Hint: alpha will appear more than in the program. Change alpha and interpret results. $offtext