Skip to content
UKUnited Kingdom

Heating Engineer Markup: Price Labour, Parts and Overheads

Build a heating engineer markup policy that covers loaded labour, appliances, parts, subcontractors and overhead without charging for the same cost twice.

Yes Foreman · 9 October 2026 · Pricing and quoting

The boiler replacement looked healthy on the quote. Then collection time, fittings, commissioning and office work landed on the job. A sound heating engineer markup starts with the scope, prices complete cost buckets and recovers overhead once.

Fix the heating scope before touching the markup

You cannot mark up work that has not been described. Inspect the job. Write the scope. Then estimate the cost.

Record the heat source, wet heating system, hot-water work, controls, pipework and flue where they form part of the job. State what stays, what goes and what you will test. Include commissioning and handover.

For a replacement, ask:

  • What appliance and controls are being supplied?
  • Do the existing connections suit them?
  • Who isolates, drains, removes and disposes of the old equipment?
  • Can the crew move the appliance through the property?
  • Who handles electrical, roofing, building or decorating work?
  • What must be complete before commissioning can start?

Keep the site notes and cost build-up attached to the quote. The heating and HVAC industry page shows how Yes Foreman fits this type of work.

Specify the appliance, controls and connections

Write the appliance and control package in plain language. Add the flue components, filters, valves, pumps, cylinders, brackets and other accessories required by the chosen system.

An appliance cost does not include all the work around it. Someone must specify it, order it, receive it, inspect it and move it. Returns and damaged deliveries also take time. Your pricing policy needs to recover that work somewhere visible.

If a supplier proposes a different appliance after the customer accepts the quote, stop the order. Check the purchase cost, dimensions, connections, accessories, controls and commissioning work again. Record any effect on the quoted scope before anyone commits to the substitute.

Assign access, protection, waste and other trades

State who clears the work area and protects floors. Record lifting equipment, parking arrangements, waste removal and making good. Do not leave these jobs sitting between you and the customer.

For work in England and Wales, ask building control (opens in a new tab) whether the planned work needs building regulations approval. For work in Scotland, ask building standards (opens in a new tab) about the approval question. For work in Northern Ireland, check the planned work against the Northern Ireland building regulations guidance (opens in a new tab). Write down who handles applications, inspections and close-out records before sending the quote.

Check responsibility for gas work

Confirm the registered person before quoting gas work. Check the current registration requirements with the Gas Safe Register (opens in a new tab).

Name the tradesperson or subcontractor responsible for that part of the job. If the responsibility is not settled, the scope is not ready to price.

Exclude conditions you cannot inspect

Existing pipework, wiring and flue details may remain hidden until the old equipment comes out. Describe the unknown condition. State what the quote assumes and what it excludes.

Do not hide a guessed allowance inside markup. If concealed work appears, use the variation process described in the quote.

Build the job cost in separate buckets

Keep labour, appliances, parts, subcontractors and other direct costs separate. A single materials line makes missing fittings hard to find.

Direct costs belong to the job. If the job did not happen, you would not incur that specific cost. Use that test whenever an item could sit in more than one bucket.

Estimate loaded labour by task

Break the work into tasks. Survey follow-up, collection, loading, protection, isolation, removal, preparation, installation, connections, controls, testing, commissioning, cleaning and handover can all consume labour.

Estimate the time for each task. Then apply your loaded labour cost:

Loaded labour cost = estimated job hours × loaded labour cost per productive hour

Add the wages, employer costs and paid non-tool time that your accounting policy puts into labour. Paid holiday, training, meetings and other included time belong in the numerator. Divide that total by the productive job hours you expect from the same period:

Loaded labour cost per productive hour = total included labour cost ÷ expected productive job hours

Use your own figures for both sides. Productive job hours are the hours available for chargeable site work after the included non-tool time has been removed. If you divide by all paid hours instead, the job-hour cost will be too low.

Give on-tools owner time a labour cost and include its productive hours on the same basis. Owner time spent running the office may sit in overhead. Profit must not stand in for unpaid owner labour.

