Releasing HyperTrack SDK with better accuracy and realtimeness

Our last major release was heavily used by developers across logistics, transport, services, sales and consumer businesses. More than 2,000 developers seeing the movement of 100,000 users across 25 million miles gave us enough feedback to continuously iterate. We learnt that accuracy and realtimeness were were two major areas where developers wanted to see improvements. We focused on these areas and today we are happy to announce a major update to our iOS and Android SDKs.

Improving accuracy

We believe that location is necessary but not sufficient to understand movement. The user’s activity and device health are critical features to infer movement. Joining this data with location improves accuracy and provides great insight into how the user moves.

In this release, activity and device health become first class citizens of our SDK along with location. The following changes have been made:

  1. Location-independent activity detection: The mobile OS provides APIs (Android’s ActivityRecognition API and iOS’ CoreMotion API) to report activity transitions. However, these (a) are inaccurate due to high incidence of false positives, and (b) have significant delays in confirming activity changes with high confidence. We have built wrappers around these APIs on the device and written lambda functions on the hypertrack cloud to make the detection more accurate and real-time.

User Activity Detection

  1. Granular device health monitoring: We report device health incidents that result in inaccurate locations - location disabled, device switched off or SDK killed by the OS (typical in certain Android devices).

Device Health Monitoring

  1. Activity-specific location filtering: We apply location filters based on the activity of the user. For instance, a user can walk at a speed of no more than 6 miles per hour while drives can be at higher speeds. Similarly, a user may walk outside of mapped roads, while drives are constrained to motored roads in a specific direction.

User Activity Detection

Improving realtimeness

Most location tracking use cases demand realtimeness of location, activity and device health data. Realtimness comes at the cost of battery drain. HyperTrack balances realtimeness and battery drain by collecting and transmitting data at a variable frequency. It is powered by

  • Activity: e.g. start collecting when the user is moving, speed up collection and transmission when user is driving compared to when user is walking
  • Device health: e.g. transmit all data when the device is connected to wifi, speed up when device is charging, slow down when battery is low
  • Business context: e.g. speed up when startTracking() has just been called on the user or when the user is arriving at expected place of the action
  • Consumption: e.g. speed up when the user is being actively tracked by the customer or one of our APIs is used to fetch the user's placeline or latest location

In this release, we have made major improvements in delivering realtimeness.

  1. The improvements in activity and health detection enable us to better vary frequency
  2. Earlier, we depended on the server modelling the frequency and controlling it on the device with our patent-pending two-way communication between the device and server. In this release, we have made the device smarter in modelling frequencies on its own without relying as heavily on the server.

What's been fixed

More specifically, existing customers will not see the following issues anymore:

  • Inaccurate mileage of an action:
    • Unexpectedly high mileage due to far-off poor locations from cell towers or wifi not getting accurately filtered
    • No visibility into unexpectedly low mileage of an action due to SDK's background service getting killed by the OS or device switching off
  • Unusable activity history in the placeline:
    • Drives or walks with inordinately long durations due to stops not getting detected from geofence or location APIs of the OS
    • Activity segments with very short durations specialy in between transition from an activity to another, say between a drive and a stop there would be a 30 second long walk
  • High latency/no realtimeness:
    • High latency in tracking an action in real-time due to over dependence on the server to vary the frequency on the device
    • Inaccurate fare receipts generated at completion of an action due to high latency in update of mileage

Get the SDK

If you are already using our SDKs, just follow the steps here for Android or iOS to update to our latest SDK. If you haven't tried out HyperTrack in your product yet, sign-up to get your keys and track your users.

What’s next

  • Smarter events: Modeling user movement as activity transitions can help infer smarter events. For instance, a stop between drives may be at traffic light or gas station. Similarly, transition from drive to walk to stop can help infer check-in and check-out times at places and contribute to better ETA models for a milk run.
  • Higher accuracy: Use machine learning on the 30 million hours of user movement to deliver higher accuracy of locations, activities and device health.
  • Higher realtimeness: Use machine learning to predict when you would need to collect and transmit location. Make two-way device-server communication robust and tolerant to flaky device and network conditions.