Industry guide · Field Service Management

Last-Mile Delivery Software for Couriers: Problems Onfleet and Spreadsheets Cannot Fix

The short answer

Build if your courier operation runs multiple contracts at high volume on Onfleet, spreadsheets, and driver group chats: across 2,000+ Digital Heroes projects, a focused first release (order ingestion, dispatch board, driver app, proof of delivery) runs $60,000 to $130,000 and ships in 12 to 16 weeks, with full platforms at $150,000 to $400,000 phased over 6 to 12 months.

Why last-mile delivery software makes or breaks a courier operator

It is 6:40 am at your busiest depot. Fourteen routes need to roll by 8:00. One driver texted the WhatsApp group at 6:12 that he is sick, so your dispatcher is re-cutting his 62 stops in a Google Sheet, then reassigning tasks in Onfleet one at a time while the group chat fills with drivers asking where their manifests are. Meanwhile your largest retail client has emailed asking why yesterday's proof of delivery photos are missing from three big-and-bulky orders, and the answer is that one driver's app crashed and the photos live on his phone.

This is the standard stack for a regional courier at scale: Onfleet for dispatch and tracking, spreadsheets for route planning, driver pay, and client billing, and a group chat as the exception management system. Each piece works. The seams between them are where the money leaks. A dispatcher spends 90 minutes every morning pre-sorting orders that auto-dispatch cannot sequence correctly. A payroll clerk spends every Friday reconciling task exports against a pay sheet. An operations manager spends three days a month building invoices in Excel and still misses redelivery fees. At 2,000 stops a day, those seams cost more than the software does.

If you are reading this with a budget between $100,000 and $400,000, you are past the point where another Onfleet tier or another Zapier connection fixes anything. The question is which problems a custom platform actually solves, what it costs, and when buying is still the smarter move.

Auto-dispatch that ignores how your contracts actually work

Say your book of business is mixed: same-day medical runs that need refrigerated vans, next-day furniture that needs two-person crews, and scheduled retail deliveries with two-hour windows promised to the end customer. Onfleet's auto-dispatch optimizes within a team and treats tasks as interchangeable. It has no way to encode "this order requires a liftgate," "this driver is not certified for alcohol," or "this client's SLA pays a penalty after 6:00 pm." So your planners hold those rules in their heads and a spreadsheet, pre-sorting orders into teams before Onfleet ever sees them. That is the 90-minute morning ritual, repeated in every market you open.

A custom build moves those rules into the routing layer itself. Orders carry attributes: weight, cube, temperature class, crew size, certification requirements, contracted window, SLA tier. Vehicles and drivers carry profiles: capacity, equipment, skills, shift limits. A solver, usually built on Google OR-Tools or a commercial routing engine rather than written from scratch, produces routes that satisfy all of it at once. When a driver calls out at 6:12 am, a dispatcher reflows the affected routes in one action instead of sixty. The constraint model is yours, so a new contract with odd rules becomes a configuration change, not a new spreadsheet.

Order ingestion is a part-time job per client

Every new contract arrives with its own order format. One client emails a CSV at 5:00 am with addresses jammed into a single column. Another exports from Shopify. A national shipper wants EDI. Someone on your team maps columns, fixes addresses, uploads to Onfleet, and hopes nothing duplicated. When the 5:00 am email arrives at 6:15 instead, the whole morning slides. Onfleet has an API, but connecting it to each client's format means you are already building and maintaining middleware, just badly, through Zapier connections that fail silently.

The custom answer is an ingestion layer with an adapter per client: watched SFTP folders, Shopify and WooCommerce webhooks, EDI 204 for retail shippers, a plain REST endpoint for the technical ones. Every order is validated, geocoded, and deduplicated on entry. Anything that fails validation lands in an exceptions queue with an alert to a named person instead of disappearing. Onboarding a new client becomes a two-day adapter task instead of a permanent line in someone's job description.

Proof of delivery scattered across three systems

A client disputes an $1,800 sofa delivery. The photo is in Onfleet, the signature capture failed, and the only record of the customer saying "leave it in the garage" is a message in the driver group chat from three weeks ago. Your dispatcher spends 45 minutes assembling a defense, the evidence is incomplete, and you eat the claim. Multiply that across every contract and the real loss is not the sofas, it is the dispatcher hours and the client's growing doubt.