Use the current appliance cost

Match the supplier cost to the appliance in the scope. Check required accessories and delivery terms at the same time.

Record the date or validity of the supplier figure. Recheck it before ordering if the quote has been open or the specification has changed. Do not expect markup to absorb an avoidable purchasing error.

Count parts and consumables

Count the fittings before pricing them. Include the items needed to connect, seal, support, protect, test and label the installation.

Use a take-off, standard parts list or van issue record. Small parts still need a quantity and a cost. A parts percentage cannot repair a missing quantity.

For stocked parts, use the cost shown by your accounts and stock records. For special-order parts, use the supplier invoice or quote attached to that job.

Keep subcontractors and direct charges visible

Enter each subcontractor quote as its own cost. Compare their inclusions and exclusions with your customer scope. Check access, materials, waste, testing and handover rather than accepting a bottom-line figure.

Also record delivery, lifting equipment, parking, disposal and job-specific protection where they are direct costs. If a cost can be traced to the job, keep it in the job.

Set a heating engineer markup policy by cost bucket

Your heating engineer markup policy should state what cost sits in each bucket, which markup applies and what that markup is meant to recover. Build it from your own accounts. Do not copy another business.

Different buckets create different work. Labour carries employment and supervision costs. Appliances create ordering and handling work. Stocked parts need purchasing and storage. Subcontractors create scheduling and checking work.

Use one markup rate when completed jobs show a stable cost mix and the same recovery basis fits each bucket. Split the rates only when your records show materially different handling or recovery needs between labour, appliances, parts, subcontractors and other direct costs. Price the scheduling and checks promised in the quote.

Calculate the overhead and profit the rates must recover

Pull the overhead total from your own accounts for the period you use to plan prices. Call that amount O. Include only costs not already assigned to jobs or loaded labour.

Choose the profit amount the business needs from the same period and call it P. This is a target from your own figures, not a copied percentage.

Next, choose the costs that will carry the recovery. Call their expected total B. If every direct-cost bucket carries one rate, use:

Required combined markup rate = (O + P) ÷ B

B = expected loaded labour + appliances + parts + subcontractors + other direct costs

Apply that rate to the matching cost base on each quote. Across the planned work, the markup amounts must add up to O + P. If the work sold or the cost mix changes, test the result again.

For split rates, call the expected bucket costs L for loaded labour, A for appliances, M for parts, S for subcontractors and D for other direct costs. Give each bucket its chosen rate:

(L × labour rate) + (A × appliance rate) + (M × parts rate) + (S × subcontractor rate) + (D × direct-cost rate) = O + P

Use your own figures on both sides. If the left side falls short, the split rates do not recover the required amount. If it exceeds the target, check whether you counted an overhead cost twice before changing the rates.

Recover each overhead cost once

Overhead supports several jobs. Office work, general insurance, accountancy, communications and business premises may sit here. Vehicle costs can be overhead or direct job costs depending on how your accounts record them.

Use one rule: recover every cost once. Mark each line in the accounts as loaded labour, a direct job cost or overhead. If office support sits in overhead, do not add it to loaded labour. If a van cost is booked to the job, remove that same cost from the overhead total used in the formula.

Use a heating-work pricing formula that shows every step

The same arithmetic is sometimes called an HVAC pricing formula. For UK heating work, keep the labels tied to the quote:

Markup amount for a bucket = bucket cost × rate calculated for that bucket

Selling price for a bucket = bucket cost + markup amount

Quoted subtotal = priced labour + priced appliances + priced parts + priced subcontractors + other priced direct costs

The rate must trace back to the O + P calculation. Keep optional work, allowances and VAT treatment visible rather than burying them inside a percentage.

Your own loaded labour, supplier invoices, subcontract quotes, overhead and profit target supply the inputs. Use the job pricing guide when setting up the wider cost-to-price method.

Before sending the quote, compare the price with the site record. Check that the appliance matches the specification, labour covers every task and supplier records support the costs. Then turn the internal detail into a clean customer quote with clear scope and exclusions.

Keep VAT and CIS outside the markup decision

VAT and CIS are not hidden markup buckets. Keep the job price, tax record and subcontractor payment record separate.

Show the VAT treatment clearly

Build the job price from costs, markup and overhead recovery first. Record that price before VAT, then record the VAT treatment and customer invoice separately.

Check the transaction against the official HMRC VAT guidance (opens in a new tab). Keep the job price, VAT treatment, VAT amount where required and payment record as separate fields. Do not treat VAT collected as profit or use the VAT line to repair an underpriced job.

Use the same presentation on the accepted quote and invoice. A difference caused by a variation should be traceable to the approved work, not lost inside the tax line.

Keep CIS records separate

Where subcontract work raises a CIS question, check it against the official HMRC Construction Industry Scheme guidance (opens in a new tab). Do this before processing the subcontractor payment.

Keep the subcontractor cost, CIS status or deduction record, subcontractor invoice and payment record separate from the customer's job price. Those records explain what was paid and recorded. They do not replace the job-cost calculation.

Keep markup versus margin straight

Markup versus margin is a denominator problem.

Markup = profit ÷ cost

Margin = profit ÷ selling price

Markup measures the amount added relative to cost. Margin measures what remains relative to the selling price. A heating engineer markup policy can use markup to build prices, but finished-job reviews often use margin to judge the result.

Oak Street worked example

The house example is an electrical job used only to show the arithmetic. All figures are sample currency units, not a heating rate card.

R. Chen's quote Q-1847 for 14 Oak Street covered a bathroom exhaust fan and four LED downlights. The original quote was 1,105. Job cost was 850, leaving 255 measured against that quote.

1,105 − 850 = 255 profit

Markup = 255 ÷ 850 = 30%

Margin = 255 ÷ 1,105 ≈ 23%

The markup is 30%. The margin is about 23%. Keep those labels straight when reviewing your own jobs. You can check the arithmetic with the profit margin calculator.

Put hidden work through a variation

When concealed pipework, wiring or flue conditions change the accepted scope, stop. Record the condition and the extra work needed. Price the added labour, parts, subcontractors and direct costs under the same policy as the original quote.

The variation should state:

  • The condition found
  • The original exclusion or scope boundary
  • The added work
  • The added price
  • Any timing effect
  • The customer's approval

Get approval before continuing, apart from necessary make-safe work already covered by the agreement. Do not finish the extra work and argue about its price on the invoice.

On the Oak Street job, the ceiling was lined and the quote excluded chasing. Extra cable and chasing were approved as a 160 variation. Invoice INV-1847 was therefore 1,265.

Do not calculate profit from that invoice. The costs of the variation are not given, so combining the 1,265 invoice with the original 850 job cost would produce a false result. Keep the approved variation with the final billing record, using the heating engineer invoice process when you bill the work.

Test the policy before the next quote

A price policy is only useful if the completed job can test it. Compare estimated and actual labour, appliances, parts, subcontractors and direct costs in the same buckets.

Capture collection time, small fittings and return visits. If they never reach the job-cost record, the quoted markup will look stronger than the finished result. Use the heating engineer job-costing process to keep that cost tracking tied to the job.

When a bucket misses its estimate, find the cause. A missing valve quantity is a take-off problem. Extra commissioning time may be a labour assumption. A supplier substitution may require a purchasing check. Do not change every markup because one input failed.

Compare the completed result with your heating engineer markup calculation. Check whether the markup amounts across the work covered the overhead and profit target from your own figures. Change the failed cost, rate or sales assumption before preparing another quote.

Take one completed heating job and rebuild its cost buckets. Mark where every overhead item was recovered, change one written pricing assumption and put that rule into the next quote with the quoting tools.

Put the next job in one place

Yes Foreman connects quotes, schedules, crews, timesheets and invoices for small field-service teams.