Exterior trades

Verify One Roofing Job's Documents Before Trusting Its Estimate vs Actual Report

A margin variance on a completed roofing job is only a pricing or estimate problem after the signed estimate, change orders, purchase invoices, time records and customer invoice tie to the posted costs. Here is the document check, who owns each step, and when the answer changes.

Atom Backends ·

The short answer

Verify the source documents and labor-rate inputs first. A completed job's margin variance is a pricing or estimate problem only after the signed estimate, change orders, purchase invoices, time records and customer invoice tie to the posted job costs. Until then, treat the gap as a possible recordkeeping or handoff issue, not a pricing verdict.

The short answer

Verify the source documents and labor-rate inputs before you treat a margin variance as a pricing or estimate problem. A gap on a completed roofing job only becomes an estimate issue after the signed estimate, change orders, purchase invoices, time or payroll records and customer invoice tie to the posted job costs. Until they tie, the variance may be a recordkeeping or handoff problem, and repricing off it means repricing off numbers you do not trust.

The check below works from one completed job. It is a proposed diligence method, not a tested procedure, and nothing in it depends on how any particular accounting program builds its reports.

Where the numbers diverge

When an estimate vs actual report shows a job losing margin, several different causes can hide inside one blended variance line. Split them before you draw a conclusion:

Scope change: work performed that was never on the estimate or a change order.

Quantity difference: more squares, more trips, more hours than estimated.

Material price difference: same quantity, higher supplier price.

Labor rate or overtime difference: the hours were right but the dollars per hour were not.

Missing or duplicated document: a cost never posted, or posted twice through double entry.

A single netted variance cannot tell you which of these happened, so it cannot tell you whether your estimating is wrong. The same logic runs in reverse for revenue: a job can look fine on cost and still be mispriced if the customer invoice does not match what was actually serviced, or if a field change order never made it onto the invoice. The billed vs serviced comparison belongs in the same document check.

What your supporting documents need to show

The IRS guidance on records to keep sets the standard your documents have to meet before any report is trustworthy. The IRS says you may choose any recordkeeping system suited to your business that clearly shows income and expenses, and that all requirements applying to hard copy books and records also apply to electronic records, so keeping books in accounting software does not lower the bar. The IRS lists sales slips, paid bills, invoices, receipts, deposit slips and canceled checks as supporting documents, and says these documents support the entries in your books and on your tax return.

For the job-level check, the specifics matter. The IRS says gross receipts are the income you receive from your business, and supporting documents should show the amounts and sources, with examples including invoices and deposit information. For purchases and expenses, the IRS says supporting documents should identify the payee, the amount paid, proof of payment, the date incurred, and a description of the item or service. The IRS also notes that a combination of supporting documents may be needed to substantiate all elements of a purchase or an expense. That last point is the practical one for roofing. A supplier delivery ticket by itself may not carry proof of payment, so the check is whether the documents on file together cover payee, amount, date and description. Our inference from the IRS standard: if they do not, the actual material cost behind your variance is not fully auditable yet.

The IRS recordkeeping page adds why this matters beyond taxes: good records help you monitor the progress of your business, prepare your financial statements, identify sources of income, track deductible expenses, prepare your tax returns and support items reported on them. The IRS also says employment tax records must be kept at least four years, which is worth confirming for the payroll period covering the job you are auditing.

Labor cost is more than base hours

Actual labor cost is not just hours times base rate. Whether overtime is driving your variances is something to verify in your own jobs rather than assume. The Department of Labor's Fact Sheet #23, revised October 2019, says that unless specifically exempted, covered employees must receive overtime pay for hours worked in excess of 40 in a workweek at a rate not less than time and one-half their regular rates of pay. The fact sheet says the FLSA applies on a workweek basis, that a workweek is a fixed and regularly recurring period of 168 hours, and that averaging of hours over two or more weeks is not permitted. So a job that ran long across a week boundary can carry overtime cost even when no single day looked excessive.

The regular rate itself is broader than the base hourly number. The DOL says the regular rate includes all remuneration for employment except certain payments excluded by the Act, and that overtime due is computed on the average hourly rate derived by dividing total pay, with the statutory exclusions, by total hours actually worked. Where an employee works two or more types of work at different straight-time rates in a single workweek, the DOL says the regular rate for that week is the weighted average of those rates. A fixed salary for a regular workweek longer than 40 hours does not discharge overtime obligations, per the same fact sheet.

Roofing makes this concrete. The Bureau of Labor Statistics Occupational Outlook Handbook notes that roofers may work overtime in order to finish a particular job, especially during busy summer months. Our inference from the DOL rules and that context: comparing estimated labor dollars to actual labor dollars without separating overtime premium from base hours can misstate a job variance, because the actual cost includes a premium computed on a regular rate that may itself include more than base pay. When you post hours to a job, check whether the posted labor dollars carry the overtime premium, and whether the estimate ever assumed any.

