Published
Edited
Dec 11, 2020
1 star
Insert cell
Insert cell
Insert cell
Insert cell
data = d3.csvParse(csv).map(d => ({
...d,
WAL: parseFloat(d.WAL),
TotalInvYield: parseFloat(d.TotalInvYield),
LossRatioLimit: d.LossRatioLimit / 100
}))
Insert cell
lobs = data.map(d => d.LOB)
Insert cell
investor_target_return = 0.11
Insert cell
// wal = data.find(d => d.LOB === lob).WAL
Insert cell
// total_yield = data.find(d => d.LOB === lob).TotalInvYield
Insert cell
Insert cell
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
};
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
ceding_commission = formula(loss_ratio, lob)
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more