Purchases

Job Profitability

Compare what you expected to make on a job when you priced it with what actually happened. Income, costs by category, labour and margin, all ex GST.

Updated 26/10/2026Cooledge Support Team

Job Profitability

Know your profit on every job, before and after you do the work.

  • See the estimate you priced next to what actually happened, line by line
  • Costs split into units and materials, subcontractors, other costs and labour
  • Labour comes straight from finished timesheets at each person's cost rate
  • Energy rebates from a provider count as income, so the margin is the real one
  • Check the estimated profit on a quote before you send it
  • See every job side by side in the Job Profitability Report
  • Owners and admins only. Every figure is ex GST

The Profitability card on each job puts two pictures side by side. The Estimate is what you expected when you priced the quote. The Actual is what really happened: what you invoiced, the bills and expenses on the job, the hours on timesheets and any rebate the provider paid you. The Difference column shows where the job beat or missed the estimate. Every figure is ex GST.

What You Need

  • Owner or admin role. Members and restricted members never see profitability, on the portal or the mobile app
  • Quotes accepted after this update. Quotes accepted before this update on 21 October 2026 have no estimate (see No estimate)
  • Costs on your price list and catalogue: unit prices, installation materials and a Your cost (inc GST) on each add-on. Itemised and trade quotes use the cost on each line
  • Labour cost rates for your team (see Set your labour cost rates). Until you set one, labour is costed at $90 an hour
  • Bills, expenses and timesheets on the job for the Actual column to fill in

Job Profitability is on every plan: Starter, Growth and Scale.

Where to Find It

In the portal:

  1. Go to Jobs in the sidebar and open a job
  2. Click the Purchases tab
  3. The Profitability card sits at the top of the tab

In the mobile app: open the job. The Profitability section sits on the Job tab, just above Purchases. See On the mobile app.

For all your jobs at once: go to Reports, then Job profitability. It lists every job in a date range with the same figures as its card, the jobs that lost money and why. See Job Profitability Report.

The Profitability card on a job showing Estimate, Actual and Difference columns, Income and Costs rows, the margin and a grey note underneath, with the inc GST tiles below

Reading the Card

The card has three columns: Estimate, Actual and Difference. A figure Cooledge can't know yet shows as a dash, never as $0.00.

Income

RowEstimateActual
Customer priceThe accepted option's price plus the add-ons the customer chose, ex GST. The inc GST figure sits underneathWhat you've invoiced on the job, ex GST. Draft and Void invoices don't count
Rebate from providerThe energy rebate you expect from the provider, with "Passed to customer $X ยท You keep $Y ex GST" underneathRebate invoice lines for the job (once the invoice is sent) plus any rebate you recorded as received

Rebate from provider only shows when the job has an expected or received rebate. See Energy Rebates.

Costs

RowEstimateActual
Units and materialsUnit cost plus installation materials, electrical and add-onsBills and expenses in the Materials category
SubcontractorsThe subcontractor fee on a subcontracted optionBills and expenses in the Subcontractor category
Other costs(none)Bills and expenses in the Other category
Uncategorised(none)Bills and expenses with no category yet, with a link: Set a category on these bills and expenses.
LabourPriced hours at your default labour cost rateFinished timesheets at each person's cost rate

The Labour row shows the hours beside it, for example "5.0 h estimated, 7.5 h on timesheets". Applied supplier credit notes come off the category they belong to. Rows with nothing in them are hidden.

Margin

Margin is your income (customer price plus any rebate from the provider) less every cost, including labour. The percentage in brackets is the margin as a share of that income, for example "(40%)". It's green when positive and red when negative.

Difference

The Difference column always reads the same way: a positive figure is good for you and a negative figure is bad.

  • Income and Margin: actual minus estimate. You invoiced more than expected, so the difference is positive
  • Costs: estimate minus actual. You spent less than expected, so the difference is positive

Difference is never shown against an incomplete or missing estimate.

Where the Estimate Comes From

Cooledge works out the estimate from the quote itself. You don't type anything into the card.

  • When you send a quote, by email or SMS from the portal or the mobile app, Cooledge costs every option at today's costs
  • Each re-send refreshes the estimate at the costs you have on that day
  • Mark as sent does the same for a quote you delivered outside Cooledge
  • When the customer accepts, the estimate for the chosen option is frozen. It never changes after that, even if your costs do
  • Add-ons are costed at acceptance, once Cooledge knows which ones the customer picked
  • Several accepted quotes on one job add up. Each is frozen at its own acceptance and the card shows the total

Labour on the estimate is the hours the quote prices multiplied by your business default labour cost rate. The Actual column uses each person's own rate.

Estimate Incomplete

If Cooledge couldn't find a cost for part of the quote, the estimate cells turn amber, the margin reads Estimate incomplete and an amber note says why.