A custom platform treats the delivery event as one record: photos, GPS coordinates checked against the delivery pin, timestamp, signature or ID scan, and your own exception codes. That record attaches to the order permanently and is visible to the client in their portal the moment the stop completes, so many disputes never get filed. When one does, the defense is a two-minute lookup, not an archaeology project across Onfleet, camera rolls, and chat history.

Driver settlement and the Friday pay fight

Most couriers at this scale pay drivers per stop with tiers and adjustments: attempt versus completion, redelivery deductions, weekend premiums, density incentives. None of that lives in Onfleet, so it lives in a spreadsheet fed by CSV exports and lookups. Drivers dispute counts in the group chat every Friday, the payroll clerk arbitrates from the same messy data, and your 1099 contractors quietly churn to whoever pays them legibly.

Because a custom platform already records every delivery event, settlement becomes arithmetic on data you trust. A rating engine computes each driver's earnings as stops complete. The driver app shows running pay for the day, per stop, with a dispute button that routes to a workflow instead of a group chat. Weekly statements generate themselves and export to payroll. This is the module operators underestimate most and value most: pay transparency is a retention tool in a market where drivers pick contracts based on trust.

Billing that runs three days late and leaks accessorials

Client billing has the same shape as driver pay, pointed the other direction. Each contract has a rate card: per stop by zone, fuel surcharge, wait time, redelivery fees, weekend premiums. Building invoices in Excel from Onfleet exports takes days and systematically misses accessorial charges, because the person invoicing cannot see which stops had a second attempt or 40 minutes of dock wait. Operators routinely discover entire categories of billable work they never invoiced.

The custom fix is pricing every event at the moment it closes. The same rating engine that computes driver pay applies the client's rate card to the completed stop, accessorials included, and the invoice becomes a report, not a project. Line items sync to QuickBooks or Xero. Just as important, you see margin per route, per client, per day, which is the number that tells you which contract to renegotiate, and today you see it quarterly at best.

What custom last-mile delivery software costs and how long it takes

Across 2,000+ delivered projects at Digital Heroes, a focused first release in this category typically runs $60,000 to $130,000 and ships in 12 to 16 weeks. That usually means the ingestion layer, a dispatch board, a driver app with proof of delivery, and one money module, either settlement or billing, wired to your accounting system. Full platforms, with constraint-based routing, client portals, branded tracking pages, both money modules, and analytics, run $150,000 to $400,000 phased over 6 to 12 months.

What pushes price up in this category specifically: the driver app, because offline-first operation, background GPS, and battery discipline on cheap Android hardware are genuinely hard; routing depth, since every constraint type you encode adds solver and testing work; the number of client integrations at launch, EDI being the heaviest; live tracking scale, because thousands of concurrent GPS pings need real infrastructure; and settlement complexity if your pay rules have accumulated years of exceptions. The cheapest scope decision you can make is launching with two client adapters instead of ten and adding the rest as contracts demand.

Build vs buy: when Onfleet is still the right answer

Onfleet earns its fee when you run a single market with one service type, standard proof of delivery, and volume that fits its published plans, which run roughly $550 to $1,265 per month with task limits. If your dispatchers are not maintaining shadow spreadsheets and your clients are not asking for portals you cannot provide, keep it and spend the budget on vans.

The signals it is time to build are concrete. You employ the equivalent of one or two full-time people doing manual glue: pre-sorting routes, re-keying orders, reconciling pay, building invoices. You have lost at least one contract bid because a shipper wanted branded tracking, a client portal, or EDI. Your fleet has constraints the optimizer cannot express, so its output is a suggestion your planners rework by hand. Driver churn traces back to pay disputes. Hit three of those and the build pays for itself in headcount and won contracts before it is a year old. Our position: at multi-market scale, delivery software is what enterprise shippers are actually buying when they pick a courier, and you cannot differentiate on a tool every competitor can also rent for $1,265 a month.

How to choose a developer for last-mile delivery software

