A driver pulls up to a commercial loading dock at 2:15 PM. The receiving window closed at 2:00 PM. The dock manager turns them away. That delivery now has to be rescheduled for tomorrow, which means the product sits on the truck overnight, the customer calls to complain, and the dispatcher has to find a slot to squeeze it into an already full schedule. All because the route plan said "afternoon delivery" instead of "arrive before 2:00 PM."
Time windows are the bridge between what the customer expects and what the driver actually does. When they are set up correctly, deliveries arrive on time, customers are satisfied, and drivers move through their stops without waiting around or racing against the clock. When they are set up poorly, or not at all, the entire operation runs on guesswork.
This guide covers what delivery time windows are, the different types, how to set them up in practice, and the mistakes that cause even well-planned schedules to fall apart in the field.
What Are Delivery Time Windows?
A delivery time window is a defined time range during which a stop should be serviced. It is the constraint that tells the routing engine not just where a driver needs to go, but when they need to be there.
At their simplest, time windows answer one question: what time does this customer expect the delivery? But in practice, they come in several forms, each with different implications for how routes are built and optimized.
Hard Windows vs. Soft Windows
A hard time window is non-negotiable. If the driver does not arrive within the window, the delivery fails. Commercial receiving docks with fixed hours are the classic example. A warehouse that accepts deliveries between 7:00 AM and 11:00 AM will not open the dock at 11:15 AM because a driver is running late. Medical deliveries, catered events, and time-sensitive perishables also fall into this category.
A soft time window is a preference rather than a hard requirement. A residential customer might prefer delivery between 10:00 AM and 2:00 PM because they work from home during those hours, but they will still accept the package at 3:30 PM if a neighbor can receive it. Soft windows should be respected when possible, but the routing engine can break them if doing so produces a significantly more efficient route.
The distinction matters because hard windows constrain the optimizer. Every hard window reduces the number of valid route sequences, which can increase total drive time. Soft windows give the optimizer flexibility to make tradeoffs. Knowing which stops have hard constraints and which are preferences is the first step toward building schedules that work.
Real-World Examples
- Restaurant supply delivery: Must arrive before the restaurant opens at 11:00 AM (hard window)
- Residential furniture delivery: Customer selected a 1:00 PM - 5:00 PM window during checkout (soft window)
- Pharmacy prescription delivery: Patient needs medication by 3:00 PM (hard deadline)
- Construction site delivery: Site accepts materials between 6:30 AM and 3:00 PM, crane available until noon (two constraints on one stop)
- Office catering: Lunch meeting starts at 12:00 PM, food must arrive by 11:45 AM (hard deadline with buffer)
Why Time Windows Matter
Time windows are not just a scheduling nicety. They have direct, measurable impact on three dimensions of delivery operations: customer satisfaction, cost, and driver productivity.
Customer Satisfaction
Customers who receive deliveries within their expected window do not call to ask where their order is. They do not leave negative reviews. They do not switch to a competitor who can deliver on time. On-time delivery is the single highest-correlated factor with customer retention in last-mile logistics. A route that is geographically optimal but ignores time commitments creates more problems than it solves.
Failed Delivery Costs
A failed delivery is not just an inconvenience. It costs real money. The driver wasted fuel and time getting to a stop that did not complete. The goods go back on the truck or back to the warehouse. A redelivery has to be scheduled, often with an apology discount attached. Industry estimates put the cost of a single failed delivery between $12 and $20 when you factor in fuel, labor, customer service, and lost goodwill. For operations running 50 to 100 stops per day, even a 5% failure rate adds up to thousands of dollars per month.
Driver Efficiency
Without time windows, drivers are sequenced purely by geography. With time windows, the route sequence respects both location and timing. This means drivers spend less time waiting for businesses to open, less time circling back to a stop they arrived at too early, and less time making apologetic phone calls when they arrive too late. A well-scheduled route keeps the driver moving forward through their stops without dead time.
Three Scheduling Modes
Not every delivery operation thinks about time the same way. There are three common approaches, and the right one depends on what kind of commitments you make to your customers.
1Deliver-By Deadlines
The simplest form of time constraint: the package must arrive before a specific time. "Deliver by 2:00 PM" means the driver can arrive at 8:00 AM or 1:55 PM and the constraint is satisfied. This is common in same-day delivery, pharmacy operations, and any scenario where urgency matters more than a specific arrival window. The optimizer treats the deadline as a one-sided constraint: arrive any time before the cutoff. This gives the routing engine maximum flexibility to sequence stops efficiently while still meeting the commitment.
2Open/Close Windows
A two-sided constraint with an earliest arrival and a latest arrival. "Deliver between 9:00 AM and 11:00 AM" means the driver should not arrive before 9:00 and must arrive before 11:00. This is the most common format for commercial deliveries, where businesses have receiving hours, and for residential deliveries where customers select a window during checkout. The optimizer must sequence the route so that the driver arrives within each stop's window, which often means the optimal geographic sequence is not the optimal time-constrained sequence.
3Scheduled Arrival Times
The most restrictive form: the driver should arrive at a specific time, not just within a range. "Arrive at 10:30 AM" means the customer is expecting the driver at 10:30 AM, not 10:00 and not 11:00. This is common for appointment-based services, catered events, and high-value deliveries where precision matters. In practice, even scheduled arrivals have an implicit window of a few minutes, but the optimizer treats the target time as the center point and minimizes deviation from it.
Many operations use a mix of all three. The morning restaurant deliveries have hard open/close windows. The residential stops have soft two-hour preferences. A few high-priority stops have exact scheduled times. A good route planner handles all three in the same route without requiring separate planning passes. Once routes are built, Signal Dispatch pushes them to drivers and surfaces live ETAs against the windows you set, and the driver PWA shows each stop's window so the driver can sequence on the fly when traffic shifts.
Setting Up Time Windows in Practice
Time window data has to come from somewhere. For most delivery operations, it lives in a spreadsheet, an order management system, or a CRM export. The challenge is getting that data into a format that a routing engine can use.
Import from a Spreadsheet
If your stop data is in Excel or CSV, your time window information is typically in one or two columns. Common formats include:
- Single column: "9:00 AM - 11:00 AM" or "09:00-11:00" in one cell
- Two columns: "Window Open" and "Window Close" with separate times
- Deadline column: "Deliver By" with a single cutoff time
- Scheduled time column: "Appointment Time" with a specific arrival time
During import, you map these columns to the time window fields in your route planner. Drivant's column mapping wizard auto-detects common header names like "Time Window," "Delivery Window," "Open," "Close," and "Appointment." If your column headers are non-standard, you drag them to the correct field manually. Once mapped, every stop in the import gets its time constraint applied automatically.
Manual Entry and Adjustments
Not every stop comes from a spreadsheet. Sometimes a customer calls to reschedule, or a new urgent stop gets added mid-morning. In these cases, you add the time window directly on the stop. Open the stop details, set the window start and end times, and the schedule recalculates to accommodate the new constraint. If the new window creates a conflict with existing stops, the schedule flags it so you can make an informed decision about how to handle it.
How Schedule Optimization Handles Time Windows
A route optimizer without time window awareness is just solving a geographic puzzle. Adding time windows transforms it into a scheduling problem, and the two are often in tension. The closest stop geographically might be the worst stop to visit next if its window does not open for another hour.
When you run schedule optimization on a set of stops with time windows, the engine does several things.
First, it identifies all hard constraints and treats them as non-negotiable. A stop with a window of 9:00 AM to 10:00 AM must be reached by 10:00 AM, period. The optimizer will rearrange the entire route to make that happen, even if it means a less efficient geographic sequence.
Second, it calculates realistic travel times between every pair of stops, factoring in road networks, speed limits, and the type of vehicle being used. A route that looks feasible on a straight-line distance map might be impossible when you account for a 20-minute detour around a highway closure or the slower speed of a box truck on residential streets.
Third, it accounts for service time at each stop. A 5-minute residential drop-off is different from a 30-minute commercial unload. If the optimizer does not know how long the driver will spend at each stop, the schedule drifts out of alignment within the first few deliveries. Service time is the hidden variable that causes schedules to fail. You can build a perfect arrival-time plan, and it will be wrong by 10:00 AM if you did not account for the 15 minutes the driver spends unloading pallets at Stop 3.
Fourth, it detects and reports conflicts. If two stops have overlapping hard windows but are 45 minutes apart, the optimizer cannot serve both. Rather than silently producing a plan that will fail in the field, it flags the conflict and suggests alternatives: reassign one stop to a different route, adjust a window if possible, or accept the violation on the soft-constrained stop.
Common Pitfalls
Even operations that use time windows regularly make mistakes that undermine their schedules. These are the most common ones, and they are all avoidable.
Windows That Are Too Tight
A 15-minute delivery window on a residential stop is unrealistic for any route with more than a handful of stops. Traffic varies. Service times vary. One customer who wants to chat at the door throws off the rest of the schedule. If you promise "delivery between 10:00 and 10:15," you are setting the driver up to fail and the customer up to be disappointed. For most residential operations, two-hour windows are the practical minimum. One-hour windows work for small teams with short routes, but they require disciplined service time tracking and low stop counts.
No Buffer Between Stops
A schedule that shows the driver arriving at Stop 7 at 10:30 AM and departing at 10:35 AM, then arriving at Stop 8 at 10:47 AM, assumes everything goes perfectly. The driver finds parking immediately. The customer is at the door. The package is on top of the load. In reality, every stop has a few minutes of overhead that do not show up in the routing engine's travel time: parking, locating the package, walking to the door, getting a signature. Build in realistic service times and consider adding a small buffer. Five minutes per stop is a reasonable starting point for residential deliveries. Commercial stops with loading docks may need 15 to 30 minutes.
Ignoring Service Time Entirely
This is the most damaging mistake. If your schedule assumes zero minutes at each stop and only accounts for drive time, the cumulative error compounds with every delivery. A 40-stop route with an average of 5 minutes per stop that is not accounted for will be over three hours behind schedule by the end of the day. Service time is not optional data. If you do not know your average service time, measure it. Have a driver time their stops for a week. The data will probably show 3 to 7 minutes for residential and 10 to 30 minutes for commercial, depending on the type of goods.
Treating All Windows as Hard Constraints
If every stop on a route has a hard two-hour window, the optimizer has very little room to build an efficient sequence. The result is a route that zigzags across the service area to hit windows in order, with excessive drive time between stops. Audit your windows honestly. How many of them are truly non-negotiable? For most operations, it is 20 to 30 percent. The rest are preferences that can flex by 30 minutes without any real consequence. Marking those as soft windows gives the optimizer the flexibility to build routes that respect priorities while still minimizing drive time.
Setting Windows Without Checking Feasibility
A sales team that promises customers any delivery window they want without checking whether the operations team can actually fulfill it is creating a scheduling problem that no optimizer can solve. If 15 customers all request delivery between 9:00 AM and 10:00 AM and you have two drivers, the math does not work. Time window commitments need to be made with awareness of capacity. The planning tool should be consulted before the commitment is made, not after.
Measuring Success
You cannot improve what you do not measure. Once time windows are part of your routing process, track these metrics to know whether your schedules are working.
On-Time Delivery Percentage
The most important metric. What percentage of stops were serviced within their assigned time window? For operations just starting with time windows, 80% is a reasonable initial target. Mature operations should aim for 92% or higher. If you are below 75%, there is a systemic problem: windows are too tight, service times are unaccounted for, or routes have too many stops.
Window Violation Analysis
When deliveries miss their window, categorize the reason. Was it traffic? A long service time at a previous stop? A late start from the depot? An infeasible window that should never have been assigned? Patterns in violations point to specific, fixable causes. If 60% of your violations happen after 2:00 PM, your routes may have too many stops and drivers are running out of time. If violations cluster on certain days, there may be a recurring traffic pattern you are not accounting for.
Driver Idle Time
If drivers are frequently arriving at stops before the window opens and waiting, the schedule is not well-calibrated. Some early arrivals are unavoidable, but consistent idle time means the route sequence could be reordered to fill gaps. Idle time is wasted payroll. A driver sitting in a parking lot for 20 minutes because the receiving dock does not open until 9:00 AM could have been serving a nearby stop that had no time constraint.
Customer Complaint Rate
Track complaints related to delivery timing separately from other complaint types. Late deliveries, missed windows, and no-shows are all time-window failures. If your complaint rate around timing is climbing, your schedules are not matching reality, regardless of what the plan says on paper.
Getting Started with Time Windows
If you are currently planning routes without time constraints, adding time windows does not require overhauling your process. Start with the stops that have genuine time requirements: commercial deliveries with receiving hours, customers who have explicitly requested a window, and any stop where a missed delivery has real consequences.
Add a "Time Window" column to your import spreadsheet with the format "9:00 AM - 11:00 AM" for open/close windows, or a single time for deadlines. Import the file, map the column, and let the optimizer build a schedule that respects those windows while keeping the rest of your stops sequenced for efficiency.
You do not need to assign windows to every stop on day one. In fact, you should not. Start with 20 to 30 percent of your stops, the ones where timing genuinely matters, and let the rest remain unconstrained. This gives the optimizer maximum flexibility while still protecting your most time-sensitive deliveries. As you get comfortable with the process and learn your actual service times, you can add windows to more stops.
Drivant's free plan supports time windows on every stop, with schedule optimization that respects hard and soft constraints. Import your spreadsheet, set your windows, and see the schedule before your drivers leave the depot. For operations that need multi-route optimization, advanced vehicle settings, or Excel export with full schedule details, paid plans start at $29/month.
Build Schedules Your Drivers Can Follow
Import your stops with time windows, run the optimizer, and get a schedule that respects every constraint. Free forever, no credit card required.
No credit card required. No trial. Free forever.