TemplateLast reviewed November 4, 2026

Contractor Estimate Template (Free .xlsx)

Free contractor estimate template: a macro-free .xlsx that prices line items from trade presets and shows good, better and best totals with tax.

Our contractor estimate template prices a job the same way every time and gives the customer one page to sign. You keep your labor rate and markups for each trade in one place and list the job line by line. The workbook prices every line, adds tax on materials and sets good, better and best options side by side. Pick the option to present and the Estimate sheet prints it as a one-page customer estimate.

Download the contractor estimate template. It’s a plain .xlsx file with no macros and no sign-up. The sample job, rates and prices are placeholders, so replace them with your own.

Video walkthrough

This short captioned walkthrough covers the line items, the trade presets that price them, and the Estimate sheet with its three options.

Contractor Estimate Template walkthrough

Who this template is for

It’s for contractors and service companies who price jobs for homeowners and small businesses: HVAC, plumbing, electrical, roofing, painting, landscaping and similar trades. It fits a one-truck owner writing estimates at the kitchen table as well as an office manager who prepares them for several technicians.

It keeps the same labor rate and markups on every estimate, so you stop retyping them, and it builds good, better and best options from one job list instead of three separate estimates. The page the customer signs shows a total that matches the lines above it.

If you’re bidding commercial work to a general contractor or building owner, where you build up the full cost first and check your margin, our commercial HVAC bid template is the better fit.

What’s in the workbook

There are four sheets, in this order:

  1. Instructions covers setup, the color legend, import steps for other spreadsheet apps, the limitations, and a note that every formula, layout choice and sample figure was written from scratch for this file.
  2. Presets holds one row per trade: the trade name, your labor rate per hour, and your markup on materials, equipment and subcontracts.
  3. Line Items lists the job, one row per line, with the option it belongs to, its category, description, quantity, unit and unit cost. The sheet works out the unit price, the line price and the line’s number on the customer sheet.
  4. Estimate is the customer-ready page: your company details, the customer and job, the option table, the lines for the option you present, the total, terms and signature lines.

Blue cells are for typing, yellow cells calculate, and green cells hold the totals.

How to fill it in

  1. If your spreadsheet app opens the file read-only, turn on editing so the formulas calculate.
  2. On Presets, replace the sample trades and rates with your own sell rate per hour and the markups you charge.
  3. On Line Items, list the job. Mark lines every option shares as All, and option-only lines as Good, Better or Best. Enter hours on Labor rows and a unit cost on every other row.
  4. On Estimate, fill in the customer, job address, estimate number, date and how many days the price holds. Pick the trade and enter your tax rate on materials.
  5. Compare the three options, then pick the one to present. Check that Rows to check reads 0, then print the Estimate sheet or save it as a PDF.

How the trade presets price each line

Every line is priced from the preset for the trade you pick on the Estimate. Labor lines take hours and are priced at the preset’s labor rate. In the sample, HVAC is set at $120.00 an hour, so 10 hours to install and start up the system comes to $1,200.00. Material, equipment and subcontract lines take your cost, and the workbook adds that category’s markup. The $864.00 line set and fittings line is the $640 sample cost plus the 35% material markup.

Presets sheet showing six sample trades with a labor rate per hour, material, equipment and subcontract markups, and a row check on each

Switch the trade from HVAC to Plumbing and every line reprices from the Plumbing row. You don’t touch Line Items at all. One job list can be priced for a different crew or division, and a rate change on Presets reaches every open estimate in the file.

Treat the sample rates as placeholders. They show how the sheet behaves and aren’t typical rates for any trade. To work out a labor rate that covers wages, burden and overhead, start with our labor rate calculator and flat-rate price book. To check what a markup does to your margin, use the markup and margin calculator.

Good, better and best options

Each line on Line Items belongs to All or to one option. All lines go into every option. In the sample, that’s removing the old system, installation labor, the line set and fittings, and the electrical circuit upgrade. Option lines add on top: a single-stage system for Good, a two-stage system and programmable thermostat for Better, and a variable-speed heat pump, communicating thermostat and extra commissioning time for Best.

Line Items sheet showing ten sample lines, each marked All, Good, Better or Best, with category, quantity, unit cost, unit price, line price, customer line number and row check

The option table on the Estimate shows all three at once, with the subtotal, tax on materials and total for each:

OptionSubtotalTax on materialsTotal
Good$7,719.00$69.12$7,788.12
Better$9,522.00$88.56$9,610.56
Best$12,591.00$103.68$12,694.68

Tax applies only to Material lines, at the rate you enter. Equipment, labor and subcontract lines aren’t taxed. Rules differ by state and province, so check what your jurisdiction taxes and set the categories to match. Enter 0 for a tax-exempt job.

The customer estimate

Pick the option to present and the lines below the option table reprint for it. The sample presents Better, so the customer sheet lists 6 lines: the four All lines and the two Better lines, numbered in the order they appear on Line Items. The total for the option presented is $9,610.56, and the terms line repeats the valid-until date worked out from the estimate date and the days the price holds.

Estimate sheet showing the customer and job details, the trade and tax rate, the good, better and best option table, the total for the option presented and the first customer lines

The Estimate prints on one page and shows up to 40 lines. An option with more than 40 lines reads “Over 40 lines” in the option table instead of a total, so the printed page never shows a total beside a cut-off list. Split a long job into fewer, larger lines, or estimate it in two parts.

