Freight Quote Automation: From the Email Request to an Approved Quote in the TMS
Automating freight quotes is not a pricing formula. It is a chain: decide whether an email is a quote request at all, extract the shipment data and check it, ask the customer one precise question when something is missing, find the right contract and buy rates in their valid version, add surcharges and convert currencies, apply your margin floors, have the quotes that need it approved, then write the quote into the TMS. This guide sets out each step, a complete worked example, who decides in each situation and how to run a pilot.
- Published
- Sources checked
- Reading time
- 18 min
- Written by
- Mirage Metrics team
Scope: quote requests received by email (body, PDF, spreadsheet) at freight forwarders and carriers, for air, sea and road, up to a quote recorded in the TMS. It does not cover how to build a cost price or a rate grid, customs duty, or which vendor to buy.
Decision snapshot
- Best suited to
- Freight forwarders and carriers whose desks answer many quote requests a day on lanes they already have rates for: branch managers, pricing managers, operations managers and directors deciding what to automate.
- Inputs needed
- The quote mailbox, customer contracts and sell rates, buy rate sheets with their versions, surcharge tables, the exchange rate policy, commercial rules (margin floors, minimum charges, approval thresholds) and access to the TMS quote module.
- What can be automated
- Sorting the mailbox, extracting shipment data, checking it, computing chargeable weight, drafting the question back, looking up rates, applying surcharges, currency conversion and rules, drafting the quote and writing it into the TMS.
- What requires human approval
- Approving quotes above a threshold or below a rule, pricing out-of-frame requests (dangerous goods, temperature control, oversize, new lanes, tenders), buying spot capacity, and changing the rules.
- When this approach is insufficient
- When most requests are spot or project cargo with no rate on file, or when rate sheets live in personal inboxes and nobody can say which version is current: the rates have to be organised first.
The request-to-quote workflow, step by step
Every quote desk runs the same ten steps, whether a person or a system does them. Writing them down is the first piece of work, because automation replaces steps, not a job title, and because each step needs a record if you are to know later why a price was what it was.
| Step | What happens | Who | What is recorded |
|---|---|---|---|
| 1. Register | Every incoming email and attachment gets an ID, a timestamp and a status | System | Source email, attachments, received time |
| 2. Qualify | Quote request, booking, rate check, amendment, tender, or something else | System; a person on doubt | Class, the signal that decided it |
| 3. Extract | Origin, destination, mode, goods, dangerous goods, temperature, pieces, dimensions, weight, dates, Incoterm, services | System | Each value with the place in the email or file it came from |
| 4. Check | Completeness and consistency, chargeable weight | System | Missing or conflicting fields, the computed chargeable weight |
| 5. Ask | One question back to the customer when something is missing or contradicts | System drafts; desk or rule sends | Question sent, answer received |
| 6. Price | Customer contract rate, buy rates, surcharges, currency conversion | System | Every rate used, with its sheet, version and validity |
| 7. Apply rules | Margin floor, minimum charge, validity, exclusions, approval threshold | System | Rules passed or failed |
| 8. Approve | Above a threshold, outside a rule, or out of frame | Pricing manager or pricer | Approver, decision, changes made |
| 9. Send and record | Quote sent to the customer and written into the TMS | System, or desk in one click | Quote number, TMS reference, sent time |
| 10. Follow | Acceptance turns into a booking; expiry closes the quote | System; operations | Outcome, reason if lost |
Steps 1 to 7 are mechanical once the rates and rules are written down. Step 8 is where judgment sits. Steps 9 and 10 are what make the work visible: a quote that never reached the TMS cannot be followed up, converted into a booking or checked against the carrier's invoice later.
Qualify the request first
A quote mailbox receives more than quote requests. Pricing a booking again, or answering a rate check as if it were a firm request, creates duplicate quotes and confuses the customer. The first decision is therefore what the email is.
| Kind | How it shows up | What to do |
|---|---|---|
| Quote request | A new shipment to price: route, goods, dates, no quote reference | Price it (steps 3 to 9) |
| Booking | An instruction to ship, often quoting an earlier quote number or a contract | Link it to the quote or contract and pass it to operations; do not price it again |
| Rate check | "Roughly how much" for a lane, no firm date or cargo details | Answer from the contract or rate sheet as indicative, or ask the missing data; never record it as a firm quote |
| Amendment | A change to a quote already sent: new weight, new date, extra service | Reprice the original quote as a new version; keep the old one |
| Tender | Many lanes, volumes over a period, a deadline for answers | Route to the pricing team as a project; the line-by-line workflow is the wrong tool |
| Other | Tracking, invoice query, document request, the company's own purchase from a carrier | Route to the right queue with a log entry |
When the class is uncertain, a person decides. A wrong class costs more than a few seconds of review: a booking left in a quote queue is a shipment nobody books with the carrier.
The shipment data a quote depends on
A price is only as good as the description it rests on. The table lists what a request must state for the price to hold, and the gap that most often makes a quote wrong.
| Data | Complete when | Usual gap |
|---|---|---|
| Origin and destination | Full addresses or at least postcode and country; airport, port or terminal when the customer delivers or collects there | A city name with several postcodes; door or terminal not stated |
| Mode and service | Air, sea FCL or LCL, road full truckload or groupage, express; door-to-door or port-to-port | "Cheapest option" with no mode: price two or ask |
| Goods | Commodity in words, packaging type, stackable or not | "Spare parts" for a mix that includes batteries |
| Dangerous goods | UN number, class and packing group from the shipper's declaration, or a clear "not dangerous" | Silence on a commodity that may be regulated |
| Temperature | Range to keep, active or passive equipment | "Keep cool" with no range |
| Pieces, dimensions, weight | Number of pieces, dimensions per piece, gross weight per piece or total | Total volume with no piece count, or weight with no dimensions |
| Chargeable weight | Computed from weight and volume with the conversion in the carrier's tariff | Pricing on actual weight when volume dominates |
| Dates | Cargo ready date, required delivery date | "ASAP"; a date already past |
| Incoterm and place | The rule and the named place, which say which legs and charges the customer is buying | An Incoterm that contradicts the services requested |
| Services | Customs clearance at either end, insurance, tail-lift, appointment, storage | A request for "door to door" with an Incoterm that ends at a port |
Chargeable weight
Carriers generally bill the greater of the actual weight and a weight derived from the volume, and each carrier's tariff sets how volume converts to weight for its mode. A system has to compute it per supplier, from the dimensions of each piece, before it looks up a rate. The worked example below shows what a missed volume check costs. The freight CBM and volumetric weight calculator does the arithmetic for a single shipment.
Dangerous goods and temperature
Dangerous goods are regulated per mode: ADR for road, RID for rail, the IMDG Code for packaged goods at sea and the ICAO Technical Instructions for air, all built on the United Nations classification with its UN numbers and classes, as the French ministry in charge of transport summarises; the IMDG Code has been mandatory under SOLAS since 2004. A request that declares dangerous goods, or whose commodity may be regulated and says nothing, leaves the automatic path: acceptance, packaging and price depend on the carrier and the class. The same goes for temperature-controlled cargo without a rate for the equipment.
Incoterm and named place
The Incoterm tells you which legs and charges your customer is buying. Under DAP, for example, the buyer carries out and pays for import clearance, and bears unloading unless the transport contract includes it, so a quote to a seller under DAP excludes import duties and unloading unless asked. The Incoterms 2020 checker sets out the split rule by rule.
Missing or contradictory information
A request that lacks a value, or carries two, is not priced on a guess. It gets one question back, listing only what is needed and why, in the customer's language. A precise question is quicker to answer than a vague one, which tends to start a thread.
| Situation | Example | Question to send back |
|---|---|---|
| Dimensions missing | 4 pallets, 720 kg, no sizes | "Could you send the dimensions of each pallet (length x width x height)? The air rate depends on volume as well as weight." |
| Dangerous goods unclear | "Electronic spare parts" | "Do any of the parts contain lithium batteries or other regulated goods? If so, please send the shipper's dangerous goods declaration or the UN numbers." |
| Two weights | 1,200 kg in the email body, 1,020 kg on the packing list | "Your email says 1,200 kg and the packing list 1,020 kg. Which one should we quote?" |
| Incoterm against services | FCA Lyon, but delivery to the consignee's door requested | "Under FCA your customer normally arranges the main carriage. Should we quote the full door-to-door transport for you, or only the leg to the named place?" |
| Date in the past | Ready date 3 October, received 14 October | "The ready date in your request is 3 October. What date should we use?" |
The request then waits with a status ("waiting for customer") and a reminder date, so it is neither forgotten nor priced twice when the answer arrives in a new thread. Whether the question goes out on its own or after a glance from the desk is a setting, and the pilot tells you which.
Matching the request against rate sheets
Three kinds of price feed a quote. The order in which they are looked up is a commercial decision; write it down.
| Source | What it is | How it is used |
|---|---|---|
| Customer contract rates | Sell prices agreed with this customer for lanes, weight breaks and a period | First lookup. If the lane and break are covered and the contract is valid, the sell price comes from here, not from cost plus margin |
| Buy rates | Rate sheets from airlines, shipping lines, co-loaders, road subcontractors and destination agents | Always looked up, even under a contract: the margin floor needs the cost |
| Spot rates | Prices asked per shipment from carriers or agents, valid hours or days | The request for spot rates can be automated; the choice of carrier and the price stay with a pricer |
Validity and version
A desk with good rates still quotes wrong when it uses the wrong version: last month's sheet still in a folder, a carrier's update that arrived by email and was never filed. A system can only respect validity if each rate carries it. For each sheet, store:
| Field | Why |
|---|---|
| Supplier and contact | Who issued the rate, so a question goes to the right person |
| Version and date received | Two sheets for the same lane must never be confused; the newest valid one wins |
| Valid from, valid to | A rate past its end date is not a rate |
| Lane or zones | Origin and destination as the supplier defines them: airports, ports, postcode zones |
| Mode, equipment, service level | Direct or consolidated, container type, transit |
| Breaks and minimum charge | Weight or volume brackets, and the minimum the supplier bills |
| Currency | The currency the supplier invoices in |
| What the rate includes | All-in, or base rate with surcharges listed separately |
| Conditions | Weight or size limits, commodities excluded, dangerous goods not accepted |
Two rules follow. A rate whose end date has passed is never used, even if it is the only one for the lane: the request goes to a pricer. And a quote's validity is never later than the earliest end date among the rates it uses. When you compare carriers' offers for a lane by hand, the freight RFQ comparison template puts their base rate, fuel and accessorials on one all-in total.
Surcharges, currencies, inclusions and exclusions
Surcharges belong to a contract or a carrier
Fuel, security, peak season, currency adjustment: their names are common, their amounts and rules are not. Each carrier publishes its own, and your contracts say whether they are passed on at cost, included in an all-in rate or capped. Maersk, for instance, defines its peak season surcharge as a seasonal fee applied during high volume periods in certain trades; another carrier's rule may differ. In French road freight the pass-through of fuel costs is set by law (Transport Code, articles L3222-1 and L3222-2), with indices published by the Comité national routier, as the French ministry explains. A system applies the surcharge table attached to the rate it used, for the period of the shipment, and the quote says which surcharges may be revised.
Currencies and the date of the rate
A quote in euros built on a destination agent's charges in dollars depends on an exchange rate. State on the quote which rate was used, where it comes from and its date, and decide in your rules whether it is fixed for the validity of the quote. Reference rates are not transaction rates: the European Central Bank publishes its euro reference rates for information purposes only and strongly discourages their use for transactions. Use your own policy, typically a weekly internal rate set by finance, and apply it the same way to every quote.
Inclusions and exclusions
Two quotes with the same total and different exclusions are not the same price. Every quote should state what is included and what is not: customs clearance at each end, duties and taxes, insurance, unloading, waiting time, storage, and the surcharges subject to revision. Generate the list from the Incoterm, the services requested and the rate sheets used, not from a free-text field someone forgets to update.
Commercial rules and margin floors
The rules a senior pricer applies from memory have to be written before a system can apply them. Most fit in a short table, and each has an owner who can change it.
| Rule | What it says | Owner |
|---|---|---|
| Margin floor | Minimum margin per quote, as a percentage of the sell price and as an amount | Pricing manager |
| Customer terms | Contract rates, agreed markups, rebates, payment terms | Sales, with pricing |
| Minimum charges | The lowest sell price per mode or service, whatever the weight | Pricing manager |
| Rounding | How sell prices are rounded, per line or on the total | Finance |
| Quote validity | Never later than the earliest end date among the rates used | Pricing manager |
| Approval threshold | Sell amount, margin or customer above which a person approves | Branch manager |
| Refused cargo or lanes | Commodities, destinations or customers the company does not quote | Management, compliance |
Define margin as a percentage of the sell price or of the cost, and say which; the two give different numbers for the same quote (557 EUR on 4,508 EUR sold is 12.36% of the sell price and 14.10% of the cost in the example below). The markup and margin calculator converts one into the other.
Approval before the quote is sent
Approval is where the time saved is kept or lost. An approver who has to rebuild the calculation will take as long as before. The approval screen should show, for each quote:
- The customer's email and attachments, with each extracted value linked to where it was read
- The chargeable weight and how it was computed
- Every charge line with its buy rate, supplier, rate sheet version and validity
- The exchange rate used and its date
- The rules checked, with the ones that triggered approval stated in plain words
- The draft quote as the customer will receive it
- Approve, edit with a reason, reject, or send back to the customer with a question
Every edit is recorded with its reason. An edit that recurs (the same surcharge corrected, the same lane repriced) is a rule or a rate sheet to fix, not a reason to keep approving everything.
Writing the quote into the TMS
A quote that lives only in a sent email cannot be converted into a booking, reported on or checked against the carrier's invoice. Write it into the TMS as a quote record, with its lines:
| Field | Content |
|---|---|
| Request link | The source email and attachments, the request ID |
| Customer and contacts | Matched to the customer master, not typed again |
| Route and service | Origin, destination, mode, Incoterm and named place |
| Cargo | Pieces, dimensions, gross weight, volume, chargeable weight, dangerous goods data |
| Charge lines | One line per charge, with buy amount, supplier, rate sheet version, sell amount and currency |
| Exchange rate | The rate used, its source and its date |
| Validity and conditions | Quote end date, surcharges subject to revision, inclusions and exclusions |
| Approval | Who approved, when, and what they changed |
| Status | Draft, waiting approval, sent, accepted, expired, lost with reason |
How it is written depends on the TMS: an API, an import interface, or the screen itself. At OFRET Groupe, Mirage connected to the Logitude World API and built the automation inside the TMS both entities already used. For any other TMS the connection is possible but has to be configured and validated on your system; for CargoWise, the CargoWise integration page describes the mechanism. When the customer accepts, the quote becomes the booking's reference, and the buy lines become what the carrier invoice audit checks against.
Worked example: one air export request
Illustrative example, invented figures: an air export quote from Lyon to Newark, New Jersey
The request. On 14 October a contract customer, a machinery maker near Lyon, emails: four pallets of machine parts, not dangerous, each 120 x 80 x 150 cm and 180 kg, ready on 20 October, to be delivered to its customer's warehouse in Newark, New Jersey, under DAP Newark. Everything needed is there: the request is complete and on a contract lane.
Chargeable weight. Actual weight 4 x 180 = 720 kg. Volume 4 x 1.20 x 0.80 x 1.50 = 5.76 m³, which is 5,760,000 cm³. The airline's rate sheet converts at 6,000 cm³ per kg, so the volumetric weight is 960 kg. Chargeable weight: 960 kg.
Rates found. Airline sheet CDG to JFK, version 3, valid 1 to 31 October: 2.10 EUR/kg above 500 kg, fuel 0.85 EUR/kg and security 0.15 EUR/kg for the current week. Road subcontractor: 380 EUR flat for up to six pallets from Lyon to CDG. Export handling and declaration: 95 EUR. Destination agent in Newark: airport transfer and handling 140 USD, delivery 420 USD. Customer contract: air freight 2.45 EUR/kg above 500 kg, export handling 140 EUR flat, airline fuel and security passed on at cost, other legs at cost plus 20%. Exchange rate: the company's internal rate for the week of 12 October, 1 EUR = 1.12 USD.
| Line | Buy calculation | Buy EUR | Sell rule | Sell EUR |
|---|---|---|---|---|
| Pickup Lyon to CDG (road) | 380.00 flat | 380.00 | cost + 20% | 456.00 |
| Air freight CDG to JFK | 960 kg x 2.10 | 2,016.00 | contract 2.45/kg | 2,352.00 |
| Fuel surcharge (airline) | 960 kg x 0.85 | 816.00 | at cost | 816.00 |
| Security surcharge (airline) | 960 kg x 0.15 | 144.00 | at cost | 144.00 |
| Export handling and declaration | 95.00 flat | 95.00 | contract flat | 140.00 |
| Destination: transfer, delivery Newark | 560 USD / 1.12 | 500.00 | cost + 20% | 600.00 |
| Total | 3,951.00 | 4,508.00 |
| Check | Value | Result |
|---|---|---|
| Margin | 4,508.00 - 3,951.00 = 557.00 EUR | Computed |
| Margin floor: 10% of sell | 557.00 / 4,508.00 = 12.36% | Passed |
| Margin floor: 300 EUR | 557.00 EUR | Passed |
| Approval threshold: sell above 4,000 EUR | 4,508.00 EUR | Pricing manager approves |
| Quote validity | Air rate sheet valid to 31 October; fuel and security at the rate in force on the flight date | Stated on the quote |
Outcome. The quote passes every rule but exceeds the 4,000 EUR approval threshold, so it waits for the pricing manager with the calculation above. She approves it unchanged. The quote states: 4,508.00 EUR, DAP Newark; air rate valid to 31 October; fuel and security surcharges at the rate in force on the flight date; destination charges converted at 1.12 USD per EUR (internal rate of 12 October); excluded: import clearance, duties and taxes, unloading at Newark, insurance, storage and waiting time. It is written into the TMS with its six lines and the approval.
The same request priced on actual weight. Had the volume been missed, air freight, fuel and security would have been sold on 720 kg: 1,764.00 + 612.00 + 108.00, for a total of 3,680.00 EUR, while the airline bills 960 kg and the cost stays 3,951.00 EUR. The shipment would lose 271.00 EUR instead of earning 557.00.
Request situations: what the system does, who decides
Every request falls into one of these situations. The point of the table is the last two columns: for each one, it is decided in advance who acts, so nothing waits for someone to notice it.
| Situation | Example | What the system does | Who decides | Status |
|---|---|---|---|---|
| Complete and standard | Contract lane, valid rates, ordinary goods, every rule passed, below the threshold | Prices the quote, writes it into the TMS, sends it or puts it in the desk's queue for one-click sending, as configured | Nobody, or the desk with one click | Sent |
| Standard, above a threshold | Same, but the sell amount or the customer requires approval | Prices it and holds it with the calculation and the sources | Pricing manager | To approve |
| Missing data | No dimensions, no postcode, no ready date | Drafts one question listing only what is missing; prices nothing on a guess | Desk sends the question, or a rule does | Waiting customer |
| Contradictory data | Two weights, an Incoterm against the services, a date already past | Shows both values and where each came from; drafts the question | Desk | Waiting customer |
| Below a rule | Margin under the floor, contract rate under the buy rate, rate expired | Blocks sending; shows the rule that failed and the figures | Pricing manager | Blocked |
| Out of frame | Dangerous goods, temperature control, oversize, a lane with no rate, a tender | Structures the request and routes it to a pricer with the reason; may send spot requests to carriers if configured | Pricer | With a pricer |
| Not a quote request | Booking, tracking, invoice query | Routes it to the right queue, linked to the quote or shipment | Operations or accounts | Routed |
What stays with a pricer
Automation takes the repetitive part of the desk, not its judgment. These stay with people:
- Out-of-frame requests: dangerous goods, temperature control, oversize or heavy lifts, project cargo, lanes with no rate on file.
- Spot buying: choosing which carriers to ask, negotiating, and deciding which offer to take. The system can send the requests and line up the answers.
- Commercial exceptions: quoting below the floor to win a lane, a new customer, a strategic account.
- Tenders: many lanes and volumes over a period are a pricing project, not a series of quotes.
- The rules themselves: margin floors, thresholds and which classes go out without review.
What changes is where a pricer's day goes: to the requests that need a decision, starting from a structured request rather than a raw email.
Pilot protocol and success criteria
A pilot answers one question: on your own requests, with your own rates, can drafts be trusted, and for which class of request? Run it alongside the desk, and decide the criteria before it starts.
- Choose the scope: one branch or entity, one or two modes, the lanes where you have current rates. OFRET Groupe set up one environment per entity, because its full truckload and groupage activities define a standard request differently.
- Gather what the desk uses: contracts, current rate sheets with their versions, surcharge tables, the exchange rate policy, and the rules written in the table above.
- Run in shadow mode: the desk quotes as usual; the system processes the same requests and sends nothing. Cover at least one full rate validity period, so expiry and new versions are tested.
- Compare daily, quote by quote, and classify each difference: system error, desk error, rate sheet problem, or genuine ambiguity.
- Fix rules and rate data from those differences, and measure again.
- Go live in stages: first every draft approved by a person, then automatic sending for the narrowest class that met the criteria, then wider classes.
| Criterion | How to measure | Why |
|---|---|---|
| Qualification | Requests classified correctly (quote, booking, rate check, other), over all items received | Every misclassified quote request is a customer who gets no answer |
| Data extraction | Fields identical to what the pricer used, field by field | Find which fields fail before trusting any price |
| Price accuracy | Draft quotes whose sell price the pricer would have sent unchanged, on standard requests | The number that decides whether drafts can go out |
| Errors after sending | Quotes corrected after sending, or margin lost at invoicing because the quote was wrong | Must be zero on automated quotes before widening their scope |
| Routing | Out-of-frame requests that reached a pricer, with none priced automatically | A single dangerous goods request priced as ordinary cargo fails the pilot |
| Response time | From email received to quote sent, median and 90th percentile, standard and out of frame separately | The median hides the requests that wait a day |
| Nothing lost | Requests received minus requests with a final status | Zero every day |
Set the thresholds for each criterion with the pricing manager before the pilot, and publish the definitions with the results. The document automation pilot guide covers scoping, baselines and the go-live decision in more detail, and the automation ROI calculator turns the desk's time per quote into a payback on your own figures.
Choosing a solution: questions to ask
Whether you build on your TMS's own tools, buy a product or bring in a team that deploys on your systems, ask the same questions. The answers matter more than the demo.
| Question | A good answer |
|---|---|
| Do you separate quote requests from bookings, rate checks and other email? | A classification you can see and correct, with the reason for each |
| How do you show where a value came from? | The email or file opened at the place the value was read |
| Which rate sources do you read, and how do you handle versions and expiry? | Contract and buy rates with version and validity; an expired rate is never used |
| How do you compute chargeable weight? | With the conversion of each carrier's tariff, configurable per mode and supplier |
| Where do our margin floors and approval thresholds live, and who changes them? | Rules you own, change and audit, not code at the vendor |
| What exactly makes a quote go out with no person involved? | Documented conditions, narrow at first, widened from pilot data |
| How is the quote written into our TMS? | Through the TMS's own interface or API, as a native quote record; for a TMS you have not connected before, a configuration and validation plan |
| What figures can you show from a real deployment, and what did they measure? | A named client, a definition, a date; not a general automation rate |
For where quoting sits among the systems a forwarder runs, see how to choose freight forwarding software; for a comparison of vendors, the blog's AI tools for freight forwarders.
In production: OFRET Groupe
OFRET Groupe is a freight forwarding group with two activities: OFRET for full truckload transport, SWILL for groupage. They quote differently, with different carrier networks, document types and rules for what counts as a standard request, so Mirage set up two separate Quoting Agent environments, one per entity, both connected to the group's TMS, Logitude World, through its API, with no extra software layer.
According to the case study, the agent reads each incoming request, extracts origin, destination, weight, volume, Incoterms and deadlines, and checks them against the entity's own carrier and subcontractor network to prepare the quote. A request goes to an operator before anything is sent when data is missing, extraction confidence is low, the price falls outside the entity's standard rate patterns, or the request matches neither entity's usual shipment profile. The deployment started with freight document extraction, then added quote requests, then a verification stage. The case study states that more than 90% of standard RFQs are handled automatically across both entities; that figure describes OFRET's deployment and OFRET's own definition of a standard request.
The freight RFQ automation page describes what Mirage deploys for this workflow.
Questions readers ask
Yes, for a narrow class of requests you define: complete, on a contract lane, with valid rates, ordinary goods and every commercial rule passed. Start with every draft approved by a person, measure in a pilot how often the price was right, and open automatic sending one class at a time.
A rating engine prices a shipment once its data is in the system. Automating the quote covers what comes before and after: reading the email and its attachments, deciding whether it is a quote request at all, extracting and checking the data, asking the customer what is missing, applying commercial rules, routing approval, and writing the result back as a quote record.
They go to a pricer with the request already structured and the reason stated: dangerous goods, temperature control, a lane with no rate, a margin below the floor. The pricer starts from a filled-in request, not a blank screen, and nothing is priced on a guess.
It depends on what the TMS exposes for creating quotes. Mirage has demonstrated it with Logitude World at OFRET Groupe, through Logitude World's API. Any other TMS is possible but has to be configured and validated on your system before it is relied on.
It depends on your request mix, how complete your rate sheets are and how strict your rules are, so measure it on your own requests in a pilot. For reference, OFRET Groupe's case study states that more than 90% of its standard RFQs are handled automatically across its two entities; that describes OFRET's deployment and its own definition of standard, not a benchmark.
Sources and scope
Checked on . Scope: the request-to-quote workflow at freight forwarders and carriers. The method, tables and worked example are Mirage's own; the example's figures are invented. Surcharge amounts and rules belong to each carrier and contract; none is given here as a rate.
- ICC Academy, DAP and DDP Incoterms 2020 explained: under DAP the buyer carries out and pays for import clearance and bears unloading unless the transport contract includes it
- International Chamber of Commerce, Incoterms 2020: the eleven Incoterms 2020 rules; under DAP the seller does not unload, under DPU it does
- French Ministry for the Ecological Transition, dangerous goods transport regulations: ADR for road, RID for rail, ADN for inland waterways, the IMDG Code for packaged goods at sea, the ICAO Technical Instructions for air; UN numbers and classes from the UN Model Regulations
- International Maritime Organization, dangerous goods: the IMDG Code, mandatory under SOLAS since 1 January 2004
- Maersk, surcharge definitions: one ocean carrier's definitions of the bunker adjustment factor, the peak season surcharge and the emergency bunker surcharge
- French Ministry for the Ecological Transition, road freight key information: the fuel cost pass-through mechanism for road freight in France (Transport Code, articles L3222-1 and L3222-2), with the indices published by the Comité national routier
- European Central Bank, euro foreign exchange reference rates: reference rates published around 16:00 CET on working days, for information only, their use for transactions strongly discouraged
- Mirage Metrics, OFRET Groupe case study: every OFRET fact and figure on this page
Related on this site
- Logistics: the freight workflows Mirage deploys
- OFRET Groupe case study: quote requests handled in Logitude World, one environment per entity
- Freight RFQ automation: the offer behind this workflow
- TMS data entry automation: the same extraction, for bookings and documents
- Freight RFQ comparison template: comparing carriers' offers on an all-in total
- Freight CBM and volumetric weight calculator: chargeable weight for one shipment
- Incoterms 2020 checker: which charges the customer is buying
- Document automation pilot: running the pilot and deciding the go-live
- RFQ automation for manufacturers: the industrial quote request, a different workflow
Send us a week of quote requests
Send a sample of real quote requests with the rate sheets and rules your desk used. We will return each one classified, with its data extracted, the chargeable weight, the rates and rules applied, and either a drafted quote or the reason it needs a pricer, so you can compare it with what your desk sent.
Prefer to talk it through? Book a call