def taxcalc_results(start_year, reform_dict, itax_clp, ptax_clp): """ Use taxcalc package on this computer to compute aggregate income tax and payroll tax revenue difference (between reform and current-law policy) for ten years beginning with the specified start_year using the specified reform_dict dictionary and the two specified current-law-policy results dictionaries. Return two aggregate tax revenue difference dictionaries indexed by calendar year. """ pol = Policy() pol.implement_reform(reform_dict) calc = Calculator(policy=pol, records=Records(data=PUF_PATH), verbose=False) calc.advance_to_year(start_year) nyears = NUMBER_OF_YEARS adts = list() for iyr in range(-1, nyears - 1): calc.calc_all() adts.append(create_diagnostic_table(calc)) if iyr < nyears: calc.increment_year() adt = pd.concat(adts, axis=1) # note that adt is Pandas DataFrame object itax_ref = adt.xs('Ind Income Tax ($b)').to_dict() ptax_ref = adt.xs('Payroll Taxes ($b)').to_dict() itax_diff = {} ptax_diff = {} for year in itax_ref: itax_diff[year] = round(itax_ref[year] - itax_clp[year], 1) ptax_diff[year] = round(ptax_ref[year] - ptax_clp[year], 1) return (itax_diff, ptax_diff)
def taxcalc_clp_results(): """ Use taxcalc package on this computer to compute aggregate income tax and payroll tax revenues for years beginning with MIN_START_YEAR and ending with MAX_START_YEAR+NUMBER_OF_YEARS-1 for current-law policy. Return two aggregate revenue dictionaries indexed by calendar year. """ calc = Calculator(policy=Policy(), records=Records(data=PUF_PATH), verbose=False) nyears = MAX_START_YEAR + NUMBER_OF_YEARS - MIN_START_YEAR - 1 adts = list() for iyr in range(-1, nyears - 1): calc.calc_all() adts.append(create_diagnostic_table(calc)) if iyr < nyears: calc.increment_year() adt = pd.concat(adts, axis=1) # note that adt is Pandas DataFrame object return (adt.xs('Ind Income Tax ($b)').to_dict(), adt.xs('Payroll Taxes ($b)').to_dict())
def test_Calculator_create_diagnostic_table(records_2009): calc = Calculator(policy=Policy(), records=records_2009) calc.calc_all() adt = create_diagnostic_table(calc) assert isinstance(adt, pd.DataFrame)
def test_Calculator_create_diagnostic_table(cps_subsample): recs = Records.cps_constructor(data=cps_subsample) calc = Calculator(policy=Policy(), records=recs) calc.calc_all() adt = create_diagnostic_table(calc) assert isinstance(adt, pd.DataFrame)