AI Courier Quotes: Reply to Delivery Enquiries From Your Rate Card

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Courier Quotes: Reply to Delivery Enquiries From Your Rate Card.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Courier Quotes: Reply to Delivery Enquiries From Your Rate Card.

A small courier firm can use ChatGPT to turn an enquiry into a quote reply by pasting in its rate card and surcharge rules, then giving it the weight, distance and time window for each job. It should show its working line by line, flag anything unusual, and produce a draft that a person checks and approves before it is sent.

Courier software pages sell route optimisation and dispatch. The job here is smaller and sooner: the first reply to "how much to send this by Thursday?" That reply is a pricing decision made in a hurry, often by whoever is nearest the inbox. Written rules make it consistent, and an AI drafting from those rules makes it fast. The rules come first, so we start there. Routes are a separate job, covered in the route planning tutorial, and parcel-tracking messages sit in the delivery updates tutorial.

Follow me on Instagram@sagnikteaches

Write the rate card so a machine could follow it

Most courier rate cards live in someone's head, or in a spreadsheet with exceptions that only the owner knows. An AI cannot use what is unwritten. The first job is to put every pricing rule in plain sentences with numbers. Below is an invented rate card for a small same-region courier. The figures are illustrative: use your own.

Connect on LinkedInSagnik Bhattacharya
RuleValue
Base price, chargeable weight up to 2 kg$9
Base price, over 2 kg up to 10 kg$14
Base price, over 10 kg up to 25 kg$22
Base price, over 25 kg up to 50 kg$38
Over 50 kg, or any side longer than 120 cmNeeds a human
Distance included in base priceFirst 10 km
Distance beyond that$1.20 per km
Maximum distance quoted automatically60 km
Chargeable weightGreater of actual weight and (length x width x height in cm) / 5000

Write the time-window rules and surcharges in the same style:

Subscribe on YouTube@sagnikteaches
ItemCharge
Standard window (four hours)$0
Two-hour window+$8
Exact time+$18
Rush: collection within 2 hours of the enquiry+50% of base plus distance
Outside 8am to 6pm weekdays+$12
Fragile or two-person handling+$10
Stairs with no lift at either end+$6
Waiting time beyond 10 minutes$0.80 per minute (quoted as a possible extra, not included)
Return journey on the same job70% of the outbound price

Two features make this usable. Every rule has a number or a clear instruction to stop. And the order of calculation is fixed: base, then distance, then rush on that subtotal, then fixed extras. If you do not state the order, the AI will pick one, and the totals will differ from yours.

Decide what the AI is not allowed to decide

Before any prompt, write down the cases that belong to a person. A list that works for many small couriers:

  • Weight, size or distance outside the card.
  • Dangerous goods, medicines, cash, alcohol, live animals, high-value items, anything that needs insurance.
  • Multi-drop jobs, regular contracts, or a customer asking for a "deal".
  • Any enquiry missing a weight, a distance or a time window. The AI asks for it; it does not assume.
  • Any discount request or comparison with another courier.

The AI's job on these is to say "needs a human", list the reason in a line, and draft a holding reply that promises a response time. The distance rule is worth repeating: the AI does not estimate how far two addresses are apart. A person (or the booking form) supplies the figure from a mapping tool, because AI distance guesses look plausible and are often wrong.

The prompt: rate card, order of working, output shape

Keep the rate card in a saved instruction so you do not paste it each time. In ChatGPT or Claude, that is a Project. (Custom GPTs are being retired, so do not build one.) Then each enquiry is a short message. The instruction:

You draft courier quotes for [firm name] using only the RATE CARD below. You never send anything; a person approves every quote.

