How to write a quote
A quote is a number you are bound to once it is accepted. This walks through building one, where the money quietly leaks, and the one distinction that decides whether the price is fixed.
The short version
- Decide first whether this is a quote or an estimate. A quote binds you; an estimate does not.
- Every line needs a description, quantity, unit, unit price and line total.
- Apply volume tiers from a price list, never from memory.
- Show discounts as their own line so the concession is visible.
- Put a validity period on it, or the price holds forever.
- Say what is excluded, even in one line.
One deal runs through this guide: 25 Pro seats on an annual plan for Northwind, plus onboarding. They are a partner, so 10% off. Net 45.
-
01Decide what you are actually sending
A quote is a fixed offer: accept it and that is the price. An estimate is a considered projection and can move. Sending something headed quote when you meant estimate is how a job becomes unprofitable on the day it is accepted.
On this dealIf the scope is genuinely unknown, write "Estimate" at the top and say what would change it. If it is known, write "Quote" and commit. -
02Build the lines from a price list, not from memory
Each line: what it is, how many, the unit, the unit price and the line total. The unit price should come from somewhere you maintain, because a rate typed from memory is a rate nobody checked.
On this deal"Pro seat, annual, 25 × $48.00 = $1,200.00/month." The $48 is the 25 to 99 band rate, not the $60 list price. -
03Apply tiers and bundles as logic, not as a number
Twenty-five seats crossing into a volume band should pick the band rate automatically. This is the single most common place a quote is wrong, and it is wrong in your favour roughly half the time, which is worse.
On this dealQuoting 25 seats at the 1 to 24 rate overcharges by $3,600 a year. The client notices at renewal. -
04Show the discount as a line
Not baked into the unit price. A visible concession is one the client values, and a visible line is one you can total later when you want to know what discounting actually cost you.
On this deal"Partner discount, 10% — $1,440.00" as its own row, applied to the subtotal. -
05Calculate the totals, do not type them
Subtotal, tax, total. Arithmetic is the most common error in a quote and the most avoidable. If you are typing a total, something in the process is wrong.
On this deal$14,400.00 annual, from 25 × $48 × 12, less 10%, plus onboarding at $4,000. -
06Add terms, validity and exclusions
Payment terms with a deposit if there is one. A validity period, thirty days is the usual default. Exclusions in one line. Each of these prevents a specific argument.
On this deal"Net 45. Valid 30 days. Excludes data migration and third-party licences." -
07Make acceptance a single obvious action
Signature, a click, or a purchase order number. One route, stated. A quote that ends without telling the buyer how to accept it will sit for a week while they work it out.
On this deal"Accept by signing below, or reply with a PO number."
Four sentences, before and after.
Each of these is a line that appears in real documents, and the reason it fails.
Licences: 25 × $60 = $1,500/month
Pro seat, annual, 25 × $48.00 = $1,200.00/month (volume tier 25–99 applied)
The first quotes the list rate and misses the band the customer qualifies for. Naming the tier also shows the buyer they are getting the discount, which is worth more than silently applying it.
Total: $14,000 (approx.)
Total: $14,400.00. Valid until 17 October.
"Approximately" on a document headed Quote is a contradiction the buyer will resolve in their favour. A validity date gives the number a boundary.
Price includes everything discussed.
Includes: 25 Pro seats, onboarding, and migration of up to 5,000 records. Excludes: third-party licences, custom integrations, out-of-hours support.
"Everything discussed" is whatever either party remembers, which is not the same thing for both of them.
The four common ways this goes wrong.
- The arithmetic
- Missed tiers, last quarter's rate, a discount applied to the wrong subtotal, tax on a line that was exempt. All of it invisible in a document that looks correct, which is why it survives review.
- No validity period
- A quote with no expiry is an open-ended commitment. Input costs move and the client accepts in March what you priced in November.
- Labelled wrong
- An estimate sent under the heading Quote is a fixed price you did not intend to give. Label deliberately.
- No exclusions
- A quote without them includes whatever the buyer imagined, and they imagined generously.
Quote or estimate?
The distinction is commercial, not stylistic, and it is the one people skip. Decide before you write which one you are sending, and label it accordingly. If the scope is genuinely unclear, an estimate with named assumptions is more honest and more defensible than a quote with a padded number.
| Scope is fully known | Quote. Fixed, and you are bound to it. |
|---|---|
| Scope is mostly known | Quote, with assumptions written down. |
| Scope depends on discovery | Estimate, plus a fixed price for the discovery itself. |
| Client wants certainty on an unknown | Fixed price with a named contingency, or phase it. |
Straight answers.
What is the difference between a quote and an estimate?
A quote is a fixed offer that binds you once accepted. An estimate is a considered projection that can change. Label the document for what you mean, because a client receiving something headed Quote will reasonably treat the figure as final.
How long should a quote be valid?
Thirty days is the common default. It protects you against input costs moving and gives the buyer a reason to decide. Where materials prices are volatile, shorter windows are normal and expected.
Should I show the discount separately?
Yes. A concession buried in the unit price is one the client never notices, and one you cannot total later when you want to know what discounting cost you across a quarter.
Why do quotes have errors?
Because the numbers are typed. The durable fix is structural: hold prices, costs, units and volume tiers in a catalog and compute every figure from it, so a quote cannot contain a number nobody calculated.