← Blog
·13 min read·Artificial intelligence · Quoting · Freight quote

How to Prepare a Freight Quote Using AI [2026]

What AI does in a freight quote is not setting the price but turning a free-text enquiry into a structured trip request.

Hayati Ali Keleş · Co-founder and CTO
A 3D illustration of AI structuring scattered freight requests for human approval
Expert note

The first question to ask about a quoting tool is not how neatly it writes, but which fields it can pull out of an incoming enquiry. In freight a quote is not a list of line items but a cost calculation; a tool that cannot answer where from, where to, when and with which vehicle ends up doing nothing more than filling in an empty template.

A freight quote is a price commitment for carrying a consignment from a collection point to a delivery point. Most quoting tools treat that as a list: item, quantity, unit price, total. In freight there is no list underneath a quote — there is a cost calculation, and its inputs sit scattered through the body of an email.

What AI does in this flow is not writing a tidy quote letter. It is turning an enquiry that arrives as free text into a structured trip request: where from, where to, when, what goods, how many vehicles. The price is not the output of that conversion; it is a commercial decision taken after it.

From the quoting desk

The bottleneck in quoting is not finding the price. It is gathering the information you need in order to find it. The address is in the thread, the dimensions in an attachment, the unloading condition in an earlier email. AI can pull that scatter together; which price you give is still yours.

Why does a freight quote not fit a standard quoting template?

Because what you sell in freight is not a line item but a trip. General-purpose quoting tools are built on a triplet of item, quantity and unit price, which works for a manufactured product or an hourly service. In freight that triplet has no equivalent.

Take a one-line enquiry: from a plant in one province to another, twelve pallets, Tuesday. In a template that is a single line item; behind it sits a chain of interdependent costs. The road distance the vehicle will actually cover, the toll gates along the corridor, the vehicle type the load requires, whether a backload can be found on the way home, the waiting time at both ends, and whether the job runs on your own vehicle or a subcontractor's.

We went through how those items add up, and which are most often left out, in how a freight rate is calculated. The point here is narrower: a tool that writes a quantity and a price into a template does not build that calculation, it only formats the result. What freight lacks is not formatting but a reading layer.

How does AI read an incoming enquiry?

The first and most concrete thing AI does in freight is split a free-text enquiry into fields. The job usually starts inside an email, with the address, the dimensions and the weight buried in the thread. Some arrive as a neat table, some as a single sentence, some leave the detail in an attachment.

From that text the model pulls out the collection point, the delivery point, the date, the weight, the dimensions, the piece count and any special carriage condition. Rule-based parsing cannot do this, because the customer phrases it differently every time: the same fact sits under a heading in one email and mid-sentence in the next. Reading the enquiry is one part of what an AI-powered freight software is for; planning, notification and invoicing then feed off the same record.

Where the enquiry lands is therefore part of the flow. Seferi Posta connects your corporate mailboxes directly: you mark the part of a message that belongs in the quote, the address, dimensions and weight are read from there, and the quote goes back as a reply on the same thread. The table below maps typical phrases to fields.

Phrase in the enquiryField extractedWhat happens if it is missing
"From the plant in Gebze to Adana"Collection and delivery pointDistance and corridor cannot be derived, the price has no base
"Loading Tuesday morning"Loading date and time windowVehicle availability is invisible, no delivery commitment can be made
"Twelve pallets, around eight tonnes"Weight and piece countVehicle type cannot be chosen, part load or full load stays undecided
"Pallet dimensions attached"Volume and loading metresVolumetric weight cannot be found, trailer space is assumed wrongly
"Cold chain required"Special carriage conditionThe price is quoted on a vehicle type that cannot carry the job
"Unloading is inside the facility"Unloading condition and waitingWaiting time is treated as free and never defined in the quote
"It will run four times a month"Recurring work and lanePriced as a one-off job, the lane advantage is given away

Put the table into plain sentences. Without the collection and delivery points there is no distance and no corridor, so the price has no base. Without a loading date you cannot see which vehicles are free, so you cannot commit to a delivery. Without the weight and piece count you cannot choose a vehicle type, and part load or full load stays open. Without the dimensions the volumetric weight is unknown and trailer space is assumed rather than measured.

The last three rows follow the same logic. A cold-chain condition that is not read out of the text puts the price on a vehicle that cannot carry the job. An unwritten unloading condition turns waiting into something quietly free that never appears in the quote. And a regular lane read as a single movement is priced as a one-off, giving away the advantage of steady work.

Why does catching missing information matter more than the price?

Because the most common source of a wrong price in freight is not an arithmetic error but a question nobody asked. The person quoting builds the calculation correctly on the information in front of them; what is missing is not the arithmetic but a condition that never entered it.

