ODL Live is a planning engine custom-built for real-time route optimisation and route-efficient appointment scheduling. With real-time vehicle scheduling, some or all future jobs for the current shift are unknown. Appointment scheduling – the process of offering service time slots to customers and then confirming their selection, is also a real-time planning problem as the booking of one slot affects others.
ODL Live is suitable for planning:
Taxi services, both ASAP and advance bookings.
On-demand couriers.
Takeout or on-demand grocery deliveries.
Real-time mobile workforce management - e.g. technicians on callouts, surveyors, cleaners etc.
Any on-demand service requiring route planning - e.g. drinks deliveries, laundry collection and delivery.
The ODL Live webservice is designed to work with your pre-existing IT system - so you keep your current driver’s app, dashboards etc. You simply connect your existing back-end system to the ODL Live webservice, using a secure HTTPS connection over the internet.
ODL Live is closed-source software built on top of several great open source software projects (Graphhopper, Jsprit, ODL Studio). It adds the following features to those available in the open source libraries:
The engine takes real-time data feeds as input - stop arrival and completed events, GPS traces and manual dispatches as well as new or cancelled jobs. It processes the real-time data to estimate the state of your vehicle fleet and then plan accordingly, reassigning and re-ordering jobs when drivers are running ahead or behind schedule.
Dispatching support lets you lock-down a driver’s near-future, by marking their next one or two planned stops as dispatched, so the engine optimises their route after the dispatched stops (i.e. it optimises their longer-term future). This handles delays in communication between your driver (via your mobile app or pre-existing job dispatching system) and the planning engine, as the driver holds a short-term buffer of locked-down jobs to be actioned by them in the immediate future.
In a real-time setting, unexpected delays are unavoidable and jobs will sometimes run late. ODL Live optimises to minimise lateness (technically speaking, it supports a soft end time window) as well as respecting the usual ‘hard constraint’ start and end times. This is a key feature for real-time planning; if instead you used a hard end time window on its own, jobs would be dropped from the plan even if they were only going to be served one second late.
It is important to spread work across your workforce when optimising in real-time, to maximise the chances of having resource available close enough to serve new orders when they come in. ODL Live supports workload balancing by penalising fuller vehicle routes, modelling the trade-off between travel cost and balance.
In real-time freight collection and delivery scenarios, ODL Live can lock on-board-deliveries to a route after leaving the depot or at a pre-determined time before loading commences. Pending collections can be reassigned between routes and deliveries locked to a route can still be re-ordered within the route, to maximise efficiency as new collections come in or other conditions change.
The Traffic Learner module learns time-of-day and geographic traffic patterns from your historic journey data.
Using ODL Live you can also customise rush hour periods as you like based on your team’s knowledge. Set rush hour start and end times, define intermediary periods (e.g. ‘early rush hour’), different speed profiles for night-time etc. We provide a desktop app for your analysts and planners to fine-tune road speeds by postcode or zip and compare travel times to historic journeys.
ODL Live is engineered for response speed and can reoptimise routing plans in seconds, when input data changes (e.g. updated vehicle events, new or cancelled jobs), dependent on problem size and system configuration.
A model is always ready pre-loaded in server memory (e.g. the road network data, travel time matrix, solution state are all loaded) and the model is always running, constantly refining its routing plans. The engine reuses its current calculations when new data becomes available, by incrementally adding new records to the travel distance / time matrix and updating its collection of routing plans. By updating and reoptimising its plans in response to new data, it finds high quality routes far quicker than starting the optimisation from scratch on each data update.
Appointment booking is a process where you give a customer one or more possible service slots (e.g. Monday 2pm – 5pm, Tuesday 10am – 11am, etc) and they select their preferred slot, which is then booked and confirmed in your order processing system. As your workforce resource is finite, available slots are finite and a customer booking one slot can make it unavailable for another customer. Traditionally companies manage this process in a simple manner without considering routing costs, e.g. by allowing a maximum number of bookings per hour or per AM / PM. Appointment booking is a real-time planning problem, even if you’re booking jobs for tomorrow, next week etc, because the booked slots affect the availability and efficiency of other slots.
ODL Live provides route-aware appointment booking with response times within a second or two, dependent on problem size. You send a planning query to ODL Live, to gather metrics such as increased travel time or lateness associated with different slots, which you use to preferentially offer customers route-efficient slots (e.g. through dynamic pricing). Route-aware appointment booking gives a much better estimate of your available resource, ability to serve customers within SLAs and better management of your transport costs.
Appointment booking is a conversation between your order processing system and ODL Live - post the planning query, poll for the results, present to the customer, send the selected slot back to ODL Live for acceptance into the routing plan. ODL Live uses optimistic locking when accepting a job into the routing plan, you specify metrics such as ‘no increase in lateness’ or ‘no more than 10 minutes extra driving’ when you create the planning query and again when you send the slot back for acceptance. The slot is accepted into the plan if the metrics still hold.
Real-time optimisation must be resilient to hardware failure, making cloud-based server virtualisation the ideal hosting solution. ODL Live is deployed as a microservice on Amazon Webservices (AWS) and is compatible with other cloud hosting providers.
ODL Live does an intelligent allocation of server CPU resources for models in parallel (e.g. for independent teams or different cities), to minimise server hosting costs. CPU processing time is assigned to routing models based on their relative need – e.g. larger models or models with new jobs require more CPU time than small or slow-changing models. A relatively modest virtual server with a fixed rental cost can therefore run many routing models in parallel (greatly exceeding the number of CPU cores on the server).
ODL Live is designed to minimise hosting data transfer costs. The mature hosting providers – AWS, Azure etc – can charge for data transfer across their internal network. The communication between ODL Live and its back-end database is engineered to minimise data transfer costs, for example by caching data and throttling solution updates to the database.
ODL Live is available as a RESTful JSON webservice built to modern web-programming standards, based on the standard HTTP methods (GET, PUT, POST, DELETE). It supports simple data syncing between systems – you push data changes (new jobs, vehicle events) to the webservice from your order processing systems either incrementally as they happen, or refresh all data every minute or so, or use a combination syncing strategy. Data objects (vehicles, jobs) can be stored directly using the primary key ids from your own system, making syncing easy. Webhooks can be configured to call back to your system and tell it when planned routes have changed.
ODL Live is available on a monthly subscription. The subscription lets you host the system yourself - stay in control of your mission-critical systems by running on your own cloud servers (AWS, Azure etc). Our simple cost-effective pricing is comprised of two components:
Flat fee licence. USD $850 per month for a single country or USD $2550 per month for a global licence.
Support. Charged by the minute, using a rate equivalent to USD $110 per hour.
Pricing is exclusive of sales tax / VAT. ODL Live is available for any country in the world.
If you’d like to discuss ODL Live further, would like to see your data modelled through our ODL Live Simulator, or would like a pdf copy of the extensive documentation (including walkthroughs), then please contact us.
We also have a white paper describing the development of ODL Live, available to download from here.