Quant Memo
Advanced

The Renewal Reward Theorem

A result about processes that repeat in cycles — each cycle earning some reward and taking some random length of time — showing that the long-run average reward per unit time simply equals the average reward per cycle divided by the average cycle length.

Prerequisites: The Poisson Process, The Law of Large Numbers

An execution algorithm posts a passive order, waits until either it fills or a timer expires and it reposts, and repeats this cycle continuously through the trading day. Each cycle takes a random amount of time (some orders fill fast, some sit the full timeout) and earns a random reward (filled orders capture the spread; timed-out reposts cost a little in missed opportunity). You want to know the algorithm's average profit per minute over the whole day. Tracking every individual cycle and its exact timing is possible but painful — you'd need to know the full joint distribution of cycle lengths and rewards together. The renewal reward theorem says you don't need any of that: you only need two much simpler averages, computed independently, and you can just divide one by the other.

An analogy: a fisherman's average catch

A fisherman goes out on trips of random length — some trips are quick, some run long — and comes back with a random-sized catch each time. Over many trips, you want to know his average catch per hour fished, not per trip. You don't need to track which specific long trips had big catches and which short trips had small ones, or worry about how catch size and trip length are correlated trip-by-trip. You just need two separate numbers: his average catch per trip, and his average trip length. Divide the first by the second, and — as long as he keeps going out on similar, independent trips indefinitely — that ratio settles down to his true long-run rate of catch per hour, regardless of how wildly any single trip's catch or duration varied.

The theorem, one symbol at a time

Consider a process that runs in a sequence of cycles (renewal periods), where each cycle restarts the process from the same conditions — cycle nn has length TnT_n (a random variable) and earns reward RnR_n (also random), and different cycles are independent and identically distributed. Let R(t)R(t) be the total reward accumulated up to time tt. The renewal reward theorem states:

limtR(t)t=E[R]E[T](with probability 1),\lim_{t \to \infty} \frac{R(t)}{t} = \frac{\mathbb{E}[R]}{\mathbb{E}[T]} \quad \text{(with probability 1)},

where E[R]\mathbb{E}[R] is the expected reward per cycle and E[T]\mathbb{E}[T] is the expected cycle length. In plain English: the long-run average reward per unit time equals the average reward earned in one cycle, divided by the average time one cycle takes — a single clean ratio, even though individual cycles can vary enormously in both their length and their reward, and even though a longer cycle might tend to earn more or less reward than a shorter one. The theorem holds as long as cycles are independent repeats of the same underlying random mechanism; it doesn't require reward and cycle length to be independent within a cycle, only that each full (length, reward) pair is drawn fresh and identically for every cycle.

The intuition for why the correlation within a cycle doesn't matter: over many cycles, the total reward accumulated is (by the law of large numbers) close to nE[R]n \cdot \mathbb{E}[R] after nn cycles, and the total time elapsed is close to nE[T]n \cdot \mathbb{E}[T]. Dividing these two large-number approximations, the nn cancels, leaving E[R]/E[T]\mathbb{E}[R]/\mathbb{E}[T] regardless of cycle-by-cycle noise.

Worked example 1: the execution algorithm by hand

Suppose historical data on the algorithm's cycles shows: 60% of cycles fill quickly, averaging 8 seconds and earning $4 (spread capture); 40% of cycles time out, averaging 20 seconds and earning −$1 (opportunity cost). The expected reward per cycle:

E[R]=0.6×4+0.4×(1)=2.40.4=2.0  (dollars).\mathbb{E}[R] = 0.6 \times 4 + 0.4 \times (-1) = 2.4 - 0.4 = 2.0 \; (\text{dollars}) .

The expected cycle length:

E[T]=0.6×8+0.4×20=4.8+8=12.8  (seconds).\mathbb{E}[T] = 0.6 \times 8 + 0.4 \times 20 = 4.8 + 8 = 12.8 \; (\text{seconds}) .

By the renewal reward theorem, the long-run average profit rate is