What AI does here is as much about showing the fields it could not find as the ones it could. A missing date, missing dimensions or an unwritten unloading condition become visible before the quote is prepared rather than after, so one email closes the gap and the price is built on complete information.

Why this matters

Seeing a missing field before the quote goes out is commercially a different world from seeing it after the trip has closed. In the first case you ask a question. In the second you reopen a price you have already given, from a position you have already lost.

Let the enquiry land in one place, the fields fill themselves, and the gaps get flagged. No copy-paste in between.

Explore Seferi Posta

What can AI pull out of past trips?

It can find trips already run on the same lane and put them in front of you as a reference. Pricing a lane for the first time and for the hundredth are not the same exercise; on the second you hold the cost that actually occurred, the time it took and a record of what went wrong.

The contribution is not a suggested price but a basis for comparison: which vehicle type worked that corridor last time, whether a backload was found, how long the vehicle waited. A past price, though, is not today's price — fuel, tolls and subcontractor rates all move with market conditions, so what deserves to be reused is not the amount but the assumptions behind it.

For that history to exist, quotes have to live in a shared place. Where every quote sits in its own file there is no past data: when the tariff changes the old files keep the old costs, and nobody can say which price was given on which assumption. We covered where that breaks down in where transport tracking in Excel breaks down.

Why can AI not make the pricing decision?

Because a price is not a technical output but a commercial judgement. Cost is calculable, and what a model can usefully do largely ends there. A price is what you get when four things that exist nowhere in the model are added on top of the cost.

The first is the customer relationship. A customer who has given you steady work for years and a company asking for a price for the first time are not the same thing to you, and that difference is written down as a number precisely nowhere. Which jobs you are willing to lose is equally unwritten.

The second is how full the fleet is that week. The same trip does not deserve the same price when a vehicle would otherwise sit idle and when every vehicle already has work. For a vehicle that would run empty anyway, a price close to cost can be rational; in a full week it means turning down something better.

The third is the likelihood of a return load. When a vehicle goes somewhere the trip does not end there: it either finds a backload or comes home empty, and an empty run lands directly on the margin. The judgement about whether that lane produces a return at this time of year usually sits in one person's head.

The fourth is risk appetite. The customer's payment history, how easily the goods are damaged and the delivery site's habit of keeping vehicles waiting all move the price. None of the three is data in a system; all three are judgements carried in institutional memory.

The most common mistake

Treating the first number AI produces as the price. That number is a cost skeleton: margin, customer relationship, utilisation and the risk allowance have not been added yet. A firm that sends the skeleton out as a price wins quotes that look fine on paper and loses money on them.

Which work does the machine do, and which decision stays with the human?

The dividing line: reversible preparation steps go to the machine, irreversible commitments stay with the person. The table applies it to every step of the flow.

StepAI doesThe human decides
Reading the enquiryExtracts the fields from the textConfirms the extracted fields are correct
Missing informationFlags the empty fieldsDecides what to ask the customer and how
Distance and corridorDerives distance and crossings over the real road routeJudges whether the corridor is workable in practice
Vehicle selectionSuggests vehicle types that fit the loadKnows which vehicle is genuinely free that day
Cost skeletonLists the items and adds them upChooses which items apply to this job
Empty return allowanceShows the lane's history of return loadsDecides whether to carry an allowance on this trip
PricePuts the cost and the references in front of youSets the final price
Quote textPrepares the draftWrites the scope, the exclusions and the validity period
SendingDrafts the reply on the same threadPresses send

Read row by row: on the enquiry the model extracts the fields and the person confirms them. On missing information the model flags the empty field, while the person decides what to ask the customer. On distance and corridor the model calculates over the real road route, and the person judges whether it is workable in the field. On vehicle selection the model suggests types that fit the load, and the planner knows which vehicle is free that day.

The remaining five rows follow the same line. The model lists and totals the cost items; the person chooses which apply here. The model shows what the lane has produced in return loads; the person decides whether to carry an allowance. The model puts cost and references in front of you; you set the final number. It drafts the quote text, while scope and validity period are written by a person — and a person presses send.

A concrete example of that boundary inside the product is Seferi Optima. Optima works out how to spread the jobs you hold across as few vehicles as possible and hands back a plan, but it never assigns anything on its own: no order reaches a vehicle without your approval.

How do you set up an AI-assisted quoting flow step by step?

