PSLmodels / Business-Taxation

USA Corporate and Pass-Through Business Tax Model
11 stars 10 forks source link

New AMT model #42

Closed codykallen closed 6 years ago

codykallen commented 6 years ago

This PR creates a new AMT model, based on the methodology in the document linked below. This new model uses stochastic transition probabilities to map shifts between AMT and non-AMT status, from which we can model use of the Prior Year Minimum Tax Credit. This change allows the eliminated of the amt_repeal special parameter, as the change in PYMTC availability is now mapped internally to the AMTmodel function.

New AMT & PYMTC.docx

This PR also changes the depreciation results very slightly. I discovered that I was using the wrong IRS corporate depreciation data. I previously was using depreciation for form 1120 corporations (C corporations), but I should have been using the series for 1120, 1120-A, 1120-F, 1120-L and 1120-PC. All of these forms are subject to the corporate income tax, but form 1120 claims almost all depreciation deductions; consequently, this only changes the depreciation results very slightly.

@andersonfrailey @hdoupe @martinholmer @Abraham-Leventhal @lucassz

codykallen commented 6 years ago

If there are no objections, I expect to merge this Thursday morning.

martinholmer commented 6 years ago

@codykallen, I admit I haven't had the time to follow in detail what you've been doing with BRC since our meeting in DC, but I think we all had a pretty clear understanding of where we were going. So, I'm confident that the changes you've been making are sensible and will make it easier to integrate BRC into Tax-Calculator. Thanks again for all the good work on this.

codykallen commented 6 years ago

The new commit fixes the calculation of beta in the AMTmodel() function. The previous version rescaled both alpha and beta (the stochastic transition rates) based on the change in the fraction of firms on the AMT, but that is inconsistent with the underlying equations. The recent commit rescales alpha and recalculates beta based on the new values of alpha and theta.