Swivl
Run the Business5 min read

How to Write an Estimate for a Job That Actually Makes Money

A masterclass guide for field service contractors on eliminating guesswork from job bidding and protecting profit margins in 2026. This article breaks down the fundamental differences between estimates and quotes, exposes why single flat markups and competitor pricing traps lose bids, and introduces a proven six-step cost-first estimating formula. Discover how utilizing contractor estimate software like Swivl with integrated price books, category-specific markups, real-time job costing, and AI estimating allows contractors to establish minimum break-even prices. By combining a contractor quote builder with field service invoicing software, trade professionals can convert signed proposals into final invoices with one click, ensuring every job remains profitable.

Rob Heller

Rob Heller

Published Jan 29, 2025

Last updated Aug 12, 2026

The Best Way to Write an Estimate for Small Jobs Under $100K

If you have been running a field service business for a while, you have written more estimates than you can count. And if you are honest about it, some of them were closer to a guess than a calculation.

Here is the method that takes the guessing out. Start with what the job actually costs you, mark up each cost category separately, then check the number against your minimum price before you send it. It works on a $400 drain clear and it works on a $90,000 tenant fit-out. Below are the six steps, a worked example with real numbers, and the two habits that quietly eat the profit out of small job estimates.

Estimate or quote: know which one you are sending

An estimate is your best professional judgment of what a job will cost, and it can move if the scope moves. A quote is a fixed price you are committing to. The math behind both is identical, but your exposure is not: on a quote, every dollar you got wrong comes out of your profit. Label the document so the customer knows which one they are holding, and put your scope assumptions in writing either way.

The two traps in small job estimating

Most companies estimating small jobs fall into one of two habits:

  • They use flat-rate pricing templates they found online or in an industry guidebook.
  • They price off what competitors are charging, on the theory that if everyone else is doing it, it must be right.

The problem with both is the same. Flat-rate pricing does not reflect your actual costs, and your competitors' costs are not your costs. Every business has a different structure: different labor rates, vehicle expenses, material suppliers, and overhead. If you want every job to be profitable, you start with your costs. Every single time.

Why a single flat markup breaks

Flat-rate pricing seems simple: take the type of job, match it to a predetermined price, and call it a day. It feels efficient and predictable, and it is easy to explain to customers. But here is the catch:

  • It does not account for your unique costs.
  • It applies the same markup across every cost category, which is rarely accurate.
  • It assumes every company runs with the same overhead and efficiencies.

Materials usually carry a lower markup, because the customer can check the retail cost themselves. Labor should carry a higher markup, because it includes not just wages but insurance, taxes, and downtime between jobs. Vehicles, subcontractors, and equipment each have their own cost structures and risks. If you are applying a flat 25% markup across all categories, you are leaving money on the table in some areas while overcharging in others, and neither one is good for business.

How incorrect markups can lose you bids

Here is a quick story from my own experience. For years we applied a single flat markup across all cost categories: labor, materials, equipment, everything. On most jobs it worked well enough, or at least we thought it did.

Then we started bidding on larger water heaters called boilers. These units can cost 10 times more than a standard water heater, and the material cost makes up the majority of the total job cost.

Here is what happened. Because we were applying the same markup percentage to every cost category, we were overpricing the materials by a huge margin. On a $2,000 water heater, our flat markup added a reasonable margin. On a $20,000 boiler, applying that same percentage to the materials made our bid skyrocket.

We lost every single boiler bid, because our price was far above everyone else's. At first we thought we were being undercut by lowball competitors. Eventually we realized the problem was our pricing strategy, not our competitors.

When we broke costs into categories and applied a unique markup to each, everything changed. We dropped the markup on materials to keep the total material cost competitive, and raised it on labor to account for the complexity and expertise required. Our estimates became competitive, and we started winning boiler bids. Not because we cut margins to the bone, but because the pricing finally reflected the real cost of each category. It was an expensive lesson, and it is the reason for every step below.

How to write an estimate for a job in six steps

1. Scope the job in writing before you price anything

Walk the job, take photos, and write down what is included and what is not. Most estimates that lose money do not lose it on the markup. They lose it because “replace the water heater” quietly became “replace the water heater, re-pipe the connections, and haul away the old unit.” A one-line exclusions list on the estimate is the cheapest protection you will ever add.

2. Price labor at your loaded rate, not the hourly wage

Your technician's wage is not what an hour of their time costs you. National employment cost data from the U.S. Bureau of Labor Statistics (BLS) shows that benefits, insurance, and payroll taxes account for over 30% of total employer compensation costs.

To find your true labor cost, add payroll taxes, workers compensation, benefits, and the hours technicians are paid but not billing (drive time, shop time, a slow Tuesday). Divide your true annual labor cost by the hours you actually bill and you get a loaded rate. It usually lands 25% to 50% above the base wage, and it is the only labor number that belongs in an estimate.

3. Price materials at today's cost, not last year's

Pull current supplier pricing for this job, and add a waste allowance for anything you cut or fit. If you keep a price book, this step takes 30 seconds instead of 20 minutes, and it is the step where stale numbers do the most damage.

4. Add the cost categories everyone forgets

