Skip to content

Instantly share code, notes, and snippets.

@18182324
Created April 12, 2021 11:47
Show Gist options
  • Save 18182324/ec0428b1359445e3a9e0b94fe38797b8 to your computer and use it in GitHub Desktop.
Save 18182324/ec0428b1359445e3a9e0b94fe38797b8 to your computer and use it in GitHub Desktop.
def CalculateAccruals(self, current, previous):
accruals = []
for stock_data in current:
try:
prev_data = None
for x in previous:
if x.Symbol == stock_data.Symbol:
prev_data = x
break
delta_assets = float(stock_data.FinancialStatements.BalanceSheet.CurrentAssets.Value)-float(prev_data.FinancialStatements.BalanceSheet.CurrentAssets.Value)
delta_cash = float(stock_data.FinancialStatements.BalanceSheet.CashAndCashEquivalents.Value)-float(prev_data.FinancialStatements.BalanceSheet.CashAndCashEquivalents.Value)
delta_liabilities = float(stock_data.FinancialStatements.BalanceSheet.CurrentLiabilities.Value)-float(prev_data.FinancialStatements.BalanceSheet.CurrentLiabilities.Value)
delta_debt = float(stock_data.FinancialStatements.BalanceSheet.CurrentDebt.Value)-float(prev_data.FinancialStatements.BalanceSheet.CurrentDebt.Value)
delta_tax = float(stock_data.FinancialStatements.BalanceSheet.IncomeTaxPayable.Value)-float(prev_data.FinancialStatements.BalanceSheet.IncomeTaxPayable.Value)
dep = float(stock_data.FinancialStatements.IncomeStatement.DepreciationAndAmortization.Value)
avg_total = (float(stock_data.FinancialStatements.BalanceSheet.TotalAssets.Value)+float(prev_data.FinancialStatements.BalanceSheet.TotalAssets.Value))/2
stock_data.bs_acc = ((delta_assets-delta_cash)-(delta_liabilities-delta_debt-delta_tax)-dep)/avg_total
accruals.append(stock_data)
except:
pass
return accruals
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment