How to Calculate the True Cost of a Job (So You Stop Underpricing)

If you have ever finished a job and thought, “How did we make so little from that?”, this is for you.

Most underpricing is not caused by one big mistake. It is caused by small costs that never get counted properly:

  • time you did not bill for

  • travel and admin

  • tools and subscriptions

  • rework and waste

  • overheads that get spread too thin

If you do not calculate the true cost of a job, you end up guessing. And guessing usually leads to low profit margins.

If you are currently trying to work out why your margin is low, read this first (it helps you prove the real cause, not assume it): https://grifflepop.com/what-causes-low-profit-margin/


What “true cost” actually means

The true cost of a job is not just materials and labour.

It is:

  1. Direct costs (materials, stock, subcontractors, fees)

  2. Labour cost (including the real cost of employing someone, not just their hourly pay)

  3. Overhead share (rent, tools, insurance, subscriptions, admin time)

  4. Hidden extras (travel, waste, rework, small fixes, customer chasing)

If the phrase “business data” already makes you want to close the tab, start with this first. It is a plain-English way to think about the numbers you already have. https://grifflepop.com/business-data-basics/


Step 1: List the job cost buckets

Use the same buckets every time. Consistency beats perfection.

A) Direct costs

  • materials and stock used

  • subcontractors

  • delivery and fuel (if you track it per job)

  • payment processing fees (card fees, platform fees)

  • job-specific software or permits

B) Labour (the part most people underestimate)

  • labour hours spent on the job

  • labour hours spent around the job (calls, quotes, admin, follow-ups)

C) Overheads (the cost of being open)

  • rent, utilities

  • tools and subscriptions

  • insurance, vehicles, phone

  • admin labour

  • marketing baseline costs

If you are unsure what you should be tracking in your business overall, this framework keeps it simple: https://grifflepop.com/what-should-a-small-business-actually-track/


Step 2: Calculate a real hourly labour cost

This is where underpricing usually hides.

If you pay someone £15/hour, their true cost is not £15/hour.

It is their wage plus employer costs and paid time that is not productive.

A simple way to do it (good enough for most businesses)

  1. Start with annual pay

  2. Add estimated employer costs (payroll taxes, pension contributions, benefits, training, uniforms, etc.)

  3. Divide by productive hours (not total hours)

Formula:

True hourly cost = (annual pay + employer costs) ÷ productive hours

What are “productive hours”?

If someone is paid for 37.5 hours/week, you do not get 37.5 billable hours.

You lose time to:

  • holidays

  • sick days

  • meetings

  • travel

  • setup and cleanup

  • admin

A simple starting assumption is that 60 to 75% of paid hours are productive for service businesses. Use your reality if you know it.

Example

  • Annual pay: £30,000

  • Employer costs estimate: £6,000

  • Total: £36,000

  • Productive hours: 1,500/year

True hourly cost = £36,000 ÷ 1,500 = £24/hour

That is before profit.


Step 3: Allocate overheads properly (without making it complicated)

Overheads are real. Ignoring them is how people end up busy and broke.

Simple overhead rate method

  1. Add up monthly overheads

  2. Divide by monthly productive hours (or billable hours)

Overhead per hour = monthly overheads ÷ monthly productive hours

Example

  • Monthly overheads: £4,000

  • Monthly productive hours across the business: 400

Overhead rate = £4,000 ÷ 400 = £10/hour

Now overhead becomes a cost you can include in every job.


Step 4: Build the job cost calculation

Now you can calculate the true cost of a job like this:

True job cost = direct costs + (labour hours × true labour rate) + (labour hours × overhead rate) + job-specific extras

Where “job-specific extras” might include:

  • travel cost

  • waste allowance

  • payment fees

  • a small rework buffer if your work often needs it

Worked example (simple)

A job takes:

  • Materials: £120

  • Labour hours (doing the job): 6

  • Admin and follow-up: 1 hour

  • Total labour hours: 7

Your true labour rate: £24/hour
Your overhead rate: £10/hour

True job cost =
£120 + (7 × £24) + (7 × £10)
= £120 + £168 + £70
= £358

If you quoted £350 because you thought labour was “£15/hour” and overheads were “just part of business”, you were already underpricing.


Step 5: Turn cost into a price (without guessing)

Once you know true cost, pricing becomes maths, not emotion.

How to pick a target profit margin (without guessing)

There is no universal “right” margin. The right margin is the one that covers your overheads, pays you properly, and leaves room for risk.

