Resources Sourcing guide
How to compare three factory quotes without comparing apples to pears
Three quotes, three different questions answered. How to put them on one basis, what a landed-cost line looks like, and a worked example where the cheapest headline is the most expensive quote.
Three quotes land in your inbox. One is EUR 1.05 a unit, one is EUR 1.15, one is EUR 1.38. It looks like the decision has been made for you, and it has not, because each of those numbers is answering a slightly different question. One is priced at the factory gate, one at your dock. One includes the tool, one bills it separately. One needs you to buy twice what you asked for. Most of the spread between them is the spread between the questions.
Comparing quotes properly is not sophisticated. It is a spreadsheet with a few more rows than the ones you were sent, and the discipline to fill every row for every quote before you look at a total.
Three quotes, three questions
A quote is a factory's reading of your brief, plus its own assumptions wherever the brief went quiet. If you did not name the delivery point, one factory priced to its gate and another to your door. If you did not name the quantity tier, each picked the one it likes to run. If you did not say whether tooling should be a separate line, one buried it in the unit price and one did not. None of that is dishonest. It is what happens when three people answer a question with gaps in it.
Two fixes, and you want both. Before the quotes: a brief that closes the gaps, so they come back on the same basis to begin with. After the quotes: a normalisation pass, because some gaps only show up once you see how differently they were filled.
| Line | Quote A | Quote B | Quote C |
|---|---|---|---|
| Unit price | EUR 1.15 | EUR 1.38 | EUR 1.05 |
| Basis | EXW, at the factory gate | DAP, delivered to your warehouse | FCA, handed to your carrier |
| MOQ | 10,000 | 5,000 | 20,000 |
| Tooling | EUR 2,500, billed separately | included | EUR 1,800, billed separately |
| Payment | 30% deposit, 70% before shipment | Net 30 after delivery | 50% deposit, 50% before shipment |
| Lead time | 7 weeks | 6 weeks | 9 weeks |
Put them on one scope
Normalising is mostly asking each factory the same short list of follow-ups until every quote describes the same thing: the same quantity, the same revision of the drawing or spec, the same packaging, the same delivery point on the same Incoterm, the same currency with a validity date, tooling as a separate line, and the same payment terms. If a quote is at a different quantity, ask for the tier you actually want. Do not interpolate; factories do not price on a straight line.
Build the landed line
The number you actually want is the cost of one unit, sitting in your warehouse, for the units you will use. Building it is addition. Goods at the quoted unit price times the quantity you have to buy. Tooling. Freight and insurance from wherever the quote hands the goods over to your door, from a real forwarder quote, not a guess. Duty and brokerage if the goods cross a customs border; inside the EU they do not. Inbound handling. Then divide, and divide by the right thing: the units you will use in your planning horizon, not the units the MOQ made you buy.
Two rows most spreadsheets leave out. The cash you pay before you hold anything (deposits, tooling up front), because money tied up for nine weeks is not free. And the stock you will be carrying at the end of the year if a minimum was bigger than your need, because that stock can go obsolete the day the drawing changes.
Read what is not in the price
Some of the most expensive lines in a quote have no number next to them. A lead time three weeks longer than the others is a cost: safety stock, or a late launch. A validity of fourteen days on a decision that will take a month means the price is not really the price. Exclusions hide in one line at the bottom: samples, certificates of analysis, labelling, pallets. Who owns the tool when you leave. What happens to rejects. Whether the price holds on the reorder, or was a first-order sweetener.
And there is a quiet rule worth trusting: the cheapest quote that is also the vaguest is rarely the cheapest for long. What was not specified gets billed later as a change order.
The same three, on one basis
Illustrative numbers. The three quotes above are invented to show the method, and the freight figures stand in for a real forwarder quote. Nothing here is a market price.
You need 10,000 units this year, delivered to your own warehouse, and all three factories are inside the EU, so there is no duty. Quote A is at the gate, so you add freight. Quote B is delivered, so you add nothing. Quote C hands the goods to your carrier and makes you buy 20,000, so you add freight for the bigger load and, more importantly, you buy twice what you need. Fill the rows and the picture inverts.
| Line | Quote A | Quote B | Quote C |
|---|---|---|---|
| Units you must buy | 10,000 | 10,000 | 20,000 |
| Goods | EUR 11,500 | EUR 13,800 | EUR 21,000 |
| Tooling | EUR 2,500 | included | EUR 1,800 |
| Freight to your dock | EUR 1,400 | included | EUR 2,400 |
| Total | EUR 15,400 | EUR 13,800 | EUR 25,200 |
| Per unit bought | EUR 1.54 | EUR 1.38 | EUR 1.26 |
| Per unit used this year | EUR 1.54 | EUR 1.38 | EUR 2.52 |
| Cash out before delivery | EUR 5,950 | none | EUR 12,300 |
Need: 10,000 units this year · delivered to your warehouse · no duty inside the EU
Ranked by headline, the order was C, A, B. Ranked by landed cost per unit you will use this year, it is B at EUR 1.38, A at EUR 1.54, and C at EUR 2.52, with EUR 12,300 out of the door nine weeks before a single unit arrives and 10,000 units on a shelf at year end. If you are certain the second 10,000 will be used next year on the same drawing, C becomes the cheapest per unit, and you carry the cash and the stock risk to earn it. That is a legitimate choice. It is just not the choice the headline suggested.
The number that decides
Compare the cost per unit you will use, delivered, with the cash timing beside it.
Most of the normalisation pass disappears if every factory answered the same question in the first place. That is what Zora does with your brief on ZoraMatch: you describe the need once, it asks the follow-ups that change who fits, and every factory on the shortlist receives the same structured brief, with quantity, certifications and timing already pinned down. In the deal room, the live order draft holds unit price, quantity, Incoterm, lead time and payment terms as named fields that both sides accept, so two drafts read on the same basis by construction.
For the brief that makes the quotes line up in the first place, read How to brief a manufacturer. For why the MOQ row keeps changing the answer, read MOQ, lead time and unit price.