For each enquiry I give you: chargeable weight or dimensions, distance in km (from a map), pickup and delivery time window, and any special handling. Do the working in this order and show each line:
1. Chargeable weight = greater of actual weight and (L x W x H in cm) / 5000. Pick the base price band.
2. Distance charge = (km - 10) x $1.20, or $0 if 10 km or less.
3. Subtotal = base + distance.
4. Rush: add 50% of the subtotal if collection is within 2 hours.
5. Add time-window and fixed extras.
6. Total.
If any input is missing, or the job breaks any "needs a human" rule, do not price it. Say NEEDS HUMAN, give the reason in one line, and draft a holding reply.
Never discount, round, or add services that are not in the card.
Output: a working table, then the customer reply in two or three plain sentences with the price, what it includes, what could add cost (waiting time, stairs not mentioned), and how long the quote is valid.

RATE CARD
[paste both tables]

Showing the working is the check. If a total looks wrong, you can see which line the AI mis-stepped on in seconds, which is far quicker than redoing the sum. For more on why this matters, see why AI is bad at maths and what to verify in quotes.

A worked example: an 18 kg parcel with a two-hour window

An enquiry arrives by email: "Can you collect a boxed printer from our shop and deliver it to a client by 2pm tomorrow? About 18 kg. It's fragile." The dispatcher looks up the distance on a map: 14 km. She asks one question by return, "which two hours do you need?", and the customer says 12 to 2. Input to the AI: 18 kg, 14 km, two-hour window, fragile, within working hours, no rush.

The AI's illustrative working:

StepWorkingAmount
Base (over 10 kg to 25 kg)Band price$22.00
Distance(14 - 10) x $1.20$4.80
Subtotal22.00 + 4.80$26.80
RushNot applicable$0.00
Two-hour windowFixed extra$8.00
FragileFixed extra$10.00
Total$44.80

And the draft reply:

Hi [first name],

Thanks for your enquiry. We can collect the printer and deliver it in the 12 to 2pm window tomorrow for $44.80. That covers the 18 kg parcel, 14 km, a two-hour window and fragile handling. Waiting time over 10 minutes at either end is $0.80 a minute, and stairs with no lift would add $6, so let us know if either applies.

This quote is valid until 5pm today. Reply to confirm and we'll book it.

[your name]

The dispatcher checks 22 + 4.80 + 8 + 10 on her phone, sees $44.80, and sends it. The whole thing takes two minutes against the ten minutes she used to spend deciding what to charge. She did not change a price; she approved one.

Five more enquiries and what the AI should do

The rules show their worth on awkward inputs. Here are five illustrative enquiries, run against the same card.

A rush job

"6 kg, 25 km, can you collect within two hours?" Base $14, distance (25 - 10) x 1.20 = $18, subtotal $32, rush 50% = $16, standard window, total $48.00. Check: the rush applies to base plus distance only, not to extras. A common AI error is adding rush on top of the fixed extras, so the working table matters here.

A heavy parcel with stairs

"40 kg, 8 km, exact time, third-floor flat, no lift." Base $38, no distance charge (under 10 km), exact time $18, stairs $6. Total $62. The AI should mention that the heavy item may need two people and ask whether this counts as two-person handling. If the card says two-person handling is a $10 extra, the correct reply asks before adding it, rather than assuming either way.

A bulky but light box

"5 kg, 60 x 40 x 40 cm, 12 km." Volumetric weight is 60 x 40 x 40 / 5000 = 19.2 kg, which exceeds the actual 5 kg, so the chargeable weight is 19.2 kg and the base is $22. Distance (12 - 10) x 1.20 = $2.40. Total $24.40 in the standard window. This is the case customers do not expect, so the reply should say "priced on size, not weight" in a sentence.

An out-of-area job

"Can you take a pallet 140 km?" Over 50 kg and over the distance cap. The AI prints NEEDS HUMAN with the two reasons and drafts: "Thanks for asking. That job is larger than we price from our standard card, so the owner will come back to you with a quote by 4pm." No price is mentioned.

An enquiry with missing facts

