# Navigation Latency

> Measure time from navigation tap to screen fully loaded and interactive. Use when tracking screen transitions, deep links, or tab switches.

- Skill: `majiayu000/navigation-latency` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/navigation-latency`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/navigation-latency/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/navigation-latency

---


# Navigation Latency

Time from tap to destination screen interactive (TTI).

## Phases

```
TAP → TRANSITION → VIEW_INIT → DATA_LOAD → INTERACTIVE
     |_____________________________________________|
                   Navigation Latency
```

## When to Use

- Tab bar taps
- List item → detail screen
- Deep link → target screen
- Any screen-to-screen transition

## Key Thresholds

| Rating | Duration |
|--------|----------|
| Good | <400ms |
| Acceptable | <1s |
| Poor | >1s |

## Measurement Points

1. `onNavigationStart` - user taps (source screen)
2. `onViewAppear` - destination view visible
3. `onContentReady` - data loaded, interactive

## Implementation

See `references/ui-performance.md` (Navigation Latency section) for:
- iOS: NavigationLatencyTracker with os_signpost
- Android: Fragment/Activity lifecycle hooks
- React Native: React Navigation listeners

## Common Mistakes

- Measuring only view appear (missing data load)
- Not correlating source → destination
- Ignoring warm vs cold screen loads

## Related Skills

- See `skills/interaction-latency` for button/tap response times (vs full screen loads)
- Combine with `skills/user-journey-tracking` to correlate navigation with user intent

