Give the AI your fixed rules (maximum hours, rest gaps, licences), your drivers' leave and availability, a written leave rule for holiday weeks and a day-by-day demand forecast for peak weeks, then ask for a draft rota and a list of every rule it had to bend. Test the draft against your hours limits and publish only the version you have checked.
Most owners get this wrong by asking for "a fair rota" in one sentence. The AI then guesses at rules you never wrote down, produces something that looks tidy, and quietly gives one driver six long days in a row. The work is in the inputs: a rota is a set of constraints, and the better you state them, the less checking you do afterwards.
Why a delivery rota is harder than a shop rota
A shop needs bodies on the floor between opening and closing time. A delivery business needs the right drivers with the right vehicles at depot on time, and demand swings far more. A small firm might run 140 drops on a quiet Tuesday and 420 in the week before a big gifting holiday, with the same number of vans. Four things make it awkward.
- Driving time is limited by rules you cannot trade away. Daily and weekly driving limits, break rules and rest periods depend on the vehicle weight and the market you operate in. The AI does not know which regime applies to you unless you say, and it will not warn you if you leave the rule out.
- Not every driver can take every run. One has a licence for the 7.5-tonne truck, another cannot lift above a set weight, a third only works school hours.
- Holiday requests cluster exactly when volumes peak, so the weeks you most need cover are the weeks everyone has asked for leave.
- Starts are dictated by the warehouse. If parcels are not sorted until 06:30, a 06:00 shift is wasted, and a 07:00 start may miss the morning delivery promise.
A general assistant such as ChatGPT, Claude or Gemini is good at juggling these once they are written as a list. It is poor at remembering a rule you mentioned forty lines earlier. That is why the method below keeps the rules in one block and re-checks the output separately. If you want the wider comparison of tools against a plain spreadsheet, AI shift scheduling versus a rota spreadsheet covers it; the steps below stay with the delivery-specific problems.
Step 1: write the constraints as a numbered list
Open a blank document and split your rules into two groups. Hard rules cannot be broken under any circumstances. Soft rules are preferences the AI may bend and must report when it does. Mixing them is the commonest cause of rotas that look fine and break a rule.
Here is a filled-in example for an illustrative eight-driver business running six vans, open Monday to Saturday. The numbers are made up for the example; yours come from your contracts and the rules that apply to your vehicles.
HARD RULES
H1. No driver works more than 45 hours in a week, including loading and admin.
H2. At least 11 hours between the end of one shift and the start of the next.
H3. At least one full day off in every seven, and no more than six consecutive working days.
H4. Only D2, D5 and D7 hold the licence for the 7.5-tonne truck; it must run every day.
H5. Approved leave is never moved.
H6. Every van that is booked out has a named driver; a van never leaves without one.
SOFT RULES (report every one you bend)
S1. Each driver gets at least one weekend day off in any two weeks.
S2. Start times stay within one hour of the driver's usual start.
S3. No more than two early starts (before 06:30) in a row.
S4. Keep shift lengths between 8 and 10 hours where possible.
S5. Drivers D3 and D6 prefer no Saturdays; honour this unless cover is impossible.
COVER ORDER FOR SICKNESS
1. D8 (part-time, usually free). 2. D4. 3. Office staff with a driving licence.
Notice that H1 to H3 are written as numbers, not adjectives. "Reasonable hours" gives the AI nothing to check. If you are unsure what the correct limits are for your vehicles and contracts, ask a qualified adviser or your insurer before you build the rota around guesses, because which regime applies depends on your vehicles, your contracts and where you operate.

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 nowStep 2: turn demand into drivers per day
The rota is only as good as the number of drivers you ask it to schedule. Take last year's weekly drop counts (your delivery software or even the invoice list will have them), and work out drops per driver-day for your area. If an experienced driver averages 38 drops in a nine-hour day with your typical stop density, that is your planning figure.
Say the following week is a normal one at 190 drops a day. That needs five drivers (190 divided by 38). A peak week at 420 a day needs eleven, which you do not have, so the question changes from "who works when" to "how do I stretch eight drivers, a handful of temps and overtime to cover 420 drops". The AI is useful here because it can lay out the options with numbers.
I run a delivery business with 8 drivers, 6 vans and one 7.5-tonne truck.
Last year's drops per day for the week before a major gifting holiday:
Mon 290, Tue 340, Wed 380, Thu 420, Fri 410, Sat 300.
A driver averages 38 drops in a 9-hour day; a new driver averages 30.
Our hard rules are in the list below.
Show me, per day, how many driver-days I need, how many I have after
approved leave, and the gap. Then give three ways to close the gap
(overtime within H1, temporary drivers, shifting low-priority drops
to the following week) with the cost and risk of each. Do not
assume anything not stated.
An illustrative reply would show Thursday needing about 11 driver-days (420 divided by 38 is 11.05) against 7 available after leave, a gap of four. Overtime inside the 45-hour limit might close one, because most drivers are already at 40. A good reply also spots the second gap you did not ask about: six vans and one truck can run only seven routes at once, so four temporary drivers need hired vans or a second afternoon wave on the vehicles already out. If the reply ignores the vehicle limit, add it to the hard rules as H7 and run the prompt again. That is the sort of arithmetic that tells you to book temporary drivers and vehicles three weeks ahead, not on the Monday. Check the AI's sums yourself: a calculator or a spreadsheet formula takes a minute, and why AI gets sums wrong in quotes and invoices explains what to look for.
Step 3: load availability, leave and qualifications as a table
Paste the people data as a table, not a paragraph. Use driver codes so no names or phone numbers leave your files. A table like this works:
| Driver | Contract hours | Licence | Usual start | Leave this fortnight | Preference |
|---|---|---|---|---|---|
| D1 | 40 | Van | 07:00 | None | None |
| D2 | 40 | 7.5t | 06:30 | Wed to Fri | None |
| D3 | 32 | Van | 08:00 | None | No Saturdays |
| D4 | 40 | Van | 07:00 | Mon to Tue | None |
| D5 | 40 | 7.5t | 06:30 | None | Early finish Fri |
| D6 | 24 | Van | 09:00 | None | No Saturdays |
| D7 | 40 | 7.5t | 07:00 | None | None |
| D8 | 16 | Van | Flexible | None | Flexible |
A common failure is leave that overlaps with the only 7.5-tonne drivers. In the table above D2 is away Wednesday to Friday, leaving D5 and D7 as the only licence holders for the truck on the busiest days. A good prompt asks the AI to flag this before it schedules anything: "List any day where two or fewer qualified drivers are available for the 7.5-tonne truck." Two is the warning level, because one sickness then leaves a single possible driver. Catching the problem at the table stage is cheaper than discovering it on Tuesday night.
Step 4: ask for the draft and the list of bent rules
Now paste the hard and soft rules, the demand figures and the table, and ask for the rota in a form you can paste into a spreadsheet. Specify the output format, or you will get a paragraph.
Using only the rules, demand and driver table above, draft a rota
for Monday to Saturday as a table: one row per driver, one column
per day, each cell showing start time, end time and van (or OFF).
Then give me:
1. A line per driver with total hours for the week.
2. Every soft rule you had to bend, naming the driver and day.
3. Any hard rule you could not meet. If a hard rule cannot be met,
say so and stop rather than breaking it.
4. A fairness tally: weekend days, early starts and Saturdays per driver.
Point 3 matters. Without it, assistants often satisfy the request by quietly breaking something. Giving it permission to say "I cannot meet H4 on Thursday" produces an honest answer you can act on.
Step 5: check the draft the way an inspector would
Do not trust the AI's own claim that the rota is compliant. Run three independent checks, which together take about fifteen minutes.
- Hours per driver. In your spreadsheet, subtract start from end for each cell, sum the week, and compare with H1. A formula such as
=SUMPRODUCTover the end and start columns, or simply a helper row, is enough. - Rest gaps. For each driver, compare the end time on one day with the start time on the next. Anything under eleven hours (rule H2) is a breach. Late finishes after a heavy Thursday followed by an early Friday start are the usual offenders.
- Qualified cover. For each day, confirm a 7.5-tonne licence holder is on the truck and that no driver is in two vans.
Then paste the whole rota back into the chat and ask: "List every breach of H1 to H6 in this rota. If there are none, say so." Asking the assistant to check its own output in a fresh message catches some slips but not all of them, so your spreadsheet checks stay.
A breach found in review
Say the draft puts D5 on a 06:30 to 17:00 shift on Wednesday, then 05:30 on Thursday. That is 12.5 hours between shifts, which passes H2. Add a Thursday finish at 18:30 and a Friday 06:00 start and the gap is 11.5 hours: still legal. Push Thursday to 19:15 and the gap is 10.75 hours, a breach. The spreadsheet row shows it in red; a paragraph description would not. This is why the output format in step 4 is a table with explicit times.
Handling holiday weeks and public holidays
Holiday weeks need a different approach from normal weeks because the pattern changes: shorter operating windows, carrier cut-off dates, higher volumes on the days before the break and near-zero on the day itself. Treat each as its own scenario.
Build a calendar of exceptions first
List each holiday period with the dates the business is open, the dates carriers or suppliers stop, and the expected volume pattern. For example, a three-day closure might look like this in your prompt: "Thursday to Monday closed. Wednesday volume 1.4 times a normal Wednesday. Tuesday after reopening 1.8 times normal because of backlog." Check last year's figures for this pattern: when the backlog makes the day after reopening heavier than the day before closing, a rota that only plans for the run-up leaves the Tuesday short.
Use a leave allocation rule, not a first-come list
The fairest way to handle holiday-week leave is a written rule applied the same way every year. One example: each driver may book up to two peak-season days in the peak window; requests beyond that go on a waiting list ranked by who had leave refused last year. Ask the AI to apply your rule to the requests and show the result, rather than letting it invent a rule.
Peak window: 8 to 20 December. Maximum 2 leave days per driver
in the window; maximum 2 drivers off on any day.
Requests: D1 (9, 10), D2 (9, 10, 11), D3 (18, 19), D4 (9, 10),
D6 (18, 19, 20), D7 (15, 16). Last year refused: D2 and D4.
Apply the rule, rank by last year's refusals, and tell me who gets
what. Show me anything I should decide myself.
An illustrative result: D4 gets the 9th and 10th as one of last year's refusals. D2, also refused last year, asked for three days but may take only two, so the AI should ask you which two rather than choosing; if D2 takes the 9th and 10th, both days reach the two-driver limit and D1's request for the same dates goes on the waiting list. D6 also asked for three days and may take two. D3 and D6 off on the 18th and 19th is exactly two drivers, so that stands, and D7's 15th and 16th clash with nobody. Check the AI's version against a hand count like this the first time: a common slip is reading "maximum 2 drivers off on any day" as "only two drivers may book leave at all". Decisions that affect a person's time off belong to you, with the AI supplying the options.
Fairness without arguments
Drivers tolerate a hard rota. They resent an unexplained one. The fairest approach is a points tally that anyone can read.
| Shift type | Points | Why |
|---|---|---|
| Saturday | 3 | Weekend time is the most protected |
| Start before 06:30 | 2 | Early starts cost sleep and family time |
| Finish after 18:30 | 2 | Late finishes hit the evening |
| Peak-window long day (10+ hours) | 2 | Reward the stretch weeks |
| Bank holiday or closure-week shift | 4 | Heaviest inconvenience |
Give the table to the AI and ask it to keep each driver's points within a band across a rolling eight weeks. An illustrative eight-week tally might show D7 on 31 points while D1 is on 18; the next rota gives D1 the extra early starts until the gap closes. Published beside the rota, the tally turns "why am I always on Saturdays" into a number you can both see. If someone has a reason not to be compared (a medical condition, a caring duty), handle that privately and record it as a rule, not as a personal note in the shared sheet.
Two cautions. First, points can be gamed: a driver who swaps away every Saturday to a colleague's benefit should have the swap recorded. Second, do not let the AI set point values for you. Whatever you decide is "fair" is a management decision, and it is much easier to defend if you wrote it down before the first complaint.
Covering sickness and no-shows during peak weeks
Peak weeks guarantee at least one call at 05:40 saying someone cannot come in. Decide the response in advance. A standby sheet takes ten minutes to write and saves twenty minutes of panic each time it is used.
Original rota attached. D5 is off sick today (Thursday).
D5 was on the 7.5-tonne truck, 06:30 start, 46 drops.
Cover order: D8, then D4. D8 finished at 20:00 last night.
Keep every hard rule. Give me the single best swap, a second option,
and tell me which drops, if any, should roll to tomorrow.
A sound answer would notice that D8 finishing at 20:00 cannot start before 07:00 without breaching the eleven-hour gap, and that D8 has no 7.5-tonne licence anyway. It would suggest D7 take the truck, D8 take D7's van round later, and 12 low-priority drops roll to Friday. If the AI proposes D8 for the truck, that is the signal that your qualification rule was not understood, so restate it and ask again.
A different business, same method
The method is not limited to parcels. Consider an illustrative florist with three delivery drivers in the week before a big gifting date. Orders arrive until 14:00 the day before, so the rota cannot be fixed more than a day ahead. The constraints are tighter (flowers cannot sit in vans), but the structure is identical: hard rules (temperature-controlled van only for certain orders), a demand estimate by day, driver availability and a standby order. The difference is that the florist runs the AI twice a day, once for the next morning's rota and once for sickness cover, because the demand figure changes. A dog-grooming mobile service, a driving-school fleet and a photography studio with two location vans can use the same blocks of text with different numbers.
Comparing the AI route with the manual rota
Run both for one month before relying on the AI. This takes more effort at first but tells you what the change is worth. Use a small comparison table, filled in weekly:
| Measure | Manual rota | AI-drafted rota |
|---|---|---|
| Time to produce the weekly draft | 2 hours 30 minutes | 25 minutes plus 20 minutes of checking |
| Rule breaches found after publishing | 2 in four weeks | 0 in four weeks (after checks) |
| Shift swaps requested by drivers | 9 | 5 |
| Unfilled routes on the day | 3 | 1 |
| Spread of fairness points (highest minus lowest) | Not tracked | 6 |
These figures are illustrative; use your own. The time saving is usually real and modest. The larger gain is consistency: the same rules applied every week, and a written record of why someone was scheduled when they were. Where a manual planner has years of local knowledge ("never put D3 and D6 on the same run, they argue"), keep that knowledge, but write it down as a soft rule so it survives a holiday.
When a drafted rota goes wrong in the first week
Expect problems in the first two peak weeks. The ones that appear most often, and what to do about them:
- The AI invents availability. If a driver's row says "flexible" it may schedule them seven days running. Replace vague words with numbers: "available Mon to Fri, 06:00 to 18:00".
- Rules drift in long chats. After ten edits it may forget H3. Start a fresh chat for each week, pasting the rules block in full. Some assistants offer projects or saved instructions to keep the rules block permanent; use that, and re-read the rules at the top of each session.
- Totals do not add up. Assistants miscount hours. Trust your spreadsheet formulas over its summary line.
- Demand forecast was optimistic. If the gap is only visible on the day, add a buffer: schedule for 110 per cent of forecast on the three busiest days, and release drivers early if it is quiet. Releasing a driver early costs less than a failed drop and a refund. For the damage when drops fail, see sorting driver notes into fixable causes.
- Drivers ignore the digital version. If the rota lives in a chat window nobody else can see, it does not exist. Publish the checked version in the shared place the drivers already look, and keep the AI conversation as your working draft.
Privacy, records and what stays with you
A rota contains personal data: who works when, who is on leave, sometimes why. Before pasting anything into a public AI service, check your policy and the tool's data settings. ChatGPT's business plans and Claude's commercial plans say they do not train on your business content by default, while personal ChatGPT plans share chats for training unless you switch off the model-training setting in data controls. Use driver codes, leave out reasons for absence, and keep the key to the codes in your own file. If you operate in a place with data-protection rules for employee data, ask an adviser which of these records you must retain and for how long.
Also keep hold of the decisions that carry weight: approving leave, setting hours inside legal limits, handling a disciplinary issue that surfaces in the data. The AI proposes; you decide and sign. A rota that a driver can challenge needs a human who can explain it.
A four-week rollout that does not risk a peak week
- Week 1, shadow. Plan the next normal week by hand as usual. Run the AI version on the same inputs and compare breaches, hours and swaps. Do not publish the AI version.
- Week 2, publish the AI draft for a quiet week, after your checks. Collect driver comments on the tally.
- Week 3, rehearse the sickness script. Pick a day and pretend D5 is off. See whether the AI's cover plan holds.
- Week 4, run a peak scenario for the next real busy week. Plan it four weeks ahead, test the demand gap options, and book temps early.
Once the rota runs well, connect it to the rest of your dispatch. The routes each driver takes are a separate problem, covered in four route planners compared on cost and AI, and what drivers can fit into each shift depends on cost per stop, which you can work out with cost per drop from route and fuel data. If you would rather work out the whole dispatch picture with someone, my AI implementation consultation covers that; start from your contact page if it fits.
A one-page checklist for the Friday before a peak week
- Forecast drops per day written down, with the date and source.
- Driver-days needed, driver-days available, and the gap for each day.
- Temp drivers or overtime booked, with names or codes and the days they cover.
- Leave approved and refused, with the rule applied.
- Hard rules checked in a spreadsheet, not in chat.
- Qualified-driver cover confirmed for every vehicle type.
- Standby order written and shared with the office.
- Rota published in the shared place, with the fairness tally beside it.
- A named person who owns changes on the day.
Print that list, tick it each time, and file the ticked copy with the rota. After two or three peaks you will know which line causes trouble, and you can make the AI prompt stricter on that point.
Questions drivers and dispatchers ask about AI rotas
Can ChatGPT or Claude build a driver rota without special software?
Yes for a team of up to about fifteen drivers. Paste your rules, availability and expected parcel volumes as a table, ask for a draft, then run your own checks on hours, rest and leave. Past that size, or if drivers must swap shifts on their phones, a dedicated scheduling app saves more time than a chat window.
Should the AI see driver names and personal details?
It rarely needs to. Use driver codes such as D1 to D8 and keep the key in a separate sheet. The schedule logic only needs availability, qualifications and limits, and you swap the names back in afterwards.
How far ahead should a peak-week rota be published?
As early as you can hold it with confidence. Three to four weeks out is a workable target: publish the draft marked provisional, and confirm once the volume forecast firms up. Whatever notice period your contracts or local rules require is the floor, so check those with an adviser.
What if drivers say the AI rota is unfair?
Show them the scoring. A fairness tally of weekends, early starts and holiday-week shifts per driver, printed beside the rota, settles most arguments. If the tally is wrong, change the rule and regenerate, which is faster than arguing over individual shifts.
Does the AI handle last-minute sickness?
Not on its own. Keep a short 'cover order' list (who is asked first, second, third and why) and give it to the AI with the original rota when someone calls in sick. It will propose a swap that keeps hours legal, and you approve it before anyone is phoned.
Further reads
- How to Build a Restaurant Staff Rota With AI Demand Forecasts — Another rota built on demand forecasts, for kitchens and floors.
- AI Route Planning for Small Delivery Fleets and Mobile Teams — Plan the routes the rota has to cover.
- AI for a Small Delivery Service: Dispatch, Routes and Customer ETAs — Dispatch, routes and customer ETAs for a small delivery service.
- How Can AI Help Courier Services? Quotes, Dispatch and Proof — Quotes, dispatch and proof of delivery for courier firms.
- AI Job Scheduling and Dispatch for Trades and Field Service Teams — Another view of dispatch scheduling for mobile teams.
- AI Dispatch Automation for Small Delivery Firms: Where to Begin — A small delivery firm's first dispatch pilot: capture jobs, suggest assignments, handle exceptions and measure results.
- Driver Debrief Notes: Turn Voice Memos Into an Exceptions Log — A two-minute voice-memo debrief for drivers, turned by AI into a structured log of damage, delays, access problems and follow-ups.
- Driver Handbook Template: AI Drafts Rules for a Small Haulier — The sections a small haulier's driver handbook needs, a prompt to draft each with AI, and what a lawyer or adviser must check before it goes out.
- Driver Onboarding Checklist: From Offer to First Route With AI — A stage-by-stage checklist for onboarding a new driver, with AI-drafted letters, reminders and induction packs and care for personal data.
- Fleet Accident Report Form: Standard Forms and AI Claim Summaries — A driver form, photo checklist and AI summary prompt that turn a messy accident report into a neutral timeline your insurer can use.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: OpenAI's business data page and ChatGPT data controls FAQ, and Anthropic's commercial terms (training defaults), read November 2026; otherwise the author's own scheduling method. Driving-hours and working-time rules vary by vehicle and market, so none are quoted here.