You need a 25% markup on cost. Price is cost divided by 0.8 (one minus the margin), not cost times 1.2, because a 20% markup earns only a 16.7% margin. In a quote, total the job's direct costs, divide by 0.8 and recheck the margin from price and cost. That 20% must cover overhead as well as profit.
Markup is profit as a share of cost; margin is profit as a share of price. Use one when you mean the other and every job earns less than planned, by a gap that widens as the target rises. The two convert both ways: margin equals markup divided by one plus markup, and markup equals margin divided by one minus margin.
The figures from here on belong to an illustrative six-person building firm, made up but consistent from a single job to the year's accounts. When ChatGPT or Excel's Copilot builds the sheet, expect the first error to be the markup formula sitting under a margin label; a six-row test catches it in a minute.
Why a 20% markup is not a 20% margin
Start with $100 of cost. Add 20% and the price is $120, so the profit is $20. But $20 is only 16.7% of $120, which is the margin. To earn $20 for every $100 of price, the price must be $100 divided by 0.8, which is $125. The profit is then $25 on a $100 cost: a 25% markup. Margin divides by the bigger number (price), so the same profit looks smaller as a margin than as a markup.
| Target margin | Markup needed on cost | Price from $10,000 of cost |
|---|---|---|
| 10% | 11.1% | $11,111 |
| 15% | 17.6% | $11,765 |
| 20% | 25.0% | $12,500 |
| 25% | 33.3% | $13,333 |
| 30% | 42.9% | $14,286 |
| 35% | 53.8% | $15,385 |
| 40% | 66.7% | $16,667 |
| 50% | 100% | $20,000 |
Read it from the bottom to see the damage. A firm that "adds 50%" to every cost earns a 33.3% margin, not 50%. Adding 30% earns 23.1%, adding 40% earns 28.6%, and adding 15% earns 13.0%. The gap grows with the number, which is why the mistake hides on small jobs and bites on large ones.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowOne kitchen extension priced both ways
Here is a job for the illustrative firm: a rear kitchen extension with these direct costs, meaning costs that belong to this job alone.
| Direct cost line | Amount |
|---|---|
| Own labour (crew wages including payroll costs) | $18,400 |
| Materials | $21,300 |
| Subcontractors (electrics and plumbing) | $9,600 |
| Skip hire, plant and permits | $1,700 |
| Direct cost | $51,000 |
Priced for a 20% margin, the quote is $51,000 divided by 0.8, which is $63,750. Gross profit is $12,750, and that is a 25% markup on cost. Priced by multiplying cost by 1.20, the quote is $61,200. Gross profit is $10,200, and the margin is 16.7%. The shortfall is $2,550 on one job, from a quote that looks like a 20% job to everyone who reads it.
The next section shows that this job carries $7,650 of the firm's overhead. After it, the correct price leaves $5,100 of net profit and the wrong price leaves $2,550. A rounding-looking mistake just halved the profit on the job.
Overhead: what a 20% margin has to pay for
Overhead is every cost that belongs to the business rather than one job: office and storage, vehicles and insurance, software, admin wages, tools, and your own time when you are not on site. Pay yourself a fair wage for site hours as labour on the jobs, not as profit, or your margin target will quietly be covering your salary.
Take the illustrative firm's year. Revenue was $900,000 and direct costs across all jobs were $720,000, so gross profit was $180,000, which is 20% of revenue. Overhead was $108,000, which is 12% of revenue and 15% of direct cost. That leaves $72,000 of net profit, or 8%. The rule that follows is short: the gross margin you must quote equals overhead as a share of revenue plus the net profit you want.
| Overhead (share of revenue) | Net profit target | Gross margin to quote | Markup on direct cost |
|---|---|---|---|
| 10% | 8% | 18% | 22.0% |
| 12% | 8% | 20% | 25.0% |
| 15% | 8% | 23% | 29.9% |
| 18% | 10% | 28% | 38.9% |
| 22% | 10% | 32% | 47.1% |
That is why "20%" cannot be a universal target. A firm with 12% overhead and an 8% net goal needs exactly the 20% in our example. A firm whose overhead is 18% of revenue and wants 10% net needs 28%, and quoting at 20% would leave it with a 2% net profit. Your own overhead share is a number from your accounts, so work it out before you choose the target. Recalculate every quarter: a quiet quarter pushes overhead up as a share of revenue.
There is a second way to reach the same price, and it makes a good cross-check. Add overhead to the direct cost as a share of cost, then add the net profit on the price.
| Step | Calculation | Result |
|---|---|---|
| Direct cost | From the cost lines | $51,000 |
| Overhead carried by the job | 15% of direct cost | $7,650 |
| Cost including overhead | $51,000 + $7,650 | $58,650 |
| Price for an 8% net margin | $58,650 divided by 0.92 | $63,750 |
Same price, $63,750, from a different road. If your two routes disagree, one of the percentages was calculated on the wrong base, and that is usually where a margin leak starts. A related trap is the "10 and 10" habit of adding 10% for overhead and then 10% for profit. Compounded, that is 1.10 times 1.10, a 21% markup, which earns a 17.4% margin. Added together as shares of cost, it is a 20% markup, which earns 16.7%. Neither reaches a 20% margin.
The pricing sheet: inputs, cost lines and four checks
A good sheet is boring and hard to break. Keep the inputs at the top, one row per cost line, and checks that recompute margin from the price they produced. Here is a layout that fits on one screen (cell addresses are an example; shift them if your sheet differs).
| Cell | Holds | Formula |
|---|---|---|
| B2 | Overhead as a share of revenue (12%) | Typed in |
| B3 | Net profit target (8%) | Typed in |
| B4 | Gross margin to quote | =B2+B3 |
| B5 | Markup that equals it | =B4/(1-B4) |
| C9 to C13 | Direct cost per line | Typed in |
| D9 to D13 | Margin for that line | =$B$4 by default; overwrite per line |
| E9 | Price for the line | =IF(OR(D9<0,D9>=0.6),"Check margin",C9/(1-D9)) |
| F9 | Margin check | =IF(ISNUMBER(E9),(E9-C9)/E9,"") |
| C14, E14 | Totals | =SUM(C9:C13) and =SUM(E9:E13) |
| F14, G14 | Blended margin and markup | =(E14-C14)/E14 and =(E14-C14)/C14 |
| B16 to B18 | Overhead carried, net profit, net margin | =E14*B2, =E14-C14-B16, =B17/E14 |
The four checks are the margin column F, the blended figure in F14, the guard inside E9 that refuses margins below zero or at 60% and over, and the net margin in B18, which should land on your 8%. Round the final price once, at the end, to the nearest $50, and never round individual lines. For the wider job-costing picture, our tutorial on building a job costing sheet in Excel with AI shows how actual costs feed back in.
Asking ChatGPT for the sheet, and the mistake it makes first
A chat assistant is good at writing the formulas and fast at laying out a sheet. ChatGPT Work, on Plus and above, can produce spreadsheet files, though OpenAI's help page says file creation depends on your plan, workspace and file type while it rolls out; an ordinary chat can always write formulas for you to paste. Either way, say which maths you want in plain words, because "price at a 20% margin" is a phrase that invites the wrong formula.
Build an Excel pricing sheet for a small building firm. Use margin, not markup: price = cost / (1 - margin).
Inputs at the top: overhead as a share of revenue, net profit target, and a gross margin to quote equal to the two added together.
Then five cost lines, each with a type, a description, a direct cost and a margin that defaults to the quoted margin but can be overwritten.
For each line show the price. Add a check column that recalculates margin from the price and the cost. Add a guard so a margin below 0% or at 60% or more shows "Check margin" instead of a price.
Totals row with blended margin and the equivalent markup. Below it show overhead carried by the job, net profit and net margin.
Give formulas in A1 notation with the cell each belongs in, and one line explaining each. No named ranges, no macros.
The first answer is usually close. Here is an illustrative extract of the kind of reply that comes back:
B4 Gross margin to quote =B2+B3 Adds the overhead share and the net target.
B5 Equivalent markup =B4/(1-B4) Converts the margin to a markup on cost.
E9 Price at target margin =C9*(1+D9) Applies the margin to the line's cost.
F9 Margin check =(E9-C9)/E9 Recalculates margin from the price.
The failure is in the E9 line: the column is labelled "Price at target margin", but its formula is =C9*(1+D9). That is the markup formula. With D9 at 20% it gives $61,200 on a $51,000 cost and nobody notices unless a check column recomputes the margin and shows 16.7%. The fix is a one-cell change to =C9/(1-D9). It is common because "add 20%" is how people talk, not because the assistant is careless, so always write the formula in the prompt.
Six tests to run before the sheet prices a real job
| Input cost | Margin typed | Price should be | Margin check should show |
|---|---|---|---|
| $100 | 20% | $125.00 | 20.0% |
| $100 | 25% | $133.33 | 25.0% |
| $100 | 50% | $200.00 | 50.0% |
| $250 | 20% | $312.50 | 20.0% |
| $100 | 100% | Check margin | blank |
| $100 | 20 (typed without the percent sign) | Check margin | blank |
The last two rows matter as much as the first four. A margin of 100% would mean dividing by zero, and typing 20 instead of 20% would produce a negative price. The guard turns both into a visible warning. Keep the test table on a second tab so the next person who edits the sheet can rerun it in a minute.
Doing it in Excel with Copilot instead
If your Microsoft 365 plan includes Copilot, the side pane can add the columns itself. Check that the Copilot button is on your ribbon: Microsoft's page says that if you do not see it, it might not be included with your subscription or may be switched off by your organisation's settings. The pane has three modes: Allow editing (the default), Plan, which shows a plan for you to confirm before it acts, and Chat only, which analyses without changing the workbook. Do not build the sheet around the old COPILOT worksheet function: Microsoft retired it on 14 September 2026, and cells that recalculate now show #NAME?.
My routine is to save a copy first, ask in Chat only to explain the formulas already in the sheet, then switch to Allow editing for the change itself.
In the table starting at row 8, add a column called Price that equals Direct cost divided by (1 minus Margin) on each row, and a column called Margin check that recalculates margin as (Price minus Direct cost) divided by Price. Show "Check margin" instead of a price if Margin is below 0 or 0.6 or higher. Do not change any existing column.
Copilot edits the workbook with Excel's own features, so what it produces stays editable and you can read each formula. That is a good reason to prefer it for edits to a sheet you already own, and a chat assistant for drafting a sheet from nothing. The tests above apply to both. Our ChatGPT and Excel guide goes deeper on prompting for formulas.
Different margins for labour, materials and subcontractors
One margin for the whole job is simple, and it is not the only choice. Many firms take more on their own labour, where their skill and scheduling sit, and less on pass-through materials and subcontractors, where the customer can compare prices. Using the extension job:
| Line | Direct cost | Margin | Price |
|---|---|---|---|
| Own labour | $18,400 | 30% | $26,286 |
| Materials | $21,300 | 15% | $25,059 |
| Subcontractors | $9,600 | 10% | $10,667 |
| Skip hire, plant and permits | $1,700 | 15% | $2,000 |
| Total | $51,000 | 20.3% blended | $64,011 |
The blended margin is 20.3% (a 25.5% markup on cost), a touch above the single-margin price of $63,750. The method works because each line uses the same divide-by-one-minus formula. A thin margin on a subcontractor you must manage, who may fail or slip, is still your risk, so price a contingency line separately instead of hoping the margin absorbs it. On one big purchase the difference is plain: a $4,200 window package at a 25% margin is $5,600, while a 25% markup gives $5,250, and the $350 gap is a margin leak on a single order. For small purchases, our handyman material markup calculator tutorial uses the same arithmetic on a smaller scale.
Putting the 20% into the quote the client reads
Whether you use one margin or a different one per line, the client never sees cost, markup or margin. They see prices, so the margin has to sit inside each line before anything leaves the sheet. Price every line with its own divide-by formula, round the total once, and copy only the price column into the quote document. With the single 20% margin, the extension's quote reads like this (illustrative):
| Quote line | Cost on your sheet | Price the client sees |
|---|---|---|
| Building work by our own team | $18,400 | $23,000 |
| Materials supplied and fixed | $21,300 | $26,625 |
| Electrical and plumbing work | $9,600 | $12,000 |
| Skip hire, plant and permits | $1,700 | $2,125 |
| Total | $51,000 | $63,750 |
The middle column stays on your internal tab. Three habits keep the margin intact once the quote is out. Do not add a line called "overhead" or "profit", because a visible line invites the client to negotiate it away; the exception is a cost-plus contract, where the fee is agreed openly. Save the costed sheet under the quote number, so a variation six months later is priced from the same base. And when a client asks for a materials breakdown, give quantities and specifications rather than your supplier prices, because a client who sees $21,300 of materials quoted at $26,625 will ask about the $5,325 gap instead of the kitchen.
Where the margin leaks after the quote
A correct sheet can still lose money in the weeks after it goes out, and three leaks account for most of it.
Discounts. Five per cent off the $63,750 quote is $3,187.50. The new price of $60,562.50 leaves $9,562.50 of gross profit instead of $12,750, so the margin drops to 15.8% and gross profit falls by a quarter. The rule is that a discount removes a share of gross profit equal to the discount divided by the margin: 5% divided by 20% is 25%. At a 10% margin the same 5% discount would remove half. Offer a change of scope, such as dropping an item, before you offer a lower price.
Variations priced from the wrong formula. A client adds an en-suite that costs you $2,400 more. At the 25% markup that gives a 20% margin, the variation is priced at $3,000. Multiply by 1.20 instead and it comes out at $2,880, which is $120 short. Twenty variations a year at that gap is $2,400 of profit gone with no argument from anyone. Use the same sheet for variations as for the main quote; our tutorial on pricing variations and change orders with AI shows how to draft the paperwork.
Rounded and padded numbers. Rounding every line up looks harmless but hides the margin you think you are earning. Round the final price once, and keep any contingency as a labelled line with its own margin, so you can tell later whether it was used.
Checking last year's jobs against the sheet
Before you trust the sheet for the next quote, run last year's closed jobs through the margin formula. The aim is to find out what your old method really earned.
- Pull ten closed jobs with the quoted price and the final direct cost (labour, materials, subcontractors, plant).
- For each, calculate the margin as price minus cost, divided by price. An assistant can add the column in a minute; check two rows by hand.
- Mark every job below your target and note the trade, the size and who the customer was.
- Look for the pattern, such as jobs where subcontractors were over 40% of cost, or quotes written in a hurry.
- Adjust margins by cost type in the sheet, not by pushing the whole target up.
Here is how three of them might read (illustrative).
| Job | Price | Final direct cost | Margin earned | Against a 20% target |
|---|---|---|---|---|
| Loft conversion | $48,000 | $40,300 | 16.0% | Short by 4.0 points |
| Bathroom refit | $14,500 | $11,100 | 23.4% | Ahead by 3.4 points |
| Garage rebuild | $27,800 | $23,600 | 15.1% | Short by 4.9 points |
| All three | $90,300 | $75,000 | 16.9% | Short by 3.1 points |
If the loft and garage quotes were both built by "adding 20%", the formula alone explains most of the gap: a 20% markup earns 16.7% even when costs hold, and these two came in at 16.0% and 15.1%, so costs ran a little over as well. The bathroom, quoted with a different habit, beat the target. That kind of split tells you which part of the old method to keep. For a full walk-through of profit by job, see our tutorial on finding which construction jobs actually made money, and for a trade-specific version of this check, the HVAC markup and margin check on past jobs.
Four rules to pin above the sheet
- Say "margin" or "markup" every time, in the quote notes and out loud. If a colleague says "add 20", ask which.
- For margin, divide by one minus the margin. Multiplying is for markup.
- Take overhead as a share of revenue from your own accounts, and refresh it each quarter.
- Keep the test table on its own tab and rerun it after every edit, whether you or an assistant made it.
Markup, margin and overhead questions from builders
Is a 20% margin enough for a construction business?
It depends on your overhead. The margin you need is overhead as a share of revenue plus the net profit you want. At 12% overhead and an 8% net target that is 20%, but at 18% overhead the same target needs 26%. Treat 20% as a number to test against your own books, not a standard to copy.
What are the formulas to convert margin and markup?
Markup equals margin divided by one minus margin, so 20% margin is 25% markup. Margin equals markup divided by one plus markup, so a 25% markup is a 20% margin. Price from cost and margin is cost divided by one minus margin. In Excel, with cost in C9 and margin in D9, price is C9/(1-D9).
Should sales tax sit inside my margin calculation?
No. Work out margin on the price before any sales tax or similar tax, because that tax is collected for the tax authority and is not income to you. Add it as a separate line at the bottom of the quote so it never distorts the margin check column or the overhead share.
Can I trust ChatGPT or Copilot to do the arithmetic?
Trust them to write formulas, not to be the calculator. Ask for formulas you can see in cells, then test the sheet with three cases whose answers you know, such as $100 of cost at 20%, 25% and 50% margin. Assistants often reach for the markup formula when you say margin, and the check column catches it.
Further reads
- Can ChatGPT Write a Builder's Quote? A Worked Example — A full builder's quote written with ChatGPT, step by step.
- AI in Construction Accounting: Job Costs, WIP and Retainage Checks — Job costs and work in progress once the quote is won.
- Plumbers AI: Turn Supplier Price Lists Into a Parts Markup Sheet — The same markup logic applied to supplier price lists.
- How to Price Carpentry Work: Test Day Rates Against Job History With AI — Test day rates against your own job history.
- Can AI Produce Accurate Estimates for a Small Building Firm? — How accurate AI estimates are for a small building firm.
- How to Check Your Margins Product by Product With AI — A product-by-product margin check you can adapt.
- Bakery Pricing Calculator: Build One With ChatGPT and a Spreadsheet — Four spreadsheet tabs, ChatGPT-written formulas and one loaf worked through, from ingredient and labour costs to wholesale versus retail margins.
- Car Detailing Price List Template: AI-Built Packages and Add-Ons — A filled-in car detailing price list built with AI: three packages, vehicle-size multipliers and an add-on menu, each priced from measured time and cost.
- Salon Pricing Calculator: Build One With AI From Your Real Costs — Cost per chair minute, product cost per colour and a margin target, built into a ChatGPT-made spreadsheet you can check line by line.
- Florist Pricing Formula for Bouquets and Arrangements, Built With AI — One bouquet priced line by line: stems, waste allowance, labour, overhead and profit, plus the prompt that gets AI to build the formula sheet from your costs.
- AI Tools for Construction Estimating: Bid Checks After the Takeoff — Takeoff tools make quantities; checking the bid is a different job. A comparison with list prices and a five-gate bid check on a worked example.
- Asphalt Price Increase 2026: Update Quotes and Tell Customers With AI — How a paving firm sorts open quotes, re-prices only the asphalt line and writes customer notices, with clause wording and AI prompts that do the drafting.
- Bathroom Remodel Estimate Template: Catch Missing Lines With AI — The hidden lines that slip out of bathroom estimates, a checklist prompt that audits your last three, and a reusable template with allowances for unknowns.
- Hourly Rate for a Tradesman: Work Out Yours Without Guessing — A four-step method for a tradesman's hourly rate, with a worked plumber example, a crew version, a billable-hours log and an AI check of the maths.
- How to Price Building Work: Check Your Rates Against Past Jobs With AI — Compare quoted and actual cost line by line on past jobs, find what you underprice, and turn it into a rate sheet you test before quoting.
- How to Price Christmas Light Installation: Roofline, Trees and Take-Down — A worked quote with roofline, two trees and take-down as separate priced lines, the cost behind each rate, and an AI check of the sheet.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Microsoft Support pages for Copilot in Excel (modes) and the retirement of the COPILOT function, OpenAI notes on ChatGPT Work producing spreadsheets, read in early November 2026. Margin and markup arithmetic is standard; every dollar figure in the worked examples is illustrative.