NoteWhat it meansHow to fix it
Estimate incomplete: the unit has no cost.The unit was picked with no price in your A/C Catalogue. The estimate uses the price saved on the quote when the unit was pickedAdd the unit's price on that system's Units tab. Quotes where you pick the unit after that get its cost. On a quote that isn't accepted yet, pick the unit again with Change Unit (this can change the quote's price, so check it) and re-send
Estimate incomplete: some materials have no cost.One or more installation materials have no cost. Custom grilles are always uncostedAdd the cost on that system's Materials tab
Estimate incomplete: add-ons have no cost.An add-on the customer can pick has no costSet Your cost (inc GST) on the add-on. Add-ons without one show No cost beside the price
Estimate incomplete: the subcontractor fee is missing.The option is subcontracted but has no feeEnter the Subcontractor fee (inc GST) on the option. See Subcontracted Installation
Estimate incomplete: 1 line has no cost.An itemised or trade line has no costSet a cost on the line in the quote editor and save. A cost you add to the price list item counts on lines you add after that
Estimate incomplete: some costs are unknown.Cooledge can't cost this quote. Repair quotes always show thisNothing to fix

Fixing a cost helps the next estimate, not a frozen one. Material and add-on costs are read each time the estimate is taken, so fix them and re-send the quote before the customer accepts. The unit and each itemised line keep the cost saved on the quote, so fix those on the quote itself, as above. Once the quote is accepted, its estimate stays as it was.

No Estimate on Older Quotes

Quotes accepted before this update on 21 October 2026 show:

No estimate. This quote was priced before costs were recorded.

Those quotes never get an estimate. The Actual column still works, so you still see what the job made.

Calculate Estimate

Now and then a quote accepted after this update has no estimate yet. The card then shows a Calculate estimate button. Click it and Cooledge works the estimate out from the accepted quote. You'll see Estimate calculated. when it's done.

Jobs with Phases

On a job with phases, the card on the parent job (phase A) covers the whole job:

  • Totals include all N phases. tells you the figures add up every phase
  • Show per phase opens a breakdown with one row per phase and variation: Customer price, Bills and expenses, Labour and Margin, plus Rebate from provider when there is one
  • On any other phase, the card shows the Actual column for that phase only, with the note The estimate is on the parent job. and an Open parent job link

Notes Under the Card

Grey notes under the card flag things that will change the numbers:

  • "1 timer still running": a timesheet that hasn't been stopped. It isn't costed until it finishes
  • Some hours were costed at the default rate.: timesheets finished before labour cost rates existed were costed at the default rate
  • "Open purchase orders: $380.00 not yet billed.": sent or part-received purchase orders with no bill yet. They're money you've committed, not a cost yet
  • "1 draft expense not counted ($12.00).": draft expenses don't count until they're final. See Tracking Expenses

Set Your Labour Cost Rates

Labour cost rates tell Cooledge what each person costs the business per hour, including wages and on-costs. They're used to measure job profit, never to set prices.

  1. Go to Settings then Manage Team
  2. Scroll below the team table to the Labour cost rates card
  3. Enter a Default rate per hour. Anyone without their own rate uses it and the estimate always uses it
  4. Enter a rate for anyone who costs more or less than the default. Leave a person blank to use the default
  5. Tick Paid by the job for any contractor who invoices you a fixed price (see Paid by the job)
  6. Click Save rates

The Labour cost rates card in Manage Team with a default rate, a rate for each team member and Paid by the job ticked for one contractor, whose rate reads No hourly cost

Good to know:

  • Until you set a default, labour is costed at $90 an hour
  • A timesheet is costed when it finishes, at the rate in force at that moment. Changing a rate later never rewrites past timesheets. Only Paid by the job can change past entries, when you choose Apply to past entries
  • Only owners and admins see these rates. They're not on the mobile app
  • Team members see their own hours in Timesheets, never a cost

Some contractors clock in and out on the app but invoice you a fixed price for the job. Their bill already carries the cost, so counting their hours as labour as well would cost the job twice. A line at the top of the card says so: Paid by the job: for contractors who invoice a fixed price.

  1. In Labour cost rates, tick Paid by the job beside that person. Their rate box is greyed out and reads No hourly cost
  2. Click Save rates
  3. If they already have finished timesheet entries, a Paid by the job box asks: Also remove the labour cost from their N finished entries? Click Apply to past entries to take their labour off past jobs too, or Only new entries to leave past jobs as they are

The Paid by the job box asking whether to remove the labour cost from a contractor's finished entries, with Apply to past entries and Only new entries

From then on their timesheet entries still record their hours, but those hours don't count as labour on the job's Profitability card, in the mobile app or in reports. Add their invoice as a bill in the Subcontractor category and that's the job's cost.

Untick Paid by the job to cost their hours again. Cooledge then asks whether to Also cost their N finished entries that have no labour cost, at their current rate?

Existing labour costs never change on their own. They only change when you choose Apply to past entries.

Estimated Profit While You Quote

