If you're mid-session and the rest timer drifts, you've already lost the benefit of timing at all. A few seconds off per set doesn't sound like much, but it compounds. By the end of a workout, your actual rest time might be meaningfully different from what you planned.
That's why we built Intrvl's timing engine around a different approach.
The problem with most timers
Most timer apps track time by counting UI updates or display refresh cycles. When the app moves to the background, those updates stop and the timer falls behind. When the device is busy, they slow down. When the screen locks, many timers pause or lose track of elapsed time entirely. Small rounding errors in each cycle add up across a long session.
These aren't edge cases. They happen every time you switch to your music app or lock your screen between sets.
How we built it differently
Intrvl's timing engine avoids these problems by anchoring to a monotonic clock — a system clock that only moves forward and isn't affected by system time changes or timezone adjustments.
Monotonic clock anchoring
Instead of counting ticks or relying on display updates, we record a start timestamp using the device's monotonic clock when the timer begins. Every time the display needs to update:
- Get the current monotonic time
- Calculate the actual elapsed time by subtracting the start timestamp
- Compute the remaining time from the total duration
The timer is always calculating from real elapsed time, not from how many UI updates have fired.
Reconciliation on every tick
On every tick — whether the app is in the foreground or background — we reconcile the elapsed time. If you open another app or lock the screen, the next update uses the difference between the previous timestamp and current monotonic time to compute the correct remaining seconds.
In practice: even if the UI stutters, the countdown stays accurate. Backgrounding the app doesn't pause or drift the timer. Locking your screen doesn't affect accuracy. CPU throttling can't slow down time itself.
Preventing accumulation errors
Alerts fire exactly once to prevent duplicate notifications from confusing timing. Rounding errors are clamped before they compound. All calculations use high precision internally; rounding only happens at the display layer.
Why this matters for your training
Consistency
When a program calls for 90-second rest periods, you need to know you're actually resting for 90 seconds. Too little rest and you won't recover enough; too much and you lose the training stimulus. The engine hits your targets on every set.
Trust
You shouldn't have to wonder if your timer is accurate. When you set a 3-minute rest, you should be able to check your phone for messages, lock the screen to save battery, switch to your music app — and trust that when the alert goes off, exactly 3 minutes have passed.
Long-term progress
Over weeks and months, small timing inconsistencies compound. A program built around 2-minute rests that actually gives you 2:15 or 1:45 produces different results. Accurate timing means you're running the program as written.
The result
Trust your rests and focus on lifting. The timer runs in the background, stays accurate when you switch apps, and never drifts.