Job costing

Job costing software that tells you which jobs made money

Budget versus actual on every open job, by cost code, with committed costs counted before the invoice arrives. Read your margin while you can still do something about it.

A P&L cannot tell you which half of the work is carrying the other half

Most contractors know whether the company made money last quarter. Far fewer can say which jobs made it, and that gap is survivable right up until you win more of the work that loses money: revenue climbs and the bank balance does not.

The usual reason is timing. Costs get coded at month-end close, six weeks after the job they belong to finished, which is long past the point where anything could have been done about them.

What you get

What it does

  • Cost codes that fit your trade

    Starter packs per trade you can edit, not a four-hundred-line national list nobody uses. Codes follow how you already talk about the work.

  • Budgets that seed themselves

    From the signed bid, the scheduled crew days at your burdened rate, or your own realised history once there is enough of it. Every line names the basis it came from.

  • Costs captured as they land

    Photograph a delivery ticket, drop in a supplier PDF or paste a screenshot. Documents are read into coded lines a person confirms before anything posts.

  • Committed is tracked separately

    A signed subcontract is money gone even with no invoice yet. A job 40% spent but 95% committed has no headroom, and the two readings never get blended.

  • A ledger you can defend

    A posted cost is frozen, for us too. Corrections are a void with a reason plus a repost, so the numbers never change for reasons nobody can reconstruct.

  • Margin by trade, builder, rep and month

    With comparisons that stay silent until there is enough data to mean something, rather than reporting the average of two jobs.

How it works

Start to finish

  1. 1

    Install the cost codes for your trade

    Pick a starter pack and edit it. If a code never gets used in six months, delete it; if costs keep landing nowhere, add one.

  2. 2

    Seed a budget on the job

    Usually one click, because the bid and the schedule already contain most of it. Every line says whether it came from the bid, the crew days, a target margin or your own history.

  3. 3

    File costs as they arrive

    Supplier invoices, delivery tickets, subcontract commitments and approved crew days all land against the job and a code.

  4. 4

    Work the worklist, not a report

    Jobs over budget, jobs finished with no costs on them, change orders with no cost recorded: each ranked by dollars, worst first.

The design decisions worth knowing about

Job costs are a parallel ledger. Posting a cost never touches the contract price, the invoice or the job stage. Margin is computed when you read it rather than stored, which is what makes it impossible for a costing figure to quietly disagree with what the customer was billed.

Read the rest

Rates are snapshotted at the moment a cost posts. Re-rating a crew next year must not re-price last quarter's jobs, or your trend line is fiction.

Labour here is a cost entry, not a timesheet: a crew day against a burdened day rate. There is an optional time-entry layer if you want approved daily hours, and an approved day supersedes the seeded crew-day estimate rather than stacking on top of it. There is no overtime premium invented without a configured rule: fake precision on payroll is worse than none.

Common questions

No. This is job-level costing: what a specific job cost, by code, while it is still open. Your accounting package stays where it is, and the QuickBooks Online sync keeps customers, items, estimates, invoices and payments aligned between the two.

See it on your own jobs.

A 20-minute walkthrough, on your real pipeline. No slide deck, no pressure.