diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29b..0a2c86f8 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Calibration of the QBID tax expenditure. diff --git a/policyengine_us_data/datasets/puf/puf.py b/policyengine_us_data/datasets/puf/puf.py index 045e142d..9b73a148 100644 --- a/policyengine_us_data/datasets/puf/puf.py +++ b/policyengine_us_data/datasets/puf/puf.py @@ -204,7 +204,9 @@ def preprocess_puf(puf: pd.DataFrame) -> pd.DataFrame: # Ignore cmbtp (estimate of AMT income not in AGI) # Ignore k1bx14s and k1bx14p (partner self-employment income included in partnership and S-corp income) qbi = np.maximum(0, puf.E00900 + puf.E26270 + puf.E02100 + puf.E27200) - W2_WAGES_SCALE = 0.16 + # 10.1% passthrough rate for W2 wages hits the JCT tax expenditure target for QBID + # https://gist.github.com/nikhilwoodruff/262c80b8b17935d6fb8544647143b854 + W2_WAGES_SCALE = 0.101 puf["w2_wages_from_qualified_business"] = qbi * W2_WAGES_SCALE # Remove aggregate records diff --git a/policyengine_us_data/utils/loss.py b/policyengine_us_data/utils/loss.py index 7f1df9af..76884a03 100644 --- a/policyengine_us_data/utils/loss.py +++ b/policyengine_us_data/utils/loss.py @@ -394,6 +394,7 @@ def _add_tax_expenditure_targets( "medical_expense_deduction": 11.4e9, "charitable_deduction": 65.301e9, "interest_deduction": 24.8e9, + "qualified_business_income_deduction": 63.1e9, } def make_repeal_class(deduction_var):