How Skipper increased their # of daily dog walks with Salesforce Maps Routing APIs
Skipper is in the business of delivering on-time high quality customer service to its growing base of pet owners in need of some help taking care of their pets during the day. Unlike other gig-economy applications that rely on independent contractors, all of Skipper’s walkers are certified through a rigorous process to ensure quality service on every visit.
As a growing business in Charlotte, NC, who’s expanding to new markets in Austin, TX and Atlanta, GA, Skipper needed a routing and scheduling service that matches all their daily appointments with their available team members. After having used other competing route optimization services, the team at Skipper approached Salesforce Maps and described some of their most pressing needs:
- Amaze customers by scheduling as many walks as possible during the customer’s selected time windows
- Improve walker morale by keeping the routes visibly compact to ensure walkers don’t spend too much time in the car
- Maximize efficiencies and reduce travel costs by scheduling appointments near walker’s home locations
After implementing Salesforce Maps, Skipper has been able to easily and effectively generate 1000s of optimized routes, onboard 100s of new customers, and maintain a high employee retention rate due to improved morale.
Why did Skipper choose Salesforce Maps?
- Flexible Constraints - While most routing engines allow for 1-2 business objectives, like minimizing travel time or obeying time windows, Skipper needed a solution like Salesforce Maps that offered a more flexible library of order and route level constraints given their business.
- Prioritization - While other route optimization engines may employ some similar logic, the unique power of Salesforce Maps is its ability to allow the user to not only specify which constraints are important when solving a problem, but also to rank them in order of importance by assessing a constraint-dependent penalty for any violations.
- API-first - As a mobile application developer, Skipper didn’t have time to buy some expensive and hard to implement Dispatch software. Skipper’s dog-walkers need a quick and easy way to visualize their day that operated inside the Skipper application to maximize productivity.
How’d they do it?
It starts with the Math:
The core algorithms of the Salesforce Maps Routing Engine, MARE, were designed by a team of PhD’s who spent years working in the seemingly unrelated field - sports scheduling. However, when you distill a complex routing problem down to its essence, scheduling a team of dog-walkers in a very specific way is very similar to determining the best 82 game schedule for the Golden State Warriors. In both problems, stakeholders want similar things - dog owners want their dogs walked on time by their favorite dog-walker, and ESPN wants to see Steph Curry every night during primetime to increase ratings.
Though two different use cases, modern mathematical optimization techniques and readily available supercomputing power came to the rescue so similar methods could be applied to solve two different, yet incredibly complex problems. The key idea is to provide a very flexible representation of the problem, and expose high powered constraint-based optimization.
Behind the scenes, Salesforce Maps generates millions of solutions when solving a routing problem. Each solution meets certain hard constraints, such as ensuring no stops are scheduled outside of a working shift, and the internal constraint evaluation process assigns a score to every single schedule. The mathematical optimization allows us to move from one solution to another while driving this score down and producing higher and higher quality solutions.
For example, since meeting time windows is absolutely critical for Skipper, the time window constraint receives the highest penalty. In fact, the penalty for violating a time window is set higher than the penalty for missing an appointment altogether since Skipper customers would rather not be visited than have the walker show up when the owner is already home with their pet. At the other end of the spectrum, while Skipper wants its routes to generally appear visually compact, where each walker does not stray too far from their home location, this should not come at the expense of missing visits, so this constraint receives a lower penalty.
What’s a Constraint?
In short, a constraint is a rule that relates to the measurement of a specific property of the solution. In the world of routing and scheduling, a constraint can measure travel time, how many long segments we have in a route, the number of skill matching violations, or the number of times we visit the same customer in a certain period. In the world of professional sports scheduling, a constraint can measure things like the number of weekend games per team, or the number of “back to backs”, or the number of times a certain team appears on a TV network.
Example Constraint Types
- Pick up and delivery
- Time windows
- Floating breaks
- Flexible representation of the working shift, the work order, and the attributes of the vehicle and operator
What is a Penalty?
Associated with each constraint is a penalty that measures how important it is to avoid violating the constraint. In Skipper’s case, all time windows must be honored so that the time window constraint gets the highest penalty. To continue the analogy with sports, a team can’t play a home game when a concert is scheduled in their arena, so the constraint that counts these “arena conflicts” gets the highest penalty. We call this the “score” of the solution and in general, the lower the score the better the solution.
- Pick up and delivery (Depot to business)
- Home Delivery
- Field Service Break Fix
- Delivery with replenishment
Is there any breed that can’t be cross-bred with a Poodle?
We’ve yet to see a Schnoodle (Schnauzer Poodle mix), but it's likely only a matter of time.