"How much to send a box across town tomorrow?" No weight, no addresses, no window. The AI does not price. It drafts a reply asking for the three inputs: roughly how heavy, the pickup and delivery addresses, and the time window. This is the most common enquiry, and the highest-value use of the tool, because the reply goes out at once and the customer's answer arrives ready to price.

The approval step that keeps the prices yours

The one rule I would not relax: a person approves every price before it leaves the building. The reason is not that the AI is bad. It is that a wrong price is expensive and public, and the firm is bound by what it says. A small approval routine takes under a minute:

  1. Read the inputs. Are the weight, distance and window the ones the customer gave? An AI can mishear "about 18" as 8.
  2. Recompute the total. Use a phone calculator or a spreadsheet. If the AI's working table has an error, it is nearly always in the multiplication or the order of rush.
  3. Read the reply for promises. No "guaranteed", no added service, no discount, no delivery time the card does not allow.
  4. Send, or edit and send. If you edit, note the reason, because it may point to a missing rule.

If you quote in a spreadsheet already, an alternative split works well: the AI reads the enquiry and extracts weight, distance and window into a row, a formula calculates the price, and the AI then writes the reply around the number. That removes the arithmetic from the AI altogether. The ChatGPT and Excel tutorial covers getting AI to help build the formula side. In either set-up, the person still approves.

Collect the inputs once, with five questions

The AI can only price what it is given, and the usual delay in quoting is chasing missing facts. Put the five inputs on your enquiry form or in a standard first reply, so every enquiry arrives complete or gets a one-message follow-up:

  1. What is being sent, and roughly how heavy? (Ask for the box size too if it is bulky.)
  2. Collection address and delivery address.
  3. Which day, and which time window works?
  4. Any stairs, locked gates or lifts at either end?
  5. Anything fragile, valuable or unusual about it?

The fourth question is the one most firms forget, and it is behind many disputes about extras. A customer who has said "no lift, third floor" has agreed to the stairs charge before the job; one who has not been asked can fairly object to it afterwards. If you take enquiries by phone, the dispatcher can read the five questions from a card and type the answers into the prompt as they go.

When the customer pushes back on the price

Quotes draw replies such as "that's more than I expected" or "the other firm said $35". Decide in advance what the AI may do with these, and the answer should be very little. Discounts are a human decision, so the instruction should say: if the customer disputes or negotiates, draft a short reply that restates what the price includes and passes the conversation to the owner. A version that works:

Thanks, [first name]. The $44.80 covers collection and delivery of an 18 kg fragile parcel in a two-hour window. If a longer window would suit you, the price drops by $8. I'll pass your message to the owner in case there's anything else we can adjust.

That reply does three useful things. It explains the price, offers a real option that lowers it using a rule from the card, and hands the discount question to a person. It does not invent a concession. Offering the wider window is the kind of genuine alternative the AI should be allowed to suggest, because it comes straight from the rate card.

Keep a note of the common objections for a month. If "price vs another firm" keeps appearing on one distance band, that is a rate-card question for you, not a prompt question for the AI.

Keeping the rate card and the prompt in step

The most common slow failure is drift: the owner raises a price on the invoice template, and the saved instruction still holds last year's table. Give the card one home and one owner. A practical arrangement is a single document called "Rate card, current", with a date at the top and a change log underneath, and a rule that nobody quotes from memory. When the card changes, the same person updates the saved instruction and reruns the 20-enquiry test set before the new version goes live.

Add a "valid from" date to the instruction as well, and have the reply state the quote's expiry. If a quote is accepted after the card changed, the person approving can see at a glance which version it was drawn from. Season matters too: if you charge more in the weeks before a major holiday, write that as a dated rule with start and end, not as an ad hoc note, so the AI applies it to exactly the right enquiries and drops it when the period ends.

Finally, keep a short list of quotes you wish you had priced differently. Review it monthly. A job that took twice as long as the card assumed points to a missing surcharge; a job you won only at a discount points to a band that is too high. Each is a change to the card first and the prompt second, in that order.

Turn the enquiries into a test set