Every job you estimate should account for all six of these, even when some of them are zero:

  • Labor: wages, payroll taxes, insurance, and downtime between jobs.
  • Materials: parts and supplies, plus handling and procurement.
  • Vehicles: fuel, maintenance, and wear per job.
  • Equipment: rental fees, maintenance, or depreciation on tools and machinery.
  • Subcontractors: any outside help hired for specialty work.
  • Other costs: permits, dump fees, or anything else specific to this job.

5. Mark up each category separately

Each category should carry its own markup, because each one carries a different level of risk. Labor is usually the riskiest: it can spiral the moment a job runs long. Materials are closer to a fixed cost, and the customer can often look up the retail price. Permits and dump fees are pass-through, so they need little more than a handling charge. Markups specific to each category give you a price that matches the actual shape of the job.

6. Check it against your minimum price, then send it fast

Direct cost plus overhead recovery is your break-even. Anything below it loses money no matter how busy it keeps the crew. Once the number clears that floor, get the estimate to the customer inside 24 hours. On small jobs, speed wins work at least as often as price does.

Executing this six-step estimating process consistently requires modern contractor estimate software that eliminates manual math and spreadsheet errors. Utilizing a comprehensive estimate and invoice software allows your team to save custom cost categories, store pre-set labor markups, and generate accurate proposals in seconds. When field technicians can build transparent, line-item estimates on their smartphones, review them against your break-even floor, and send them immediately, your business secures a massive competitive advantage.

A worked example: a water heater replacement

Here is the whole method on one small job, a 50 gallon gas water heater swap. The numbers are illustrative and yours will be different, but run yours once and you have them forever.

Direct costs

  • Materials: heater $620, expansion tank $65, fittings, venting and pan $95. Total $780.
  • Labor: 4 hours at a loaded rate of $48 per hour. Total $192.
  • Vehicle: fuel and wear for the trip. $35.
  • Equipment: none, the hand tools are already owned. $0.
  • Subcontractors: none. $0.
  • Other: permit. $75.

Direct cost of the job: $1,082.

Markups by category

  • Materials at 20%: $936
  • Labor at 65%: $317
  • Vehicle at 25%: $44
  • Permit at 10% handling: $83

Price to the customer: $1,380. Gross profit: $298, or about 22% of the price.

What one flat markup would have done

A flat 45% applied to the whole $1,082 gives $1,569. That is $189 higher, and almost all of it comes from marking up $780 of materials the customer can price at the supply house himself. That is how you lose a bid you should have won.

Now flip the job. A drain line repair with $80 of materials and 6 hours of labor has a direct cost of $403. The flat 45% gives $584. The per-category method gives $615, because the labor markup is doing the work. So the point is not that this method prices lower. It moves the price to where the risk actually is.

Your minimum price

Direct cost is not break-even. Say your overhead runs $12,000 a month and you bill roughly 300 field hours in that month. That is $40 an hour of overhead to recover. This job used 4 field hours, so it carries $160 of overhead, and your true break-even is $1,242. At $1,380 you make $138. If a competitor is quoting $1,150 and you match it, you lose $92 on a job you worked all morning. Knowing that number is the entire point of estimating this way.

How Swivl handles small job estimates

This approach, starting with your costs and pricing each category on its own, is how Swivl is built to work.

  • Estimates from a price book: build the estimate from your saved pricing with no manual math, add line items for labor, parts and custom services, and let the customer approve with a digital signature from their phone. An approved estimate converts to an invoice in one click.

Moving from approved estimates to completed billing should be a single, automated step. By leveraging an all-in-one platform that functions as both a contractor quote builder and field service invoicing software, you unlock one-click estimate conversion. As soon as a customer signs off on a proposal, approved scope items transition directly into active job records and final billing—providing your team with unified invoice and estimate software that protects profit margins and ensures you get paid faster.

  • Job costing that closes the loop: once the work starts, Swivl compares estimated cost against actual cost side by side, so you can see which job types keep underperforming on margin.
  • Reporting that improves the next estimate: real historical cost data on what similar jobs actually cost, so the next price is set from evidence instead of memory.
  • AI estimating: Deploying modern ai estimating for field service tools lets you generate an estimate in seconds from your own labor rates, material costs, and margins. It trains on your job history and protects the margins you set, allowing you to review and edit every line before it goes out.

Swivl is not just about speeding up estimates. It is about making sure every estimate is profitable and matched to the reality of your business.

Why this approach sets you apart

When you build estimates from your own cost structure you are not guessing, you are building from a foundation. Three things change:

  • You know your minimum price. You can say with confidence: this is what it costs me to do this job profitably.
  • You can adjust for different customers. You know exactly how low you can go for a high volume commercial account without losing money.
  • You are building a strategy, not pricing one job. Costs first means you price deliberately instead of reacting.

Build estimates that build your business

Every estimate you send is a reflection of your company. It is not just a number, it is a strategy. Start with your costs. Break them into categories. Apply a markup that makes sense for each one. Know your minimum profitable price. Then send it fast.

Stop guessing. By equipping your crew with an all-in-one field service management software, you can automate your costing workflows and build your next estimate directly from your real numbers.

Crm Solutiontrendssmall business

Transform your business

Join thousands of contractors already growing with Swivl's AI-powered platform.