Job costing
Materials, labor, subcontract and overhead roll up to the job as the work happens, against the estimate on the work order. Margin is visible before the job closes and after it bills, and a job that runs over shows which category moved rather than just a worse number at the end.