aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral/gs_fcm.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral/gs_fcm.py')
-rw-r--r--python/collateral/gs_fcm.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/python/collateral/gs_fcm.py b/python/collateral/gs_fcm.py
index 33d25bfd..2a0592b5 100644
--- a/python/collateral/gs_fcm.py
+++ b/python/collateral/gs_fcm.py
@@ -52,13 +52,20 @@ def collateral(d: datetime.date, positions, *, engine, fund, positions_irs, **kw
else row["Pay Leg Rate/Index"],
axis=1,
)
+ _rate_index_mapping = {"1Y-USD-SOFR-COMPOUND": "SOFRRATE"}
+ df_rates["float_index"] = df_rates.apply(
+ lambda row: _rate_index_mapping[row["Receive Leg Rate/Index"]]
+ if row["Direction"] == "Pay"
+ else _rate_index_mapping[row["Pay Leg Rate/Index"]],
+ axis=1,
+ )
# Going to fix roll day at IMM for now until we have the column updated
df_rates["roll_day"] = "IMM"
df_rates = df_rates.rename(columns={"Pay Notional": "NOTIONAL"})
- df_rates = df_rates.groupby(by=["Maturity Date", "fixed_rate", "roll_day"])[
- ["NOTIONAL", "NPV (local)"]
- ].sum()
- df_rates.index.names = ["maturity_date", "fixed_rate", "roll_day"]
+ df_rates = df_rates.groupby(
+ by=["Maturity Date", "fixed_rate", "roll_day", "float_index"]
+ )[["NOTIONAL", "NPV (local)"]].sum()
+ df_rates.index.names = ["maturity_date", "fixed_rate", "roll_day", "float_index"]
df = df[df["Instrument"] == "CDS"].drop(
["Instrument", "CCP Trade ID", "Pay Notional"], axis=1
)