M8 · ECONOMIC MODELLING
The lie we told last lesson.
When we ran the Markov cohort last lesson, we made a quiet simplification and flagged it in the small print. Every cycle, we accrued the full cycle's costs and QALYs based on where patients sat at the start of that cycle — as if each patient spent the entire year frozen in their opening state, then moved all at once the instant the cycle ended.
Real patients don't do that. They relapse in March, recover in July, die in October — throughout the cycle, not on its final midnight. So the moment a model uses cycles longer than an instant, the timing of when payoffs are counted stops being a detail and starts being a small, systematic error. This lesson is about that error, why it always leans the same way, and the elegant one-line idea that fixes it.
Start-of-cycle counting overcounts.
Follow one patient. She's alive and well at the start of the year, so the model books her a full year's worth of health and cost. But she dies in March. Under start-of-cycle accounting, the model has already credited her the whole year — nine months of life she never lived.
Do that across a whole cohort and the bias is one-directional. Every patient who leaves a state partway through a cycle was counted as if they stayed the full cycle. For a "good" state like being alive or in remission, start-of-cycle accounting therefore overcounts — it systematically hands out more life-years, more QALYs, and (for costly states) more cost than actually occurred. It's not random noise that averages out; it's a consistent lean in one direction.
End-of-cycle counting undercounts.
The obvious fix is to swing the other way: count each cycle's payoffs based on who's in the state at the end of the cycle. Now our patient who died in March isn't in the "alive" state at year-end, so she's credited nothing for January to March.
That over-corrects. She did live for three months; counting her as zero throws those away. End-of-cycle accounting undercounts the good states just as systematically as start-of-cycle overcounts them. So we have two estimates that bracket the truth: one certainly too high, one certainly too low. The right answer isn't to pick one — it's to realise where the true value must lie.
It's really an integration problem.
Here's the idea that turns this from a bookkeeping trick into something you actually understand. Draw the curve of how many patients occupy a state over time — for survival, a line starting at 100% and drifting down. The quantity you want — total life-years, or QALYs — is the area under that curve.
Summing cycle by cycle is just approximating that area with rectangles, one per cycle. And now the two accounting rules snap into focus:
- Start-of-cycle uses each cycle's opening height for the whole rectangle — a left-hand rectangle. Because the curve slopes down, the left edge is the tallest point, so the rectangle pokes above the curve. Overcount.
- End-of-cycle uses the closing height — a right-hand rectangle, sitting below the curve. Undercount.
- The truth runs through the middle of each cycle. Average the opening and closing heights and your rectangle becomes a trapezium that hugs the curve almost exactly.
That average is the half-cycle correction. It isn't "adding half a cycle" anywhere — it's centring each cycle's accounting on its midpoint, which is the trapezoidal rule from calculus wearing a health-economics costume. Count payoffs as if they happen halfway through each cycle, and the systematic error very nearly vanishes.
Rectangles versus the truth.
Below is a survival curve — the share of patients still alive, falling over time. The true life-years are the area under it. Choose how to approximate that area with rectangles, and compare the total to the truth.
Method: Left edge (start-of-cycle) · 5 cycles · Estimated life-years: 3.36 · True: 3.01 · Error: +0.35
Two ways to kill the error, both visible here. Centre the accounting on each cycle's midpoint — the half-cycle correction — and even wide cycles land on the truth. Or just make the cycles narrow enough that no single rectangle can be very wrong. Modern models often do the second; the half-cycle correction is how you get the first without paying for all that extra computation.
Now you.
A modeller totals a state's QALYs two ways. Counting each cycle from its opening occupancy (start-of-cycle) gives 4.20 QALYs. Counting from the closing occupancy (end-of-cycle) gives 3.60 QALYs.
Apply the half-cycle correction: what's the corrected total? (Enter a number.)
In practice: two ways, and when it matters.
In a real model, the correction shows up in one of two forms:
- Apply an explicit half-cycle correction. Shift the accounting to each cycle's midpoint — in effect, add half a cycle of payoff at the start and drop half a cycle at the end. Traditional, exact for the trapezoidal approximation, and still standard in guidance.
- Just use short cycles. With cheap computing power, many modellers now run monthly or weekly cycles, where the per-cycle error is so small the correction barely changes anything. Same problem, solved by making the rectangles thin instead of centring them.
Two things an assessor should keep in mind. First, the correction applies to both arms and to both costs and QALYs, so in the ICER the effects partly cancel — which is why it's often small. But partly isn't fully: when the two arms have different event timing (one front-loads deaths, the other spreads them out), the correction lands unevenly and can move the ICER enough to matter, especially with long cycles, steep survival curves, or end-of-life decisions. Second, it's a close cousin of other timing conventions — when deaths are counted within a cycle, how the final cycle is handled — but it's a distinct adjustment from discounting, which scales future value rather than fixing within-cycle timing. The practical question is never "is the correction big?" in the abstract — it's "was it applied, and does this particular comparison's timing make it bite?"
What does this do, and what's the fix?
A lifetime model uses annual cycles and accrues each cycle's life-years from the number of patients alive at the start of the cycle. Survival falls steeply in the early years. Compared with the true area under the survival curve, what does this do, and what's the fix?
Why this matters for HTA
The half-cycle correction is a small adjustment that occasionally decides a close case — and, more usefully, a quick tell of how carefully a model was built.
- Check it was done — or made irrelevant. A lifetime model with annual cycles and no half-cycle correction has a known, one-directional bias baked in. It's a fast, legitimate thing to query. Either the correction is applied, or the cycles are short enough that it doesn't matter — one of those should be true.
- Ask whether the timing is symmetric across arms. Because the correction largely cancels in the ICER, it's usually minor — but when the two arms differ in when events happen, it doesn't cancel cleanly. Steep early mortality, end-of-life indications, and big front-loaded costs are the settings where it can move the answer.
- Read it as a competence signal. A model that handles half-cycle correction explicitly, and says how, is usually a model whose author sweated the other timing details too. Its absence, unexplained, invites a harder look at everything else.
The correction is tiny arithmetic with an outsized lesson: a model isn't just its numbers, it's the timing of when those numbers are counted — and getting the timing wrong biases the result in a direction you can predict before you even open the spreadsheet.
The half-cycle correction, in one breath.
- Accruing a cycle's payoffs from start-of-cycle occupancy overcounts good states (patients who leave mid-cycle are credited the whole cycle); end-of-cycle undercounts them. The truth lies between.
- It's an integration problem: cycle sums approximate the area under the occupancy curve with rectangles. Left-hand rectangles overshoot, right-hand undershoot, and the midpoint (trapezoidal) rule — averaging the two — is the half-cycle correction.
- It's not "adding half a cycle" — it's centring each cycle's accounting on its midpoint. Equivalently, just use short enough cycles and the error disappears on its own.
- It applies to both arms and to costs and QALYs, so it often largely cancels in the ICER — but it can still bite when arms differ in event timing, cycles are long, or survival is steep.
Rectangles or trapezia — the model is drawing the same curve. The half-cycle correction just makes sure it draws it through the middle, where the patients actually are.
We've now built lifetime costs and QALYs from a state-transition model and timed them honestly. But for one huge class of decisions — cancer — modellers often skip transition probabilities entirely and read state occupancy straight off the survival curves themselves. That's the partitioned survival model, and it's next.