function formula(loss_ratio, lob) {
const loss_ratio_limit = data.find(d => d.LOB === lob).LossRatioLimit;
const wal = data.find(d => d.LOB === lob).WAL;
const total_yield = data.find(d => d.LOB === lob).TotalInvYield;
const risk_capital =
(loss_ratio_limit - loss_ratio + loss_ratio_limit * total_yield) /
(1 + wal * investor_target_return);
const risk_premium = loss_ratio_limit - loss_ratio - risk_capital;
const ceding_commission = 1 - (loss_ratio + risk_premium);
return {
risk_capital_pct: risk_capital,
risk_premium_pct: risk_premium,
ceding_commission_pct: ceding_commission,
ceding_commission_upper_limit_pct:
Math.round((ceding_commission + 0.015) * 100, 0) / 100,
ceding_commission_lower_limit_pct:
Math.round((ceding_commission - 0.015) * 100, 0) / 100
};
}