Closed martinholmer closed 1 year ago
Thanks @martinholmer. In #1485 I introduced a bug that kept the refundable CTC capped at $1,500 in 2021. I've fixed that in #1489, which passes your test and adds unit tests for most CTC variables. It's not quite working fully yet but I'll finish and merge it tomorrow.
@MaxGhenis, I'm glad you were able to identify the problem. Your quick response is impressive given you are on the road with so many other things going on.
Almost three weeks ago @MaxGhenis said in issue #1488:
In PR #1485 I introduced a bug that kept the refundable CTC capped at $1,500 in 2021. I've fixed that in PR #1489, which passes your [issue #1488] test and adds unit tests for most CTC variables.
@MaxGhenis, can you cherry pick just the #1489 changes that you describe above, put them into a new PR, and merge that new PR? The problem in issue #1488 is blocking progress on both US and MO validation testing as described in issue #993.
Unfortunately I tried cherrypicking the core fix into #1524, but it didn't immediately work. I think given it involves integrating changes from policyengine-core, we're better off finishing off #1489 (currently Nikhil and my main focus). But if you see a simpler interim solution please let us know.
@MaxGhenis, Feel free to ignore my suggestion. It was offered with the thought that it could be easier than resolving whatever are the problems with PR #1489. But if not, keep working on #1489.
Pull request #1485, which generated version 0.177.0, causes unintended changes in 2021 US tax liability for tax units with low or zero income tax liability before credits. Essentially the code refactoring in #1485 has rendered the 2021 CTC as not fully refundable, so many low income tax units have higher taxes in version 0.177.0 than they had in version 0.176.0. Also, the 0.176.0 version was in agreement with TAXSIM35 for 2021 low income tax units, but now that agreement has been lost.
Here is a simple 2021 test case that shows the new differences with TAXSIM35:
And here are the summary results for that test case:
And finally, here is part of the trace output generated by the test: