Cost per Drop: Work Out Delivery Cost From Route and Fuel Data

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Cost per Drop: Work Out Delivery Cost From Route and Fuel Data.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Cost per Drop: Work Out Delivery Cost From Route and Fuel Data.

Cost per drop is the total cost of a route divided by the deliveries that succeeded: driver hours at their full cost, plus vehicle costs by the mile and by the day, plus any failed visits. In the worked van example below it comes to about $11, and the driver makes up nearly four-fifths of that.

Many small firms watch fuel closely and little else, which is why their figure looks good until the month-end accounts disagree. Below is a method that uses exports you already have: the route planner's stop list, the fuel card statement, timesheets and the vehicle paperwork. A spreadsheet does the sums, and AI can tidy the exports first.

Follow me on Instagram@sagnikteaches

The four inputs and where each one lives

You need four sets of figures. Gather a month of each, because one good week hides the average.

Connect on LinkedInSagnik Bhattacharya
InputWhere to find itWhat to take
Driver timeTimesheets or payroll exportPaid hours per route, plus employer costs as a percentage
Vehicle cost by the dayFinance or lease agreement, insurance, tracker, licencesMonthly total divided by working days
Vehicle cost by the mileFuel card statement, odometer, service invoices, tyre billsFuel, tyres and maintenance divided by miles driven
DropsRoute planner export or delivery app logPlanned drops, completed drops, failed drops, per route

Notice what is missing: a standard figure from a website. Online calculators run on generic averages for wages and fuel, and a van that does 28 drops through a town centre bears no resemblance to the average. Your own exports will always beat them, and the arithmetic below takes an afternoon.

Subscribe on YouTube@sagnikteaches

The main example: one van, 24 drops, 62 miles

Take an illustrative garden centre that delivers bagged compost, planters and plant orders with one van. All figures are invented. One route on a typical day: 24 planned drops, 62 miles, a driver paid for 7.5 hours, two drops failed because nobody was home.

Driver. Hourly wage $22. Employer costs such as holiday pay and contributions add 15%, so the loaded rate is $22 × 1.15 = $25.30. Over 7.5 hours: $189.75.

Vehicle by the day. Monthly van finance $520, insurance $210, tracker and licences $60. That is $790 a month. With 22 working days: $790 ÷ 22 = $35.91 a day.

Vehicle by the mile. Fuel at 21 miles to the gallon and $3.60 a gallon is $0.171 a mile. Tyres and servicing from last year's invoices: $0.09 a mile. Together $0.26 a mile. Over 62 miles: $16.12.

Route cost. $189.75 + $35.91 + $16.12 = $241.78. With 24 attempted drops that is $10.07 a drop. With two failed, only 22 succeeded, so the real cost per successful drop is $241.78 ÷ 22 = $10.99.

Now compare with the price. If the garden centre charges $8.50 as an average delivery fee, it loses $2.49 on each successful drop, about $55 a day. This is the point of the exercise: the loss is invisible if you only look at fuel, which here is $10.60 for the whole route.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Build it as a spreadsheet in six columns

Set one row per route, one month of routes. Use these columns, in this order.

  1. Route date and name. One row per van per day.
  2. Paid hours from the timesheet.
  3. Miles from the odometer or tracker, not from the plan.
  4. Drops attempted and Drops completed, in separate columns.
  5. Route cost, with a formula such as =B2*LoadedRate + DayCost + C2*MileCost.
  6. Cost per completed drop, =E2/F2, with a guard such as =IF(F2=0,"",E2/F2).

Put the three constants (loaded hourly rate, vehicle cost per day, vehicle cost per mile) in labelled cells at the top and refer to them by name, so changing a wage updates the whole sheet. If you want help writing the formulas, the guide to using ChatGPT with Excel shows how to get a formula and check it.

Cleaning the exports with AI before you calculate

Route and fuel exports are rarely tidy. A planner might give times as text, a fuel card might list a car-wash and a pack of wipers beside diesel, and the timesheet might have the driver's name spelled three ways. Asking an assistant to tidy a sample is quick, as long as you check the result against a total.

Here are 15 rows from our fuel card export (date, merchant, item, gallons, amount).
Task: keep only the rows that are fuel, add a column for price per gallon, and flag any row where price per gallon is more than 15% away from the median.
Do not change any amounts. Show the removed rows separately and tell me their total, so I can check nothing was lost.

An illustrative good reply returns 13 fuel rows, lists a $6.40 car wash and a $3.20 snack as removed, and flags one row at $5.92 a gallon against a median near $3.60 as a likely double charge or a premium fuel purchase. What you check: the sum of kept plus removed rows equals the original total to the cent. If it does not, the assistant lost or changed a line, and you should not trust the cleaned file. Never paste a card number or driver's personal details into a chat.

