def calcIDAdjustment(Corp, eta=0.4): """ Calculates the adjustment factors for the corporate and noncorporate debt and interest. eta: retirement rate of existing debt """ # Create Asset object asset1 = Asset(data1.btax_defaults, Corp) asset1.calc_all() # Get asset forecast forecast = asset1.get_forecast() # Create Debt object debt1 = Debt(data1.btax_defaults, forecast, corp=Corp) debt1.calc_all() # Get unscaled net interest deduction NID_gross = debt1.NID[38:54] # Get net interest deduction from historical IRS data if Corp: NID_irs = np.array(data1.debt_data_corp['NID_IRS'])[38:54] else: NID_irs = np.array(data1.debt_data_noncorp['ID_Scorp'][38:54] + data1.debt_data_noncorp['ID_sp'][38:54] + data1.debt_data_noncorp['ID_partner'][38:54]) NID_scale = sum(NID_irs / NID_gross) / 16. return NID_scale
def calcDepAdjustment(corp): """ Calculates the adjustment factor for assets, depreciation and investment corp: indicator for whether corporate or noncorporate data """ # Create Asset object asset1 = Asset(data1.btax_defaults, corp) asset1.calc_all() # Get unscaled depreciation for all years totalAnnualDepreciation = asset1.calcDep_allyears() ##### depreciation_data = copy.deepcopy(data1.depreciationIRS_data) depreciation_data['dep_model'] = totalAnnualDepreciation[40:54] if corp: depreciation_data['scale'] = (depreciation_data['dep_Ccorp'] / depreciation_data['dep_model']) else: depreciation_data['scale'] = ( (depreciation_data['dep_Scorp'] + depreciation_data['dep_sp'] + depreciation_data['dep_partner']) / depreciation_data['dep_model']) adj_factor = (sum(depreciation_data['scale']) / len(depreciation_data['scale'])) return adj_factor