Hawkes Processes for Portfolio Rollups

9/14/2025

Hawkes processes began in seismology (aftershocks after a quake) and now live happily in finance and operations. They are cousins of Poisson processes: same idea of random arrivals, but with memory. Finance uses them for order arrivals, clustered jumps, and default contagion. In private equity they are a natural toy for add-on waves and capital-call bunching.

Why Hawkes for private equity

Event = a deal that triggers a capital call. A platform tends to beget add-ons for a while. That is self-excitation.

PE translation

  • mu: baseline platform rate (platforms per year) when nothing is clustering.
  • eta: branching ratio. Expected add-ons per platform is approx eta / (1 - eta).
    • sanity check: eta = 0.50 -> ~1 add-on per platform; 0.67 -> ~2; 0.75 -> ~3.
  • halfLife: how quickly the add-on impulse halves. If halfLife = 0.5 years, the median delay from a platform to a given add-on is ~6 months.
  • lambda_bar = mu / (1 - eta): long-run deal pace including add-ons.

What you can answer with this page

  • Liquidity: how bunched quarterly calls get at a fixed long-run pace.
  • Resourcing: how many quarters in a row might be busy for IC, diligence, and portfolio onboarding.
  • Strategy fit: whether a roll-up thesis implies waves of add-ons (high eta) versus a steadier, Poisson-like pace (low eta).

Definition

Let events occur at times t_i. The conditional intensity is

λ(t)=μ+ti<tαeβ(tti).\lambda(t) = \mu + \sum_{t_i < t} \alpha e^{-\beta (t - t_i)}.

  • mu is the baseline rate.
  • Each event adds alpha; the boost then decays back toward mu at rate beta.
  • The branching ratio is eta = alpha / beta. Stability requires eta < 1.

Two facts that matter in practice:

  • Stationary average rate: λˉ=μ/(1η)\bar{\lambda} = \mu / (1 - \eta).
  • In the stationary regime, E[N(0,T)]=λˉTE[N(0,T)] = \bar{\lambda} T. In a finite simulation that starts at t = 0 from baseline, treat this as an approximation for small T.

Controls

Branching ratio eta (0 none ... &leq; 1 strong)

Derived

alpha = 0.693 beta = 1.386

lambda_bar = 4.000 events/unit

E[N(0,T)] ~= 20.0 events

Approx add-ons per platform = 1.00

What self-excitation looks like

After a platform, the add-on impulse boosts intensity then fades. Several nearby events stack, creating bursts. The plot includes mu and lambda_bar so you can see where intensity sits relative to baseline and long-run average.

Single path view

After a platform, the add-on impulse boosts intensity then decays back to mu with half-life 0.5. The dashed lines mark baseline mu and long-run lambda_bar.

01234501234
lambda_barmu (baseline)lambda(t)EventsHawkes intensity and eventstimelambda(t)

Many paths, same dials

Slide eta from 0 toward 1 and the cloud changes shape: more clumps, longer aftershocks. Burn-in is used under the hood so paths look close to stationary even on short horizons.

Platforms beget add-ons: clustering rises with eta

Hold the long-run pace fixed at lambda_bar = mu/(1 - eta). As eta rises, a platform is more likely to trigger nearby add-ons, so deals arrive in bursts. Read: higher eta = more add-ons per platform and more bunched quarters.

0123450123456789101112131415161718192021
Raster of event times across simulated pathstimepath

Platform plus add-ons, in cash terms

Read each event as a deal that triggers a capital call. A platform increases the rate of add-ons for a while, so calls bunch. Hawkes captures this with two dials:

  • eta sets how many add-ons a platform tends to spawn: approx add-ons per platform = eta / (1 - eta).
  • halfLife sets how long that add-on wave lasts before fading.

We compare a Hawkes path to a Poisson path with the same long-run pace lambda_bar. Same average speed, different traffic jam risk.

PE: same average pace, very different liquidity risk
02400.511.522.53
Hawkes (self-exciting)Poisson (uninformative)Capital calls per bin: Hawkes vs Poisson (same average rate)timecalls per bin (proxy for $ calls)

Event = a deal that triggers a capital call. A platform raises the add-on rate for a while, so calls bunch. Hawkes models this with branching ratio eta and decay half-life. Poisson has the same long-run pace lambda_bar = mu/(1 - eta) but no clustering.

Bunching metric: share of calls that land in the busiest 20 percent of quarters.

This path — Hawkes: 41.7% vs Poisson: 45.5%

Across 20 sims

Busiest-20 share p50 — Hawkes 57% vs Poisson 48%

Busiest-20 share p90 — Hawkes 64% vs Poisson 57%

Peak quarter calls p50 — Hawkes 3 vs Poisson 3

Peak quarter calls p90 — Hawkes 5 vs Poisson 4

Convert counts to dollars by multiplying by an average call size or a draw schedule. The relative uplift from Hawkes vs Poisson is unchanged by that scaling.

Why this matters

  • Liquidity planning: clustering raises peak quarterly calls without changing the average. That can force a credit line draw or a capital-call notice on awkward dates.
  • Operating load: clustered investments mean clustered onboarding and board work. Your IC calendar will feel it.

Calibrating to your firm

Minimal viable calibration from timestamps:

  1. Build an event list of deals that trigger calls. Mark platforms if you want the platform vs add-on breakdown.
  2. Maximize the Hawkes log-likelihood for mu, alpha, beta, then compute eta = alpha / beta.
  3. Sanity-check:
    • avg add-ons per platform about equals eta / (1 - eta),
    • halfLife roughly matches the median spacing from platforms to add-ons,
    • a residual QQ plot against Exp(1) sits near the diagonal.

If calls per quarter are capped by mechanics, simulate Hawkes times then apply a simple queue or cap before converting to dollars.


Connections you can use

  • Discrete-time: bin counts by quarter and fit a count ARMA model as a coarse proxy. It will reflect the same clustering signal as Hawkes.
  • Branching view: immigrants are platforms at rate mu; each deal spawns Poisson(eta) children with exponential delays. Expected family size is 1 / (1 - eta).
  • Special case: eta = 0 reduces to Poisson. That is the dial for a memoryless world.
  • Finance cousins: order arrivals, clustered jumps, and default contagion use the same math. The roll-up thesis is a gentler twin.

Wrap

Hawkes processes are simple to explain and useful for planning. They keep the average pace but make clustering explicit. For private equity that means clearer thinking about waves of deals, capital-call bunching, and the operational knock-on effects.