For larger exports, a spreadsheet tool's own cleaning is better than pasting hundreds of rows into a chat. The tutorial on cleaning messy data covers that route.

Drops per hour: the number that moves everything

Cost per drop is mostly a density problem. The same driver and the same van cost the same on a sparse route and a dense one, so the number of drops sharing the route cost decides the result. Here is how the main example changes if the van squeezes in more or fewer drops, with the same wage and vehicle costs. Hours rise a little on the denser routes, while miles fall because the stops sit closer together.

Drops completedPaid hoursMilesRoute costCost per drop
147.578$245.94$17.57
227.562$241.78$10.99
308.055$252.61$8.42
388.550$263.96$6.95

The second row is the base case, the others are what-ifs with a longer day for the denser routes. Notice that going from 22 to 30 drops cuts the cost per drop by $2.57 even though the day is half an hour longer. That is the argument for bundling delivery days: telling customers in an area that Tuesdays are their day is worth more than a cheaper van.

A route planner that sequences stops can help here. See the comparison of four route planners on cost and AI, and check that the one you choose exports actual stop times, not just planned ones.

Time at the door: the cost hiding in service time

Driving time is easy to see in a planner. Time at the door is not, and for local delivery it often outweighs the driving. A heavy bag of compost carried round the back of a house takes six minutes; a parcel through a letterbox takes one. If the planner assumes three minutes for every stop, it flatters your figure.

Measure it. Ask the driver to log arrival and departure times on a typical day, or use the app's stop timestamps. Then group stops by type. An illustrative result for the garden centre: letterbox-size parcels 1.5 minutes, plants and small planters 4 minutes, heavy bags 7 minutes, signature-required 9 minutes. Weight your route plan with those figures, and the planner's 7.5-hour day may stretch to 8.5, adding $25.30 to the route and $1.15 to each drop. Give the cost its own line in the sheet: service minutes per drop, times the loaded hourly rate divided by 60.

A second example: a wholesaler with a minimum order

A different business shows the same sums leading to a different decision. Picture a small wholesaler that delivers stationery and cleaning supplies to offices in one town, two routes a day, each with a driver and a van. Their data over two months, all invented: 40 working days, 80 routes, 1,680 completed drops, total route cost $19,840. Cost per drop is $19,840 ÷ 1,680 = $11.81.

They charge no delivery fee but have a $60 minimum order. Their gross margin on goods is 30%. At the minimum, margin is $18, and delivery eats $11.81 of it, leaving $6.19. At an average order of $140, margin is $42 and delivery leaves $30.19. The sums tell them to look at the small orders first. The export shows 23% of drops are orders under $80, where margin is at most $24 and delivery takes almost half.

Three options follow from the numbers, and the sheet prices each one. Raise the minimum to $90: fewer small orders, but some customers leave. Add a $5 fee below $90: keeps customers and covers about 42% of the delivery cost on those orders. Bundle small orders onto fixed days: lowers cost per drop only if the density rises. They test the $5 fee for a month and watch two figures, drops per route and the share of orders under $80. The decision rests on their own data, which a calculator could not give them.

What the driver can tell you that the data cannot

Exports show what happened, not why. The most useful twenty minutes in this project is a conversation with the driver once the first month of figures is in. Bring the three routes with the highest cost per drop and ask what made them slow.

Typical answers are mundane and fixable: a customer whose gate code is wrong, a loading bay shared with a rival, a depot queue at 7:30, a heavy item that needs two people, a road that is always blocked at school finish time. Each has a direct cost you can price. If two people are needed for the heavy planter orders and the second person is a salesperson pulled off the floor, count that time at their loaded rate too.

Write each cause in a "delay log" column and add up the minutes monthly. A cause that costs 40 minutes a week is worth $25.30 × 40/60 × 4 = $67.47 a month in driver time alone; fix it and the number drops. Without that column, the data tells you a route is slow and nobody knows why.

Asking AI for a monthly summary you can check

When the sheet is built, an assistant can write the three-line summary for you, as long as it only has the table and not the raw data. Here is a prompt and an illustrative result.

Below is our monthly delivery table: route type, drops completed, route cost, cost per drop, failed drops.
Write a summary for the owner in under 100 words: the best and worst route type by cost per drop, the failed-drop rate, and one change worth testing.
Use only numbers in the table. If you calculate anything, show the sum. Do not guess causes.

A good illustrative reply: "Inner-town routes averaged $8.20 a drop, outlying villages $17.60. Failed drops were 7.1% (119 of 1,680), up from last month's 5.4% per the table. The village routes lose $9.10 a drop against the $8.50 fee. Test a village-only delivery day." What you check: 119 ÷ 1,680 really is 7.1%, and the tool did not smuggle in a cause such as "bad weather" that is not in the data. Strike any sentence that does.

When a second van or a courier is cheaper

