Talk to us about your last-mile delivery project.
Tell us your fleet size, your delivery volume, and what your dispatchers currently do manually. We'll scope the right platform and give you a fixed cost.
Dispatchers manually building driver routes each morning because there's no optimisation tool that knows your constraints?
Customers calling the office to track their delivery because you have no tracking link to send them?
Custom last-mile delivery software for local delivery operators, delivery-as-a-service companies, and retailers with their own fleets -- route optimisation, driver apps, dispatch visibility, and customer tracking built for your operation.
Designed for operators who are done manually assigning routes each morning and answering "where is my delivery?" calls all afternoon. Route optimisation, proof of delivery capture, and automated customer notifications in one platform.
Multi-stop route optimisation with time windows, vehicle capacity, and driver availability
Driver mobile app with turn-by-turn navigation, proof of delivery photos and signature
Customer notifications with live ETA and tracking link sent automatically at dispatch
Delivery performance analytics by driver, zone, and time window
RaftLabs builds custom last-mile delivery software covering multi-stop route optimisation with time windows and vehicle capacity, driver mobile apps with proof of delivery capture, dispatch dashboards, customer SMS and email notifications with live tracking links, failed delivery management, and delivery performance analytics. Most last-mile delivery platforms ship in 10-14 weeks at a fixed cost.
In most small and mid-size delivery operations, the dispatcher starts the morning by looking at the order list, drawing routes in their head, and assigning stops to drivers based on experience. It works until a driver calls in sick, a large order is added at the last minute, or the operation grows past the point where one person can hold the whole route map in their head.
The customer experience problem is separate but related. Without a tracking link, every customer who is waiting for a delivery becomes an inbound call. Your delivery team spends time on the phone answering "when will it arrive?" instead of on the road delivering.
Last-mile delivery software automates what your dispatcher does manually and gives your customers the tracking link that stops the calls. Route optimisation calculates the most efficient sequence of stops given time windows, vehicle capacity, and driver availability. The driver app guides each driver and captures proof of delivery. The customer gets an SMS when the driver is on the way.
Multi-stop route optimisation using Google OR-Tools with a Capacitated Vehicle Routing Problem with Time Windows (CVRPTW) formulation that calculates the most efficient delivery sequence for each driver -- accounting for customer delivery time windows, vehicle load capacity by weight and volume, driver start and end locations, required service time per stop, and driver shift length constraints. The optimiser runs against the full day's order set in seconds for typical fleet sizes, producing a route assignment that minimises total route time or distance while satisfying all constraints. Dynamic re-optimisation triggers every 30 minutes as new orders are added, cancellations are received, or traffic conditions change -- the solver re-runs against the remaining stops without requiring a dispatcher to manually reassign anything. Zone-based routing configuration lets operations that assign drivers to fixed geographic territories constrain the solver to those boundaries while still optimising the sequence within each zone. Vehicle type matching prevents the optimiser from assigning a stop requiring a refrigerated vehicle or tail-lift to a driver without those capabilities. The morning routing task your dispatcher currently completes in 90 minutes of manual map work, completed in two minutes by the solver.
Driver app for iOS and Android built with the Mapbox Navigation SDK for turn-by-turn routing, which provides offline map tiles so navigation continues in areas with poor mobile coverage. The assigned route loads at the start of shift with all stops, customer notes, and access instructions visible before the driver leaves the depot. Stop-by-stop navigation displays customer delivery notes, gate codes, and special instructions on screen before the driver arrives, reducing failed deliveries caused by missed information. Proof of delivery capture records the delivery event fully: signature drawn on screen, photo of the delivered goods at the delivery location, GPS coordinates and timestamp at the moment of confirmation, and OTP code confirmation for contactless deliveries where the customer received a one-time code by SMS. Failed delivery recording captures the reason code -- not home, address not found, access denied, refused, damaged -- with required photo evidence and the GPS location of the attempt, creating a clean record for re-attempt scheduling and customer notification without any dispatcher manual entry. Customer contact from the app lets drivers call or message the recipient directly through the delivery workflow without switching to a phone dialler. The app queues delivery confirmations and syncs them to the dispatch server when connectivity is restored, so a driver delivering in a basement or rural area does not lose proof of delivery records due to signal loss.
Real-time dispatch view showing every active driver's current GPS location on a live map, completed stops, and remaining route visualised as an ordered stop list with calculated ETAs. ETA to each upcoming stop is computed from the driver's current position using live traffic data, not the original route time estimate, so the dispatcher always has an accurate picture of when each customer will be served. ETA prediction uses a gradient boosting model trained on historical traffic patterns, distance, time of day, and day of week to produce estimates that account for known congestion periods -- morning rush hour through a dense delivery zone -- rather than treating all driving time as equivalent. Exception alerts fire automatically when a driver is running more than a configurable threshold behind the planned schedule, or when a delivery has been at a stop for longer than the expected service time, giving the dispatcher a specific problem to address rather than requiring them to monitor every stop across twenty drivers. Stop status updates push to the dashboard in real time as drivers confirm, fail, or re-attempt deliveries. Manual dispatcher intervention tools allow reassigning stops between drivers, inserting an unplanned stop into a mid-route driver's sequence, or removing a cancelled stop -- the solver re-optimises the affected sequence rather than leaving the driver with a manually reordered route that may be inefficient.
Automated SMS notifications sent via Twilio at configured trigger points -- order confirmed, driver assigned, driver en route to this specific stop, and delivery confirmed or attempted -- with message content and timing configurable per notification type. Each SMS includes a real-time tracking link that opens a branded tracking page showing the driver's current position on a map and an ETA that updates as the route progresses, not just a static estimate from dispatch time. The tracking page is mobile-optimised and requires no app download. Branded SMS sender name and message templates match your company identity so recipients recognise the message as coming from your business, not a generic logistics platform with an unrecognised shortcode. Customer response capability allows recipients to reply to the SMS with delivery instructions -- "leave at back door" or "ring flat 3B" -- and those instructions are surfaced in the driver app at the relevant stop. OTP-based contactless delivery confirmation generates a one-time code sent to the customer by SMS, which the driver enters in the app to confirm delivery without requiring a physical signature -- useful for unattended deliveries where the customer has authorised contactless drop. The combination of proactive status notifications and live tracking link eliminates the majority of inbound "where is my delivery?" calls without requiring any manual action from the dispatch team.
Failed delivery workflow captures the reason -- not home, address not found, access denied, refused, damaged on arrival -- with mandatory photo evidence from the driver app and the GPS-timestamped delivery attempt record, creating a complete and defensible record without requiring the dispatcher to follow up with the driver for details. Automatic SMS notification to the customer on failed delivery includes a self-service link to schedule a re-attempt at a preferred date and time window, redirect the delivery to a PUDO (pick-up and drop-off) collection point, or authorise a safe-location leave instruction for the next attempt. Re-attempt scheduling queues the stop automatically for the next available route covering that zone based on the customer's selected preference -- no manual dispatcher action required. Safe-location delivery instructions captured from the customer's re-attempt response are stored on the customer record and surfaced in the driver app for all future deliveries to that address. Escalation logic flags deliveries that have failed two or more attempts to a dispatcher alert so they do not silently cycle through the route queue indefinitely. Returns initiation for refused or damaged deliveries generates a returns record and notifies the returns processing team without a separate manual step. Failed delivery rate reporting by driver, zone, time window, and reason code identifies whether a high failure rate is a driver issue, a route planning issue, or a customer communication issue -- each requiring a different response.
Performance reporting across your full delivery operation: on-time delivery rate by driver, zone, time window, and customer -- using the confirmed delivery timestamp and the planned delivery window as the comparison points, not the driver's estimated arrival. First-attempt delivery rate is tracked separately from on-time rate because a delivery that arrives on time but fails on first attempt and requires a re-attempt costs more than the on-time figure suggests. Average stops per hour, kilometres per stop, and cost per delivery by driver and route, giving the operations team the inputs to benchmark driver productivity and identify routes that are structurally inefficient due to stop density or geography. Delivery density heatmaps visualise where your orders are concentrated by zone and time window, useful for optimising zone boundaries and driver assignment logic as your order volume grows or shifts. Carrier and driver performance analytics report on the metrics that matter for performance management: on-time rate, first-attempt delivery rate, failed delivery rate, and cost per delivery -- the same metrics that carrier contracts and SLA reviews are typically built around. Period-on-period comparison by week and month lets the operations manager see whether routing changes, new hire onboarding, or zone restructuring are moving the performance numbers in the right direction -- rather than relying on gut feel and anecdotal feedback from the morning meeting.
Frequently asked questions
Route optimisation uses a CVRPTW solver -- Capacitated Vehicle Routing Problem with Time Windows -- built on Google OR-Tools. It takes your full list of stops for the day and calculates the stop sequence and driver assignment that completes all deliveries on time at the lowest total distance or route time. Time windows are treated as hard or soft constraints depending on your configuration: hard windows mean a stop cannot be visited outside that window even if it increases overall route cost, which is appropriate for time-critical deliveries; soft windows incur a penalty score when breached, allowing the solver to breach them if the alternative produces a significantly worse overall route. Vehicle capacity constraints prevent the optimiser from assigning a route that exceeds a vehicle's load capacity by weight or cubic volume. Driver start and end locations, shift length limits, mandatory break durations, and vehicle type capabilities are all input constraints. The solver re-runs every 30 minutes as new orders are added or cancelled during the morning, adjusting routes without requiring the dispatcher to manually intervene. For typical fleet sizes of 5 to 50 drivers with 20 to 150 stops each, the solver completes in under 30 seconds -- fast enough to be triggered mid-shift when the route plan changes.
The driver app captures proof of delivery appropriate to your operation. Standard options include: recipient signature drawn on screen, photo of delivered goods at the delivery location, GPS coordinates and timestamp at delivery confirmation, and recipient name entry. For unattended deliveries, the app captures a photo of the goods at the delivery point -- door, mailbox, or safe place -- with GPS and timestamp. Failed deliveries capture the driver's photo evidence and reason code. All proof of delivery data is stored against the delivery record and accessible from the dispatch dashboard and customer portal. The format can be configured per client or per delivery type for 3PL operations serving multiple clients.
Yes. Last-mile delivery software typically receives delivery orders from an upstream system -- an OMS, an e-commerce platform like Shopify, a WMS, or a custom order system. We build the integration to import orders automatically at the point they're ready for delivery assignment, and to push delivery confirmations and tracking status back to the order management system in real time. Integration approach depends on what API your order management system exposes. We scope integrations during discovery and include the integration in the fixed project cost so there are no surprises when we get to that phase of development.
A last-mile delivery platform with route optimisation, a driver mobile app, dispatch dashboard, and customer SMS notifications typically runs $30,000--$70,000. A more complete platform with re-attempt management, returns initiation, client portals for 3PL operations, and full performance analytics typically runs $70,000--$140,000. Cost depends on the complexity of the routing constraints, the number of integrations with order management systems, and whether white-label customer notifications are required. We scope every project before pricing it and give you a fixed cost before development starts.
What clients say
Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

I definitely recommend RaftLabs, especially to founders building complex platforms. They were transparent throughout the whole project.
01 / 02
Tell us your fleet size, your delivery volume, and what your dispatchers currently do manually. We'll scope the right platform and give you a fixed cost.