$title A General Equilibrium Model for Finland (FINMGE,SEQ=145) $onText GEMFIN VERSION 3.0 The purpose of this model is to investigate the effects of the so called 'Consistent Tax Reform' for Finland in a simple general equilibrium structure. Torma, H, and Rutherford, T F, A General Equilibrium Assessment of Finland's grand Tax Reform. Tech. rep., Department of Economics and Management, University of Jyvaskyla, 1992. "A General Equilibrium Assessment of Finland's Grand Tax Reform" Working paper 15/1992, Department of Economics and Management, University of Jyvaskyla, Finland ISBN 951-680-793-3, ISSBN 0357-5675 September, 1992 General features of the model: 5 income classes represented by 5 households 8 basic consumption goods 1 state government consumption aggregate 1 local government consumption aggregate 2 investment goods (private and government) 19 sectoral commodities 2 primary factors (labor and capital) The foreign sector is represented through non-competing imports and fixed terms of trade for exports. Marginal tax rate schedules are represented by linear approximations to the benchmark rates. Adjustments which produce benchmark average tax rates are made using utility indices. Households differ in terms of both the composition of factor ownership and preferences. When marginal tax rates are modified, the level of government expenditure is maintained at benchmark levels through adjustments in consumption sales taxes. We use multiplicative replacement (benchmark rates are increased proportionally) in this run. Keywords: mixed complementarity problem, general equilibrium model, tax policy, social accounting matrix, GAMS - MPSGE framework $offText Set SC 'scenarios' / BENCH, GTR-S, GTR-L, CTR-S, CTR-L / H 'households' / KVIN1, KVIN2, KVIN3, KVIN4, KVIN5 / ACC 'row and column entries in the social accounting matrix' / MAAT, METS, KAIV, ELINT, TVNK, PUUT PAP, KEM, METV, METUK, MUUTE, SKV TRAK, MVRAK, KAUP, LIIK, RAKLP, AHV YHP, EJT, VAJA, ASUM, KTK, TERV LIIKK, VKK, MTP, LABOR, CAPITAL, EXCHANGE EXPORTS, L-TAX, K-TAX, DUTY, OTH-TAX, LOCINCTAX LOCINCSUB, STAINCTAX, STAINCSUB, STATEHELP, PRVINV, GOVINV LOCCON, STACON, LOCAL, STATE, PRIVATE, ADJUST / C(ACC) 'commodities (sectoral + consumption + investment)' / EJT, VAJA, ASUM, KTK, TERV, LIIKK, VKK MTP, MAAT, METS, KAIV, ELINT, TVNK PUUT, PAP, KEM, METV, METUK, MUUTE SKV, TRAK, MVRAK, KAUP, LIIK, RAKLP AHV, YHP, PRVINV, GOVINV, LOCCON, STACON / G(C) 'final consumption goods' / EJT, VAJA, ASUM, KTK, TERV, LIIKK, VKK, MTP / S(C) 'production sectors' / MAAT, METS, KAIV, ELINT, TVNK, PUUT, PAP, KEM, METV, METUK MUUTE, SKV, TRAK, MVRAK, KAUP, LIIK, RAKLP, AHV, YHP / F(ACC) 'primary factors' / LABOR, CAPITAL / T(ACC) 'taxes' / L-TAX, K-TAX, DUTY, OTH-TAX, LOCINCTAX, LOCINCSUB, STAINCTAX, STAINCSUB / PT(T) 'production taxes' / L-TAX, K-TAX, DUTY, OTH-TAX / HT(T) 'household taxes' / STAINCTAX, LOCINCTAX, STAINCSUB, LOCINCSUB / BMK(SC) / BENCH /; Alias (ROWS, ACC), (COLS, ACC), (G,GG), (S,SS); * TIME-FRAME OF THE ANALYSIS SPECIFIED HERE: Parameter SHORT 'flag for short-run' SHORTRUN(SC) / BENCH 0, GTR-S 1, CTR-S 1, GTR-L 0, CTR-L 0 /; Table ATR(SC,*,H) 'average income tax rates (%) benchmark and counterfactual' KVIN1 KVIN2 KVIN3 KVIN4 KVIN5 BENCH.STA 9.8 10.6 10.3 9.9 11.3 BENCH.LOC 10.6 11.5 11.1 10.8 12.3 GTR-S.STA 9.8 10.6 10.3 9.9 11.3 GTR-S.LOC 10.6 11.5 11.1 10.8 12.3 GTR-L.STA 9.8 10.6 10.3 9.9 11.3 GTR-L.LOC 10.6 11.5 11.1 10.8 12.3 CTR-S.STA 9.8 10.6 10.3 9.9 11.3 CTR-S.LOC 10.6 11.5 11.1 10.8 12.3 CTR-L.STA 9.8 10.6 10.3 9.9 11.3 CTR-L.LOC 10.6 11.5 11.1 10.8 12.3; Table MTR(SC,H) 'marginal tax rates - benchmark and counterfactual' KVIN1 KVIN2 KVIN3 KVIN4 KVIN5 BENCH 33.7 44.4 47.9 49.0 56.9 GTR-S 29.1 40.0 43.0 47.1 51.9 CTR-S 28.7 39.4 42.9 44.0 51.9 GTR-L 29.1 40.0 43.0 47.1 51.9 CTR-L 28.7 39.4 42.9 44.0 51.9; Table KTS(SC,C) 'capital tax scaling factor (representing avoir fiscal)' MAAT METS KAIV ELINT TVNK PUUT PAP KEM BENCH 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 GTR-S 1.00 1.00 0.03 0.17 0.00 0.03 0.25 0.21 CTR-S 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 GTR-L 1.00 1.00 0.03 0.17 0.00 0.03 0.25 0.21 CTR-L 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 + METV METUK MUUTE SKV TRAK MVRAK KAUP LIIK BENCH 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 GTR-S 0.15 0.19 0.00 0.06 0.13 0.20 0.09 0.32 CTR-S 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 GTR-L 0.15 0.19 0.00 0.06 0.13 0.20 0.09 0.32 CTR-L 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00; Table OTS(SC,C) 'output tax scaling factor (exemption)' PRVINV GOVINV SKV TRAK MVRAK KAUP LIIK RAKLP AHV YHP CTR-S -1 -1 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15 CTR-L -1 -1 0.15 0.15 0.15 0.15 0.15 0.15 0.15 0.15; OTS(SC,C) = OTS(SC,C) + 1; Parameter TRANSFER(*,H); Table TRANSF(SC,*,H) 'transfers associated with tax reform (state)' KVIN1 KVIN2 KVIN3 KVIN4 KVIN5 GTR-S.STA -0.325 -0.681 -1.063 -1.489 -1.963 GTR-S.LOC -0.004 -0.017 -0.072 -0.127 -0.158 GTR-L.STA -0.325 -0.681 -1.063 -1.489 -1.963 GTR-L.LOC -0.004 -0.017 -0.072 -0.127 -0.158 CTR-S.STA 0.325 .681 1.063 1.489 1.963 CTR-S.LOC CTR-L.STA 0.250 0.500 0.750 0.750 2.500 CTR-L.LOC ; Table ESUBP(*,*) 'elasticities of substitution in production' ESUBM ETRNX ESUBKL MAAT 2.0 2.0 0.581 METS 2.0 2.0 1.126 KAIV 2.0 2.0 0.741 ELINT 2.0 2.0 0.756 TVNK 2.0 2.0 0.994 PUUT 2.0 2.0 0.769 PAP 2.0 2.0 0.769 KEM 2.0 2.0 1.101 METV 2.0 2.0 1.115 METUK 2.0 2.0 1.040 MUUTE 2.0 2.0 0.916 SKV 2.0 1.5 0.738 TRAK 2.0 1.5 0.906 MVRAK 2.0 1.5 0.611 KAUP 2.0 1.5 0.757 LIIK 2.0 1.5 0.905 RAKLP 2.0 1.5 0.338 AHV 2.0 1.5 0.971 YHP 2.0 1.5 0.348 EJT 2.0 1.0 VAJA 2.0 1.0 ASUM 2.0 1.0 KTK 2.0 1.0 TERV 2.0 1.0 LIIKK 2.0 1.0 VKK 2.0 1.0 MTP 2.0 1.0 ; * ESUBM: Armington elasticity : import-domestic. * ETRNX: Domestic-export transformation elasticity, * ESUBKL: Primary factor substitution elasticity. Table ESUBC(*,*) 'elasticities in consumption' ESUBS ESUBL SIGMA KVIN1 1.18 1 0.3 KVIN2 1.18 1 0.3 KVIN3 1.18 1 0.3 KVIN4 1.18 1 0.3 KVIN5 1.19 1 0.3; * ESUBS Total consumption-savings elasticity. * ESUBL Consumption-leisure elasticity. * SIGMA Intra-commodity elasticity. Table SAM(ROWS,COLS) 'benchmark sectoral accounts' MAAT METS KAIV ELINT TVNK PUUT PAP KEM MAAT -1.305 -0.081 -16.026 -0.030 -0.004 METS -0.153 -0.053 -0.036 -4.561 -4.557 -0.001 KAIV -0.116 -0.061 -0.018 -0.001 -0.113 -0.251 ELINT -3.289 -0.003 -12.782 -0.159 -0.009 -0.050 -0.147 TVNK -0.038 -0.004 -0.023 -2.514 -0.010 -0.057 -0.064 PUUT -0.004 -0.015 -0.005 -1.476 -1.208 -0.050 PAP -0.004 -0.006 -0.011 -0.723 -0.094 -0.068 -10.531 -0.507 KEM -1.922 -0.212 -0.085 -0.876 -0.281 -0.407 -1.571 -4.079 METV -0.015 -0.073 -0.034 -0.078 -0.105 -0.077 METUK -0.451 -0.082 -0.075 -0.345 -0.067 -0.374 -0.995 -0.453 MUUTE -0.093 -0.007 -0.038 -0.370 -0.143 -0.189 -0.221 -0.358 SKV -0.299 -0.003 -0.140 -0.471 -0.137 -0.437 -4.496 -1.027 TRAK -0.260 -0.013 -0.008 -0.062 -0.024 -0.028 -0.083 -0.067 MVRAK -0.017 -0.046 -0.007 -0.002 -0.033 -0.014 KAUP -1.306 -0.112 -0.055 -0.674 -0.129 -0.106 -0.317 -0.504 LIIK -0.228 -0.021 -0.127 -1.205 -0.106 -0.680 -1.380 -0.716 RAKLP -0.243 -0.019 -0.207 -1.167 -0.288 -0.343 -0.625 -0.798 AHV YHP -0.246 -0.101 -0.023 -0.157 -0.043 -0.061 -0.172 -0.129 LABOR -1.377 -2.237 -0.557 -4.132 -3.036 -2.317 -4.043 -3.117 CAPITAL -13.292 -8.278 -0.512 -3.199 -1.473 -0.532 -4.493 -4.388 EXCHANGE -0.838 -0.164 -0.219 -4.044 -2.597 -0.423 -2.472 -17.434 L-TAX -0.283 -0.453 -0.128 -0.956 -0.626 -0.514 -0.967 -0.759 K-TAX -0.012 -0.256 -0.083 -0.119 -0.223 -0.141 DUTY -0.014 -0.002 -0.006 -0.127 -0.037 -0.002 -0.008 -0.023 OTH-TAX 0.629 -0.042 -0.037 5.429 -0.019 -0.113 -0.445 -0.404 + METV METUK MUUTE SKV TRAK MVRAK KAUP LIIK MAAT -0.380 -0.023 METS -0.003 -0.024 -0.080 -0.173 -0.022 -0.029 -0.002 KAIV -0.762 -0.011 -0.226 -0.518 -0.014 -0.033 ELINT -0.005 -0.025 -0.011 -0.027 -0.002 -1.962 -0.099 TVNK -0.014 -0.097 -0.151 -0.015 -0.060 -0.028 -0.036 PUUT -0.026 -0.238 -0.584 -0.361 -2.903 -0.130 -0.008 PAP -0.017 -0.184 -1.819 -0.035 -0.196 -0.015 -0.142 -0.070 KEM -0.351 -1.127 -0.703 -1.012 -1.427 -1.175 -0.528 -2.224 METV -6.955 -4.440 -0.329 -0.042 -0.408 -0.162 -0.003 METUK -0.193 -8.368 -0.754 -0.368 -3.649 -1.172 -0.189 -1.321 MUUTE -0.144 -0.507 -3.509 -0.197 -4.210 -0.394 -0.709 -0.383 SKV -0.609 -0.664 -0.330 -11.614 -0.121 -0.052 -0.871 -0.309 TRAK -0.059 -0.207 -0.077 -0.034 -0.051 -0.074 -0.233 -0.244 MVRAK -0.012 -0.039 -0.001 -0.127 -0.004 -0.986 KAUP -0.190 -0.861 -0.291 -0.611 -2.681 -0.428 -1.651 -1.030 LIIK -0.381 -0.618 -1.766 -0.619 -1.737 -1.657 -4.920 -1.367 RAKLP -0.356 -2.318 -1.312 -0.724 -2.040 -0.562 -7.579 -1.510 AHV YHP -0.051 -0.293 -0.409 -0.135 -0.109 -0.033 -0.658 -1.189 LABOR -1.600 -13.603 -5.987 -2.440 -10.762 -3.338 -21.195 -10.337 CAPITAL -0.845 -7.651 -3.857 -5.477 -3.667 -1.557 -6.825 -10.445 EXCHANGE -2.878 -9.242 -1.743 -3.266 -2.873 -0.909 -1.734 -4.178 L-TAX -0.483 -3.029 -1.270 -0.636 -2.462 -0.787 -4.659 -2.276 K-TAX -0.063 -0.417 -0.175 -0.237 -0.128 -0.012 -2.046 -0.072 DUTY -0.006 -0.106 -0.020 -0.003 -0.094 -0.022 -0.016 -0.035 OTH-TAX -0.149 -0.408 0.174 -1.424 -3.316 -0.731 -2.616 -1.068 + RAKLP AHV YHP MAAT METS -0.003 -0.004 KAIV ELINT -0.018 -0.008 TVNK -0.006 -0.029 PUUT -0.012 -0.027 PAP -0.189 -0.015 -0.034 KEM -1.410 -0.903 -0.292 METV -0.003 METUK -0.195 -0.006 -0.236 MUUTE -2.371 -0.018 -0.601 SKV -1.324 -2.067 -0.096 TRAK -0.358 -2.081 -0.068 MVRAK KAUP -1.591 -0.524 -0.488 LIIK -2.144 -0.168 -0.454 RAKLP -12.759 -0.670 -1.786 AHV YHP -2.138 -0.860 -0.379 LABOR -11.768 -5.142 CAPITAL -7.430 -19.158 -5.198 EXCHANGE -1.494 -0.441 -1.448 L-TAX -2.642 -1.059 DUTY -0.026 -0.031 OTH-TAX -0.620 -0.330 -0.209 + EJT VAJA ASUM KTK TERV LIIKK VKK MTP MAAT -2.941 -0.767 -0.019 METS -0.301 -0.590 -0.001 KAIV ELINT -17.880 -0.075 -0.370 TVNK -2.300 -0.279 -0.001 -0.076 -0.194 PUUT -0.042 -0.013 PAP -0.110 -0.288 KEM -0.119 -0.600 -0.596 -0.734 -1.799 -0.266 -0.413 METV METUK -0.844 -0.103 -1.059 -0.727 -0.083 MUUTE -1.393 -0.003 -0.031 -2.804 -0.385 SKV -3.208 -0.118 TRAK -0.002 -0.066 MVRAK -0.096 KAUP -8.183 -3.128 -0.906 -2.837 -1.473 -5.995 -2.586 -12.970 LIIK -8.603 -1.080 RAKLP -0.523 -0.430 -1.004 -4.005 AHV -27.185 -0.184 YHP -0.079 -0.974 -2.383 -3.188 -4.594 -0.985 LABOR -0.994 -0.191 -1.102 -0.258 -0.174 -0.742 -0.403 -0.715 CAPITAL -0.097 -0.019 -0.108 -0.025 -0.017 -0.072 -0.039 -0.070 EXCHANGE -1.713 -2.570 -0.245 -2.652 -0.542 -3.340 -2.777 -0.873 L-TAX -0.221 -0.043 -0.245 -0.058 -0.039 -0.166 -0.090 -0.160 DUTY -0.080 -0.120 -0.011 -0.123 -0.025 -0.156 -0.129 -0.041 OTH-TAX -14.081 -1.587 -0.123 -1.685 -0.492 -6.164 -2.614 -1.158 + EXPORTS PRVINV GOVINV MAAT -2.794 METS -0.261 -0.001 KAIV -0.299 ELINT -4.055 TVNK -5.170 -0.080 -0.005 PUUT -5.756 -0.003 -0.001 PAP -23.529 KEM -9.227 -0.031 -0.001 METV -5.697 METUK -24.832 -5.472 -0.266 MUUTE -2.693 -0.141 -0.008 SKV -0.115 TRAK -0.012 -33.166 -5.396 MVRAK -5.904 -3.489 KAUP -2.347 -3.310 -0.190 LIIK -6.490 -0.637 -0.035 RAKLP -2.879 -0.816 -0.044 YHP -0.309 EXCHANGE 93.428 -18.805 -0.917 DUTY -0.216 -0.012 OTH-TAX 3.037 -4.447 -0.257 + LOCCON STACON LOCAL STATE MAAT -0.044 METS -0.011 KAIV -0.000 -0.011 ELINT -1.089 -0.174 TVNK -0.049 -0.175 PUUT -0.114 -0.039 PAP -0.238 -0.111 KEM -1.774 -0.569 METV -0.005 -0.002 METUK -0.164 -0.391 MUUTE -0.004 -0.638 SKV -1.056 -0.356 TRAK -0.440 -0.127 MVRAK -1.224 -0.951 KAUP -1.524 -0.479 LIIK -1.304 -0.210 RAKLP -0.963 -2.070 AHV YHP -0.670 LABOR -25.770 -11.161 CAPITAL -2.369 -1.177 EXCHANGE -1.266 -1.539 L-TAX -7.063 -2.539 34.613 K-TAX 3.984 DUTY -0.034 -0.015 1.540 OTH-TAX -1.372 -0.394 37.041 STAINCTAX 27.945 LOCINCTAX 30.302 STAINCSUB -40.544 LOCINCSUB -8.477 STATEHELP 31.454 -31.454 LOCCON -48.940 STACON -22.152 GOVINV -4.339 -6.282 ADJUST -4.691 + PRIVATE ADJUST MAAT -0.732 METS -1.066 KAIV 0.107 ELINT -0.075 TVNK -0.450 PUUT 0.165 PAP -0.219 KEM 0.647 METV 2.276 METUK -1.219 MUUTE -2.649 SKV -0.082 TRAK 0.157 MVRAK -0.313 KAUP 0.503 LIIK -0.563 RAKLP -0.455 AHV 0.125 YHP 2.776 EJT -46.491 VAJA -10.156 ASUM -34.330 KTK -12.399 TERV -6.416 LIIKK -32.503 VKK -17.947 MTP -24.103 LABOR 150.138 -1.640 CAPITAL 111.580 0.690 EXCHANGE 2.658 STAINCTAX -27.945 LOCINCTAX -30.302 STAINCSUB 40.544 LOCINCSUB 8.477 PRVINV -73.029 ADJUST 4.882 -0.191; Table DEMAND(*,H) 'income and expenditure data' KVIN1 KVIN2 KVIN3 KVIN4 KVIN5 EJT -4.031 -5.926 -8.463 -10.989 -17.082 VAJA -0.880 -1.295 -1.849 -2.401 -3.731 ASUM -2.976 -4.376 -6.250 -8.114 -12.614 KTK -1.075 -1.580 -2.257 -2.931 -4.556 TERV -0.556 -0.818 -1.168 -1.517 -2.357 LIIKK -2.818 -4.143 -5.917 -7.683 -11.942 VKK -1.556 -2.288 -3.267 -4.242 -6.594 MTP -2.090 -3.072 -4.388 -5.697 -8.856 LABOR 3.878 14.338 25.055 40.818 66.049 CAPITAL 5.484 11.028 17.485 25.291 52.292 PRVINV -6.331 -9.308 -13.294 -17.261 -26.835 LEISURE -8.947 -22.711 -37.056 -58.411 -93.261 STAINCTAX -0.918 -2.694 -4.369 -6.564 -13.400 LOCINCTAX -0.996 -2.921 -4.738 -7.117 -14.530 STAINCSUB 8.540 8.239 9.067 7.110 7.588 LOCINCSUB 1.786 1.723 1.896 1.487 1.585; * DETERMINE SECTORAL LEVELS: Parameter YB(C) 'supply levels'; SAM(ROWS,"ADJUST") = 0; SAM("ADJUST",COLS) = 0; YB(C) = -sum(ROWS, SAM(ROWS,C)); SAM(ROWS,"ADJUST") = -sum(COLS, SAM(ROWS,COLS)); SAM(C,"ADJUST") = SAM(C,"ADJUST") - YB(C); SAM("ADJUST",COLS) = -sum(ROWS, SAM(ROWS,COLS)); SAM("ADJUST",C) = SAM("ADJUST",C) - YB(C); display SAM; * YB(C) = -sum(COLS, SAM(C,COLS)); * CHECK CONSISTENCY OF SOCIAL ACCOUNT DATA: Parameter ROWSUM(ROWS) 'check sums of rows in SAM' COLSUM(COLS) 'check sums of columns in SAM'; ROWSUM(ROWS) = sum(COLS, SAM(ROWS,COLS)); COLSUM(COLS) = sum(ROWS, SAM(ROWS,COLS)); ROWSUM(C) = ROWSUM(C) + YB(C); COLSUM(C) = COLSUM(C) + YB(C); abort$(smax(ROWS, abs(ROWSUM(ROWS))) > 1.E-4) " ROWS IN SAM DO NOT BALANCE", ROWSUM, COLSUM; abort$(smax(COLS, abs(COLSUM(COLS))) > 1.E-4) " COLUMNS IN SAM DO NOT BALANCE", ROWSUM, COLSUM; * CHECK JOINT CONSISTENCY OF SAM AND DEMAND DATA: Parameter ENDOWCHK(F) 'consistency check of household endowments'; ENDOWCHK(F) = sum(H, DEMAND(F,H)) - SAM(F,"PRIVATE"); abort$(smax(F, abs(ENDOWCHK(F))) > 1.E-4) "ENDOWMENTS ARE INCONSISTENT:", ENDOWCHK; Parameter TAXCHK(HT) 'consistency of household taxes'; TAXCHK(HT) = sum(H, DEMAND(HT,H)) - SAM(HT,"PRIVATE"); abort$(smax(HT, abs(TAXCHK(HT))) > 1.E-4) "INCOME TAX/SUBSIDY DATA INCONSISTENT WITH SAM:", TAXCHK; Parameter CONCHK(G) 'consistency check of household demand'; CONCHK(G) = sum(H, -DEMAND(G,H)) + SAM(G,"PRIVATE"); abort$(smax(G, abs(CONCHK(G))) > 1.E-4) "CONSUMPTION DATA INCONSISTENT WITH SAM:", CONCHK; Scalar INVCHK 'consistency check of household investment'; INVCHK = sum(H, -DEMAND("PRVINV",H)) + SAM("PRVINV","PRIVATE"); abort$(INVCHK > 1.E-4) "INVESTMENT DATA INCONSISTENT WITH SAM:", INVCHK; * CALIBRATE TO SPECIFIED AVERAGE AND MARGINAL TAX RATES: Parameter TAVE(*,H) 'average income tax rate' TMRG(H) 'marginal income tax rate' TBMK(H) 'benchmark marginal tax rate' WALADJ(H) 'adjustment to balance income-expenditure' WB(H) 'benchmark welfare'; * PROVIDE A COMPARISON WITH THE BENCHMARK DATA Parameter INCTAX(*,H) 'social accounting matrix versus benchmark (%)'; INCTAX("SAM",H) = -100*(DEMAND("STAINCTAX",H) + DEMAND("LOCINCTAX",H))/sum(F, DEMAND(F,H)); INCTAX("BENCH",H) = ATR("BENCH","STA",H) + ATR("BENCH","LOC",H); TAVE("STATE",H) = 0.01*ATR("BENCH","STA",H); TAVE("LOCAL",H) = 0.01*ATR("BENCH","LOC",H); TMRG(H) = 0.01*MTR("BENCH",H); TBMK(H) = TMRG(H); DEMAND("STAINCTAX",H) = -TAVE("STATE",H)*sum(F, DEMAND(F,H)); DEMAND("LOCINCTAX",H) = -TAVE("LOCAL",H)*sum(F, DEMAND(F,H)); WB(H) = -(DEMAND("PRVINV",H) + sum(G, DEMAND(G,H)) + DEMAND("LEISURE",H)*(1 - TBMK(H))); WALADJ(H) = DEMAND("PRVINV",H) + sum(G, DEMAND(G,H)) + sum(HT, DEMAND(HT,H)) + sum(F, DEMAND(F,H)); INCTAX("WALADJ%",H) = 100*WALADJ(H)/sum(F, DEMAND(F,H)); display INCTAX, WALADJ; * MOVE DATA INTO WORKING PARAMETERS Parameter IO(S,C) 'intermediate inputsintermediate inputs' VE(C) 'exports' TE(C) 'export tax rate' VM(C) 'imports' TM(C) 'import tax rate' DL(C) 'labor inptus' TL(C) 'labor tax rate' DK(C) 'capital inputs' TK(C) 'capital tax rate' D(C) 'domestic supply' E(C) 'exports' M(C) 'imports including duty' TX(C) 'excise tax' ESUBM(C) 'import aggregation elasticity' ETRNX(C) 'export transformation elasticity' ESUBKL(C) 'capital-labor elasticty' ESUBS(H) 'current consumption-savings elasticity' ESUBL(H) 'leisure-consumption elasticity' SIGMA(H) 'intra-commodity elasticty' DMFBAR(F,C) 'benchmark factor demand'; IO(S,C) = -SAM(S,C); E(S) = -SAM(S,"EXPORTS"); TE(S) = -SAM("OTH-TAX","EXPORTS")/SAM("EXCHANGE","EXPORTS"); VE(S) = E(S)/(1 - TE(S)); VM(C) = -SAM("EXCHANGE",C); TM(C)$VM(C) = -SAM("DUTY",C)/VM(C); DL(C) = -SAM("LABOR",C); TL(C)$DL(C) = -SAM("L-TAX",C) / DL(C); DK(C) = -SAM("CAPITAL",C); TK(C)$DK(C) = -SAM("K-TAX",C)/DK(C); D(C) = YB(C) + SAM("EXCHANGE",C) + SAM("DUTY",C); M(C) = SAM("EXCHANGE",C) + SAM("DUTY",C); TX(C)$YB(C) = -SAM("OTH-TAX",C)/(D(C) - E(C)); Parameter PRDTAX(*,*) 'benchmark production tax rates (%)'; PRDTAX(S,"TE") = 100*TE(S); PRDTAX(S,"TM") = 100*TM(S); PRDTAX(S,"TL") = 100*TL(S); PRDTAX(S,"TK") = 100*TK(S); PRDTAX(S,"TX") = 100*TX(S); display PRDTAX; * ELASTICITIES: ESUBM(C) = ESUBP(C,"ESUBM"); ETRNX(S) = ESUBP(S,"ETRNX"); ESUBKL(C) = ESUBP(C,"ESUBKL"); ESUBS(H) = ESUBC(H,"ESUBS"); ESUBL(H) = ESUBC(H,"ESUBL"); SIGMA(H) = ESUBC(H,"SIGMA"); $onText $MODEL:SUOMI $SECTORS: W(H) ! WELFARE INDICES Y(C) ! SECTORAL PRODUCTION: A(C) ! ARMINGTON AGGREGATION. CC(H) ! CURRENT CONSUMPTION: K$SHORT ! CAPITAL SUPPLY (SHORT-RUN MODEL) $COMMODITIES: PFX ! FOREIGN EXCHANGE PF(F) ! FACTORS OF PRODUCTION. PS(C)$DK(C)$SHORT ! SECTOR-SPECIFIC CAPITAL PW(H) ! WELFARE PRICE INDEX PY(C) ! SECTORAL GOODS PRICES (DOMESTIC OUTPUT) PA(C) ! ARMINGTON IMPORT PRICE AGGREGATE PC(H) ! CURRENT CONSUMPTION $CONSUMERS: GOVT ! GOVERNMENT (STATE AND LOCAL) HH(H) ! HOUSEHOLDS $AUXILIARY: TAU ! EQUAL YIELD VARIABLE (MULTIPLIER ON OUTPUT TAXES) * MARKET LABOR, CAPITAL, FOREIGN EXCHANGE AND GOVERNMENT * CONSUMPTION AGGREGATE: $REPORT: V:DMF(F,C)$DMFBAR(F,C) I:PF(F) PROD:Y(C) V:SY(C)$(D(C) - E(C)) O:PY(C) PROD:Y(C) V:EXP(C)$VE(C) O:PFX PROD:Y(C) V:IMP(C)$VM(C) I:PFX PROD:A(C) V:CL(H)$(-DEMAND("LEISURE",H)) I:PF("LABOR") PROD:W(H) $PROD:A(C) s:ESUBM(C) O:PA(C) Q:(YB(C) - E(C)) I:PFX Q:VM(C) P:(1 + TM(C)) A:GOVT T:TM(C) I:PY(C) Q:(D(C) - E(C)) * CURRENT CONSUMPTION: $PROD:CC(H) s:SIGMA(H) O:PC(H) Q:(-sum(G, DEMAND(G,H))) I:PA(G) Q:(-DEMAND(G,H)) * PRODUCTION: $PROD:Y(C) t:ETRNX(C) a:ESUBKL(C) O:PY(C) Q:(D(C)-E(C)) P:(1 - TX(C)) A:GOVT N:TAU M:(max(OTS(SC,C)*TX(C), 0)) T:(min(OTS(SC,C)*TX(C), 0)) O:PFX Q:VE(C) P:(1 - TE(C)) T:TE(C) I:PA(SS) Q:IO(SS,C) I:PF("LABOR") Q:DL(C) P:(1 + TL(C)) A:GOVT T:TL(C) I:PF("CAPITAL")$(NOT SHORT) Q:DK(C) P:(1 + TK(C)) A:GOVT T:(KTS(SC,C)*TK(C)) I:PS(C)$SHORT Q:DK(C) P:(1 + TK(C)) A:GOVT T:(KTS(SC,C)*TK(C)) $PROD:K$SHORT I:PF("CAPITAL") Q:(sum(C$DK(C), DK(C))) O:PS(C) Q:DK(C) $PROD:W(H) s:ESUBS(H) a:ESUBL(H) O:PW(H) Q:WB(H) I:PF("LABOR") Q:(-DEMAND("LEISURE",H)) P:(1-TBMK(H)) a: A:GOVT T:(-TMRG(H)) I:PC(H) Q:(-sum(G, DEMAND(G,H))) a: I:PA("PRVINV") Q:(-DEMAND("PRVINV",H)) * FEDERAL GOVERNMENT: $DEMAND:GOVT D:PA("STACON") Q:(-SAM("STACON","STATE")) * GOVERNMENT INVESTMENT (EXOGENOUS): E:PA("GOVINV") Q:SAM("GOVINV","STATE") * TERMS FROM THE SAM ADJUSTMENT VECTOR: E:PA(C) Q:SAM(C,"ADJUST") E:PF(F) Q:SAM(F,"ADJUST") E:PFX Q:SAM("EXCHANGE","ADJUST") * INCOME SUBSIDY TRANSFER: E:PW(H) Q:(-DEMAND("STAINCSUB",H)) * OTHER TRANSFERS: E:PW(H) Q:TRANSFER("STA",H) * WALRAS ADJUSTMENT: E:PW(H) Q:WALADJ(H) * LEISURE TAX INTERCEPT: E:PF("LABOR") Q:(sum(H, -TMRG(H)*DEMAND("LEISURE",H))) * TAXES AT AVERAGE RATES: E:PF(F) Q:(sum(H, TAVE("STATE",H)*DEMAND(F,H))) * LOCAL GOVERNMENT DEMAND (FIXED): E:PA("LOCCON") Q:(SAM("LOCCON","LOCAL")) * LOCAL GOVERNMENT INVESTMENT (EXOGENOUS): E:PA("GOVINV") Q:SAM("GOVINV","LOCAL") * LOCAL INCOME SUBSIDY TRANSFERS: E:PW(H) Q:(-DEMAND("LOCINCSUB",H)) * OTHER TRANSFERS: E:PW(H) Q:TRANSFER("LOC",H) * INCOME TAXES (AVERAGE RATES): E:PF(F) Q:(sum(H, TAVE("LOCAL",H)*DEMAND(F,H))) * HOUSEHOLD DEMAND: $DEMAND:HH(H) D:PW(H) Q:WB(H) * FACTOR SUPPLIES (NET AVERAGE TAX PAYMENT): E:PF(F) Q:DEMAND(F,H) * INCOME TAXES AT AVERAGE RATES: E:PF(F) Q:(-(TAVE("STATE",H) + TAVE("LOCAL",H))*DEMAND(F,H)) * LEISURE SUPPLY: E:PF("LABOR") Q:(-(1 - TMRG(H))*DEMAND("LEISURE",H)) * GOVERNMENT TRANSFER: E:PW(H) Q:DEMAND("STAINCSUB",H) E:PW(H) Q:DEMAND("LOCINCSUB",H) * OTHER TRANSFERS: E:PW(H) Q:(-TRANSFER("STA",H)) E:PW(H) Q:(-TRANSFER("LOC",H)) * WALRAS ADJUSTMENT: E:PW(H) Q:(-WALADJ(H)) * EQUAL YIELD CONSTRAINTS: $CONSTRAINT:TAU A("STACON") =g= 1; * Z:A("STACON") * K:-1 $offText * READ THE MPS/GE "HEADER" FILE. THIS IS GENERATED BY * THE PREPROCESSOR, MPSPP: $sysInclude mpsgeset SUOMI TAU.l = 1; Parameter SUMMARY(*,SC) 'summary statistics' DF(F,C,SC) 'factor demand - % change' DOM(C,SC) 'domestic output - % change' EXPORT(C,SC) 'exports - % change' IMPORT(C,SC) 'imports - % change' WELFARE(H,SC) 'welfare - % change' LSUPPLY(H,SC) 'labor supply - % change'; * SET THE ITERATION LIMIT TO 0 FOR THE FIRST SCENARIO * IN ORDER TO CHECK REPLICATION: SUOMI.iterLim = 0; * ESTABLISH A NUMERAIRE PRICE INDEX: PFX.fx = 1; loop(SC, * SET FLAG FOR SHORT-RUN CAPITAL STOCK: SHORT = 1$SHORTRUN(SC); * SET BENCHMARK FACTOR DEMANDS: DMFBAR("LABOR",C) = DL(C); DMFBAR("CAPITAL",C) = DK(C)$(not SHORT); * READ IN AVERAGE AND MARGINAL TAX RATES. TAVE("STATE",H) = 0.01*ATR(SC,"STA",H); TAVE("LOCAL",H) = 0.01*ATR(SC,"LOC",H); TMRG(H) = 0.01*MTR(SC,H); TRANSFER("LOC",H) = TRANSF(SC,"LOC",H); TRANSFER("STA",H) = TRANSF(SC,"STA",H); * SOLVE THE SCENARIO: $ include SUOMI.GEN solve SUOMI using mcp; SUOMI.iterLim = 1000; SUMMARY("CPU",SC) = SUOMI.resUsd; SUMMARY("DEV",SC) = SUOMI.objVal; SUMMARY("ITERS",SC) = SUOMI.iterUsd; DF(F,C,SC) = DMF.l(F,C); DOM(C,SC) = SY.l(C); EXPORT(C,SC) = EXP.l(C); IMPORT(C,SC) = IMP.l(C); WELFARE(H,SC) = 100*(W.l(H) - 1); LSUPPLY(H,SC) = -DEMAND("LEISURE",H) + CL.l(H); ); * CONVERT REPORT VARIABLES INTO PERCENTAGE CHANGES: DF(F,C,SC)$DF(F,C,"BENCH") = 100*(DF(F,C,SC) - DF(F,C,"BENCH"))/DF(F,C,"BENCH"); DF("CAPITAL",C,SC)$SHORTRUN(SC) = 0; DOM(C,SC)$DOM(C,"BENCH") = 100*(DOM(C,SC) - DOM(C,"BENCH"))/DOM(C,"BENCH"); EXPORT(C,SC)$EXPORT(C,"BENCH") = 100*(EXPORT(C,SC) - EXPORT(C,"BENCH"))/EXPORT(C,"BENCH"); IMPORT(C,SC)$IMPORT(C,"BENCH") = 100*(IMPORT(C,SC) - IMPORT(C,"BENCH"))/IMPORT(C,"BENCH"); LSUPPLY(H,SC)$LSUPPLY(H,"BENCH") = 100*(LSUPPLY(H,SC) - LSUPPLY(H,"BENCH"))/LSUPPLY(H,"BENCH"); * SIFT OUT THE SMALL NUMBERS: DF(F,C,SC)$(abs(DF(F,C,SC)) < 0.1) = 0; DOM(C,SC)$(abs(DOM(C,SC)) < 0.1) = 0; EXPORT(C,SC)$(abs(EXPORT(C,SC)) < 0.1) = 0; IMPORT(C,SC)$(abs(IMPORT(C,SC)) < 0.1) = 0; LSUPPLY(H,SC)$(abs(LSUPPLY(H,SC)) < 0.1) = 0; WELFARE(H,SC)$(abs(WELFARE(H,SC)) < 0.1) = 0; option WELFARE:1, DF:1, DOM:1, EXPORT:1, IMPORT:1, LSUPPLY:1; display SUMMARY, WELFARE, DF, DOM, EXPORT, IMPORT, LSUPPLY;