Job Costing
Job Costing tracks what it actually costs to deliver each project and compares that against what was estimated. Most contracting businesses know their revenue but don't know their true margin per job — labor runs long, materials come in over budget, a subcontractor's invoice arrives two weeks later, and the numbers never get reconciled. Job Costing closes that gap by capturing all three cost types — labor, materials, and subcontractors — in one place and automatically calculating the gross margin per job.
Every cost entry is linked to the project record, meaning the financial picture is always current and visible to anyone with access to that project. Field techs log their hours in the Mobile App via GPS clock-in/clock-out, material costs are entered at purchase or pulled from PO integrations, and subcontractor invoices are logged against the relevant phase. The system doesn't require accounting knowledge to use — it requires field data to be entered accurately.
The module is forward-looking as well as retrospective. On any active project, you can see at any moment whether you're trending over or under on budget, which lets project managers make decisions — add crew, cut scope, have a conversation about a change order — before the job is closed and the margin is already gone.
Cost Categories
Labor
- Pulled automatically from GPS & Time Tracking clock-in/clock-out records
- Costed at each technician's configured hourly rate (set in Crew Management)
- Overtime calculated automatically based on configured overtime rules
- Estimated labor hours come from the original estimate's line items
Materials
- Manually entered by office staff or field techs
- Can be linked to a purchase order (PO) number for tracking
- Categorized by material type (lumber, hardware, HVAC parts, electrical, etc.)
- Estimate-to-actual comparison per material category
Subcontractors
- Logged against a specific project and phase
- Includes subcontractor name, scope, estimated cost, and actual invoice amount
- Supports partial payments (deposit vs. final payment to sub)
Estimated vs. Actual Comparison
| Line Item | Estimated | Actual | Variance |
|---|---|---|---|
| Labor (hrs) | Set on estimate | From time logs | ± hours and dollars |
| Materials | Set on estimate | From cost entries | ± dollars |
| Subcontractors | Set on estimate | From sub invoices | ± dollars |
| Total Cost | Sum of above | Sum of above | ± total |
| Revenue | Invoice total | Collected amount | ± dollars |
| Gross Margin | Estimated % | Actual % | ± percentage points |
This comparison is visible on the project record and in the margin report.
Margin Reporting
The margin report shows estimated vs. actual gross margin across all projects for a selected period. Reports can be filtered and grouped by:
- Job type / trade category
- Assigned crew or technician
- Date range (job completed date)
- Project status
- Lead source
This makes it possible to answer questions like: "Are our plumbing jobs more profitable than our HVAC jobs?" or "Is one technician's jobs consistently running over on labor?"
CRUD Operations
| Operation | Available | Notes |
|---|---|---|
| View | Yes | Cost summary on project record; detailed breakdown in Job Costing module; margin report in Reporting |
| Create | Yes | Labor costs auto-created from time logs; material and subcontractor costs entered manually or via PO import |
| Update | Yes | Any cost entry can be edited; changes update the job margin calculation in real time |
| Delete | Yes | Cost entries can be deleted with admin permission; deletion is logged for audit purposes |
CSV Export
Any cost breakdown or margin report can be exported to CSV. The export includes all raw cost entries with timestamps, entered-by user, and linked project information — suitable for import into QuickBooks, Excel, or any accounting system that accepts CSV input.
Set labor rates in Crew Management before your first job. If rates aren't configured, labor will log hours but not calculate dollar costs, which makes the margin comparison incomplete.