Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix wage growth rates #1171

Merged
merged 4 commits into from
Feb 1, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions taxcalc/comparison/reform_results.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
PAYROLL TAXES
""
Increase the Social Security payroll tax rate by 1pts
Tax-Calculator,62.1,64.5,68.0,70.9
Tax-Calculator,62.1,64.5,68.0,70.8
""
Increase the maximum taxable earnings (177500) for the social security payroll tax
Tax-Calculator,54.9,65.1,61.7,63.2
Tax-Calculator,54.9,64.3,60.0,62.0
Budget Options,40,46,49,51
""
Increase the payroll tax rate for Medicare (HI) by 1pts
Expand Down
8 changes: 4 additions & 4 deletions taxcalc/policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ class instance: Policy
2025: 0.0235, 2026: 0.0235}

# default wage growth rates by year
__wgrates = {2013: 0.0276, 2014: 0.0479, 2015: 0.0477, 2016: 0.0472,
2017: 0.0436, 2018: 0.0407, 2019: 0.0364, 2020: 0.0362,
2021: 0.0386, 2022: 0.0394, 2023: 0.0395, 2024: 0.0394,
2025: 0.0394, 2026: 0.0393}
__wgrates = {2013: 0.0199, 2014: 0.0401, 2015: 0.0395, 2016: 0.0388,
2017: 0.0352, 2018: 0.0324, 2019: 0.0281, 2020: 0.0281,
2021: 0.0306, 2022: 0.0315, 2023: 0.0317, 2024: 0.0317,
2025: 0.0319, 2026: 0.0319}

