6 min read

Project profitability: bill by person and see what each project earns

A spreadsheet method: each person's hours at their billing rate and at their cost rate, then the difference. With a worked project, a fixed-fee comparison and the mistake that flatters most margins.

Last updated November 6, 2026

To see what a project earns, multiply each person's hours by their billing rate to get revenue, multiply their hours by their cost rate to get cost, and subtract. Doing it person by person shows where the margin comes from. You need a time record by person and project, plus two rates for each person.

This is a method you run yourself in a spreadsheet. ERPFlow doesn't calculate project profitability, and the last section says exactly what it does and doesn't do.

What do you need to calculate project profitability by person?

To calculate project profitability by person you need four things, and most firms already have three of them.

Input Where it comes from Common problem
Hours by person, per project Your time log Hours logged per client only, with no project code
Billing rate per person Your rate card or contract A blended rate on the contract, with no role rates behind it
Cost rate per person You work it out, see below Salary divided by paid hours, which is too low
Other project costs you can't recharge Supplier invoices and receipts Kept by supplier or category, with no job reference

Add a job reference to each supplier invoice and receipt as it arrives. Nothing can recover it months later.

How do you work out a person's cost rate?

A person's cost rate is their full annual cost divided by the hours they can realistically bill in a year. Full annual cost means pay, employer taxes and benefits, plus a share of overheads such as rent, software and non-billable staff.

Here's an invented example: €58,000 of pay and employer taxes plus €14,000 of overheads is €72,000. Expecting 1,200 billable hours, the cost rate is €60 an hour.

The tempting shortcut is to divide by paid hours instead. On 1,950 paid hours the same person appears to cost €36.92 an hour, and every project they touch looks far better than it is, because nobody is paying for the 750 hours they don't bill. The guide to calculating a charge-out rate covers the same build-up from the pricing side.

A worked example: one project, three people

Here's an invented example: a 190-hour project billed by the hour, with one line per person on the invoice.

Person Hours Billing rate Billed Cost rate Cost Margin Margin %
Senior consultant 40 €150 €6,000 €75 €3,000 €3,000 50.0%
Consultant 90 €105 €9,450 €55 €4,950 €4,500 47.6%
Analyst 60 €70 €4,200 €42 €2,520 €1,680 40.0%
Total 190 €19,650 €10,470 €9,180 46.7%

Now take off other costs you couldn't recharge, say €1,200 of subcontracted data work. The project's profit is €7,980, which is 40.6% of what was billed.

How does the sum change on a fixed fee?

On a fixed fee, the revenue is the agreed price rather than hours times rate, so you compare the fee with what the same hours would have billed. Suppose that project had been sold at a fixed €16,000. Standard value was €19,650, so the fee recovers 81.4% of it. Profit is €16,000 less €10,470 less €1,200, which is €4,330, or 27.1% of the fee.

To see each person's share, multiply their billed value by 81.4%. Their cost doesn't change, so you can see whose time the fee didn't cover.

Does moving work to a cheaper person improve project margin?

Moving work to a cheaper person improves a fixed-fee project's margin and can hurt an hourly one's. Take the example above and move 20 hours from the senior consultant to the consultant.

Revenue changes by Cost changes by Margin changes by
Billed by the hour −€900 (20 × €45) −€400 (20 × €20) −€500
Fixed fee €0 −€400 +€400

On an hourly job the senior's hour earns €75 of margin and the consultant's earns €50, so delegating costs you money, assuming each can do the work equally fast. On a fixed fee, the client pays the same whoever does it, so the cheaper person wins. That's the most useful thing a per-person table tells you, and a project-level total will never show it.

How do you bill by person on an invoice?

To bill by person, give each role its own line with its hours and rate, so the client can check the sum.

Senior consultant, workshops and steering report, 1 to 30 April: 40 hours at €150.00

Role names usually serve better than individuals' names, for the reason in the FAQ. If the client wants a single rate across the team, you can quote a blended hourly rate and keep this table internally. Either way, comparing budgeted hours with actual hours during the project tells you about a problem while you can still act on it.

The mistakes that flatter project margins

  • Counting only billed hours in the cost. Written-down hours still cost you. Use all logged hours for cost and billed hours for revenue.
  • Using an old cost rate. Rates drift after a pay rise. Recalculate them at least once a year.
  • Forgetting unrecharged costs. Subcontractors and travel you absorbed belong in the sum.
  • Treating margin as profit. Project margins can look fine while the firm loses money on the hours nobody billed. The FAQ has the sum.

Working out project profitability alongside ERPFlow

ERPFlow doesn't calculate project profitability. Projects have no rates, budgets or costing, it has no per-person reports, and expenses don't link to customers or jobs, so all the sums above stay in your spreadsheet. The hours by person have to come from elsewhere too: ERPFlow doesn't have a timer or timesheets today. Time tracking, including converting tracked time into invoices, is coming soon, but that covers logging and billing time, and costing and profitability aren't part of it.

ERPFlow can hold some of the figures you'd read into that spreadsheet:

  • Billing by role: one service per role, with the unit set to hours and the hourly price. Each becomes a line on the invoice, with the quantity typed from your log.
  • Pay figures: a staff record's Salary section holds the hourly rate and monthly hours, as gross pay plus employer taxes, for roles allowed to see salaries. It's the first part of a cost rate. ERPFlow doesn't add the overheads or multiply it by hours on a project.
  • Hours on a project: project cards hold typed time spent, totalled per project and per customer. One card holds one figure, shared by everyone assigned to it. The CSV export includes each card's title and time spent in minutes but not its assignees, so a split by person needs a separate card per person with the name in the title, added up in your spreadsheet.
  • Whole-business profit: the dashboard's Profitability card covers the entire company, not any one project.

FAQ

Project profitability: common questions

Didn't find your answer here? We're happy to help.

Contact us
Should project profitability include non-billable hours?
Yes. Every hour someone spends on a project costs the firm money, whether or not it reaches the invoice. Project profitability should count all logged hours in the cost and only billed hours in the revenue, otherwise written-down work disappears from the sum and the margin looks better than it was.
Is project margin the same as company profit?
No. Project margin compares a project's revenue with the cost of the hours spent on it, while company profit also has to absorb every hour nobody billed. If cost rates assume 1,200 billable hours a year and people bill 1,000, every project can look healthy while the company loses money.
Should an invoice name each person or only their role?
Usually the role is enough. An invoice line such as Senior consultant, 40 hours at €150 lets the client check the sum, and it stays accurate if someone is replaced mid-project. Name individuals only if the contract promises particular people or the client asks to see them.
Does ERPFlow show profit per project or per person?
No. ERPFlow doesn't calculate project profitability. Projects have no rates, budgets or costing, time on a card isn't split by person, and expenses don't link to customers or jobs. A business that wants this figure works it out in a spreadsheet.

Get started

Start free. Scale as you grow.

Run your whole business in one place — and pay for it like a founder, not an enterprise.

  • Start free
  • Setup in minutes
  • No trial clock