Skip to content
Automation

Where the Four Hours Go in a Rental Booking

Booking to dispatch took four hours at one rental firm and now takes three minutes. The four hours were never one task, and most of the fix was not AI.


Mikhail Savchenko·August 11, 2026·7 min read
AutomationOperationsEquipment RentalOrder Processing

The four hours were never one task

Ask a rental coordinator how long it takes to turn a booking into a dispatched machine and the answer is usually a shrug and a number. Four hours, most days. Longer in July.

Break the four hours apart and almost none of it is work. An enquiry arrives, in one of four or five places. Someone opens the availability sheet. Someone else has to confirm that the machine which was due back yesterday actually came back. An agreement gets drafted from the last similar one. A signature is chased. A driver is called, and the driver is on a job.

Each of those steps takes a few minutes of somebody's attention. The four hours are the gaps between them, waiting for the next person to be free.

This distinction decides what an automation project is worth. Automating the steps saves the minutes, and the minutes were never the problem. Automating the handoffs is what closes the gap, and that is the change that took one operator from four hours to three minutes.

Two people booking the same machine is a concurrency problem

Double-booking gets treated as carelessness, which is why the usual remedy is a reminder to be careful. It does not work, and the reason it does not work is worth understanding before buying anything.

A shared spreadsheet has no locking. Two coordinators open it at 10:02. Both see the 3-tonne excavator free on Thursday. Both promise it, one on the phone and one by email. Each was individually correct at the moment they looked, and neither had any way to know the other was halfway through a promise.

The error was created by the tool, not by the people. Fixing it needs two things: one record that is the single writer of truth about what is reserved, and a check that runs at the moment of commitment rather than only at the moment of enquiry. The window between looking and promising is where the conflicts live.

Availability is not a yes-or-no field

The second reason bookings collide is that most systems store availability as one boolean, and a rental asset has more states than that.

State on Thursday morningIn the yardRentable Thursday
On rent, due back WednesdayNoYes, if the return holds
On rent, job overrunningNoNo
In transit back from siteNoDepends on the distance
Returned, awaiting inspectionYesNo
In maintenanceYesNo
Reserved but unconfirmedYesNo
Present and freeYesYes

Four of those seven rows describe a machine standing in the yard that cannot go out. A check that asks only whether the asset is on a live rental contract answers "available" for all four.

That is the bulk of the double-bookings, and it explains why the fix is mostly a data-modelling exercise rather than an AI one. The availability question has to be asked against every state an asset can occupy, including the ones where it is visible from the office window.

Most of the fix is not a language model

The interesting part of this project, commercially, is how little of it is AI in the sense the word is usually sold.

StepHandled byWhy
Availability and conflict checkRulesMust answer identically every time, and be auditable
Pricing from the rate cardRulesA price is a commitment, not an inference
Agreement and confirmation documentsTemplatesThe approved wording has to stay the approved wording
Dispatch sequence and notificationsRulesDeterministic ordering, no judgement involved
Reading a free-text enquiryModelUnstructured input a human would otherwise retype
Classifying an unusual requestModel, then a personJudgement, so it routes rather than decides

Deterministic steps are handled by rules precisely because they must behave identically every time. A probabilistic availability check is a defect wearing a fashionable name.

The model earns its place at the front door, where an enquiry arrives at eleven at night as a message naming a machine in the customer's own words with the dates written in a form no field expects. Turning that into a structured request is hard for a rule and easy for a model. Keeping the boundary sharp is also what makes the system explainable later, because you can always say which half produced a given answer.

What stays with a person

Four things route to a human by design, and the reasoning behind each is set out in our rules for keeping a person in the loop.

Anything binding goes to a person: a discount outside the rate card, terms that differ from the standard agreement, anything that commits the company. Exceptions arrive with the full context attached rather than as a bare alert, because an alert without context just moves the work. Documents are assembled from approved templates rather than composed. And every automated decision is logged, so the question of why the system did what it did on a particular Thursday has an answer.

A booking that would leave no buffer before the next job is the case worth calling out, because it looks automatable and is not. Whether a two-hour turnaround is acceptable depends on the customer, the site, and how the last job with them went.

What it was worth

The numbers from the deployment, in full: booking processing went from 4 hours to 3 minutes, double-bookings were eliminated completely, staff were freed to handle customers rather than the calendar, and peak-season capacity rose 2.5x. It shipped in 3 weeks. The details are on the equipment rental case page.

