*I appreciate data collaboration of Graham Siddorn in the Inldand Revenue and supervision by Professor John Whalley *and suggestions from Carlo Perroni in process of construction of this model. $title 16 sector model of uk Sept98 $include ptax.gms SET HH Households and labor categories / H1 Household 1 / FD final demand /Cons GGFC GDFCF Stocks Exports/; ALIAS (HH,lc); TABLE IOF(K,KK) Input-output flows 1995 Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Agric 1873 0 13 26 9 5 10878 403 0 5 463 47 13 0 134 0 Extra 0 2438 0 4702 3 0 0 0 3620 0 0 0 0 0 0 0 Minin 22 0 358 233 901 29 46 133 1803 430 113 19 9 0 62 0 Chemi 1413 7 89 5184 607 652 678 2582 1003 626 1885 2475 1304 0 2755 22 Metal 127 151 204 1232 7185 6101 1799 5021 43 7150 507 397 0 0 117 0 Engin 0 540 301 660 1217 6186 496 2443 650 750 827 1786 1019 0 1573 31 food 2808 52 24 378 79 115 6515 344 62 53 6700 681 1098 0 1837 4 othma 618 80 134 1849 1889 3031 2852 16140 482 4169 6766 4152 8406 0 3466 267 Power 290 0 167 1378 1649 1231 962 2055 12740 279 1245 891 1229 0 730 24 Const 185 0 125 128 33 59 0 34 0 21332 625 156 2035 0 170 4013 Distr 1210 279 228 2491 2662 4073 1678 4644 650 1448 4418 2861 2422 0 1297 0 Trans 254 677 326 1222 1992 1375 1555 3520 163 856 14517 15214 16635 0 3125 193 Finan 1976 670 472 4080 2786 6202 4240 9220 1886 10370 22545 12466 50647 0 13484 15191 Pubad 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Educa 374 1 41 515 250 573 491 2585 177 236 990 1353 3976 0 7648 66 House 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; TABLE IOFM(K,KK) Input-output import matrix Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Agric 493 0 0 2 0 0 2465 448 0 0 571 10 0 0 0 0 Extra 0 147 0 1749 0 0 0 0 1629 0 0 0 0 0 0 0 Minin 0 0 79 454 632 36 6 62 315 640 0 0 0 0 0 0 Chemi 596 5 143 5874 723 727 639 4772 510 111 191 902 50 0 261 0 Metal 42 184 65 341 5364 2150 426 1885 0 1776 72 0 0 0 0 0 Engin 58 164 62 68 283 12397 27 2346 855 758 50 881 167 0 169 0 food 248 0 0 246 0 0 3892 36 0 0 784 46 0 0 0 0 othma 8 0 84 517 521 399 641 19306 18 1887 1308 703 123 0 496 0 Power 0 0 0 4 4 1 2 4 449 0 0 0 0 0 0 0 Const 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Distr 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Trans 0 464 11 7 13 0 19 7 0 3 505 2592 667 0 75 1 Finan 5 1 4 19 13 26 18 0 3 7 18 19 2863 0 503 19 Pubad 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Educa 0 0 0 1 2 7 2 49 1 0 3 35 78 0 1413 0 House 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; Table asset(j,K) categories of capital asset in the year 1995 Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Build 15672 50 1125 11284 13381 15646 13528 24558 54403 3955 76826 50835 107812 49959 91925 0 pmlon 0 2968 0 6703 2621 744 918 6088 42115 283 6381 21945 968 1778 0 0 pmsho 2993 20032 1867 17351 18766 18647 13721 34374 2399 2549 23430 13894 31251 7519 10204 0 vehic 1122 283 71 490 699 1062 662 1568 501 1715 6448 15425 18478 1055 946 0 dwell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 709731 ; TABLE ZZ(*,K) MISCELLANEOUS PARAMETERS AND INITIAL DATA Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Kstock 19788 23333 3063 35827 35466 36099 28829 66588 99419 8502 113086 102099 158508 60311 103075 709731 XD 21332 17704 5493 60422 49477 73626 65569 125952 43198 84377 163387 96287 211047 63843 112717 52199 INTD 11151 4896 2481 24078 21262 29631 32190 49123 23279 47704 61601 42498 88793 0 36399 19810 INTDM 1448 965 447 9281 7554 15744 8137 28916 3780 5181 3501 5189 3948 0 2917 19 TFIND 5691 0 335 16179 8918 5367 33615 30469 18267 55482 115545 22500 41991 63843 88987 52199 TMFD 1508 0 36 6591 235 34729 9948 34797 0 0 0 4376 629 441 1627 440 EXPORT 1771 6941 1002 22959 10525 49782 11201 41183 62 0 17482 12163 12820 0 4455 0 REEXPT 41 0 2008 94 0 154 15 94 0 0 0 0 0 0 0 0 lb 7168 1477 1887 10152 15478 19227 10452 37124 5708 30785 64404 35945 68821 60316 65577 0 ka 3819 10360 706 8116 5062 8798 5925 10358 8894 749 24872 14736 45357 3527 5653 32499 p0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ; Table DF(*, k) domestic sales to final demand Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Cons 5652 0 289 12728 264 0 33045 16348 16902 3602 113651 19203 25276 0 43321 52199 GGFC 39 0 45 3192 526 1606 421 3817 1365 4542 1894 2582 8449 63843 45666 0 GDFCF 0 0 0 0 7336 3416 0 9118 0 47039 0 714 8265 0 0 0 Stocks 0 0 0 259 792 345 149 1185 0 298 0 0 0 0 0 0 Exports 1771 6941 1002 22959 10525 49782 11201 41183 62 0 17482 12163 12820 0 4455 0 ; Table MF(*, k) imports to final demand Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House Cons 1508 0 31 5764 0 6134 9638 25165 0 0 0 4033 0 0 995 440 GGFC 0 0 4 697 0 3467 296 3187 0 0 0 343 629 441 632 0 GDFCF 0 0 0 0 0 24967 0 5444 0 0 0 0 0 0 0 0 Stocks 0 0 0 130 235 160 14 1002 0 0 0 0 0 0 0 0 Exports 41 0 2008 94 0 154 15 94 0 0 0 0 0 0 0 0 ; Table VATT(*, k) value added tax on final demand Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House vatc 113 0 40 2839 266 1999 7277 10928 964 479 5046 1928 250 0 3345 0 vatg 3 0 16 324 250 1577 25 1351 301 1264 0 448 998 0 255 0 vatk 0 0 0 0 279 1381 0 895 0 1155 0 1 22 0 0 0 ; Table tariff(*,k) tariff on intermediate demand and prodution tax Agric Extra Minin Chemi Metal Engin food othma Power Const Distr Trans Finan Pubad Educa House tarif 77 6 5 166 100 210 846 396 50 67 188 38 2 0 9 0 totarif 139 89 107 558 316 1338 383 1532 12 0 0 220 104 11 81 11 indtx -2331 0 -34 8629 21 16 8019 35 1487 -108 8821 -2118 4126 0 2164 -131 ; Table Taffd(*,fd) VAT and tariff on final consu Cons GGFC GDFCF Stocks Exports ftarif 2133 139 139 23 37 vatfd 37508 6979 4455 0 0 ; *Check for data parameter chk, chkk, chintd, chinm, chtaxr, chtarr; chk = sum(k, zz("lb",k)); chkk = sum(k, zz("ka",k)); chtaxr = sum(k, tariff("indtx",k)); chtarr = sum(k, tariff("tarif",k)); chintd(k)= sum(kk, iof(k,kk)); chinm(k) = sum(kk, iofm(k,kk)); display chk, chkk, chintd,chinm,chtaxr, chtarr; Table income(*,hh) Sources of Income to the households h1 wage 434521 intr 189431 ; Parameter tar(k) tariff in inputs vatc(k) value added tax in consumption vatk(k) value added tax in capital vatg(k) value added tax in public cons prot(k) production tax tarf tariff in final demand prt(k) production tax rate prt0(k) production tax rate tarint tariff on intermediate input tarint0 tariff on intermediate input tarfrt tariff on final demand tarfrt0 tariff on final demand intdm import for intermediate inputs ; tar(k) = tariff("tarif",k); vatc(k) = vatt("vatc",k); vatk(k) = vatt("vatk",k); vatg(k) = vatt("vatg",k); prot(k) = tariff("indtx",k); tarf(k) = tariff("totarif",k); display tar, vatc,vatk,vatg, tarf; Parameter tid0 Total investment id0(k) domestic suplly of investment id0m(k) foreign supply of investment stock(k) change in stocks -domesti stockm(k) change in stock - import G0(k) government consumption -domestic gm0(k) government consumption -import cc0(k) consuption demand by households -domestic ccm0(k) consumption by households -imports m0(k) total imports dd0(k) total domestic demands cch0(hh,k) household demand for domestic goods cchm0(hh,k) household demand for imported goods expt(k) exports rexp(k) imports re-exported expe(hh,k) export earning to households expem(hh,k) re-export earning to households ; parameter c0(hh) consumption of goods and leisure cap0(j,k) capital stock type asset j for sector k d0(hh,k) households' final demand -domestic d0m(hh,k) households' final demand -imports grev government revenue hit(hh) labour income tax hit0(hh) base year labour income tax rate incbal(*) budget balance check intr(j,hh) gross capital income to households iof(kk,k) domestic intermediate demand kt0(k) aggregate capital income from sector k k0(j,k) capital income from asset j in sector k kj0(j) total of type j assets in the base year l0(k) labour income from sector K leisure(hh) leisure demand (value net of income tax) mcf marginal cost of public funds mkt(*) market cleance check for the base year nettrn(hh) net income transfer to households netwage(hh) wage income (net of income tax) wages(hh) wage income (gross of income tax) p0(k) consumer prices (gross of vat) pindex price index for marginal calculations prf(kk) zero profit condition rk0(j,k) base year return to capital (gross of tax) tk(j,k) capital tax rate by assets per sector: P-tax rates tk0(j,k) base year capital tax rate vt(k) value-added tax rate vtc(k) value-added tax rate on consumption vtk(k) value-added tax rate on investment vtg(k) value-added tax rate on government consumption vtc0(k) base year value-added tax rate on consumption vtk0(k) base year value-added tax rate on investment vtg0(k) base year value-added tax rate on government consumption vt0(k) base year value-added tax rate y0(k) sectoral output (gross of tax) KSTOCK CAPITAL STOCK gsize government size tbal trade balance condition labtax labour income tax gsav government saving gsavh vatrev revenue from value added tax tkk; * Extract some data: * capital tax rates from Ptax: tk(j,k) = trafo(j,k); tk("dwell",k) = 0; tk("dwell","house") = trafo("dwell","house"); cap0(j,k) = asset(j,k); kt0(k) = zz("ka",k); *for model without capital income taxes parameter tkk00; tkk00(j,k) = tk(j,k); tk(j,k) =0; ** Split value added from capital by value of assets in the base year 1995 k0(j,k) = zz("ka",k)*(cap0(j,k)/sum(jj,cap0(jj,K))); tkk(k) = sum(j, tkk00(j,k)*k0(j,k))/sum(jj, k0(jj,k)); ** allocation of capital income among assets accounting for different depreciation rates ** Asset with lower depreciation rate live longer and therefore, given less weight while ** decomposing value added from capital into different assets. k0(j,k) = zz("ka",k)*(pafo(j,k)+dep(j,k))*(cap0(j,k)/sum(jj,(pafo(j,k)+dep(j,k))*cap0(jj,K))); * *kt0(k) = sum(j,k0(j,k)-tk(j,k)*k0(j,k)); kt0(k) = sum(j,k0(j,k)); kj0(j) = sum(k,k0(j,k)); * *k0(j,k) = k0(j,k)-tk(j,k)*k0(j,k); L0(k) = zz("lb",k); KSTOCK(k) = zz("KSTOCK",k); parameter ptaxr(k); ptaxr(k) = sum(j,tk(j,k)*(k0(j,k)/(1-tk(j,k)))); display kt0, l0, ptaxr, k0,KSTOCK; *the patax rate in capital stock would increase gross of tax output *the elements of final demand are retrieved below y0(k) = zz("xd",k); id0(k) = DF("GDFCF", k); id0m(k) = MF("GDFCF", k); stock(k) = DF("stocks", k); stockm(k) = MF("stocks", k); g0(k) = DF("GGFC", k); gm0(k) = MF("GGFC", k); cc0(k) = DF("cons", k); ccm0(k) = MF("cons", k); expt(k) = DF("exports",k); rexp(k) = MF("exports",k); expe(hh,k) = (1/card(hh))*expt(k); expem(hh,k) = (1/card(hh))*rexp(k); alias (kk,kkk), (kkk,kkkk); *total imports m0(k) = sum(kk, iofm(K,kk))+id0m(k)+ ccm0(k)+gm0(k)+stockm(k); intdm(k) = zz("intdm",k); tarint(k)$intdm(k) = (tar(k)/intdm(k)); tarint0(k)$intdm(k) = tarint(k); tarfrt(k)$m0(k) = tarf(k)/m0(k); tarfrt0(k)$m0(k) = tarfrt(k); display tarfrt,tarint; *total domestic demand dd0(k) = sum(kk, iof(k,kk))+id0(k)+ cc0(k)+g0(k)+stock(k); cch0(hh,k) = cc0(k); cchm0(hh,k) = ccm0(k); *total investment tid0 = sum(k,id0(k)+id0m(k)+stock(k)+stockm(k)); display id0, id0m, cc0,dd0,m0; *tax rates (I assume tariff in input also as production tax) prt(k) = (prot(k))/y0(k); *total final demand for domestic and imported products d0(hh,k) = y0(k)- sum(kk,iof(k,Kk))-ZZ("export",k); d0m(hh,k) = m0(k)- sum(kk,iofm(k,Kk))-ZZ("reexpt",k); display k0,kt0, l0, cap0, d0, d0m; *gross of capital tax price of assets in the benchmark rk0(j,k) = 1/(1-tk(j,k)); display tk, rk0; *gross of tax wage and gross of tax captal income for households wages(hh) = sum(k,l0(k)); intr(j,hh) = sum(k, k0(j,k)/(1-tk(j,k))); display l0, wages, intr; parameters p0c, p0k, p0g; *Impose VAT on consumption,investment and goverment consumption vtc(k)$cc0(k) = VATT("vatc",k)/(cc0(k)+ccm0(k)); vtg(k)$g0(k) = VATT("vatg",k)/(g0(k)+gm0(k)); vtk(k)$id0(k) = VATT("vatk",k)/(id0(k)+id0m(k)); vtc0(k)$cc0(k) = vtc(k); vtg0(k)$g0(k) = vtg(k); vtk0(k)$id0(k) = vtk(k); vt(k) = 0; vt0(k) = vt(k); p0(k) = 1 + vt0(k); p0c(k) = 1+ vtc0(k); p0g(k) = 1+ vtg0(k); p0k(k) = 1+ vtk0(k); display tk, vtc,vtg,vtk, prt,tarfrt; * Impose a marginal income tax on labour income according to data: hit(hh) = 0.244; netwage(hh) = (1-hit(hh)) * wages(hh); * Assume that 3/4 as much time is spent on leisure and * home production for all households: leisure(hh) = (3/4) * netwage(hh); * The value of aggregate (extended) consumption: p0(k) = 1+vtc(k); c0(hh) = sum(k, cch0(hh,k)*p0(k)+ cchm0(hh,k)*p0(k)) + leisure(hh); *check the trade balance condition tbal = sum(k,m0(k)+rexp(k))-sum(k, expt(k)+rexp(k)); display tbal; * Government tax revenue: grev = sum(hh, hit(hh)*wages(hh)) * +sum((j,k),tk(j,k)*(k0(j,k)/(1-tk(j,k)))) +tbal +sum((k,hh), (cch0(hh,k)*p0c(k)+cchm0(hh,k)*p0c(k))*(vtc0(k))) +sum(k,((id0(k)+stock(k)+id0m(k)+stockm(k))*p0k(k))*vtk0(k)) +sum(k,((g0(k)+gm0(k))*vtg0(k))*p0g(k)) +sum(k, y0(k)*prt(k)) +sum(k,tarfrt(k)*m0(k)) ; Parameter rev1 household income tax rev2 capital income tax rev3 vat in private cons rev4 vat in investment rev5 vat in govt cons rev6 production taxes rev7 tariff rates; rev1 = sum(hh, hit(hh)*wages(hh))/grev; rev2 = sum((j,k),tk(j,k)*(k0(j,k)/(1-tk(j,k))))/grev; rev3 = sum((k,hh), (cch0(hh,k)*p0c(k)+cchm0(hh,k)*p0c(k))*(vtc0(k)))/grev; rev4 = sum(k,((id0(k)+stock(k)+id0m(k)+stockm(k))*p0k(k))*vtk0(k)) /grev; rev5 = sum(k,((g0(k)+gm0(k))*vtg0(k))*p0g(k))/grev; rev6 = sum(k, y0(k)*prt(k))/grev; rev7 = sum(k,tarfrt(k)*m0(k))/grev; ; display grev; display rev1,rev2,rev3,rev4, rev5,rev6, rev7; * Zero profit: prf(k) = y0(k) - sum(kk, iof(kk,k)) - sum(kk, iofm(kk,k))- l0(k) - sum(j,k0(j,k)/(1-tk(j,k)))-tar(k)-prot(k); prf(k) = y0(k) - sum(kk, iof(kk,k)) - sum(kk, iofm(kk,k))- l0(k) - kt0(k)-tar(k)-prot(k); display prf; * Market clearance: mkt(k) = y0(k) - sum(kk,iof(k,kk)) - cc0(k)-g0(k)-id0(k)-stock(k)-expt(k); mkt("l") = sum(hh, wages(hh)) - sum(k, l0(k)); mkt("k") = sum((j,k), k0(j,k)/(1-tk(j,k))) - sum((j,hh),intr(j,hh)); mkt("k") = sum(k,kt0(k)) - sum((j,hh),intr(j,hh)); display mkt; * Assuming that the data satisfy zero profit and market * clearance, use net transfers to balance income accounts: parameter tvald total value added; tvald(hh) = (sum(j,intr(j,hh)))+wages(hh); display tvald; parameter gbal government budget balance grinv gross investment pub public expenditure netintr(hh) net interest income saving savings incadj(hh) income adjustment term ; parameter ntrnrt; pub = sum(k,(g0(k)+gm0(k))*p0g(k)); gbal = grev -pub; grinv(hh) = 1/card(hh)*(sum(k,(id0(k)+id0m(k)+stock(k)+stockm(k))*p0k(k))); nettrn(hh) = sum(j,intr(j,hh))+(netwage(hh)+leisure(hh))-c0(hh)-sum((j,k),tk(j,k)*(k0(j,k)/(1-tk(j,k)))); nettrn(hh) = sum(j,intr(j,hh))+(netwage(hh)+leisure(hh))-c0(hh); labtax(hh) = hit(hh)*wages(hh); saving(hh) = nettrn(hh)+gbal; incadj(hh) = saving(hh)-grinv(hh); ntrnrt(hh) = nettrn(hh)/(sum(j,intr(j,hh))+(netwage(hh)+leisure(hh))); hit0(hh) = hit(hh); tk0(j,k) = tk(j,k); prt0(k) = prt(k); *elasticities of the model TABLE elast(K,*) elasticities in central case SIGMAV SIGMAK SIGMAC ETRAN Agric 1.214 1.214 1.214 1.214 Extra 1.654 1.654 1.654 1.654 Minin 1.500 1.500 1.500 1.500 Chemi 1.654 1.654 1.654 1.654 Metal 1.612 1.612 1.612 1.612 Engin 1.500 1.500 1.500 1.500 food 1.000 1.000 1.000 1.000 othma 0.900 0.900 0.900 0.900 Power 1.500 1.500 1.500 1.500 Const 1.000 1.000 1.000 1.000 Distr 1.600 1.600 1.600 1.600 Trans 1.600 1.600 1.600 1.600 Finan 1.600 1.600 1.600 1.600 Pubad 1.600 1.600 1.600 1.600 Educa 1.600 1.600 1.600 1.600 House 1.000 1.000 1.000 1.000 ; Parameters etran transformation elsticity sigmav subt. elasticity -labour and composite capital sigmak substitution elasticity among assets sigmac subt elasticity in consumption sigmau sub elasticity- consumption and leisure sigmal labour supply elasticity etran0 sigmav0 sigmak0 sigmac0 sigmau0 sigmal0; sigmav(k) = elast(k,"sigmav"); sigmak(k) = elast(k,"sigmak"); sigmac(k) = elast(k,"sigmac"); sigmau(hh) = 1.5; sigmal(hh) = 1.5; etran(k) = elast(k,"etran"); etran0(k) = etran(k); sigmav0(k) = sigmav(k); sigmak0(k) = sigmak(k); sigmac0(k) = sigmac(k); sigmau0(hh) = sigmau(hh); sigmal0(hh) = sigmal(hh); sigmav(k) = 1/1.5*sigmav0(k); sigmak(k) = 1/1.5*sigmak0(k); sigmac(k) = 1/1.5*sigmac0(k); sigmau(hh) = 0.35*sigmau0(hh); sigmal(hh) = 0.35*sigmal0(hh); etran(k) = 2.5*etran0(k); sigmav(k) = 1/1.5*sigmav0(k); sigmak(k) = 1/1.5*sigmak0(k); sigmac(k) = 1/1.5*sigmac0(k); sigmau(hh) = 0.5; sigmal(hh) = 0.5; etran(k) = 2.5*etran0(k); display grev, pub, gbal,saving,grinv, nettrn, incadj,ntrnrt; display tk, sigmav0;