The one-page bridge

Pick one completed roofing job and build a one-page bridge from the signed estimate to the customer invoice. Give it five columns: estimate line, change order, purchase invoice, time or payroll record, and posted job cost. Walk each actual cost line across the page. Every material line needs a set of documents that together shows payee, amount, proof of payment, date and description. Every labor line needs a time or payroll record that separates base hours from overtime. Every scope addition needs a change order with a date and an approval. Then reconcile the customer invoice to what was actually completed and serviced.

The design goal is simple: each cell either ties or it does not, and the ones that do not tie tell you which variance category you are in.

Who owns each step

Split ownership so the check does not stall. The estimator owns scope and change-order completeness: whether every piece of work performed was on the estimate or a signed change order. The field lead owns production quantities and time records: squares installed, trips made, hours posted, and whether the time records separate overtime. The bookkeeper or controller owns ledger coding and document matching: whether each purchase invoice is coded to the right job, whether any cost is posted twice, and whether the documents on file meet the IRS standard above. The owner or GM reviews the unresolved variances once the other three have signed off on their columns. Adapt this division to your bench.

When the answer changes

The decision rule: if the source documents tie to the posted costs, the remaining estimate vs actual gap is a legitimate candidate for an estimate or pricing problem, and you can act on it. If they do not tie, fix the recordkeeping or the handoff first and do not use the report for pricing decisions, because you would be repricing against numbers you cannot yet trust.

Only after the documents tie should you look at the report itself. This article works from recordkeeping, wage and trade sources, so it cannot tell you how QuickBooks Online builds estimate vs actual reports or maps estimates, invoices, payroll and purchase transactions in your file. The right sequence is documents first, then report setup: once the bridge ties, investigate how estimates, invoices and costs are mapped in your job costing, and whether the QuickBooks sync from your field software is carrying what you think it carries.

If the documents tie and the same variances persist across jobs, or the handoff between your field software and QuickBooks keeps producing mismatches you cannot resolve in-house, that is the point to bring in outside help with the systems rather than the documents. Atom Backends' entry offer is the Growth Systems Review, an initial diagnostic conversation followed by a recommendation: an audit, a stabilization project, a modernization engagement or no project at all. Where the finding is a systems problem, the company's published pricing puts a Systems Audit at $5,500-$9,500 and a Stabilization Sprint at $15,000-$35,000+, with a Modernization Engagement scoped after diagnosis.

Checks

  1. Pull the signed estimate and every change order for one completed job and confirm each has a date and an approval.
  2. Match each material cost line to documents that together show payee, amount paid, proof of payment, date incurred and a description.
  3. Confirm no cost appears twice between purchase invoices and posted job costs.
  4. Separate overtime hours from base hours on the job's time records and check the regular rate the premium was computed on.
  5. Reconcile the customer invoice to the work actually completed and serviced, including any field change orders.
  6. Confirm employment tax records for the job's payroll period are retained, noting the IRS requirement of at least four years.
  7. Classify each remaining variance into one of the five categories above before deciding the estimate is at fault.

Questions

Does this mean my estimate vs actual report is wrong?

That depends on your file, and this article cannot answer it for you. The check here is order of operations: confirm the documents behind the actual costs tie first, then judge the report and the estimate. Whether the report itself is computing correctly is something to verify in your own job costing setup once the documents tie.

How many jobs should I check before drawing a conclusion?

Start with one completed job done well. If its documents tie and the variance survives the classification, check two or three more jobs with different crews and suppliers before changing your pricing. One tied job gives you a working method and one data point, not a pattern.

What if the time records do not separate overtime?

That is a field-process fix, not a pricing fix. Our reasoning from the DOL rules: if payroll computed and paid the premium correctly, the overtime cost sits in the payroll dollars whether or not the job record shows it separately, so the variance will keep appearing until the time records post hours with the premium broken out. Verify that payroll actually computed the premium, then fix the time records.

Sources

  1. Roofers : Occupational Outlook Handbook : U.S. Bureau of Labor Statistics
  2. What kind of records should I keep | Internal Revenue Service
  3. Recordkeeping | Internal Revenue Service
  4. Fact Sheet #23: Overtime Pay Requirements of the FLSA | U.S. Department of Labor

How we write: AI-assisted drafts from the cited public sources, each checked by three separate automated reviews (technical accuracy, search intent and writing quality) before publication. About Atom Backends.

Privacy & analytics

PostHog automatically measures anonymous page journeys, clicks, scroll depth, performance, browser errors, heatmaps, and masked session replays on public pages. Forms and their contents are blocked from replay and analytics. Google Analytics measures page visits, engagement, and completed inquiries using the same controls.

You can pause or resume site analytics here. Browser privacy signals and a saved pause are respected. Advertising tracking is disabled.

Analytics are paused. Browser privacy signals are respected.