ReferenceReports & analytics

Job costing: actual vs. estimate

Open Reports → JOB Costing Variance in Thermal →

What it's for

Job costing: actual vs. estimate is "Budget vs. actual cost by department, project, and phase." It measures how good your estimating is, which is the number that decides whether growth is profitable or merely busy.

Reach it from Reports → Job costing: actual vs. estimate, at /reports/job-costing-variance.

Tabs

Reports links back to the hub.

Panels and controls

Columns: Department, Project, Phase, Budget, Actual cost, Variance, Variance %, and Source.

  • Variance in dollars and Variance % side by side is deliberate. A $500 overrun on a $1,000 phase is a different problem from $500 on $50,000, and reading one without the other misleads in both directions.
  • Source says where the budget came from, so a variance can be traced to the estimate that set it rather than argued about.
  • A phase with no budget shows no variance. That is not a clean phase — it is an unmeasured one, which is worth fixing on the project record.

Export CSV takes it out; Clear resets the filters.

No phases in scope is the empty state.

What it accepts

FieldFormatRequiredRule
FiltersDepartment, project, date rangeNo"Clear" resets them

The report is a read-out. Budgets are set per phase on the project record.

How to configure it

  • Job costing settings decide how actual cost is built — labour, material, purchase orders, field purchases, subcontractor, and commission.
  • Phase budgets on projects are the estimate side; a project run without phase budgets cannot appear meaningfully here.
  • Departments decide the grouping.

Who can see it

This screen sits behind the Reports area.

Owners, office managers and dispatchers can open it. Technicians cannot. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.

The full role matrix is on Roles & permissions.

On this page