Once you know your cost per drop, an outsourcing decision becomes arithmetic. A courier quoting $9.50 a drop for a zone where your cost is $17.60 saves $8.10 a drop; on 25 drops a week that is $202.50 a week. Put your figure beside the quote, and add anything the courier does not do, such as carrying heavy items inside or taking payment.

The reverse also happens. For a dense inner-town zone where your cost is $8.20 and a courier asks $9.50, keep it in-house. A mixed approach, with your van on dense days and a courier on sparse ones, is common, and the sheet tells you where the boundary lies. Price the courier on the same basis as your van: per successful drop, with failed visits included.

Mistakes that make the number wrong

  • Counting planned miles. A planned route of 54 miles that becomes 62 after a closed road costs 62. Use the odometer.
  • Leaving out unpaid-looking hours. Loading at the start and unloading returns at the end are paid time. A route that leaves at 8:00 after loading from 7:15 has an extra 45 minutes.
  • Using only fuel. Here fuel is under 5% of the route cost. A firm that charges delivery to cover fuel will be underwater.
  • Averaging everything. If one route in five takes a driver 90 minutes outside town for six drops, its cost per drop might be double the rest. Average numbers hide it. Keep route type as a column and filter.
  • Forgetting failed drops. Dividing by attempted drops understates cost, and the failure rate often points to a fixable problem such as no text message the night before.

A realistic error: a firm took its cost per drop from driver pay and the per-mile costs, and left out the daily vehicle costs of finance, insurance and tracker. It looked healthy at $9.36. After adding $35.91 a day, the true figure was $10.99, and their $9.50 fee had been losing money on average for a year.

Checking the number against the bank statement

Before trusting your cost per drop, reconcile it. Sum the route costs for the month and compare with what actually left the accounts for the van, the driver and fuel. They should match within a few percent. If your sheet says $5,320 and the accounts show $5,900, something is missing: perhaps a repair, a parking fine or overtime.

Then run a sense check on one route. Time the driver for a day, count the drops, read the odometer, and calculate by hand. If your sheet's cost for that route is within about 3% of your hand sum, the formulas are fine.

Turning cost into a price per drop

Once you trust the figure, compare it to what you charge. A simple pricing table by zone shows which areas are subsidised. Using the garden centre again, with invented zones:

ZoneAverage cost per dropDelivery fee chargedGap per drop
Inner town$8.20$8.50+$0.30
Suburb ring$11.40$8.50-$2.90
Outlying villages$17.60$8.50-$9.10

One flat fee means the town customers pay for the villages. Options are zone pricing, a minimum order for outer zones, or a fixed delivery day per zone. The tutorial on building a per-pallet price grid by zone shows the same logic for pallets, and answering courier quote enquiries from a rate card shows how to put the result into your replies. Add a margin on top, since cost per drop is what it costs you, not what you should charge.

The trucking version of this calculation is in cost per mile for trucking from your own statements, which is worth reading if your routes are long and the drops are few.

Keeping it current without a weekly chore

Do the full build once, then update monthly. Paste the new month of exports into the sheet, refresh the three constants if wages or fuel prices changed, and read two numbers: the average cost per drop and the worst route. A short monthly review keeps it honest.

Two events justify a re-run before the month is out: a wage rise or a new van agreement, which changes a constant, and a new delivery area, which changes density. Otherwise the monthly paste and the summary prompt above are enough, and five minutes a month saves finding out at the year-end that a route has been losing money for months.

Cost-per-drop questions from small delivery businesses

Should I count the driver's lunch break and loading time?

Count every paid hour of the route, including loading, breaks you pay for and time back at the depot. Cost per drop is about what a route costs you, not just the minutes the wheels turn. If you leave loading out, your figure will look better than the bank account says: in the worked example below, 45 minutes of loading is worth about $19 a route.

How many drops should I average over?

Use at least four weeks of routes, and split by route type if you run both dense and sparse areas. A single weekly average hides the sparse route that loses money on every drop. Keep a separate line for any route where drops per hour is under half your best route.

Is a cost per mile the same as a cost per drop?

No. Cost per mile tells you what the vehicle costs to run, but a drop also uses driver time, which is usually the biggest cost. Cost per drop adds the two, then divides by successful deliveries. Two routes with the same mileage can have very different costs per drop.

What if some drops fail and need a second visit?

Divide the route cost by successful drops, not attempted ones, and add the cost of the return trip to the day it happens. Track failed-drop rate as its own figure. A rise from 4% to 8% adds a visible amount to every successful delivery, and often points to an address or notification problem.

Further reads

Sources: the reader's own route exports, fuel card statements, timesheets and vehicle finance and insurance paperwork. All figures in the worked example are illustrative.

Want your cost per drop built from your own exports?

On a 1:1 call we can take your route, fuel and timesheet exports, build the spreadsheet together and decide which AI step is worth keeping in the monthly routine.

Book a 1:1 call with me