Journal

ANR rate versus hang time on the exec slide

4 June 2025 · Platform hour · ~6 min

Code editor and monitoring tools on a screen

ANR rate answers a bureaucratic question: did the operating system notice that the main thread was busy too long? Hang time answers a human one: did the interface feel stuck even when the watchdog stayed quiet? Putting only ANR on an exec slide is a choice to speak OS dialect in a room that thinks it is hearing user pain.

I like ANR. It is relatively crisp, comparable across releases, and hard to game without actually fixing the thread. I dislike ANR as a lone actor. Mid-range Android in secondary Thai cities will happily jank for 300–600ms on image-heavy first screens without tripping ANR. Users call that “lag.” Dashboards call that “fine.” The gap is where reviews mention “heavy app” while platform points at a green ANR tile.

Hang time — however you instrument it, as long as the definition is written — belongs beside ANR when the product is visually busy or camera-adjacent. KYC, classifieds photo flows, and in-app maps are the usual suspects. If your app is mostly text forms, ANR plus crash-free may be enough for Monday, and hang time can stay in the platform review. The mistake is using the text-form stack on a photo product because the template said so.

Composite “jank scores” try to settle the argument by averaging. They settle nothing. They produce a number nobody can veto. In studio critiques we unbundle: ANR as the OS veto, hang as the human veto, crash-free as the process veto. Three small numbers beat one mysterious index. Yes, the slide gets slightly uglier. Uglier is more honest.

If leadership asks which one to fund, ask which failure users mention. If they mention freezes that never show up as ANR, fund hang instrumentation before you fund another ANR dashboard skin. If they mention hard closes, fund crash and silent failure. Do not fund a redesign of the index. The index is how the argument got lost.

Crash-Free Sessions, Honestly spends a full session on this split. The Atlas keeps ANR and hang in separate rooms on purpose. If you only remember one line from this note: the OS noticing and a human noticing are not the same KPI, and an exec slide that pretends they are is already choosing a side.

Back to the journal