The flow is built in seven steps, and the order matters: no fields before the enquiry is read, no cost before the gaps are closed, no price before the cost.

  1. The enquiry lands in one place. Sales and operations mailboxes gather on one screen instead of scattering across personal inboxes.
  2. The fields are extracted. Collection and delivery point, date, weight, dimensions, piece count and special conditions are read out of the text.
  3. The gaps are flagged. Empty fields are listed and everything to ask the customer is gathered into one message.
  4. The corridor is laid out. Actual road distance, duration and the crossings along the route are worked out.
  5. The cost skeleton is built. Fuel, tolls, driver, maintenance share, waiting, the expected empty return and the subcontractor share are added item by item.
  6. The human decision is made. Margin, customer relationship, utilisation and risk allowance go on top, and the final price is set.
  7. The quote goes out and is recorded. Scope, exclusions and validity period are written, and the quote is sent as a reply on the same thread.

The seventh step is the one most often skipped. An unrecorded quote leaves nobody holding the answer to which price was given on which assumption. For that information to carry through to operations, the invoice and the regulatory notifications, the quote has to sit with the trip record from the start.

This is why AI-assisted quoting makes sense not as a standalone add-on but inside a single freight software. When enquiry, quote, trip, invoice and notification move on the same record, nobody types the same data twice.

Does the job end once the quote is sent?

No; the real test comes when the trip closes and the invoice is issued. The amounts in the quote and on the invoice have to match, because every gap turns into reconciliation work. Waiting, extra stops, returns and empty runs cannot be invoiced if the quote never defined them.

That means the text of a quote is not a price line but a scope definition. It states what the rate includes, what carries an extra charge, and under which conditions the price will be reassessed. We covered which details and documents an invoice rests on in how to issue a transport invoice.

AI's contribution to this last link is again on the preparation side. It can compare the items defined in the quote with the trip as it actually ran and show where the two diverge: whether the waiting allowance was exceeded, whether a stop was added, whether the corridor changed. How that is passed on to the customer is a human decision.

In short: AI takes over the preparation of a freight quote, not the decision. What shortens quoting is not automatic text but having everything the price depends on in one place. That is why it belongs inside a freight software rather than beside one: the same record serves the quote, the trip and the invoice.

Try it on your own enquiry emails — see which fields arrive already filled on the quoting screen.

Request a demo

Frequently asked questions

Can AI prepare a freight quote end to end on its own?

No. AI can take over the preparation side of a quote, but it cannot make the pricing decision. Reading an enquiry and splitting it into fields, flagging what is missing, deriving the distance and the corridor, and listing the cost items are all jobs a machine can do. The final price, by contrast, depends on the customer relationship, on how full your fleet is that week, on the odds of finding a return load on that lane, and on how much risk the company is willing to carry. None of those four are visible to the model, and in most firms none of them are written down anywhere. The right setup is a flow where preparation runs automatically but no quote leaves the building without human approval.

What information can AI extract from an incoming enquiry email?

The collection and delivery points, the loading date, the weight, the dimensions, the pallet or carton count, the packaging type and any special carriage condition are the basic fields it can pull out. That information never arrives in a tidy, consistent form; the customer phrases it differently every time, sometimes putting the address under the signature, sometimes leaving the dimensions in an attachment. What AI adds here is the ability to map many different ways of writing the same fact onto a single field. Rule-based parsing cannot flex that far, which is why it stalls on free text almost immediately.

What does AI do when information is missing from the enquiry?

It flags the missing field and shows that the quote cannot be built without it. The most common source of a wrong price in freight is not an arithmetic error but a question nobody asked: where the unloading will happen, whether a forklift is available on site, how long the vehicle will wait at the delivery point. When the gap is flagged before the quote is prepared, it goes back to the customer in a single email and the price is built on complete information. When it goes unnoticed, the quote proceeds on an assumption and the difference only surfaces after the trip has closed.

Why do general-purpose quoting tools fall short for freight?

Because general quoting software is built on a triplet of line item, quantity and unit price. That structure works when you sell a manufactured product or an hourly service; in freight what you sell is not an item but a trip. Behind a one-line enquiry sit interdependent costs: distance, corridor, tolls, vehicle type, the chance of an empty return, waiting time and the subcontractor share. A tool that writes a quantity and a price into a template does not build that calculation, it only formats the result. What freight needs is not formatting but a reading layer that turns an enquiry into trip data.

Where should human approval sit in an AI-assisted quote?

Approval belongs at the step where the price is set and the quote is sent. Reading the enquiry, extracting the fields, flagging the gaps, calculating the distance and building the first cost skeleton can all run without approval, because every one of them is a reversible preparation step. The price itself is an irreversible commitment: once it reaches the customer it becomes the ground on which any negotiation is held. The same goes for the scope of the quote text — what is included, what is subject to an extra charge, and the date until which the quote holds are written by a person.

Sources and references

This article is for general information; consult the relevant authority or your accountant for binding interpretation.