diff --git a/taxcalc/comparison/reform_results.txt b/taxcalc/comparison/reform_results.txt index 9e668feeb..a14fd0f2e 100644 --- a/taxcalc/comparison/reform_results.txt +++ b/taxcalc/comparison/reform_results.txt @@ -77,7 +77,7 @@ Tax-Calculator,80.4,87.7,94.5,101.3 Tax Expenditure,75,82,88,93 "" Both real estate and state and local -Tax-Calculator,99.3,105.6,111.4,117.6 +Tax-Calculator,99.3,105.6,111.4,117.5 Tax Expenditure,75,82,88,93 "" State & Local @@ -93,7 +93,7 @@ Tax-Calculator,0.4,0.5,0.5,0.5 Tax Expenditure,0,0,0,0 "" Charitable -Tax-Calculator,43.2,45.8,48.2,50.9 +Tax-Calculator,43.2,45.7,48.2,50.9 Tax Expenditure,46,47,48,50 "" Decrease AGI floor for miscellaneous expenses by 1 pts @@ -124,7 +124,7 @@ Budget Options,5,5,5,6 REGULAR TAXES "" Increase each bracket rate by 1% -Tax-Calculator,56.3,58.8,61.5,64.0 +Tax-Calculator,56.2,58.7,61.5,64.0 Budget Options,56,60,65,69 "" Increase top 4 rates by 1% @@ -166,7 +166,7 @@ Tax-Calculator,-0.4,-0.5,-0.5,-0.5 NONREFUNDABLE CREDIT "" Total expenditure from child tax credit -Tax-Calculator,51.6,51.2,50.8,50.2 +Tax-Calculator,51.5,51.1,50.7,50.1 Tax Expenditure,57,57,57,57 "" Increase Child Tax Credit phaseout rate by 1 pts diff --git a/taxcalc/functions.py b/taxcalc/functions.py index 0e4dca8c4..fb6ff06a3 100644 --- a/taxcalc/functions.py +++ b/taxcalc/functions.py @@ -22,7 +22,7 @@ def EI_PayrollTax(SS_Earnings_c, e00200, e00200p, e00200s, FICA_ss_trt, FICA_mc_trt, e00900p, e00900s, e02100p, e02100s, - _payrolltax, _ptax_was, c03260, c09400, + _payrolltax, ptax_was, ptax_sey, c03260, _sey, _earned, _earned_p, _earned_s): """ EI_PayrollTax function: computes total earned income and some part of @@ -52,17 +52,15 @@ def EI_PayrollTax(SS_Earnings_c, e00200, e00200p, e00200s, ptax_mc_sey_p = FICA_mc_trt * max(0., sey_p * sey_frac) ptax_mc_sey_s = FICA_mc_trt * max(0., sey_s * sey_frac) - # compute total regular payroll taxes for filing unit - ptax_ss = ptax_ss_was_p + ptax_ss_was_s + ptax_ss_sey_p + ptax_ss_sey_s - ptax_mc = ptax_mc_was_p + ptax_mc_was_s + ptax_mc_sey_p + ptax_mc_sey_s - _payrolltax = ptax_ss + ptax_mc + # compute regular payroll taxes on wage-and-salary and on sey earnings + ptax_was = ptax_ss_was_p + ptax_ss_was_s + ptax_mc_was_p + ptax_mc_was_s + ptax_sey = ptax_ss_sey_p + ptax_ss_sey_s + ptax_mc_sey_p + ptax_mc_sey_s - # compute regular payroll taxes on wage-and-salary income - _ptax_was = ptax_ss_was_p + ptax_ss_was_s + ptax_mc_was_p + ptax_mc_was_s + # compute total regular payroll taxes for filing unit + _payrolltax = ptax_was + ptax_sey - # compute AGI deduction for "employer share" of self-employment FICA taxes - c09400 = ptax_ss_sey_p + ptax_ss_sey_s + ptax_mc_sey_p + ptax_mc_sey_s - c03260 = 0.5 * c09400 # half of c09400 represents the "employer share" + # compute AGI deduction for "employer share" of self-employment taxes + c03260 = 0.5 * ptax_sey # half of ptax_sey represents the "employer share" # compute _earned and its individual components _earned = max(0., e00200 + _sey - c03260) @@ -71,7 +69,7 @@ def EI_PayrollTax(SS_Earnings_c, e00200, e00200p, e00200s, _earned_s = max(0., e00200s + sey_s - 0.5 * (ptax_ss_sey_s + ptax_mc_sey_s)) - return (_sey, _payrolltax, _ptax_was, c09400, c03260, + return (_sey, _payrolltax, ptax_was, ptax_sey, c03260, _earned, _earned_p, _earned_s) @@ -327,17 +325,19 @@ def ItemDed(_posagi, e17500, e18400, e18500, @iterate_jit(nopython=True) -def AdditionalMedicareTax(e00200, MARS, AMED_thd, _sey, AMED_trt, - FICA_mc_trt, FICA_ss_trt, _payrolltax): +def AdditionalMedicareTax(e00200, MARS, + AMED_thd, _sey, AMED_trt, + FICA_mc_trt, FICA_ss_trt, + ptax_amc, _payrolltax): """ AMED function: computes additional Medicare Tax as a part of payroll taxes Notes ----- Tax Law Parameters: - AMED_thd : Additional medicare threshold + AMED_thd : Additional Medicare Tax earnings threshold - AMED_trt : Additional medicare tax rate + AMED_trt : Additional Medicare Tax rate FICA_ss_trt : FICA Social Security tax rate @@ -350,16 +350,17 @@ def AdditionalMedicareTax(e00200, MARS, AMED_thd, _sey, AMED_trt, Returns ------- - _payrolltax : payroll tax augmented by Additional Medicare Tax, amed + ptax_amc : Additional Medicare Tax + _payrolltax : payroll tax augmented by Additional Medicare Tax """ # ratio of income subject to AMED tax = (1 - 0.5*(FICA_mc_trt+FICA_ss_trt) - amed = AMED_trt * (max(0., e00200 - AMED_thd[MARS - 1]) + - max(0., max(0., _sey) * - (1. - 0.5 * (FICA_mc_trt + FICA_ss_trt)) - - max(0., AMED_thd[MARS - 1] - e00200))) - _payrolltax = _payrolltax + amed - return _payrolltax + ptax_amc = AMED_trt * (max(0., e00200 - AMED_thd[MARS - 1]) + + max(0., max(0., _sey) * + (1. - 0.5 * (FICA_mc_trt + FICA_ss_trt)) - + max(0., AMED_thd[MARS - 1] - e00200))) + _payrolltax = _payrolltax + ptax_amc + return (ptax_amc, _payrolltax) @iterate_jit(nopython=True) @@ -796,18 +797,18 @@ def EITC(MARS, DSI, EIC, c00100, e00300, e00400, e00600, c01000, @iterate_jit(nopython=True) def ChildTaxCredit(n24, MARS, c00100, _feided, _exact, - CTC_c, CTC_ps, CTC_prt, pre_ctc): + CTC_c, CTC_ps, CTC_prt, prectc): """ - ChildTaxCredit function computes pre_ctc amount + ChildTaxCredit function computes prectc amount """ - pre_ctc = CTC_c * n24 + prectc = CTC_c * n24 ctc_agi = c00100 + _feided if ctc_agi > CTC_ps[MARS - 1]: excess = ctc_agi - CTC_ps[MARS - 1] if _exact == 1: excess = 1000. * math.ceil(excess / 1000.) - pre_ctc = max(0., pre_ctc - CTC_prt * excess) - return pre_ctc + prectc = max(0., prectc - CTC_prt * excess) + return prectc @iterate_jit(nopython=True) @@ -1016,36 +1017,33 @@ def EducationTaxCredit(c87550, MARS, c00100, _num, c05800, @iterate_jit(nopython=True) def NonrefundableCredits(c05800, e07240, e07260, e07300, e07600, c07180, c07200, c07220, c07230, c07240, - pre_ctc, c07300, c07600, _avail): + prectc, c07300, c07600, _avail): """ NonRefundableCredits function serially applies credits to tax liability """ - # reduce nonrefundable child tax credit, c07220 - c07220 = min(pre_ctc, max(0., c05800 - (c07180 + c07200 + c07230 + - e07240 + e07260 + e07300))) - # apply tax credits to tax liability in order on tax form + # apply tax credits to tax liability in order they are on 2015 1040 form _avail = c05800 - c07180 = min(c07180, _avail) # child & dependent care expense credit - _avail = _avail - c07180 - c07200 = min(c07200, _avail) # Schedule R credit - _avail = _avail - c07200 c07300 = min(e07300, _avail) # Foreign tax credit - Form 1116 _avail = _avail - c07300 + c07180 = min(c07180, _avail) # Child & dependent care expense credit + _avail = _avail - c07180 c07230 = min(c07230, _avail) # Education tax credit _avail = _avail - c07230 - c07240 = min(e07240, _avail) # Retirement savings contribution credit + c07240 = min(e07240, _avail) # Retirement savings credit - Form 8880 _avail = _avail - c07240 - c07260 = min(e07260, _avail) # Residential energy credit + c07220 = min(prectc, _avail) # Child tax credit + _avail = _avail - c07220 + c07260 = min(e07260, _avail) # Residential energy credit - Form 5695 _avail = _avail - c07260 - c07600 = min(e07600, _avail) # Prior year minimum tax credit + c07600 = min(e07600, _avail) # Prior year minimum tax credit - Form 8801 _avail = _avail - c07600 - c07220 = min(c07220, _avail) # Nonrefundable child tax credit - _avail = _avail - c07220 + c07200 = min(c07200, _avail) # Schedule R credit + _avail = _avail - c07200 return (c07220, c07230, c07240, c07300, c07600, _avail) @iterate_jit(nopython=True) -def AdditionalCTC(n24, pre_ctc, _earned, c07220, _ptax_was, +def AdditionalCTC(n24, prectc, _earned, c07220, ptax_was, ACTC_Income_thd, ACTC_rt, ACTC_ChildNum, ALD_SelfEmploymentTax_HC, c03260, e09800, c59660, e11200, c11070): @@ -1066,24 +1064,24 @@ def AdditionalCTC(n24, pre_ctc, _earned, c07220, _ptax_was, c82937 = 0. c82940 = 0. c11070 = 0. - # Part I of 2005 form 8812 + # Part I of 2005 Form 8812 if n24 > 0: - c82925 = pre_ctc + c82925 = prectc c82930 = c07220 c82935 = c82925 - c82930 # CTC not applied to tax c82880 = max(0., _earned) c82885 = max(0., c82880 - ACTC_Income_thd) c82890 = ACTC_rt * c82885 - # Part II of 2005 form 8812 + # Part II of 2005 Form 8812 if n24 >= ACTC_ChildNum and c82890 < c82935: - c82900 = 0.5 * _ptax_was + c82900 = 0.5 * ptax_was c82905 = (1. - ALD_SelfEmploymentTax_HC) * c03260 + e09800 c82910 = c82900 + c82905 c82915 = c59660 + e11200 c82920 = max(0., c82910 - c82915) c82937 = max(c82890, c82920) - # Part II of 2005 form 8812 + # Part II of 2005 Form 8812 if n24 > 0 and n24 <= 2 and c82890 > 0: c82940 = min(c82890, c82935) if n24 > 2: @@ -1106,7 +1104,7 @@ def F5405(e11580, c11580): @iterate_jit(nopython=True) def C1040(e07400, c07200, c07220, c07230, c07300, c07240, - e07260, c07600, p08000, c05800, e09900, c09400, e09800, + e07260, c07600, p08000, c05800, e09900, ptax_sey, e09800, e09700, c07180, NIIT, _othertax, c07100, c09200): """ C1040 function: ... @@ -1118,7 +1116,7 @@ def C1040(e07400, c07200, c07220, c07230, c07300, c07240, # Tax After credits 1040 line 52 c08795 = max(0., c05800 - c07100) # Tax before refundable credits - _othertax = e09900 + c09400 + e09800 + NIIT + _othertax = e09900 + ptax_sey + e09800 + NIIT c09200 = _othertax + c08795 c09200 += e09700 # assuming year tax year is after 2009 return (c07100, c09200, _othertax) @@ -1184,14 +1182,14 @@ def Taxer_i(inc_in, MARS, @iterate_jit(nopython=True) -def ExpandIncome(_ptax_was, e02400, c02500, c00100, e00400, _expanded_income): +def ExpandIncome(ptax_was, e02400, c02500, c00100, e00400, _expanded_income): """ ExpandIncome function: calculates and returns _expanded_income. Note: if behavioral responses to a policy reform are specified, then be sure this function is called after the behavioral responses are calculated. """ - employer_share = 0.5 * _ptax_was # share of payroll tax on wages & salary + employer_share = 0.5 * ptax_was # share of payroll tax on wages & salary non_taxable_ss_benefits = e02400 - c02500 _expanded_income = (c00100 + # adjusted gross income e00400 + # non-taxable interest income diff --git a/taxcalc/records.py b/taxcalc/records.py index bb83cf6f8..356771589 100644 --- a/taxcalc/records.py +++ b/taxcalc/records.py @@ -147,17 +147,17 @@ class instance: Records 'c01000', 'c02500', 'c11580', '_sey', '_earned', '_earned_p', '_earned_s', - 'c09400', '_feided', 'ymod', 'ymod1', '_posagi', + '_feided', 'ymod', 'ymod1', '_posagi', '_xyztax', '_avail', '_taxinc', 'c04800', '_feitax', '_taxbc', '_standard', 'c24516', 'c24517', 'c24520', 'c05700', 'c32880', 'c32890', 'c32800', 'c05800', 'c87521', 'c87550', 'c07180', - 'c07230', 'pre_ctc', 'c07220', 'c59660', + 'c07230', 'prectc', 'c07220', 'c59660', 'c09200', 'c07100', '_eitc', '_prexmp', - '_payrolltax', '_ptax_was', 'c03260', + '_payrolltax', 'ptax_was', 'ptax_sey', 'c03260', 'ptax_amc', '_sep', '_num', 'c04500', 'c05200', 'c62100', diff --git a/taxcalc/tests/pufcsv_agg_expect.txt b/taxcalc/tests/pufcsv_agg_expect.txt index 05e269734..32767e03e 100644 --- a/taxcalc/tests/pufcsv_agg_expect.txt +++ b/taxcalc/tests/pufcsv_agg_expect.txt @@ -12,9 +12,9 @@ AMT income ($b) 8,571.7 9,081.5 9,428.1 9,814.9 10,233.6 10,6 AMT amount ($b) 31.3 32.9 34.6 36.8 38.9 41.1 43.3 45.7 48.2 51.1 AMT number (#m) 4.2 4.4 4.6 4.9 5.1 5.2 5.4 5.6 5.7 5.9 Tax before credits ($b) 1,338.3 1,437.1 1,491.2 1,562.6 1,639.5 1,705.5 1,765.8 1,831.4 1,908.5 1,992.9 -refundable credits ($b) 111.5 112.5 113.9 113.6 114.5 116.0 117.6 119.3 120.9 122.5 +refundable credits ($b) 111.4 112.4 113.8 113.5 114.4 116.0 117.5 119.3 120.8 122.5 nonrefundable credits ($b) 71.6 71.7 72.1 72.7 74.1 74.9 75.3 76.2 77.1 78.0 Misc. Surtax ($b) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Ind inc tax ($b) 1,226.1 1,331.0 1,384.7 1,458.5 1,536.2 1,602.5 1,663.2 1,729.2 1,807.3 1,893.0 +Ind inc tax ($b) 1,226.2 1,331.1 1,384.7 1,458.5 1,536.3 1,602.6 1,663.3 1,729.3 1,807.4 1,893.0 Payroll tax ($b) 919.6 961.9 1,003.7 1,045.3 1,093.9 1,141.4 1,186.7 1,233.7 1,284.4 1,338.8 -Combined liability ($b) 2,145.7 2,292.9 2,388.3 2,503.7 2,630.1 2,743.8 2,849.9 2,962.9 3,091.7 3,231.8 +Combined liability ($b) 2,145.8 2,293.0 2,388.4 2,503.8 2,630.2 2,743.9 2,849.9 2,962.9 3,091.8 3,231.8 diff --git a/taxcalc/tests/pufcsv_mtr_expect.txt b/taxcalc/tests/pufcsv_mtr_expect.txt index b45bb0143..6f22db516 100644 --- a/taxcalc/tests/pufcsv_mtr_expect.txt +++ b/taxcalc/tests/pufcsv_mtr_expect.txt @@ -6,43 +6,43 @@ ITAX mtr histogram bin edges: [-1.0, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 1.0] PTAX and ITAX mtr histogram bin counts for e00200p: 219814 : 0 31950 0 0 0 0 0 183680 4184 0 -219814 : 4596 91 1979 8882 45492 63313 48579 25793 20430 659 +219814 : 4596 91 1978 8876 45584 63246 48589 25767 20428 659 PTAX and ITAX mtr histogram bin counts for e00900p: 219814 : 14116 29235 0 0 0 0 0 176463 0 0 -219814 : 3328 524 795 164 15289 35307 69924 47704 36767 10012 +219814 : 3328 524 794 164 15287 35394 69858 47714 36741 10010 PTAX and ITAX mtr histogram bin counts for e00300: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 60271 62943 44131 26138 25642 689 +219814 : 0 0 0 0 60365 62865 44142 26113 25640 689 PTAX and ITAX mtr histogram bin counts for e00400: 219814 : 219814 0 0 0 0 0 0 0 0 0 219814 : 0 0 0 0 205699 7875 6101 102 29 8 PTAX and ITAX mtr histogram bin counts for e00600: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 60269 62960 44303 25956 25637 689 +219814 : 0 0 0 0 60366 62879 44314 25931 25635 689 PTAX and ITAX mtr histogram bin counts for e00650: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 6 20577 103638 44365 50201 614 389 24 +219814 : 0 0 6 20573 103644 44365 50201 612 389 24 PTAX and ITAX mtr histogram bin counts for e01400: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 60219 63053 47685 26433 21750 674 +219814 : 0 0 0 0 60317 62971 47696 26408 21748 674 PTAX and ITAX mtr histogram bin counts for e01700: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 60222 63050 47666 26452 21750 674 +219814 : 0 0 0 0 60320 62968 47677 26427 21748 674 PTAX and ITAX mtr histogram bin counts for e02000: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 60239 63005 44356 25888 25637 689 +219814 : 0 0 0 0 60337 62923 44367 25863 25635 689 PTAX and ITAX mtr histogram bin counts for e02400: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 0 96303 41050 52047 29535 773 106 +219814 : 0 0 0 0 96405 40966 52036 29528 773 106 PTAX and ITAX mtr histogram bin counts for p22250: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 0 20 82515 60793 42459 18898 14721 408 +219814 : 0 0 0 20 82611 60712 42471 18873 14719 408 PTAX and ITAX mtr histogram bin counts for p23250: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 0 0 2 19803 122228 38607 33938 2156 3033 47 +219814 : 0 0 2 19798 122240 38602 33938 2154 3033 47 PTAX and ITAX mtr histogram bin counts for e18500: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 22942 23256 20771 5936 146909 0 0 0 0 0 +219814 : 22942 23254 20704 5937 146977 0 0 0 0 0 PTAX and ITAX mtr histogram bin counts for e19200: 219814 : 219814 0 0 0 0 0 0 0 0 0 -219814 : 32345 27676 20732 3141 135920 0 0 0 0 0 +219814 : 32345 27674 20664 3143 135988 0 0 0 0 0 diff --git a/taxcalc/validation/README.md b/taxcalc/validation/README.md index 7b006f7b3..42357e8ae 100644 --- a/taxcalc/validation/README.md +++ b/taxcalc/validation/README.md @@ -68,7 +68,7 @@ provides a free Tcl interpreter for Windows (tclsh.exe). The `make_in.tcl` and `more_in.py` scripts are used to randomly generate INPUT files, which have increasingly longer sets of filing -unit attributes and typically contain 100,000 filing units. Read the +unit attributes and contain as many as 100,000 filing units. Read the source code of the scripts for additional details on how to use them. The `taxdiffs.tcl` script calls the `taxdiff.awk` script to compute diff --git a/taxcalc/validation/taxsim/README.md b/taxcalc/validation/taxsim/README.md index 8453f6130..6e9ff6f3d 100644 --- a/taxcalc/validation/taxsim/README.md +++ b/taxcalc/validation/taxsim/README.md @@ -6,16 +6,17 @@ The cross-model validation process described [here](../README.md) has used to generate step-three results. We are in the process of comparing Tax-Calculator and Internet-TAXSIM -results generated from the `a`, `b`, `c`, and `d`, assumption sets in -the `make_in.tcl` script for the years 2013 through 2015. Each INPUT -file is used to generate a Tax-Calculator OUTPUT file using the -`simtax.py` interface to the Tax-Calculator. And each INPUT file is -used to generate an Internet-TAXSIM OUTPUT file by uploading it to the -Internet-TAXSIM website using the `56 1` option (in order to do the -EITC property-income eligibility test exactly without any smoothing of -property income) and requesting detailed intermediate calculations. -These two OUTPUT files are compared using the `taxdiffs.tcl` script. -See the `tests` and `test` scripts in this directory for more details. +results generated from the `a` and `d` assumption sets in the +`make_in.tcl` script for the year 2015. Each INPUT file is used to +generate a Tax-Calculator OUTPUT file using the `simtax.py` interface +to the Tax-Calculator with the `--taxsim2441` option. And each INPUT +file is used to generate an Internet-TAXSIM OUTPUT file by uploading +it to the Internet-TAXSIM website using the `56 1` option (in order to +do the EITC property-income eligibility test exactly without any +smoothing of property income) and requesting detailed intermediate +calculations. These two OUTPUT files are compared using the +`taxdiffs.tcl` script. See the `tests` and `test` scripts in this +directory for more details. Validation Results ------------------ @@ -31,9 +32,21 @@ liabilities and marginal payroll tax rates are exactly the same at the threshold of paying the Net Investment Income Tax, where the marginal rate is not well defined). The intermediate income tax results are in close agreement with the largest difference being -slightly more that a dollar (except for some large differences in AMT +slightly more that a dollar (except for three large differences in AMT taxable income, which do not translate into differences in AMT liability). The largest difference in total income tax liability is -five cents in absolute value. There are, however, large differences -in a few marginal income tax rates, which will be investigated in the -future. See the `a15.taxdiffs` file for details on the differences. +one cent in absolute value. And there are no meaningful differences +in marginal income tax rates. See the `a15.taxdiffs` file for details +on the differences. + +### 2015 `d` Sample ### + +As of 07-Sep-2016, we have compared OUTPUT files for a 2015 `d` sample +of 100,000 randomly-generated filing units. Each filing unit in the +`d` sample has additional tax attributes beyond those present in the +`a` sample, including three kinds of itemized-deduction expenses, +child care expenses, and other property income. The marginal tax +rates are essentially the same in the two OUTPUT files, the payroll +tax liabilities are exactly the same (down to the penny), and the +federal income tax liabilities are differnt by no more than one cent. +See the `d15.taxdiffs` file for details on the differences. diff --git a/taxcalc/validation/taxsim/a15.taxdiffs b/taxcalc/validation/taxsim/a15.taxdiffs index c632e44ab..e6dd4c079 100644 --- a/taxcalc/validation/taxsim/a15.taxdiffs +++ b/taxcalc/validation/taxsim/a15.taxdiffs @@ -1,15 +1,11 @@ -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 7 180 14 114.00 [52727] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 7 14 14 0.01 [6064] TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 9 9 0 0.90 [8665] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 10 99966 99966 0.14 [114] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 12 25068 25068 0.06 [1] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 14 1014 1014 -1.28 [421] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 15 1014 1014 1.28 [438] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 18 98507 98507 1.30 [9198] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 19 93006 93006 0.43 [5018] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 22 215 215 0.01 [31980] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 23 343 343 0.01 [12011] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 25 913 913 0.03 [1802] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 26 99966 99963 -2900.00 [63254] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 27 603 603 -0.43 [5018] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 28 91699 91699 0.43 [5018] -TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 4 92753 92753 -0.05 [14137] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 14 492 492 -1.28 [421] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 15 492 492 1.28 [438] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 18 492 492 1.28 [421] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 19 497 497 0.43 [5018] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 25 75 75 0.01 [35400] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 26 3 0 -2900.00 [63254] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 27 593 593 -0.43 [5018] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 28 496 496 0.43 [5018] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 4 184 184 -0.01 [21008] diff --git a/taxcalc/validation/taxsim/d15.taxdiffs b/taxcalc/validation/taxsim/d15.taxdiffs new file mode 100644 index 000000000..cb7159bc0 --- /dev/null +++ b/taxcalc/validation/taxsim/d15.taxdiffs @@ -0,0 +1,13 @@ +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 7 1 1 0.01 [11965] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 9 4 0 0.90 [16808] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 14 604 604 -1.28 [2349] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 15 604 604 1.28 [56716] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 17 146 0 25000.00 [66962] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 18 750 604 -12400.00 [66962] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 19 1382 1236 -1415.00 [41106] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 24 142 0 -1030.00 [41106] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 25 3 3 0.01 [12248] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 26 151 0 -17702.00 [86307] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 27 1603 1603 -0.43 [2168] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 28 1344 1202 -1030.00 [41106] +TAXDIFF:ovar,#diffs,#smdiffs,maxdiff[id]= 4 700 700 -0.01 [647] diff --git a/taxcalc/validation/taxsim/output-taxsim.zip b/taxcalc/validation/taxsim/output-taxsim.zip index e27dab333..50f4751f4 100644 Binary files a/taxcalc/validation/taxsim/output-taxsim.zip and b/taxcalc/validation/taxsim/output-taxsim.zip differ diff --git a/taxcalc/validation/taxsim/tests b/taxcalc/validation/taxsim/tests index 10356e157..b762b9ae2 100755 --- a/taxcalc/validation/taxsim/tests +++ b/taxcalc/validation/taxsim/tests @@ -44,8 +44,8 @@ if [[ "$ALLTESTS" == true ]] ; then fi # bash test d13 . & # bash test d14 . & -# bash test d15 . & bash test a15 . & +bash test d15 . & wait echo "FINISHED WITH TAXSIM VALIDATION TESTS : `date`" if [[ -f "testerror" ]]; then