Industry: Legal Product: ModelRisk Application: Contract Risk Assessment
A technology company's legal team holds a portfolio of 40 high-value commercial contracts and a $60M reserve set aside against breach, penalty, and dispute losses. Run the contracts independently — each with its own small chance of going wrong — and the maths is comforting: most years nothing much happens, the aggregate loss hovers near its mean, and $60M looks like generous cover. The deterministic spreadsheet that sums the expected loss of each contract agrees, returning an annual exposure around $24M.
That comfort is an artefact of an assumption no general counsel should make: that contracts fail independently. They do not. A recession, a stressed counterparty sector, or a supply-chain shock pushes many counterparties toward default in the same year. Once that shared driver is in the model, the aggregate loss develops a fat right tail the independent sum cannot produce. The simulation puts the 99% VaR at $135.7M — more than double the reserve — and the probability that annual losses exceed the $60M reserve at 10.7%, better than one year in ten. The point estimate did not lie about the average. It was silent about the tail, and the tail is the entire reason a reserve exists.
Each contract is modelled as a frequency-severity pair, with parameters that vary across the book:
Bernoulli
LogNormal
The portfolio loss in any simulated year is the sum over contracts of trigger x severity. If that were the whole model, the central limit theorem would quietly flatten the aggregate into a thin near-Normal hump — 40 small independent risks averaging each other out — and badly understate the reserve a regulator or auditor would demand.
trigger x severity
The fix is a shared market-stress factor: one standard-normal draw per simulated year, common to every contract, representing the health of the economy and the counterparty sector. Each contract loads on it with its own sensitivity (drawn 0.6–1.4), and the loading is applied in log-odds space and squeezed back through a logistic so every breach probability stays a valid number in [0, 1]. In a stressed year the factor lifts every contract's breach probability together — so breaches cluster, and a bad year is one where many contracts fail at once rather than just one.
This is the move that creates the tail, and the model verifies it empirically rather than asserting it:
The headline distribution makes the asymmetry plain. Most years cluster near the $24.4M mean, but the tail runs far to the right: VaR 95% = $84.2M, VaR 99% = $135.7M, and the expected shortfall beyond the 99% point — the average of the worst 1% of years — is $167.0M. The dotted line marks the $60M reserve, and the simulation reads off the answer that matters directly: P(loss > $60M reserve) = 10.7%.
The cleanest way to size a reserve is to plot the probability of exceeding every possible loss level — and to overlay what the same portfolio would look like if breaches really were independent:
The two curves share the same body but diverge dramatically in the tail. At the $60M reserve the correlated model exceeds it 10.7% of the time. Push out to a $100M loss and the gap is stark: the shared-stress portfolio breaches $100M 3.0% of years, the independent portfolio only 0.4% — correlation multiplies the tail risk by roughly 7x. A reserve sized on the independent (dashed) curve would be set against a one-in-250-year event that is really a one-in-33-year event. The VaR markers sit where they should: 95% at $84M, 99% at $136M, both far beyond the reserve a naive sum would have justified.
Shifting the mean of the shared stress factor sweeps the portfolio through a calm, baseline, and stressed credit environment — a genuine re-simulation at each setting, not a rescaling:
In a stressed cycle the P95 alone ($135M) exceeds the baseline's P99 — the same 40 contracts, the same severities, simply more synchronized. This is the scenario a provisioning committee needs to see: the reserve that covers 95% of baseline years covers barely 90% of stressed ones.
Ranking each contract's loss — plus the shared stress factor — by its rank-correlation contribution to the aggregate spread answers where the risk concentrates:
The most important "input" is not any one contract but the common stress factor — the very dependence the independent model threw away. No amount of renegotiating a single agreement addresses it; only portfolio-level measures (diversifying counterparties across sectors, raising the reserve, or buying a portfolio-level guarantee) move the number that matters.
The legal team arrived with a $60M reserve and a $24M expected-loss spreadsheet that made it look ample. The simulation showed the reserve is breached 10.7% of years, that true 99% VaR is $135.7M with a $167.0M expected shortfall beyond it, and — most importantly — that 58% of that tail comes from correlation the independent model could not see, with the shared stress factor the dominant driver at ±$21.8M. The team could now size the reserve against the 99% VaR rather than the mean, and could justify portfolio-level diversification as the only lever that touches the top risk driver.
Monte Carlo turns contract risk from "what is the average exposure?" into "how correlated are our counterparties, and how much reserve does that correlation actually demand?" — and the answer, here, is more than double what the average suggested.