aboutsummaryrefslogtreecommitdiffstats
path: root/python/monthly_interest.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/monthly_interest.py')
-rw-r--r--python/monthly_interest.py43
1 files changed, 37 insertions, 6 deletions
diff --git a/python/monthly_interest.py b/python/monthly_interest.py
index aadc36f1..aed4f869 100644
--- a/python/monthly_interest.py
+++ b/python/monthly_interest.py
@@ -13,6 +13,9 @@ import pandas as pd
from collections import defaultdict
import shutil
+from interest_statement import export_data
+from dateutil.relativedelta import relativedelta
+
logger = logging.getLogger(__name__)
@@ -97,7 +100,6 @@ def get_GS(g):
for e in g:
if "TOTAL INTEREST" in e.text:
next(g)
- next(g)
return float(next(g).text.replace("USD", "").replace(",", ""))
@@ -106,9 +108,22 @@ def get_MS(path):
return -round(df["LOCAL_ACCRUAL"].sum(), 2)
+def get_BAML(g):
+ for e in g:
+ if "Net interest Amount" in e.text:
+ return -float(next(g).text.replace("(", "-").replace(")", ""))
+
+
+def start_end(year, month):
+ start = datetime.date(year, month, 1)
+ end = start + relativedelta(months=1)
+ end -= datetime.timedelta(days=1)
+ return start, end
+
+
def get_interest(delete=False):
interest_amounts = defaultdict(float)
- counterparties = ["BNP", "CITI", "CS", "GS", "MS"]
+ counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML"]
for cp in counterparties:
try:
func = globals()[f"get_{cp}"]
@@ -134,16 +149,21 @@ def get_interest(delete=False):
)
except FileNotFoundError:
pass
- return pd.DataFrame(interest_amounts, index=[0]).T
+ return pd.DataFrame(interest_amounts, index=[0]).T.rename(
+ index={"BAML": "BAML_ISDA"}, columns={0: "monthly_statement"}
+ )
em = ExchangeMessage()
-counterparties = ["BNP", "CITI", "CS", "GS", "MS"]
+counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML"]
parser = argparse.ArgumentParser(description="determine sender destination")
parser.add_argument("start")
-parser.add_argument("end")
+parser.add_argument("end", default=datetime.date.today())
parser.add_argument("--auto", action="store_true", help="for automation or for monthly")
+parser.add_argument(
+ "--delete", action="store_true", default=True, help="for automation or for monthly"
+)
args = parser.parse_args()
for cp in counterparties:
@@ -153,4 +173,15 @@ for cp in counterparties:
download_messages(em, cp, args.start, args.end)
if args.auto:
- df = get_interest(delete=args.auto)
+ df = get_interest(delete=args.delete)
+ start, end = start_end(
+ datetime.datetime.today().year, datetime.datetime.today().month - 1
+ )
+ new_df = pd.merge(
+ export_data(start, end).groupby("broker").sum(),
+ df,
+ how="outer",
+ left_index=True,
+ right_index=True,
+ )
+ new_df["difference"] = new_df["amount"] - new_df["monthly_statement"]