The data checks

The workbook checks its inputs before it shows a price. Every Presets row ends with a Row check: Check ID for rates with no trade name, Duplicate ID when a trade appears twice, and Check inputs for a blank, text or negative rate or markup. Every Line Items row has one too. It flags an option or category that isn’t on the list, a blank, text or negative quantity, a cost that is text or negative, a Labor row with a unit cost, or any other row without one.

The Estimate adds them up in Rows to check, along with a trade that doesn’t match exactly one preset and a tax rate or validity period that is blank or negative. While Rows to check is above 0, every price reads “Check data” and the customer lines stay empty, so a typo never prints as a number. Trade names are matched exactly, so a misspelled name or one with an asterisk can’t pick up another trade’s rates.

Using it with other tools

Every price on the estimate comes from your preset rate and markups. The labor rate calculator and flat-rate price book works out the hourly rate, and the markup and margin calculator shows what each markup leaves you. For commercial work, use the commercial HVAC bid template. If you’re writing more estimates than a spreadsheet handles comfortably, our guide to the best estimating software for field service compares tools built for writing estimates. You can browse the rest of our free field service templates too.

Limitations

This is a pricing worksheet, not accounting or tax software. It applies one tax rate to the marked-up price of Material lines only. It doesn’t handle discounts, deposits, payment schedules or financing. Each option shows up to 40 lines on the customer sheet. Presets hold rows 2 to 21 and Line Items hold rows 2 to 201.

The workbook opens as a plain .xlsx file. Most spreadsheet apps can import it, and the Instructions sheet includes import steps.

Download the contractor estimate template and replace the sample rates and lines with your own.

Frequently asked questions

  1. What should a contractor estimate include?

    Who the customer is and where the job is, an estimate number and date, and the work broken into lines for labor, materials, equipment and subcontracts. Then the tax, the total, how long the price holds, your terms and a place for the customer to sign. The Estimate sheet in this template has each of those.

  2. How do good, better and best options work in the template?

    Lines every option shares, such as removal and installation labor, are marked All. Lines that belong to one option are marked Good, Better or Best. Each option total is the All lines plus its own lines, and the Estimate shows all three side by side before you pick the one to print.

  3. Can I use it for roofing, plumbing or electrical jobs?

    Yes. Each trade is one row on the Presets sheet with its own labor rate and markups. Edit a sample row or add your trade below it, pick it on the Estimate, and every line reprices from that row.

  4. Does this estimate template work in Google Sheets?

    It is a plain .xlsx file with no macros. In Google Sheets, choose File > Import > Upload and select the file. After importing, compare the option totals with the original file before you send an estimate from it.

  5. Estimate or bid: which one do I need?

    An estimate prices a job for a homeowner or small customer and lets them choose. A commercial bid builds up your full cost first and checks the margin before a fixed price goes to a general contractor or owner. For that, use our commercial HVAC bid template.

Trust signal

Fact Checked & Editorial Guidelines

Every post on this site is fact-checked against the policy below before the "Last reviewed" date is updated. If a single item below fails verification, the post does not go live.

  • Every claim traces to a source.

    Pricing, feature lists, integrations, and headquarters are taken from vendor product pages, documentation, or signed contracts — never repeated from secondary blogs. Where a claim is sourced from a single vendor's marketing, it is qualified as such.

  • Vendor relationships are disclosed in-line.

    If a review covers a platform whose vendor has provided trial access, sandbox access, or paid placement on a sister property, that relationship is stated in the review's methodology footer — not buried in a sitewide disclosure page.

  • Pricing is rechecked at every review cycle.

    Vendor pricing changes constantly. The 'Last reviewed' date on each post is the date the price line was last re-verified against the vendor's public pricing page. If you spot a stale price, the contact page accepts corrections.

  • Corrections are logged, not silently rewritten.

    Material factual corrections after publication get a correction note dated and appended to the post. We don't pretend the prior version never said what it said.

Spotted an error? Send a correction via thecontact page — corrections are logged with a dated note on the post.

Trust signal

Editorial Review & Methodology

Reviews and comparisons on this site follow a single documented methodology — the same rubric, applied identically to every platform, on every review cycle.

  • Five-criteria scoring rubric, applied identically to every platform.

    Usability, pricing transparency, feature depth, support quality, and integrations. Each criterion scored 0–10 with documented weighting. The rubric is published on the methodology page and does not change between platforms in the same review.

  • Hands-on testing where vendor trial access permits.

    If a vendor offers trial or sandbox access, the reviewer spins up an account and works through the documented evaluation script before scoring. Where access is enterprise-gated, the access type is disclosed and scoring draws on product documentation, verified buyer reviews, and analyst sources.

  • Editorial independence from commercial relationships.

    No vendor pays for placement, previews scores, or controls the content of a review. Affiliate links, where present, do not change ranking — picks are ordered by score, not by commercial yield. If a conflict of interest exists for a specific review, it is disclosed within that review.

  • Reviews get re-checked, not just re-dated.

    Each 'Last reviewed' update means the rubric was re-applied — pricing, feature inventory, integration list, and any material vendor changes since the prior review. A bare date bump without re-evaluation is not a re-review.

The full rubric, weighting, and review-cycle process is on themethodology page.