@@ -1272,6 +1272,12 @@ void SimmCalculator::calcAddMargin(const SimmSide& side, const NettingSetDetails
12721272 // Add to aggregation at portfolio level
12731273 add (nettingSetDetails, regulation, ProductClass::All, RiskClass::All, MarginType::All, " All" , pcmMargin, side,
12741274 overwrite);
1275+ CrifRecord spRecord = it;
1276+ if (side == SimmSide::Call)
1277+ spRecord.collectRegulations = regulation;
1278+ else
1279+ spRecord.postRegulations = regulation;
1280+ simmParameters_.addRecord (spRecord);
12751281 }
12761282 }
12771283
@@ -1292,6 +1298,12 @@ void SimmCalculator::calcAddMargin(const SimmSide& side, const NettingSetDetails
12921298 // Add to aggregation at portfolio level
12931299 add (nettingSetDetails, regulation, ProductClass::All, RiskClass::All, MarginType::All, " All" , fixedMargin, side,
12941300 overwrite);
1301+ CrifRecord spRecord = it;
1302+ if (side == SimmSide::Call)
1303+ spRecord.collectRegulations = regulation;
1304+ else
1305+ spRecord.postRegulations = regulation;
1306+ simmParameters_.addRecord (spRecord);
12951307 }
12961308
12971309 // Third, add percentage of notional amounts IM, using "AddOnNotionalFactor"
@@ -1326,6 +1338,12 @@ void SimmCalculator::calcAddMargin(const SimmSide& side, const NettingSetDetails
13261338 add (nettingSetDetails, regulation, ProductClass::All, RiskClass::All, MarginType::All, " All" ,
13271339 notionalFactorMargin,
13281340 side, overwrite);
1341+ CrifRecord spRecord = it;
1342+ if (side == SimmSide::Call)
1343+ spRecord.collectRegulations = regulation;
1344+ else
1345+ spRecord.postRegulations = regulation;
1346+ simmParameters_.addRecord (spRecord);
13291347 }
13301348 }
13311349}
0 commit comments