First, make them whiteboard the domain model before you sign anything. Orders, stops, routes, manifests, and delivery events are different objects with different lifecycles, and exception states, failed attempt, redelivery, return to depot, drive everything downstream in pay and billing. A developer who models a delivery as one row with a status column will build you a demo that collapses in month two.

Second, ask for integration receipts, not claims. You want evidence of shipped work against Shopify or WooCommerce webhooks, EDI 204 and 214 for retail shippers, telematics platforms like Samsara or Geotab, and QuickBooks or Xero. Ask to watch an ingestion pipeline handle a malformed file, because the failure path is the product.

Third, interrogate their mobile discipline. Ask exactly what happens when a driver captures proof of delivery in an underground parking garage with no signal, and what the app does to a phone battery over a ten-hour shift. Teams that have not shipped an offline-first field app will not have crisp answers, and drivers will not forgive them.

Fourth, if your freight includes alcohol, pharmacy, or medical work, test their compliance fluency: 21+ ID verification at the door, chain-of-custody records, cold-chain logging, and sane retention rules for driver location data. These requirements shape the data model from day one, and retrofitting them costs more than building them in.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Comparesoft reports the field-service industry-average first-time fix rate is about 80%, best-in-class providers reach roughly 90%, scores below 70% put the business at risk, and providers exceeding 70% FTFR saw customer retention around 86%. Source: Comparesoft (2024) →
  2. Timefold reports field service operations moving to automated route optimization typically see 10-25% fuel savings and 15-30% drive-time reductions, and documents a case where a global services firm cut drive time 33% and distance 43% while eliminating overtime. Source: Timefold (2025) →
  3. Qualtrics research (Q3 2023 survey of ~28,400 consumers across 26 countries) estimated bad customer experiences put roughly $3.7 trillion in global revenue at risk annually, a 19% jump from the prior year's $3.1 trillion; 64% of customers say they will switch companies over poor service regardless of how much they like the product. Source: Qualtrics XM Institute (via Forbes) (2024) →
  4. The EY survey of 508 payroll professionals at U.S. companies with 250-10,000 employees quantifies the direct and indirect cost of payroll inaccuracy, reinforcing the ROI case for payroll automation; the study is the original source of the frequently cited $291-per-error figure. Source: BusinessWire / EY (Ernst & Young) (2022) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to build custom last-mile delivery software for a courier doing 2,000 stops a day?