A simple way to choose a starting point is to work backwards:

  1. Decide what profit you actually want to keep per month (after paying wages and overheads)

  2. Estimate your monthly revenue (or use a recent average)

  3. Profit target % = desired monthly profit ÷ monthly revenue

Example:
If you want to keep £3,000/month and revenue is £20,000/month:
£3,000 ÷ £20,000 = 15% target net profit

That is net profit. Your pricing margin on jobs may need to be higher if you have:

  • lots of rework risk

  • high variation in job time

  • seasonal dips

  • tight capacity

  • customers who pay late

If you do not know where to start, pick a sensible range (for many service businesses this is often somewhere around 10–25% net, depending on overheads and risk), then test it against real jobs. If the number makes you uncompetitive, that does not mean “drop the margin”. It often means the process is too slow, the cost base is too high, or the offer needs changing.

This formula uses profit margin (profit as a percentage of the selling price), not markup.

Price = cost ÷ (1 − target margin)

Example:

  • True cost: £358

  • Target margin: 30%

Price = £358 ÷ 0.70 = £511 (rounded)

If that price feels impossible to charge, that is useful information. It means one of these is true:

  • your customers are not a fit

  • your process is too slow

  • your costs are too high

  • your offer needs changing

  • your target profit margin is higher than the business can realistically support right now

This is exactly why profit margin problems rarely get fixed by “cutting costs”. https://grifflepop.com/how-small-businesses-can-save-money/


The spreadsheet layout that makes this easy

You do not need software to start. A spreadsheet is enough if it is structured properly.

If you want examples of the few spreadsheets many businesses rely on and how to keep them simple: https://grifflepop.com/small-business-spreadsheets/

Create a “Job Costing” sheet with columns like:

  • Job ID

  • Customer

  • Date

  • Service type

  • Materials cost

  • Subcontractor cost

  • Travel cost

  • Labour hours (delivery)

  • Labour hours (admin)

  • Total labour hours

  • True labour rate (your fixed number)

  • Overhead rate (your fixed number)

  • Total cost

  • Price charged

  • Profit (£)

  • Profit margin (%)

  • Notes (rework, issues, surprises)

The point is not to fill every cell perfectly. The point is to make underpricing obvious.


Common pitfalls that ruin job costing

These are the traps that make people think they are doing job costing when they are not.

1) Only counting “on the job” hours

If you ignore quoting, calls, ordering, chasing, and fixing, your costs will always be wrong.

2) Using wage rate instead of true labour rate

This is one of the biggest reasons margins collapse quietly.

3) Not allocating overheads at all

If overheads never get counted, every job looks more profitable than it is.

4) Letting reporting become messy

If you have multiple spreadsheets, duplicated tabs, hidden formulas, and “final_final” versions, costs will never be trusted.

If that sounds familiar, fix the reporting structure first: https://grifflepop.com/fix-reporting-mistakes/

5) Not tracking rework and waste

You do not need a big system. A simple note of rework incidents is enough to prove patterns.

If you want a simple list of KPIs that actually matter for most SMEs, including profit margin and cost control, this is a good baseline: https://grifflepop.com/essential-sme-kpis/


What about tools?

People do search for job costing tools, and they can help. But tools do not fix underpricing on their own.

A tool is useful when:

  • you have consistent inputs (hours, costs, job stages)

  • you use the same process every time

  • you review the results and actually adjust pricing or delivery

If you do not have that yet, start with the spreadsheet method above. Then move to software once your method is stable.

If you want to know when it is time to move beyond spreadsheets into dashboards and automated reporting, these signs help: https://grifflepop.com/need-a-dashboard/


A simple plan for this week

  1. Pick your most common job type

  2. Cost 10 recent jobs properly (even roughly)

  3. Compare true cost vs price charged

  4. Circle what surprised you (time, overhead, rework, materials creep)

  5. Make one change: pricing, process, or what you stop offering

If you cannot explain what caused the gap in one sentence, you have not proved it yet.


Where GrifflePop Analytics can help

Most businesses do not need complex systems. They need a repeatable way to cost jobs, track time and overheads, and stop underpricing quietly.

If you want help setting this up properly (whether that is a clean spreadsheet system or a dashboard that updates automatically), you can see how I work here: https://grifflepop.com/services/


Discover more from GrifflePop Analytics

Subscribe to get the latest posts sent to your email.

Facebook
X
Email
WhatsApp
Picture of Anthony - Founder of GrifflePop Analytics
Anthony - Founder of GrifflePop Analytics

I’ve always been passionate about helping people see the bigger picture

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from GrifflePop Analytics

Subscribe now to keep reading and get access to the full archive.

Continue reading