UpdatesMar 28, 2026·6 min read

GPS tracking: how we built real-time walk routes without draining your battery

JK

Jordan Kim

Mobile Engineer

When we first shipped GPS tracking in beta, sitters complained their phones lost 20-30% battery during a single walk. That's not a minor inconvenience — it's a dealbreaker when you're doing three walks a day and don't have time to charge between them.

We needed GPS that was genuinely accurate without being a battery hog. Here's how we got there.

The naive approach and why it fails

The obvious approach — poll GPS at a fixed interval — wastes battery in predictable ways. If you poll every second, you get gorgeous routes but destroy the battery. If you poll every 30 seconds, you save battery but miss turns and get routes that cut through buildings.

Neither extreme is useful. A walk that appears to go straight through a city block is worse than no GPS at all — it erodes trust.

Adaptive sampling

We built an adaptive sampler that adjusts polling frequency based on movement signals. When the sitter is stationary (at a crosswalk, letting the dog sniff), we drop to one sample every 15 seconds. When they're moving, we sample every 3-4 seconds. We use the accelerometer and gyroscope to detect state changes within ~200ms and adjust accordingly.

This alone cut average battery usage from 28% to 9% per hour.

Batching and compression

We don't stream GPS points to the server in real time. We batch them locally and push every 8 seconds. This reduces radio wake cycles — one of the biggest hidden battery costs on mobile. Points are compressed using a Douglas-Peucker simplification before transmission, removing redundant collinear points without affecting visual route quality.

Where we landed

Average battery usage is now under 3% for a 30-minute walk and under 6% for an hour. Sitters running three walks in a day use under 15% of their battery on GPS. Route accuracy is within 4 meters 95% of the time in dense urban environments.

The code is open-sourced in our mobile SDK if you want to take a look.

Share:X / TwitterLinkedIn