Time in therapeutic range is the number an anticoagulation service is judged on. It is also a number where the same INR readings can produce 2 different answers, more than 10 points apart, because there are 2 different things called TTR. We shipped the simpler one, measured a real panel both ways, and changed it. Here is the difference, and which one belongs on a chart.
Counting readings
The easy method: take every INR you have for a patient, count how many landed between the target minimum and maximum, and divide. 6 of 10 in range is 60%.
It needs nothing but the values themselves, and it is what a spreadsheet does naturally. It also treats every reading as though it stood for the same amount of time — which is where it goes wrong.
Measuring time
The method Rosendaal and colleagues published in 1993 asks a different question: for how many days was this patient in range? Between 2 consecutive INRs it assumes the value moved in a straight line, and counts the portion of that interval where the interpolated line sat inside the band.
A patient measured monthly and a patient measured weekly no longer count the same. Neither does a reading taken the day after a dose change and one taken after 3 stable weeks.
A worked example
One patient, target range 2.0 to 3.0, 4 readings over 32 days:
| Date | INR | In range? |
|---|---|---|
| 1 January | 2.5 | yes |
| 29 January | 2.5 | yes |
| 31 January | 4.0 | no |
| 2 February | 2.5 | yes |
By readings: 3 of 4 in range, so 75%.
By time: the patient sat in range for 28 uninterrupted days, drifted out over roughly 2 days, was pulled back within 2 more, and was in range again. About 29 of the 32 days were spent inside the band, so 92%.
Both numbers describe the same patient honestly. But a single supratherapeutic reading, caught and corrected inside 4 days, cost 25 points under one method and 8 under the other. The reading count charges a full reading for an excursion that lasted 2 days.
Why it usually runs one way, and when it does not
Most out-of-range INRs in a well-run service are exactly that: brief excursions caught at the next draw and corrected. Counting readings penalises each one at full weight, so a service that responds quickly is systematically understated.
The reverse case exists and matters more. A patient whose readings alternate in and out can look acceptable by count while having spent long stretches drifting. One patient on the panel we measured scored 86% by readings and 67% by time — comfortably good control on the first number, a review candidate on the second. That patient is the reason to prefer the time-based figure even though it is the less flattering one on average.
What the time-based method needs
- Dates on your readings, not just values. Without them there is no interval to measure.
- At least 2 readings. A single INR describes a moment, not a span.
- A ceiling on gaps. Interpolating across a 6-month hole asserts control that nobody observed. The usual convention is to drop any interval longer than 56 days from both the numerator and the denominator rather than guess at it.
Where those conditions are not met, the reading count is still the honest fallback — as long as it is labelled as one.
What we changed
Retroact reported the reading count until this week. It was the simpler thing to build and it looked reasonable in testing. It stopped looking reasonable when we computed both figures across a real panel and found 14 points between them, in the direction that tells a well-managed service it is doing badly.
The app now reports the time-based figure wherever there are enough dated readings to compute it, falls back to the reading count where there are not, and says which of the 2 you are looking at. The 70% and 60% thresholds are unchanged.
If you compute your own TTR, in a spreadsheet or from any report, it is worth knowing which of the 2 you have. If it is a reading count, the published benchmarks are not the right thing to compare it against.