You don't have to wait for the job. Owners and admins see an Estimated profit block while they build a quote in the portal, so you can check the margin before you send.

In the quote editor, the block sits in the right-hand column under Pricing Summary. It shows Income, Unit cost, Installation materials and electrical (Materials on itemised and trade quotes), Labour (for example "4.0 h ร— $90.00") and Estimated margin, plus Rebate from provider and Subcontracted installation when the option has them. Add-ons are left out until the customer picks them (Add-ons the customer picks are costed at acceptance). On itemised and trade quotes, save to see the cost of new lines.

The block's caption reads Frozen when the quote is sent. In practice Cooledge takes the estimate each time you send the quote, so a re-send refreshes it at that day's costs. It's locked for good once the customer accepts.

The Estimated profit block in the quote editor's right-hand column, under Pricing Summary

On the quote page, owners and admins see an Estimated profit panel for each option. Its label tells you which estimate you're looking at:

LabelMeaning
Live estimateNot sent yet. A preview at today's costs
Estimated when sent on 20 Oct 2026The estimate taken at the last send
Frozen at acceptanceThe customer accepted. The chosen option is tagged Accepted option

The Estimated profit panel on the quote page showing Frozen at acceptance and the Accepted option tag

The block is in the portal only, not the mobile app quote editor.

Cost Categories

Every bill, expense, purchase order and credit note has a Category: Materials, Subcontractor or Other. That's how the card splits the Actual costs. Anything without one lands in Uncategorised, with an amber badge on the job's Purchases tab.

  • Give each supplier a Default category so their documents start with the right one. See Managing Suppliers
  • A bill raised from a purchase order takes the PO's category and a credit note takes its bill's
  • On the mobile app, a quick expense needs a category before it saves. It saves as a draft, so it counts once it's made final on the portal

More in Tracking Expenses, Supplier Bills and Credit Notes and Purchase Orders.

The Tiles Under the Card

The four tiles below the card (Net Cost, PO Open, Bills and Credit Notes (applied)) are running totals including GST, so they won't match the ex GST card.

Subcontracted Jobs

When a subbie installs, the fee is the estimate's Subcontractors cost and the Labour estimate reads Subcontracted when no work by your own team is left in the estimate (with Includes electrical unticked, the electrical labour stays and shows as hours). Their bill in the Subcontractor category fills the actual. See Subcontracted Installation.

When the Labour estimate reads Subcontracted and no labour is logged on timesheets, the card hides the Labour row, on the portal and in the mobile app. Once finished timesheets add labour hours or cost, the row comes back. Hours from staff paid by the job don't count, so they don't bring it back. If the subbie clocks in on the app too, tick Paid by the job for them so their hours don't count on top of their bill.

The Profitability card on a subcontracted job with a Subcontractors row and Labour showing Subcontracted

On the Mobile App

Owners and admins see a compact Profitability section on the job: Estimated margin, Actual so far and a line for each row with its estimate and actual. Draft expense notes show too. Tap Full breakdown on the portal job page. for the full card.

The Profitability section on a job in the mobile app

Who Can See It

Only owners and admins. Members and restricted members never see the card, the mobile section, the Estimated profit block or anyone's cost rate. They can still add timesheets and expenses to the job. Timesheets count once they're finished and their expenses count once they're made final on the portal. An owner can change someone's role in Settings then Manage Team.

Common Questions

Does it count my labour? Yes. Finished timesheets on the job are costed at each person's labour cost rate, or the default rate if they don't have one. The estimate uses the hours priced on the quote at your default rate.

Are the figures inc or ex GST? The card works in ex GST, all of it. The one inc GST figure on the card is the labelled Customer price under the estimate. Elsewhere on the tab, the four tiles under the card and the expense, bill and credit note totals include GST.

Why is a bill showing as Uncategorised? It has no category. That happens with bills and expenses recorded before categories existed, or from a supplier with no default category. Open it, pick a Category and save. The link Set a category on these bills and expenses. takes you to them.

Why is there no estimate? The quote was accepted before this update on 21 October 2026, so it was priced before costs were recorded. If the quote was accepted after the update, look for the Calculate estimate button.

Why does Difference say -$300.00 on Units and materials? The bills and expenses in the Materials category came to $300 more than the estimate. On a cost row, a negative difference means you spent more than you priced. On Income and Margin, a negative means you made less.

Can members see it? No. Profitability is for owners and admins only, on the portal and the mobile app.

My contractor clocks in on the app and also bills me. Is the job paying for them twice? It was, until you tick Paid by the job for them in Labour cost rates. Their hours then stop counting as labour and their bill is the cost. See Paid by the job.

Can I see profit across all my jobs? Yes. Reports, then Job profitability, lists every job in a date range with totals, groupings and export. See Job Profitability Report.


Related Articles:

Need help with Job Profitability? Email us at support@cooledge.com.au

Was this article helpful?

Let us know if you found this information useful.

Still need help? Contact support