VALID_PARAM_CODE_NAMES = set(['ALD_InvInc_ec_base_code',
'CTC_new_code'])
Expand Down
20 changes: 10 additions & 10 deletions taxcalc/tests/pufcsv_agg_expect.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
Returns (#m) 163.1 162.8 164.9 167.6 170.4 173.2 175.8 177.8 180.1 182.4
AGI ($b) 9,326.3 10,020.2 10,544.9 11,022.6 11,443.9 11,874.5 12,280.3 12,720.4 13,221.5 13,765.9
AGI ($b) 9,326.3 10,020.2 10,544.9 11,022.6 11,443.9 11,874.5 12,280.4 12,720.5 13,221.7 13,766.2
Itemizers (#m) 42.3 42.1 42.9 44.1 45.0 45.7 46.3 47.1 47.7 48.2
Itemized Deduction ($b) 1,094.7 1,107.8 1,161.8 1,221.7 1,274.8 1,336.1 1,397.5 1,464.3 1,533.9 1,606.9
Itemized Deduction ($b) 1,094.7 1,107.8 1,161.8 1,221.7 1,274.8 1,336.1 1,397.5 1,464.3 1,534.0 1,606.9
Standard Deduction Filers (#m) 108.3 108.0 109.0 110.2 111.8 113.5 115.0 116.2 117.5 119.0
Standard Deduction ($b) 929.4 936.9 962.4 973.2 995.5 1,033.2 1,071.9 1,109.1 1,149.1 1,190.8
Standard Deduction ($b) 929.4 936.9 962.4 973.2 995.5 1,033.2 1,072.0 1,109.1 1,149.1 1,190.8
Personal Exemption ($b) 1,117.5 1,116.6 1,139.5 1,164.6 1,176.3 1,215.0 1,254.9 1,295.7 1,337.2 1,379.7
Taxable Income ($b) 6,639.0 7,329.6 7,758.4 8,146.0 8,483.7 8,792.5 9,074.8 9,377.7 9,744.7 10,153.3
Regular Tax ($b) 1,453.7 1,667.6 1,782.1 1,877.0 1,949.4 2,010.0 2,065.2 2,126.7 2,207.1 2,300.1
AMT Income ($b) 8,784.1 9,483.0 9,979.4 10,425.7 10,821.1 11,221.3 11,596.3 12,000.7 12,467.2 12,976.1
Taxable Income ($b) 6,639.0 7,329.6 7,758.4 8,146.0 8,483.7 8,792.5 9,074.9 9,377.9 9,744.9 10,153.5
Regular Tax ($b) 1,453.7 1,667.6 1,782.1 1,877.0 1,949.4 2,010.1 2,065.2 2,126.7 2,207.1 2,300.2
AMT Income ($b) 8,784.1 9,483.0 9,979.4 10,425.7 10,821.1 11,221.4 11,596.4 12,000.8 12,467.4 12,976.3
AMT Liability ($b) 36.7 38.8 40.4 42.8 45.1 47.3 49.7 51.7 54.5 57.8
AMT Filers (#m) 4.5 4.8 5.0 5.3 5.6 5.7 5.8 5.9 6.1 6.2
Tax before Credits ($b) 1,389.7 1,565.7 1,658.1 1,742.1 1,815.1 1,876.6 1,933.7 1,993.9 2,072.1 2,162.2
Tax before Credits ($b) 1,389.7 1,565.7 1,658.1 1,742.1 1,815.1 1,876.6 1,933.7 1,994.0 2,072.1 2,162.3
Refundable Credits ($b) 99.5 97.6 97.7 96.8 96.4 98.2 100.3 102.1 104.0 105.8
Nonrefundable Credits ($b) 72.9 73.4 73.7 73.9 74.7 75.1 75.5 76.1 76.7 77.8
Reform Surtaxes ($b) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Ind Income Tax ($b) 1,246.4 1,433.1 1,530.6 1,618.5 1,691.9 1,751.7 1,806.8 1,866.0 1,943.2 2,032.6
Payroll Taxes ($b) 924.4 958.3 999.5 1,039.7 1,093.5 1,140.7 1,184.3 1,229.9 1,278.4 1,329.9
Combined Liability ($b) 2,170.8 2,391.3 2,530.1 2,658.2 2,785.4 2,892.4 2,991.1 3,095.9 3,221.7 3,362.5
Ind Income Tax ($b) 1,246.4 1,433.1 1,530.6 1,618.5 1,691.9 1,751.7 1,806.8 1,866.0 1,943.3 2,032.7
Payroll Taxes ($b) 924.4 958.3 999.5 1,039.7 1,093.5 1,139.2 1,181.1 1,224.9 1,271.6 1,321.1
Combined Liability ($b) 2,170.8 2,391.3 2,530.1 2,658.2 2,785.4 2,890.9 2,987.9 3,090.9 3,214.9 3,353.8
42 changes: 1 addition & 41 deletions taxcalc/tests/test_records.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,7 @@ def test_hard_coded_rates_vs_blowup_factor_implied_rates(puf_1991):
idx = year - Policy.JSON_START_YEAR
direct_wgr[idx] = pc_wage[indx] / pc_wage[indx - 1] - 1.0
assert_array_equal(np.round(implied_wgr, 4), np.round(direct_wgr, 4))
# --TEMP--assert_array_equal(np.round(implied_wgr, 4),
# --TEMP-- policy._wage_growth_rates)
assert_array_equal(np.round(implied_wgr, 4), policy._wage_growth_rates)

# real GDP growth rates
# .. convert pct_changes to indexes
Expand Down Expand Up @@ -212,45 +211,6 @@ def test_hard_coded_rates_vs_blowup_factor_implied_rates(puf_1991):
assert_array_equal(np.round(implied_rgr, 4), Growth.REAL_GDP_GROWTH_RATES)


def test_default_rates_and_those_implied_by_blowup_factors(puf_1991):
"""
Check that default GDP growth rates, default wage growth rates, and
default price inflation rates, are consistent with the rates embedded
in the Records blowup factors (BF).
"""
record = Records(data=puf_1991) # contains the blowup factors
policy = Policy() # contains the default indexing rates
syr = Policy.JSON_START_YEAR
endyr = Policy.LAST_BUDGET_YEAR
nyrs = endyr - syr

# back out stage I inflation rates from blowup factors
cpi_u = np.zeros(nyrs)
for year in range(syr, endyr):
cpi_u[year - syr] = record.BF.ACPIU[year] - 1

# check that blowup rates are same as default inflation rates
cpi_u = np.round(cpi_u, 4)
assert_array_equal(cpi_u, policy._inflation_rates[:-1])

# back out original stage I wage growth rates from blowup factors
record.BF.AWAGE[Records.PUF_YEAR] = 1
for year in range(Records.PUF_YEAR + 1, endyr):
record.BF.AWAGE[year] = (record.BF.AWAGE[year] *
record.BF.AWAGE[year - 1] *
record.BF.APOPN[year])

# calculate nominal wage growth rates from original wage growth rates
wage_growth_rates = np.zeros(nyrs)
for year in range(syr + 1, endyr):
wage_growth_rates[year - syr] = (record.BF.AWAGE[year] /
record.BF.AWAGE[year - 1] - 1)

# check that blowup rates are same as default wage growth rates
wage_growth_rates = np.round(wage_growth_rates, 4)
assert_array_equal(wage_growth_rates[1:], policy._wage_growth_rates[1:-1])


def test_csv_input_vars_md_contents(tests_path):
"""
Check CSV_INPUT_VARS.md contents against Records.USABLE_READ_VARS
Expand Down