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.
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.
Fleet Planner offers a weighting function for the
GetPlan call, that is considered when optimizing the plan.
The fleet planner has 2 options:
RIDE_HAIL- Minimizes overall rider wait times and ride times.
GOODS- Minimizes total time vehicle spends traveling.
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 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
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
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
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.