Optimising mobile pallet movements with streams and tables

By Pilgrim - October 22, 2019

The challenge

Did you know that Coca Cola ship more than 100,000,000,000 bottles a year? Like most vendors, they use pallets - plastic platforms which protect them in-transit. Pallets themselves are a valuable, reusable asset and a large pallet provider might have hundreds of millions of pallets in circulation. Unfortunately pallets build-up at some sites while other sites run short, which is bad for:

  • the pallet provider, who would prefer to “sweat” their assets 24/7
  • the vendor, who suffers significant opportunity-cost if they can’t ship goods because they don’t have enough pallets
  • The customer, who is inconvenienced if their warehouse is clogged-up with pallets.

So increasingly the operations teams of pallet companies are putting geo-trackers on (at least a statistical proportion of) their pallets and from these intend to derive key metrics to run their business better. So like almost every other IoT use-case:

  • this is about making more efficient use of something
  • the pallet company isn’t selling things, they’re selling a service i.e. “the availability of a pallet in the right place at the right time”. So they need to actually deliver that service to a high quality, and might even need to prove that they are doing so to their large customers.

The key business metrics which show how well the service is being delivered include:

  • How much of the time the average pallet is in-use (ideally 100%)
  • How many pallets have not moved for 7 days (ideally 0%)
  • Which distribution centres have too many pallets (ideally 0%)

The data

The geo-tracker on each pallet reports location as a pair of (longitude, latitude) properties once per hour. Here we see the positions that one pallet reported as it moved around the supply chain (on Roman roads apparently):

mobile pallet movements

The solution

First we need to detect when a pallet is stationary. Some tracking devices might emit a separate “moving” property, but if they don't, then we’ll have to work it out from the data. The positions reported could have some noise on them, so the coordinates may change slightly even when the pallet is stationary.  So the first thing to do is use DevicePilot Calculated Properties to turn changes in (lat,long) position into metres travelled. We can then sum distance moved over a time period, and then use relational queries to answer some questions about the pallets:

  • sort and threshold this to get a list of “pallets which haven’t moved in the last week”
  • show which pallets are used the most, and least, during that time, and average utilisation percentage

Next, the question is where these stationary pallets are, for which we need to do a geo-lookup. If we have a list of known sites (e.g. warehouses) then we can use Pythagoras to find the distance from each pallet to each site, sort by distance and pick the lowest one. There are some tips on how to do this in SQL here. We could even threshold to spot pallets which have been stationary for a long time somewhere far from any known site (maybe they’re in a ditch, or at “Dodgy Dave’s Pallets Emporium, no questions asked”).

Now we have identified the site, we can do an analysis by site, e.g.

  • which sites have the most pallets, which the least
  • min, max and average stocking levels at each site
  • rate a which pallets tend to arrive at and leave from a site 

We can also start to look at site sequence. Perhaps each site has a function, e.g. one of:

  • vendor where for loading
  • warehouse for storage
  • customer for unloading
  • pallet cleaning service

and we’re interested in identifying pallets which have not followed the sequence correctly (e.g. are being re-used before being cleaned).


Combining streaming and relational queries can turn raw geolocation data into meaningful insights for a large estate of mobile assets. Next, read about using it to optimise stock management for vending machines.

Request access to private alpha


See how DevicePilot can make the difference


Industry leaders trust DevicePilot to help them improve the quality of the service they deliver at scale.

  • Eliminate revenue loss
  • Deliver a better service with the same human resource
  • Focus on growth and not firefighting
  • Get customer satisfaction through the roof

Book your personalised demo now and discover how DevicePilot can help you scale your connected business

Erik in a circle-1

Erik Fairbairn, CEO at POD Point:
Achieved 99% uptime across device estate

"We're totally data driven at POD Point, and if we can answer a question using data then we think that’s the best way - there’s no guesswork and you can use the facts.

Our DevicePilot dashboards have really let us get that actionable insight out of our devices."