Back to Documentation Overview

Pooling

Pooling refers to sharing the same vehicle for multiple rides or deliveries at the same time. It sometimes is called chained or shared rides as well.

Introduction

Pooling is a crucial feature that makes fleets more efficient and ultimately allows you to cater to more rides or deliveries within the same time frame and with the same number of vehicles.

Pooling is a concept that's supported in Fleet Planner and Dispatch API. We will first examine how pooling is handled in Fleet Planner, because it serves as the foundation for the Dispatch API.

Parameters for pooling

Fleet Planner offers several parameters that you can configure to influence the pooling behavior to your liking.

Note that Fleet Planner is not trying to maximize or minimize the number of pooled rides - as far as Fleet Planner is concerned, pooling is simply another dimension to consider when formulating the optimal plan based on the weighting function.

Weighting Function

Fleet Planner offers a weighting function for the GetPlan call, that is considered when optimizing the plan. The fleet planner has 2 options:

Time Windows

Another factor is the time windows for pick ups and drop offs which are configurable on a trip level in the Fleet Planner. A time window consists of a lower and upper bound in minutes, for example pick-up time window [5,30].

This means that the pick-up needs to happen within 30 minutes, and for optimization purposes pickups that take 5 minutes or less are assigned the same cost.

The time window for drop-offs have an analogous meaning. You can indirectly influence the number of pick-ups a rider experiences before being dropped-off by reducing the maximum bound in the drop-off time window. A trip with time windows task will not be pooled with another trip if it leads to the drop off time being after the drop-off time window.

Refer to the Time Windows in the Dispatch API guide for more information.

Vehicle Capacity

Vehicle capacity refers to the number of passenger or goods that a vehicle can transport at the same time. By assigning a custom capacity when requesting a trip, you can influence the pooling behavior.

For example, if vehicles have a constant capacity of 4, you can request a trip that requires two seats no matter if there is one or two passengers in the trip. This reduces the number of pooled rides on average compared to assigning one seat for one passenger.

Pooling with the Dispatch API

The Dispatch API is a high level API on top of Fleet Planner that optimizes and simplifies API usage for various use cases like ridehail and delivery.

For the weighting function offered in Fleet Planner, the Dispatch API can be configured at a fleet level for RIDE_HAIL or GOODS based on your requirements.

At the fleet level, pooling is automatically enabled and can be disabled by setting the parameter forcePrivateRides to true in CreateFleet and UpdateFleet endpoints. At the task level, by default, the fleet's pooling setting is used. This can be overridden per task by setting the field poolingSetting to either PRIVATE or POOLED in CreateTask endpoint.

Summary

Pooling is an important aspect of rideOS's optimization algorithms and APIs, and a core feature of Fleet Planner and Dispatch API.

Several configuration options exist to tailor the pooling experience of your rides to your individual use case.