The capacity figure is the commercially interesting one, and it is worth being precise about where it comes from. The hours themselves did not become money. They became money because peak-season bookings were previously being refused for lack of turnaround, and refused bookings turned into accepted ones. That is the first of the two routes by which saved hours reach the accounts, and the four questions that break most ROI numbers are worth running over any figure of this shape, ours included.

Where to start

Measure the gap before pricing the fix, and measure it from the system rather than from an interview.

Pull two timestamps for every booking across a full peak month: when the enquiry arrived, and when dispatch was confirmed. Look at the distribution rather than the average, because the average hides the tail and the tail is where refused bookings live. Then count how many enquiries were answered outside working hours, and how many were never answered at all.

That measurement is the first stage of the audit we run before agreeing to build anything, and it is also the thing that tells you whether the case is real. If the peak-month tail is thin and nothing was being turned away, the honest answer is that the four hours are an irritation rather than a cost, and the money is better spent elsewhere.

For what the deployment covers in a rental operation specifically, see AI automation for equipment rental and the order processing workflow.

Frequently Asked Questions
  • 01How are double-bookings actually prevented?+

    By moving the availability check from a person's memory to a rule, and by moving the moment of the check from when someone looks to when someone commits. A shared spreadsheet has no locking, so two coordinators can read it at the same minute, both see an excavator free on Thursday, and both promise it. Neither of them was careless; each was individually correct at the moment they looked, and the tool had no way to tell either one that the other was mid-promise. The fix has two halves and both are required. One record becomes the single writer of truth for what is reserved, so there is no second copy to disagree with it. And the check runs again at the instant the booking is confirmed rather than only when the enquiry was answered, which is the window the conflicts were living in. This part of the system is deliberately not a language model. It has to return the same answer for the same question every single time, and that is what rules are for.

  • 02Do we have to replace our rental software for this?+

    No, and in most rental operations that would be the expensive way to fix a cheap problem. Nearly every operator above a handful of machines already runs something for contracts and stock. The hours are rarely lost inside that system; they are lost in the manual relay around it, between the system, the shared inbox, the phone, and whoever happens to be standing in the yard. So the automation usually sits on top of what exists and integrates with it, and the work is in the joins rather than in a migration. This matters commercially as well as technically: a replacement project is measured in months and carries the risk of losing history, while closing the relay is measured in weeks and leaves the record where it already is. We deploy 1-3 workflows into production in 2-4 weeks precisely because the scope stays at the joins.

  • 03What should be a rule, and what should be a model?+

    The dividing line is whether the step is allowed to exercise judgement. Availability, conflict detection, pricing from a rate card, document assembly from approved templates, and the sequence of dispatch steps are all deterministic. They must behave identically on identical input, they have to be auditable afterwards, and a probabilistic answer is a defect rather than a feature. Those are rules. The language model earns its place where the input is unstructured and a human would otherwise have to read and retype: an enquiry arriving as free text in a messenger at eleven at night, naming a machine in the customer's own words, with dates written in a form no field expects. Turning that into a structured request is genuinely hard for a rule and genuinely easy for a model. Keeping the boundary sharp is what makes the system explainable when something goes wrong, because you can always say which half produced the answer.

  • 04We are seasonal. Is a three-week build worth it?+

    Seasonality is the argument for doing it rather than against. Peak season is when a rental business earns most of its year, and manual dispatch is usually what caps how much of that peak it can accept. When the queue grows faster than the coordinators can work through it, the constraint stops being the fleet and starts being the relay, so bookings get refused while machines sit available. That is the situation the 2.5x capacity figure came out of: the operator was already turning peak work away, and closing the booking-to-dispatch gap turned refused bookings into accepted ones. The build takes 2-4 weeks, so a project started in the off-season is running before the season opens. Starting it during the peak is the version that does not pay, because the people who have to answer questions during the build are the same people the peak is already consuming.

  • 05What still needs a person?+

    Anything binding, anything unusual, and anything the system is not confident about. A discount outside the rate card, terms that differ from the standard agreement, a customer with an open damage dispute, and a booking that would leave no buffer before the next job all go to a human, with the full context attached rather than as a bare alert. That is a deliberate design rule and not a limitation we are apologising for: automation that quietly commits a company to a price or a contract is a liability, and one bad commitment costs more than the hours saved by making it automatically. Documents are assembled from approved templates rather than composed freely, so the wording a lawyer signed off stays the wording that goes out. And every automated decision is logged and auditable, which is what makes it possible to answer the question that always eventually gets asked, which is why the system did what it did on a particular Thursday.

Keep reading