2 November 2026

Project Profitability Report: Seeing Which Jobs Actually Make Money

A project profitability report shows, per job, what was quoted, what was invoiced, what it cost in time and materials, and the margin, with the same view rolled up by customer, by project type and by project manager. Xero Projects, QuickBooks Online Projects, Sage 200 Project Accounting and Business Central Projects all hold the pieces. The report is hard because the cost side is usually in a different system from the revenue side, and because time isn't booked to jobs consistently. Here's what to show, where each piece lives, and how to build one that reconciles.

A project profitability report shows, for each job or project, the value quoted, the value invoiced to date, the costs incurred (labour at a cost rate, materials, subcontractors, expenses), the margin in pounds and as a percentage, and the same figures rolled up by customer, by project type and by project manager, with a comparison of estimated versus actual on both cost and margin. Xero Projects, QuickBooks Online Projects, Sage 200 Project Accounting and Business Central Projects (formerly Jobs) all hold the pieces, and each has its own report. The report is hard for two reasons that have nothing to do with the software: the cost side (time, materials) is often in a different system from the revenue side (invoices), and time isn't booked to jobs consistently, so labour cost is wrong before anyone adds it up. Fix the time booking first; the report is the easy part.

What should a project profitability report show?

Per project:

  • Quoted or estimated value, and the estimated cost and margin at the time of quoting. Without this, you can't tell whether a project made less than it should have.
  • Invoiced to date and, if you recognise revenue differently from invoicing, revenue recognised to date.
  • Costs to date, split: labour (hours × cost rate, not charge rate), materials and purchases, subcontractors, expenses. Each from wherever it's recorded.
  • Margin, in pounds and percent, actual and estimated, with the variance.
  • Percent complete and cost to complete, if the business tracks it, so an open project's forecast margin is visible before the last invoice.
  • Work in progress and unbilled: hours or costs booked but not yet invoiced. This is where cash gets stuck.

Rolled up: by customer (which customers' projects are profitable), by project type or service line, by project manager, by month started. The roll-ups are where the decisions are; the per-project view is where the explanations are.

Where do the pieces live in each system?

System Project feature What it holds Plan or module needed Where time comes from
Xero Xero Projects Estimates, time entries, expenses, invoices per project, profitability view Ultimate only (10 users); Ignite, Grow and Comprehensive don't include Projects Entered in Xero Projects or via integrated timesheet apps
QuickBooks Online Projects Income, costs, time, expenses per project; project profitability report Plus or Advanced plans QuickBooks Time or entered manually
Sage 50 Accounts Project costing (Professional) Costs and revenue by project with cost codes Sage 50 Accounts Professional Manual or imported
Sage 200 Project Accounting module Budgets, costs, revenue, WIP, billing by project and cost item Project Accounting module Timesheets in Sage 200 or integrated
Business Central Projects (formerly Jobs) Job tasks, planning lines, budgets vs actuals, WIP, usage and billing Included in Essentials and Premium Time sheets in Business Central or integrated

Source: each vendor's product documentation and plan pages, read 21 September 2026. Plan inclusions change; check yours.

The row that trips people up most is Xero: Projects is only on the Ultimate plan, so a business on Grow or Comprehensive doesn't have it. Check before assuming.

Why is project profitability so often wrong?

Time isn't booked, or is booked late, or is booked to the wrong job. Labour is usually the biggest cost on a services project, and it's the one that depends on people filling in a timesheet. If half the team books time on Friday from memory, the labour cost on every project is an estimate. No report fixes that; a weekly timesheet review does.

Cost rate versus charge rate. Labour cost should be what the person costs the business per hour (salary plus on-costs divided by available hours), not what you charge for them. Using the charge rate makes every project look loss-making; using zero makes every project look wonderful. Set a cost rate per person or per grade and write it down.

Costs land in the accounts without a project code. A supplier invoice for materials posted to cost of sales with no project reference is a cost the project never sees. The fix is a rule: no project-related purchase is posted without a project code.

Revenue and cost are in different systems. Time in a timesheet app, materials in the accounts, invoices in the accounts, estimates in a quoting tool. The project's true picture needs all four joined on the project ID, and nobody's done the join.

The estimate isn't kept. The original quote gets overwritten by change orders, so actual can't be compared with what was promised.

How do you build one that reconciles?

  • One project ID, used everywhere. In the accounts, the timesheet system, the quoting tool. If they differ, a mapping table is the first job.
  • Time at the entry grain: person, project, date, hours, with a cost rate table by person and effective date, so labour cost is hours × the rate that applied on that date.
  • Invoices and credit notes from the accounts, with the project reference, at line level.
  • Purchases and expenses from the accounts, with the project reference.
  • Estimates as their own table, versioned: original, plus each change order.
  • A calendar, and measures for invoiced, cost by type, margin, estimated margin, variance, WIP and unbilled.
  • A reconciliation page: total invoiced in the model against total sales for the same period in the accounts; total costs in the model against the cost of sales accounts. If the model's project costs don't add up to the ledger's cost of sales, some cost isn't coded to a project, and the page shows how much.

If everything's in one system (Xero Projects, QuickBooks Projects, Sage 200 Project Accounting or Business Central Projects with its own time sheets), that's a single-source build and it's what the First Report is for: one system, one report answering "which projects make money?", the headline figure reconciled back to source to the penny, £1,950 fixed, ten working days (see the First Report). Time in a separate app is a second source and a Reporting Sprint. Power BI Pro is £10.80 per user per month on Microsoft's UK page as of September 2026, for each viewer.

Common questions

What is a project profitability report?

A report showing, per project, the quoted value, invoiced to date, costs to date by type (labour, materials, subcontract, expenses), margin in pounds and percent, estimated versus actual, and work in progress, with roll-ups by customer, project type and project manager.

Can QuickBooks Online do project profitability?

Yes, on the Plus and Advanced plans. The Projects feature tracks income, costs, time and expenses per project and includes a project profitability report. Labour cost depends on time being tracked (QuickBooks Time or manual entry) with hourly cost rates set.

Does Xero have job costing?

Xero Projects covers estimates, time, expenses and invoicing per project with a profitability view. It's included on the Ultimate plan (10 users, £5 a month for each extra user) as of October 2026, and not on Ignite, Grow or Comprehensive.

Why does my project profitability look wrong?

Most often: time not booked to projects, labour costed at the charge rate instead of the cost rate, purchases posted without a project code, or estimates overwritten so there's nothing to compare against. Check those four before blaming the report.

What's the difference between job costing and project accounting?

Job costing tracks the costs of a specific job against its revenue. Project accounting adds budgets, WIP, revenue recognition and billing schedules over the project's life. Sage 200 and Business Central do the second; Xero and QuickBooks do the first well.

How do I calculate labour cost for a project?

Hours booked × the person's cost rate, where cost rate is salary plus employer on-costs divided by available (not billable) hours for the year. Keep a rate table by person or grade with effective dates, so historic projects use the rate that applied then.

Can Power BI join our timesheet app to the accounts for this?

Yes, if both systems hold the same project ID (or a mapping exists). Time from the timesheet app, invoices and purchases from the accounts, estimates from wherever they live, joined on project and date. That's a two-source build.

Start with twenty minutes.

Tell me what's eating your week. I'll tell you whether it's a report, an automation, some AI advice, or nothing you need me for.