AWRA OpsHub Search

Four Costs, and Payroll Is Not One of Them

A job's actual cost here is four things added together. Three of them are measured. The fourth is hours multiplied by one rate you set for the whole project — and the wages you actually paid never enter the figure at all.

Projects & Job Costing AWRA OpsHub Team 12 min read

Job costing fails in a specific and consistent way: not by producing a wrong number, but by producing a number made of parts of different quality and presenting them as one thing.

The four parts

Material issued from stock

Quantity issued multiplied by the unit cost stamped at the moment of issue. Measured, and the strongest component in the set.

Built in

Purchases against the job

What was ordered for it. Measured against real orders.

Built in

Booked expenses

Attributed expenses, with rejected claims now correctly excluded after a defect that inflated every job.

Built in

Labour

Hours logged multiplied by one cost rate held on the project. An estimate, and it cannot be varied per person or per entry.

Not built

Actual payroll

Never reaches the job. A payslip carries no project, so what you actually paid the people on it is not in the number.

Not built

Three measurements and an estimate, added together and labelled actual cost.

The best part, and why it is the best

The stock component deserves its reputation. When material is issued to a job, the unit cost is stamped at the moment of issue rather than looked up later.

The reasoning behind that is the single best design decision in this module. Valuing an old issue at today's weighted average would let a closed job's material cost move whenever an unrelated purchase shifted the average — so a completed job would cost a different amount every time you looked at it. A job has to cost the same twice.

It goes further: legacy issues that carry no stamped cost are skipped rather than guessed. That makes the figure incomplete on old data and honest on all of it, which is the right way round.

The weakest part, and what it costs

Labour is hours multiplied by a single rate that lives on the project. The rate cannot be set per time entry — the code takes it from the project and never from what anybody submitted — and it cannot vary by person.

So a project staffed by a senior engineer and two apprentices costs exactly the same per hour for all three. On a labour-intensive job that is not a rounding difference; it is the largest number in the calculation being a flat average.

And separately, the wages actually paid never reach the job at all, because a payslip carries no project. There is no path by which real payroll becomes job cost, so the estimate is not a stand-in for a figure that arrives later. It is the only figure there will ever be.

A job with mixed labour, at illustrative rates

Senior engineer, 40 hours Costed at project rate
Two apprentices, 160 hours Costed at project rate
Material issued Costed at issue
Purchases and expenses As recorded
Payroll actually paid Not included
Direction of the labour error Unknown per job

Illustrative. The errors do not cancel: they depend on the staffing mix, so the labour figure is wrong by a different amount and often a different sign on every job.

What to do with the number you have

  1. Set the project cost rate to your blended rate, deliberately

    Not your average charge-out, not your senior rate. A weighted average of who will actually be on this job. It is the one lever and most people never touch it.

  2. Compare the three measured components against budget with confidence

    Material, purchases and expenses are genuinely measured. Overruns in those are real and actionable, and they are where most cost overruns actually live.

  3. Treat the labour line as a plan, not a result

    It tells you how many hours went in, priced at what you assumed. That is a useful number and it is not a cost.

  4. Reconcile to payroll once a quarter, outside the system

    Total logged hours against total paid hours for the same people. If they diverge, the job costing is drifting from reality and nothing in the product will tell you.

Job cost, precisely

What AWRA OpsHub does today

  • Actual cost assembled from four components: logged labour, purchases, booked expenses and material issued from stock.
  • Material issued costed at the unit cost stamped at the moment of issue, so a closed job costs the same twice.
  • Legacy issues with no stamped cost skipped rather than guessed.
  • Rejected expenses excluded from the figure, after a defect in which they inflated every job's cost and margin.
  • A budget consumption percentage, and an uninvoiced billable value alongside the cost.

What it does not do

  • A cost rate per time entry or per person. Labour uses one project-level rate that no request path can override.
  • Any allocation of actual payroll to a job — a payslip carries no project.
  • Any distinction between the cost of a senior and a junior on the same job.
  • Cost roll-up from subtasks to a parent task.
  • Any indication on screen that one of the four components is an estimate.

Not ours, by choice

  • The stock component is genuinely well built and the reasoning behind stamping cost at issue is one we would point at as a model. The labour component is the weakest thing in the module and we would rather say so than let a total imply otherwise.
  • The bill rate can be set per entry while the cost rate cannot. That asymmetry is deliberate on the revenue side and accidental on the cost side, and it is documented separately.
  • Nothing here is South African. Southern Africa is here because mining services, engineering and contracting are labour-mixed industries, which is exactly where a single blended rate distorts most.

What we would build

Two, in order, and the first is small

The composition is right; one of the four inputs is weak. These fix it in ascending order of cost.

A cost rate per person

A rate on the employee, used when a time entry is created, falling back to the project rate. The bill rate already works per entry, so the shape exists — this is applying it to the other side, and it removes the single largest distortion in the figure.

Payroll cost attributable to a job

A project on the payslip, so labour cost can be a share of what was actually paid rather than hours times a rate. This is the larger piece and it is what turns job profitability from indicative into real.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. If labour is the majority of your job cost, the first item is the one to raise.

Talk to us about job costing

Four questions about a job cost figure

What is this number made of?

A good answer sounds like

A named list of components.

What it actually means

The first question, and it separates a total from a measurement. Ours is four things.

Which components are measured and which estimated?

A good answer sounds like

They distinguish.

What it actually means

A vendor who does not separate them is presenting an estimate as a result.

Is material valued at issue or at today's cost?

A good answer sounds like

At issue.

What it actually means

Today's cost means a closed job's cost changes when an unrelated purchase moves the average.

Does actual payroll reach the job?

A good answer sounds like

Rarely yes.

What it actually means

Almost no product in this bracket does it. Knowing that stops you treating job margin as audited.

Our position

Set the project cost rate to a real blended rate for the people who will actually work on the job, and read the material, purchase and expense components as the measurements they are. Treat job margin as a management indicator rather than a financial result — because one of its four inputs is an assumption you made at the start, and nothing in the product will ever correct it.

Ask what the total is made of

Four numbers added together, three of them measured. Knowing which is which changes what you do about an overrun.

Talk about project costing

Frequently asked questions

Can I set a different cost rate for one person?

No. The cost rate comes from the project on every path, web and API alike, and no request field sets it. The bill rate, by contrast, can be set per entry — which is the asymmetry worth knowing.

Why are old stock issues excluded?

Because they carry no cost stamped at issue, and the alternative is guessing one from today's average — which would make historical job costs move over time. Skipping them makes the figure incomplete rather than wrong, which is the better failure.

Does the budget stop me spending?

No — budget consumption is a percentage you can see, and an overrun warns rather than refuses. There is no hard stop anywhere in the budgeting here, and that is stated rather than implied.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center