Before you trust the prompt, run your last 20 real enquiries through it and compare with what you actually quoted. Do this in a table: enquiry, what you quoted, what the AI worked out, and the difference. Three outcomes are useful.

  • Match. The AI applied the card as you did. Good.
  • AI follows the card, you did something else. Your quoting is inconsistent, or you applied an unwritten rule. Decide whether to add the rule or stop applying it. This is often the most valuable result: the card was never what you actually charged.
  • AI misapplies the card. A bug in the prompt, such as rush applied to the wrong subtotal. Fix the instruction and rerun the full set.

Say 20 enquiries give 14 matches, 4 cases where you charged by feel, and 2 AI errors. That is a good result: the 4 reveal an unwritten rule to either write down or drop, and the 2 are fixed by rewording. Rerun until the AI matches the card on all 20, then keep the set. Run it again every time you change the card.

Where this goes wrong

A few realistic failures to watch for, each with how it shows up:

  • Quoted before checking distance. The customer gave only a town name and the AI guessed the distance. Signal: totals that look tidy but ignore reality. Fix: distance is always an input from a map.
  • Surcharge missed because it was never asked about. Stairs, waiting, a locked gate. Signal: extras billed after the job and a cross customer. Fix: the reply lists what could add cost and asks the one question that matters.
  • Out-of-date card. Fuel or wages changed and the prompt still holds the old table. Signal: quotes that feel cheap. Fix: the card lives in one place with a date, and the saved instruction is updated the same day.
  • Over-friendly promises. The AI writes "we'll definitely get it there by 2pm". Fix: the instruction bans "definitely", "guarantee" and exact delivery times other than the booked window.
  • Private details in the prompt. Pasting a customer's full address list into a consumer chat tool. Fix: use business-plan settings where your data is not used for training, and send only what is needed to price the job. Check your tool's data terms.

The human review tutorial has a way of setting up checks like this without slowing the day down, and the removal firm quoting tutorial shows a neighbouring trade handling quotes from customer-supplied detail.

A quick sum for whether it is worth it

Suppose the firm gets 25 enquiries a week and each takes eight minutes of the owner's time to look up, work out and write. That is 3 hours 20 minutes a week. With the AI drafting and the owner approving in two minutes, it is 50 minutes. The saving of about 2.5 hours a week is real, but the larger gain is speed: a quote sent in five minutes is more likely to win the job than one sent the next morning. A saved Project in an existing ChatGPT or Claude plan costs nothing extra beyond the subscription, so for most small firms the test is whether the quotes are right, not whether the tool pays for itself. If you would like help turning your own rate card into something tested, that is the kind of job my AI implementation consultation covers.

Questions about AI courier quotes

Can ChatGPT work out the price by itself?

It can follow a rate card, but language models make arithmetic slips. Ask it to show each line of the working, then check the total with a spreadsheet formula or a calculator before sending. Never let it send the quote on its own. A human approves every price.

Where does the distance come from?

From a mapping tool you already use, entered by a person or passed in by the form. Do not ask the AI to estimate distance between addresses, because it may guess. Give it the figure as an input, and have it flag any enquiry that arrives without one.

What if the enquiry does not fit my rate card?

The prompt should tell the AI to say 'needs a human' and list what is unusual: oversize items, dangerous goods, a destination outside your area, a missing weight. Those enquiries go to you with the reason, and the customer gets a holding reply, not a guessed price.

How long should a quote stay valid?

Pick a period that suits how fast your costs and capacity move, such as 24 hours or until the end of the next working day, and state it in every reply. State the conditions too: the details given, access at both ends, and the time window. Changes need a re-quote.

Further reads

Sources: no vendor pricing used. The rate card, rates and examples are illustrative and invented for the tutorial; use your own prices.

Want your quote replies set up and tested?

On a 1:1 call we can turn your rate card into a prompt, test it on your last 20 enquiries, and design the approval step so nothing goes out unchecked.

Book a 1:1 call with me