Tax-Calculator
Tax-Calculator copied to clipboard
Introduce tax offset (employer side payroll) into Tax-Calc
Changes of the employer side Payroll tax (OASDI ~ old age survivors disabilities, and HI ~ hospital insurance) have an offset effect to the Income and Payroll tax revenue in this the JCT paper
Logic of the paper is under the assumption that total compensation from the employer to the employee will remain the same at all time, then the increase of payroll tax on the employer side will cause the decrease of wage. (employer would give less wage to the employee to balance off the raising tax they paid in order to keep the total compensation they offer to the employee the same)
The offset rate ranges from 10% to 20% depending on the income brackets, when calculating the income and payroll tax revenue.
To take consideration of this employer side payroll tax offset into Tax-Calculator, it will be necessary to
- Add the parameters of employer side payroll tax and the employee side payroll tax (right now there is only one parameter as the total payroll tax). So to speak, add FICA_mc_trt_employer and FICA_mc_trt_employee instead of the single parameter FICA_mc_trt; add FICA_ss_trt_employer and FICA_ss_trt_employee instead of the single parameter FICA_ss_trt
- Implement the offset effect: increase of FICA_mc_trt_employer or FICA_ss_trt_employer will cause of the decrease of wage e00200
To create an offset function (probably in calculator.py; the logic is to change the wage variable 'e00200' in input variable when there is reform including the employer side payroll tax parameter) I may need to add more tool functions:
- add policy parameters of employer side and employee side payroll tax rate
- add a function, as an update of the records, to write the changed value to input record class (probably in records.py)
@jdebacker any suggestions for this process?
@bodiyang I would do this in two PRs.
Do (1) in the first PR, just creating new parameters and making sure that all tests still pass (results should be the same, you are just splitting the current "combined" variables.
Then, between (1) and (2), you may want to do an intermediate step, which is creating/modifying functions for the _payroll
and _combined
variables to allow one to get values for the employer and employee sides separately. I'm not 100% sure this is the way to go, but depending how you implement (2), it may be helpful.
Another thought - after step (1), you can consider implementing (2) via the Behavioral Responses package. That package may already have functions that you can leverage for updating records, etc.
Issue #2665 has been resolved by the merge of pull request #2753.