Skip to content

A Project's Margin Looks Wrong

If a project’s margin looks too high, too low, or barely moves when you know work is happening, it’s usually because one of the four figures counts something different from what you’d assume. Each one is explained below.

Margin is simply Invoiced minus Total Cost, where total cost is bills plus labor. So anything that quietly changes one of those three changes your margin.

Invoiced is what you billed, not what you collected

Section titled “Invoiced is what you billed, not what you collected”

Invoiced counts every invoice you’ve sent on the project — drafts and voided invoices are left out. A job that has paid in full and a job that hasn’t paid a penny show the same number here. To see what has actually arrived, look at the payments on each invoice.

Two things surprise people:

  • Credits reduce it. A credit memo for the project comes off Invoiced in full, whatever its reason — a discount is revenue you won’t earn. A credit issued to the client as a whole comes off only for the part applied to this project’s invoices.
  • Retainage reduces it. An invoice’s total is its subtotal, minus retainage, plus tax. Money you agreed to hold back is money not yet billed, so it isn’t in Invoiced — and margin is lower until it’s released.

A bill with no project never reaches any project

Section titled “A bill with no project never reaches any project”

This is the most common cause of a margin that looks too good.

Bills are only counted against a project if that project is set on the bill. Leaving the project blank makes the bill firm overhead — it’s still recorded, still paid, and still shows in your Bills list, but it will never appear in any project’s cost, ever.

That’s correct for rent, software, and insurance. It is not correct for a consultant’s fee on a job. If a project’s cost looks impossibly low, open your Bills list and look for ones with no project set.

Only approved bills count — a bill still sitting at Pending isn’t cost yet, and voided bills never are. Vendor credits come off bill cost the same way credit memos come off Invoiced.

Labor is logged time priced at each person’s current rate

Section titled “Labor is logged time priced at each person’s current rate”

Labor is every time entry on the project’s tasks, multiplied by that person’s hourly rate. This is the number that moves without anyone touching the project — every timesheet entry anyone files changes it.

Three things to know:

  • Someone with no compensation record costs nothing. If a team member has never had an hourly rate entered, their logged hours are priced at zero and add nothing to labor cost. This is the usual reason labor looks far too low.
  • It uses the newest rate on their record, not the rate when the work was done. Giving someone a raise re-prices all of their past logged time, on every project, immediately — historical margins will move. This includes a rate you’ve dated in the future: entering next year’s increase changes this year’s costs the moment you save it.
  • Time logged without a task doesn’t count. When you log time from the calendar you can leave the task blank. That’s a valid way to record real work, but with no task there’s no project attached — so it never reaches any project’s labor cost.

Margin is invoiced minus cost, so before your first invoice goes out any cost at all puts the project in the red. That’s expected, not a problem — it corrects itself when you bill.

The margin percentage is left blank until something has been invoiced, because a percentage of zero has no meaning.

  1. Has a credit memo been issued or applied to this project?
  2. Are there bills with no project set that belong to this job?
  3. Do the people logging time have an hourly rate on their record?
  4. Has anyone been given a raise recently, re-pricing past time?
  5. Is time being logged against tasks, rather than as standalone calendar entries?