Expect $60,000 to $130,000 for a focused first release covering order ingestion, dispatch, a driver app, and proof of delivery, based on Digital Heroes delivery experience across 2,000+ projects. A full platform with route optimization, client portals, driver settlement, and billing runs $150,000 to $400,000 phased over 6 to 12 months. The biggest cost drivers are the driver app, routing depth, and how many client integrations you need at launch.
Should we replace Onfleet with custom software or keep paying for it?
Keep Onfleet if you run one market with one service type and its published plans, roughly $550 to $1,265 per month, cover your volume without heavy spreadsheet work around it. Replace it when you are paying staff to pre-sort routes in spreadsheets, hitting task caps, or losing contract bids because shippers want branded tracking, portals, or EDI you cannot offer. The tipping point is when the manual glue around Onfleet costs more per year than a build would.
How long does it take to build a delivery management platform for a courier company?
A working first release ships in 12 to 16 weeks in Digital Heroes projects: ingestion, dispatch board, driver app, and proof of delivery. Full platforms with optimization, settlement, and client portals phase in over 6 to 12 months. Running the new system in one market alongside Onfleet for two to four weeks before cutover is the standard de-risking step.
Can we migrate off Onfleet and spreadsheets without stopping daily deliveries?
Yes, and you should never attempt a hard cutover. The standard approach is to run the custom platform in one depot or one client contract in parallel with Onfleet, reconcile results daily, then migrate market by market. Onfleet's API and CSV exports let you pull historical tasks, drivers, and proof of delivery records into the new system before switching.
Who owns the code when an agency builds our delivery platform?
You should own it outright: source code, infrastructure accounts, app store listings, and all data, with full ownership transferring on payment. Insist the repositories live in your organization from day one and that the contract states work for hire. Walk away from any developer proposing an ongoing license fee or keeping the code on their own accounts.
What should a custom driver app do that Onfleet's driver app does not?
The big three are offline-first operation so proof of delivery capture works in dead zones and syncs later, running pay visibility so drivers see per-stop earnings in real time, and your own exception codes wired into your dispatch workflow instead of generic failure reasons. Custom apps can also enforce contract rules like photo requirements per client or two-person delivery confirmation. That is what moves driver disputes out of the group chat.
Do we have to build route optimization from scratch for a custom delivery platform?
No. Most custom builds wrap a proven solver such as Google OR-Tools or a commercial routing API and spend the engineering effort encoding your real constraints: vehicle capacity, driver certifications, delivery windows, and client SLA tiers. Building the math from scratch is almost never worth it, while owning the constraint layer is where the value sits.
What compliance requirements apply to last-mile delivery software?
It depends on the freight. Alcohol requires 21+ ID verification at the door in most states, medical and pharmacy work brings chain-of-custody records and stricter data handling, and temperature-sensitive goods need logged cold-chain evidence. Driver location data also carries privacy obligations, so retention and access rules should be designed into the platform from the start, not bolted on later.
What integrations does a custom courier platform need for retail and e-commerce clients?
The usual launch set is Shopify and WooCommerce webhooks for order intake, SFTP or CSV drops for less technical shippers, EDI 204 and 214 for larger retail contracts, QuickBooks or Xero for invoicing, and telematics such as Samsara or Geotab if you run your own fleet. Start with the two or three that cover your largest contracts and add adapters per new client. Each new adapter is typically days of work once the ingestion layer exists.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
What tech stack should a custom field service platform be built on?
The dependable 2026 stack is React Native or Flutter for the technician app, React for the dispatch console, Node.js or Python on the backend, and PostgreSQL with an offline sync layer on the device. Boring, widely used technology wins here because any competent team can maintain it five years from now. Be wary of an agency proposing a stack only they can staff; that is a lock-in strategy, not an engineering decision.
How much does it cost to build custom field service management software for a small business?
For a company running 5 to 25 technicians, a focused first version with scheduling, dispatch, a technician mobile app, and invoicing typically runs $40,000 to $80,000 in Digital Heroes delivery experience. A full platform with offline mode, a customer portal, GPS tracking, and accounting sync lands between $90,000 and $180,000. The two biggest cost drivers are offline sync depth and integration count, so pin both down in scoping and the quote holds.
Can I get my customer and job history out of ServiceTitan or Jobber if we switch to custom software?
Yes. Jobber and Housecall Pro both provide CSV exports of clients, jobs, and invoices, and ServiceTitan data comes out through its API and report exports, though attachments and full audit history take extra work. Budget 2 to 4 weeks of migration effort inside the project for cleaning, mapping, and verifying records, and run both systems in parallel for at least two billing cycles before cutting over.
At what point does it make sense to switch from ServiceTitan to custom software?
The switch usually pencils out once your ServiceTitan bill passes roughly $75,000 a year and your team still maintains workaround spreadsheets beside it. ServiceTitan keeps pricing quote-only, and the quotes owners share in Digital Heroes scoping calls run several hundred dollars per technician per month on annual contracts, so a 30-technician shop can spend a full custom build's budget every 12 to 18 months in fees. If ServiceTitan fits your workflow cleanly, stay; the case for custom is a workflow the product forces you to bend.
What does it cost per year to maintain custom field service software?
Budget 15 to 20 percent of the original build cost per year, so $15,000 to $20,000 on a $100,000 platform. That covers hosting, security patches, integration API changes, a monthly block of small improvements, and the iOS and Android updates Apple and Google ship on their own schedule. Skipping it is not a savings; the technician app needs attention every OS cycle or it eventually stops opening on new phones.
Should we start with an MVP or build the full field service platform in one go?
Start with an MVP that can run one real crew for one real week: scheduling, dispatch, job completion with photos and signatures, and invoicing. That slice typically costs $40,000 to $70,000 and ships in about 12 weeks, and technician feedback then decides phase two. Teams that built the full platform up front reworked 30 to 40 percent of it after field use in Digital Heroes experience, which is the most expensive way to discover what dispatchers actually need.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?