An instant quote template for contractors: a price calculator you build in Sheets or Excel
Short answer: Yes. An instant quote template is a spreadsheet with three parts: a price table, a short input form, and a few formulas that turn the answers into a price. You can build it in Google Sheets (Google's free online spreadsheet) or Microsoft Excel in an afternoon. To let customers use it on your website, you need a thin layer on top, because you should never share the sheet itself.
You want a quick quote calculator for your trade, and you want to know exactly which tabs, columns and formulas to set up.
I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.
What an instant quote template is
An instant quote template is a spreadsheet that gives a price the moment someone picks a service and types a size. No phone call, no site visit first. You decide the rules once. The sheet applies them every time.
It works best for jobs that price by a clear unit: square feet, linear feet, rooms, windows, hours, number of units. It works badly for jobs where the price depends on what is behind the wall. For those, give a range and book a visit. I cover that in the edge cases below.
If you only want a ready-made option, see my guide to instant quote software and my broader quote generator guide. This page is for the owner who wants to build the sheet first and understand every number in it.
The four tabs to set up
Keep it to four tabs. More than that and nobody maintains it.
| Tab | What goes in it | Who edits it |
|---|---|---|
| Prices | One row per service: name, unit, rate per unit, minimum charge | You only |
| Modifiers | Multipliers and fees: hard access, rush job, travel zone, materials grade | You only |
| Quote | The inputs (service, size, options) and the calculated price | Whoever is quoting |
| Log | One row per quote given: date, contact, inputs, price, won or lost | The sheet fills it |
The Log tab is the one people skip. Do not skip it. After 50 quotes it tells you which services you win, which you lose on price, and where your rates are too low.
Prices tab layout
Row 1 is headers. Each row below is one service.
| A: Service | B: Unit | C: Rate | D: Minimum |
|---|---|---|---|
| Driveway wash | sq ft | 0.35 | 175 |
| House wash | sq ft | 0.22 | 250 |
| Deck clean and seal | sq ft | 1.40 | 300 |
These figures are made up to show the layout. Use your own rates. The minimum column matters most. Small jobs cost almost as much to drive to as big ones, so a minimum protects you from losing money on a 40 square foot patio.
Modifiers tab layout
Put every "it costs more when" rule here, not inside a formula. If a rule lives in a formula, you will forget it exists.
| A: Name | B: Type | C: Value |
|---|---|---|
| Easy access | multiplier | 1.00 |
| Hard access | multiplier | 1.20 |
| Zone A (0 to 15 miles) | fee | 0 |
| Zone B (15 to 30 miles) | fee | 25 |
| Rush (within 3 days) | multiplier | 1.15 |
Quote tab: inputs and formulas
Set up the inputs in cells B2 to B6. Turn each into a dropdown list so people cannot type a service you do not offer. In Google Sheets, select the cells, then use Data, then Data validation, then Add rule, and choose "Dropdown from a range" pointing at the Prices tab names. Excel has the same feature under Data, then Data Validation, then List.
| Cell | Label | What it holds |
|---|---|---|
| B2 | Service | Dropdown from Prices column A |
| B3 | Size | A number, in the unit shown on the Prices tab |
| B4 | Access | Dropdown: Easy access, Hard access |
| B5 | Travel zone | Dropdown: Zone A (0 to 15 miles), Zone B (15 to 30 miles), typed exactly as on the Modifiers tab |
| B6 | Rush | Dropdown: Yes, No |
Then the calculation cells. I use the XLOOKUP function, which finds a value in one column and returns the matching value from another column. It exists in Google Sheets and in current Excel. It is not in Excel 2016 or Excel 2019, so on those versions use VLOOKUP or INDEX with MATCH instead.
- B8 Rate:
=XLOOKUP(B2, Prices!A:A, Prices!C:C, 0) - B9 Minimum:
=XLOOKUP(B2, Prices!A:A, Prices!D:D, 0) - B10 Base price:
=MAX(B3*B8, B9) - B11 Access multiplier:
=XLOOKUP(B4, Modifiers!A:A, Modifiers!C:C, 1) - B12 Rush multiplier:
=IF(B6="Yes", XLOOKUP("Rush (within 3 days)", Modifiers!A:A, Modifiers!C:C, 1), 1) - B13 Travel fee:
=XLOOKUP(B5, Modifiers!A:A, Modifiers!C:C, 0) - B14 Subtotal:
=ROUND(B10*B11*B12 + B13, 2)
The last argument inside each XLOOKUP is what to show when nothing matches. I set it to 0 or 1 on purpose, so a typo does not show an error to a customer. Still make the inputs required dropdowns, because a blank input can return a blank match.
The formulas above apply the minimum first, so the multipliers then raise the minimum too. If you want the minimum to be the lowest final price, apply it after the multipliers instead. Pick one order and keep it.
A worked example with made-up numbers
A customer wants a driveway wash, 600 square feet, hard access, Zone B, not a rush. The figures are illustrative.
| Step | Calculation | Result |
|---|---|---|
| Base price | 600 x $0.35 = $210. Minimum is $175, so $210 stands. | $210.00 |
| Access | $210 x 1.20 | $252.00 |
| Rush | x 1.00 | $252.00 |
| Travel fee | + $25 | $277.00 |
| Tax at an example 8 percent | $277 x 0.08 = $22.16 | $299.16 |
Check your local tax rules before you add a tax line. Some trades charge tax on materials only, or not at all.
Show a range, not a promise
A single exact number sounds precise, and customers hold you to it. For most trades I show a range: the subtotal times 0.9 to the subtotal times 1.1. In the example that is about $249 to $305 before tax. The wording underneath says the final price is confirmed after a quick photo review or a visit.
This is the "looks the same but isn't" part. A quote, an estimate and a fixed price are three different promises:
- Estimate or range: a ballpark. It can change after you see the job.
- Quote: a price you hold for a set time, based on the details given.
- Fixed price: you carry the risk if the job turns out harder.
An instant calculator should output an estimate, then turn it into a quote once you confirm the details. When a customer accepts, use a clear quote acceptance form so the price and scope are in writing.
Edge cases that break a quote sheet
- Jobs with hidden conditions: rot behind siding, old wiring, a blocked drain line. Do not auto-price these. Route them to a visit.
- Tiered rates: if the rate drops after 1,000 square feet, a single rate column gives the wrong price. Add a second rate column and a threshold, or keep two rows per service.
- Combined jobs: a customer wants three services. Let the sheet hold up to three lines and add them, or the calculator will only ever quote one.
- Material price swings: if lumber, copper or paint moves a lot, keep materials on their own row so you can update one number.
- Seasonal demand: use the Rush multiplier, or add a "busy season" multiplier.
- Bad inputs: a size of 0 or a size of 60,000 should show a message, not a price. Add an IF that says "call us" outside a sensible range.
How to put the template on your website
You have three options, from simplest to most solid.
Option 1: a form that feeds the sheet, with you replying
Customers fill in a form, the answers land in the sheet, and your formulas calculate the price. You then email it. This is not instant, but it is safe and takes an hour. My guide to adding a free quote request form to your website shows how.
Option 2: a small web page on Google Apps Script
Google Apps Script is Google's built-in scripting tool for Sheets. Google documents that a script with a doGet function that returns an HTML page can be deployed as a web app, which gives you a URL to share. The page collects the inputs, a script runs your price rules, and it writes a row to the Log tab. Customers use the web app, never the sheet. A developer can set this up in a day. You can also ask Claude to write the script if you paste in your tab layout and formulas, but test it with 20 sample inputs before you publish.
Option 3: move to a real web app
Once you are quoting daily, or the rules need logins, saved customers and a follow-up, the sheet becomes the bottleneck. My guide on moving from Excel to a web app covers when that happens and what the choices cost. The sheet you built is not wasted. It is your written spec.
Protect your pricing
Do not share the spreadsheet link with customers or put it in an embed. They can then see your minimums, your multipliers and your log of other customers. Google's own help says protecting a sheet or range is not a security measure, since people with access can still copy, print and export. So keep the working sheet private and share only the finished page or the final number.
After the quote goes out
A quote that is never followed up is a lost job. Pair this sheet with a simple follow-up three days after the quote. If you are weighing a spreadsheet against a paid tool, my page on quote software versus Excel shows where AI can fill the gaps.
How I'd approach this
Build the sheet first, even if you plan to buy software later. It forces you to write down your real rates, minimums and surcharges, which most owners have only in their head.
Start with your three most common services, not twenty. Run your last 10 real jobs through the calculator and compare. If it is off by more than 10 percent on more than two of them, fix the rates before anyone outside the company sees it.
Show a range, keep the working sheet private, and log every quote. When you are quoting more than a handful a day, or you keep patching the sheet, that is the signal to move it into a proper tool. A quick call with me, Ranjit can help you work out whether a ready-made tool or a small custom build fits better.
Questions people ask
Is there a free instant quote template for contractors?
You can build one for free in Google Sheets or Excel using the layout on this page: a Prices tab, a Modifiers tab, a Quote tab and a Log tab. There is no download needed. Copy the column layout, enter your own rates, and test it against recent jobs before you trust it.
Can I make an instant quote template in Excel?
Yes. Excel supports dropdown lists (Data Validation) and lookup formulas. XLOOKUP works in current Excel but not in Excel 2016 or Excel 2019, so use VLOOKUP or INDEX with MATCH there. The structure is the same as in Google Sheets.
How do I put an online quote calculator on my website?
Do not embed the spreadsheet. Either collect answers through a form and reply yourself, publish a small web page using Google Apps Script, or move the rules into a proper web app. See Excel to web app for how to decide.
Should an instant quote show an exact price or a range?
For most trades, a range. Customers treat an exact number as a promise. A range of about 10 percent either side, with a note that the price is confirmed after photos or a visit, protects you on jobs with surprises.
When is a spreadsheet no longer enough?
When several people edit it at once, when you need customers to log in or sign, or when you spend more time fixing formulas than quoting. Ready-made tools are covered in instant quote software.
More in this topic: Field service: templates, integrations and how-tos (10 guides) →