To write an estimate for a service job, define the scope in writing, price labor from realistic on-site hours plus travel at your break-even rate, add parts at a set markup, apply your target margin, and state what's excluded and how long the price holds. A good estimate is specific enough that the customer can say yes and your crew can do exactly what was sold.
Estimates sit between sales and operations. The salesperson or technician who writes one is making promises that a crew will have to keep weeks later: what gets done, what it costs, and roughly when. When estimates are loose, those promises turn into change orders, margin losses and unhappy customers.
This guide covers the quoting practice from the site visit to the follow-up. It's general guidance; it doesn't describe any particular software. For how quoting fits with the rest of the operation, see the field service management guide.
Estimate, quote or bid: what's the difference?
People use the words loosely. It helps to be precise with customers.
- Estimate. An informed approximation. The final price may differ, usually within a stated range.
- Quote. A fixed price for a defined scope, valid for a set period.
- Bid. A formal price submitted against someone else's specification, often in competition.
Whatever you call yours, say on the document whether the price is fixed or approximate. Rules on estimates and price changes vary by state and trade, so check with an attorney or your trade association on what your documents need to include.
Step 1: Nail down the scope
Most estimate problems are scope problems. The price was fine for the job you imagined. The customer imagined a different job.
Write the scope as a list of specific deliverables:
- What will be installed, replaced or repaired, with model or spec where it matters.
- What's included: removal and disposal, permits, cleanup, testing.
- What's excluded: drywall repair, electrical upgrades, anything behind walls not yet opened.
- Assumptions: access, working hours, customer-provided items.
Exclusions protect you more than anything else on the page. "Price assumes existing wiring is to code" turns an argument into a change order.
Take photos and measurements
Photos and measurements from the site visit let someone else in the office price the job, let the install crew prepare, and settle disputes later. Attach them to the estimate record. If your trade allows remote estimates from customer photos, define what you need before you'll quote.
Step 2: Price labor from real hours
Labor is where most service estimates go wrong, usually by underestimating time.
Estimate on-site hours by task
Break the job into tasks and estimate hours for each from your own completed jobs. If you've done twenty water heater swaps, you know how long they take. If you don't track it, start now: job duration estimates built from history beat any rule of thumb.
Add travel and setup
A job's labor cost includes getting there, unloading, setup and cleanup. Multi-day jobs include a drive every day. A two-day install forty minutes from the shop has nearly three hours of round-trip drive time before any work happens.
Price at your break-even rate, then add margin
Your labor rate has to cover more than the technician's wage. It has to cover the hours they're paid but not working on billable tasks, plus overhead. The basic structure:
Break-even labor rate = (loaded labor cost per paid hour ÷ billable share of paid hours) + overhead per billable hour
The break-even labor rate calculator works it through with your numbers.
Step 3: Price parts and materials
- Use current costs. Supplier prices move. A price list from last spring may be wrong today.
- Apply a consistent markup. Many companies use a tiered markup: higher percentage on low-cost parts, lower on expensive equipment. Whatever you choose, apply it the same way every time.
- Add a waste or contingency line for materials that get cut, fitted or broken.
- Check lead times. If equipment takes three weeks, the estimate should say so, and the job shouldn't be scheduled until it's confirmed. The inventory management guide covers staging job-specific parts.
Step 4: Build the number
Put it together:
Price = (labor hours × labor rate) + (parts cost × (1 + markup)) + other direct costs + contingency
Then check the result against your target gross margin:
Gross margin = (price − direct labor cost − parts cost − other direct costs) ÷ price
Leaving travel out in this example underprices the job by about $680. On a crew doing two of these a week, that's real money. The numbers are illustrative; use your own rates.
Flat rate or time and materials?
Two common approaches:
- Flat rate pricing: one price per defined task, built from average time and parts. The customer knows the price up front, and your efficiency becomes your margin.
- Time and materials: you bill actual hours and parts. Lower risk for you, less certainty for the customer.
Many companies use flat rate for repeatable service tasks and quoted prices for installs and projects. The field service pricing guide goes deeper on the trade-offs.
Step 5: Present options
A single price invites a yes or no. Two or three options invite a choice. A common pattern for replacement work:
- Option A: meets the need, standard equipment.
- Option B: better equipment or added protection.
- Option C: the premium version.
Make each option a complete scope, not a list of add-ons. Customers should be able to compare them on one page. Don't pad options to make the middle look good; customers notice.
Step 6: Write it so it's easy to say yes
A clear estimate includes:
- Customer name, site address and date.
- Scope: included, excluded, assumptions.
- Price, and whether it's fixed or approximate.
- Payment terms: deposit, progress payments, final payment.
- Estimated timing: lead time for parts, expected duration on site.
- How long the price is valid, often 30 days.
- Warranty terms on labor and equipment.
- How to accept.
Keep the language plain. A customer who has to call to understand the estimate is one step closer to calling a competitor.
Be careful with timing promises
"We can start next Tuesday" is a scheduling commitment made by whoever wrote the estimate. If the crew is booked or the equipment isn't in, that promise breaks before the job starts. Give a lead-time range in the estimate and set the date once the customer accepts and parts are confirmed. This is one of the places where estimating and scheduling need to talk to each other.
Step 7: Follow up on a fixed schedule
Many estimates aren't lost to competitors. They're lost to silence. A simple follow-up cadence:
- Day 2: confirm they received it and answer questions.
- Day 7: check in, restate the main benefit.
- Day 21: note the price expiry date.
Track your close rate:
Close rate = estimates accepted ÷ estimates sent
Track it by job type and by who wrote the estimate. A low close rate on one job type may mean the price is high; an unusually high one may mean it's too low.
Step 8: Compare the estimate to the actual
After the job, compare estimated hours and parts to what was actually used. This is job costing, and it's the only way your estimates improve.
| Line | Estimated | Actual | Variance |
|---|---|---|---|
| Labor hours | 33.2 | 37.5 | +13% |
| Materials | $3,200 | $3,340 | +4% |
| Gross margin | 38% | 32% | −6 pts |
Illustrative numbers again. If labor runs over on the same job type repeatedly, raise the hours on the next estimate. Review variances monthly; the field service reporting guide covers how to fit that into a regular review.
Where travel belongs in every estimate
Travel is the cost most often left out of service estimates because it's invisible on the job sheet. Two estimates for the same job at two addresses shouldn't always have the same price. A site at the edge of your service area costs more to serve, every visit.
Some companies handle this with a trip charge or zone-based pricing. Others build travel into the labor hours as shown above. Either works if it's consistent. When the job is scheduled, travel matters again: CrewLink, for example, builds live travel time into availability so the install date offered is one the crew can actually reach. CrewLink doesn't produce estimates; quoting stays in whatever system you use for it.
What to take away
- Write scope as specific deliverables with explicit exclusions and assumptions. Most estimate disputes are scope disputes.
- Price labor from real task hours plus travel and setup, at a rate that covers non-billable time and overhead.
- Apply a consistent parts markup, check lead times, and add contingency.
- Offer two or three complete options, give a lead-time range instead of a firm date, and follow up on a fixed schedule.
- Compare every estimate to the actual. Job costing is the only way estimates get better.
Common questions
How do you write an estimate for a service job?
Visit or assess the site, write the scope including exclusions, estimate on-site hours by task, add travel and setup, price labor at your break-even rate plus margin, add parts at your markup, then state payment terms, timing, validity period and warranty.
Should travel time be included in a service estimate?
Yes, in some form. Either include travel hours in the labor line, use a trip charge or zone pricing, or build average travel into your hourly rate. Leaving it out underprices jobs that are farther from your base.
What is the difference between an estimate and a quote?
An estimate is an approximation that may change within a stated range. A quote is a fixed price for a defined scope, valid for a set time. Say clearly on the document which one you're giving, and check local rules with a professional.
How long should a service estimate be valid?
Thirty days is common, but it depends on how quickly your material costs change. For equipment with volatile pricing, shorter validity protects your margin. State the expiry date on the estimate.
How can I improve my estimate close rate?
Follow up on a fixed schedule, present two or three complete options, make the estimate easy to read and accept, and track close rate by job type. A close rate that is very high on one job type can mean the price is too low.