E[R]E[T]=2.012.80.156  dollars per second9.38 per minute.\frac{\mathbb{E}[R]}{\mathbb{E}[T]} = \frac{2.0}{12.8} \approx 0.156 \; \text{dollars per second} \approx 9.38 \text{ per minute} .

That is, roughly $9.38 per minute.

Notice this required no simulation of the actual sequence of fills and timeouts — just the two average building blocks, combined by a single division, to get a rate you can compare directly against a different execution strategy's rate.

Worked example 2: a maintenance/replacement cycle

A trading server component fails and gets replaced at random intervals averaging 100 days, and each replacement (including the value of downtime avoided by proactive servicing) costs on average $500 in parts and technician time. What's the long-run average maintenance cost per day?

E[R]E[T]=500100 days=5 per day.\frac{\mathbb{E}[R]}{\mathbb{E}[T]} = \frac{500}{100 \text{ days}} = 5 \text{ per day} .

That is, $500 over 100 days works out to $5 per day.

Now suppose an alternative maintenance policy replaces the component proactively every 60 days regardless of failure, at a lower cost of $350 per cycle (planned replacements are cheaper than emergency ones) but shorter cycles:

350605.83 per day.\frac{350}{60} \approx 5.83 \text{ per day} .

That is, roughly $5.83 per day.

Even though the proactive policy has a smaller cost per event ($350 vs $500), its shorter average cycle length makes its long-run rate higher ($5.83/day vs $5.00/day) — the reactive policy is actually cheaper on a per-day basis. This is exactly the kind of comparison renewal reward makes trivial: convert any repeating cost-or-reward process into a single rate, and compare rates directly, rather than trying to compare "cost per event" figures that are measured over different cycle lengths and therefore not comparable on their own.

time cycle 1, R=4 cycle 2, R=-1 cycle 3, R=4 cycle 4, R=4 R(t)/t → E[R]/E[T]
Each cycle has its own random length and reward, but the running average reward per unit time — the rising dashed curve — converges to the single ratio E[R]/E[T] regardless of how much individual cycles vary.
\$500 reactive: cost/cycle \$5.00/day reactive: rate \$350 proactive: cost/cycle \$5.83/day proactive: rate
The cheaper-per-cycle policy (proactive, \$350) actually has the higher long-run daily rate once cycle length is folded in — comparing rates via L = E[R]/E[T] avoids the trap of comparing per-event costs measured over different cycle lengths.

What this means in practice

Renewal reward is the standard tool for converting any repeating, cycle-based process into a single comparable long-run rate: execution algorithms that repost, market-making quote-and-requote cycles, server maintenance schedules, or a strategy that enters and exits positions in a repeated pattern. It's the theoretical justification behind Little's Law (see Little's Law) and behind computing an execution algorithm's steady-state cost or fill rate from historical cycle statistics rather than full trajectory simulation. The two numbers you need — average reward per cycle and average cycle length — are usually far easier to estimate reliably from historical data than the full joint process, which is exactly why the theorem is useful in practice rather than just in theory.

For any process that repeats in independent, identically distributed cycles, the long-run average reward per unit time equals the expected reward per cycle divided by the expected cycle length — a single ratio of two simple averages that holds no matter how variable individual cycles are, or how reward and length are correlated within a cycle.

The classic mistake is applying renewal reward to a process whose cycles aren't actually independent and identically distributed — for instance, an execution algorithm whose fill probability drifts over the trading day as liquidity changes, making early-day and late-day cycles systematically different. In that case there is no single long-run rate to converge to, and averaging historical cycles into one E[R]/E[T]\mathbb{E}[R]/\mathbb{E}[T] ratio silently blends together regimes that behave differently, producing a number that describes no actual period well. Check that the cycle-generating mechanism is genuinely stable before trusting a renewal-reward rate.

Related concepts

Practice in interviews

Further reading

  • Ross, Introduction to Probability Models, ch. 7
  • Wolff, Stochastic Modeling and the Theory of Queues, ch. 3
ShareTwitterLinkedIn