How do you reconcile job costs across the two systems?
Reconcile the two systems as a ledger-to-subledger tie-out, not by asking whether the integration says “synced.” Use QuickBooks as the ledger for posted financial results. Treat the field service platform as the operational detail for jobs, visits, technician time, purchase activity, and customer billing, according to your documented setup.
For each close:
- Freeze one cutoff time.
- Export both systems for the same jobs and period.
- Match jobs with a stable job ID, not customer name alone.
- Compare labor, materials, subcontractors, equipment, and applied overhead separately.
- Trace every variance to individual transactions.
- Correct the transaction in the system that owns it, sync again, and rerun the comparison.
QuickBooks says job costing should include direct materials, direct labor, and applied overhead. Intuit explains those three cost elements on its job-costing page. A comparison that includes only invoices and material bills can balance while still overstating job profit.
This process is separate from reconciling a bank or credit-card account. Bank reconciliation can prove that cash activity agrees with a statement. It does not prove that each cost was assigned to the right job.
Decide which system owns each record
Write down which system owns each record type before troubleshooting the first variance. The ownership matrix will differ by integration, but a workable policy might look like this:
| Record | Recommended owner | Reconciliation check |
|---|---|---|
| Customer and job identity | Field platform, if jobs begin there | One field job ID maps to one QuickBooks customer/project |
| Estimate and sold scope | Field platform | Approved amount and cost-code map agree with the job budget |
| Technician time | Timekeeping or field platform | Approved hours reach the correct employee, job, date, and labor-cost basis |
| Vendor bills and card charges | QuickBooks or purchasing system | Every direct-cost line carries the correct Customer/Project |
| Customer invoice | One designated billing system | Invoice number, date, taxable lines, subtotal, tax, and total match |
| Payment and deposit | Designated payment system plus QuickBooks | Payment is applied once to the right invoice and deposit path |
| Posted financial result | QuickBooks | Project detail agrees with the general ledger |
Do not assume every connector moves the same records in the same direction. For one concrete example, Housecall Pro says invoices, customers, line items, and payments will automatically push into QuickBooks. That vendor page lists those objects explicitly. It does not establish what another field platform transfers, or whether cost records carry your required job and category mapping.
Before connecting anything, use this checklist of what to verify before connecting contractor software to QuickBooks. Record the direction, trigger, edit behavior, deletion behavior, and error location for every object you depend on.
Set up the mapping before the close
A clean tie-out starts before month-end.
- Create one immutable cross-system job key. Put it in a custom field, memo, or integration mapping supported by both systems.
- Keep customer identity separate from job identity. A repeat customer may have many jobs.
- Maintain a short cost-code crosswalk. Map each field category to one QuickBooks account and, where used, one product/service or project category.
- Decide how labor cost is calculated. Hours alone are not job cost. Document whether the field system sends hours, payroll cost, a burdened rate, or no labor cost at all.
- Define a cutoff rule for late time, bills, returns, credits, and backdated edits.
- Keep a sync-error queue with an owner and resolution date.
- Test how edits behave after sync. An update, reversal, deletion, or second record can each produce a different accounting result.
QuickBooks says every relevant bill, check, or expense line should be assigned to the correct Customer/Project. Its job-costing guidance describes line-level assignment. That detail matters: coding the transaction to the right expense account without the job reference can leave company expenses correct while project profit is wrong.
If estimates feed budgets, preserve the same codes from sold scope through actual cost. This guide shows how to move an estimate into a job budget without losing cost codes.
The month-end reconciliation workflow
Use this sequence for a repeatable close.
- Set the population
List active jobs, jobs closed during the period, and any older jobs that received current-period adjustments. Record the exact cutoff date and time.
- Capture control totals
From the field platform, export job-level revenue and cost by category. From QuickBooks, export project transaction detail or another report that can be traced to individual entries. Save both raw files before changing data.
QuickBooks says its Projects hub can hold invoices, expenses, and time entries for each job. Intuit describes assigning those records to projects. QuickBooks says project job costing is included in QuickBooks Online Plus and Advanced. The same official page states the plan availability. Menus and reports can therefore differ by plan and configuration.
- Normalize the exports
Create consistent columns: cross-system job ID, transaction ID, transaction date, posting date, vendor or employee, cost category, amount, sync status, and last-modified time. Keep source transaction IDs intact.
- Compare at two levels
First compare total cost by job. Then compare each category within the job. A labor overstatement can cancel a missing material bill and make the total appear correct.
- Build an exception list
Classify each variance as missing, duplicate, wrong job, wrong category, amount mismatch, cutoff timing, deleted or voided, or unmapped. Assign an owner rather than editing both systems at once.
- Correct and prove
Fix the record in its owner system. Let the approved sync path update the other system. Re-export both sides and show a zero difference, or document a valid timing item that will reverse next period.
- Retain the close package
Keep the raw exports, normalized comparison, exception log, corrections, final zero-variance report, and documented timing items together. This turns next month’s review into a controlled process instead of a fresh investigation.
Worked example: explain a $599 job-cost variance
The numbers below are hypothetical. They demonstrate the method and are not benchmarks for labor rates, burden, or project cost.
Assume the field system shows 18 approved labor hours at a chosen direct-cost rate of $32 per hour. The job also has $1,850 of materials, $900 of subcontractor cost, $175 of equipment, and $360 of applied overhead.
| Cost category | Field-system expected cost | QuickBooks posted cost | Amount still to book or classify |
|---|---|---|---|
| Direct labor | $576 | $512 | $64 |
| Materials | $1,850 | $1,850 | $0 |
| Subcontractors | $900 | $900 | $0 |
| Equipment | $175 | $0 | $175 |
| Applied overhead | $360 | $0 | $360 |
| Total | $3,861 | $3,262 | $599 |
The $599 difference has three explainable parts: two missing labor hours worth $64 under the example rate, $175 of equipment cost, and $360 of applied overhead. Those exceptions add to the full variance.
The right fix is not a single $599 plug. Confirm why the two hours did not post, locate the equipment transaction, and apply the documented overhead method. Then rerun the report. A plug can force the total to match while leaving category trends, employee cost, and future estimating data wrong.
Once actual costs are clean, use the job-costing calculator to compare the estimate with actual results.
How to clear common reconciliation exceptions
Work exceptions in a fixed order so one repair does not create another.
Missing transaction
Search by source transaction ID and last-modified time. Check the connector error queue and the accounting cutoff. If the record never transferred, repair the mapping or sync error rather than recreating it manually in both systems.
Duplicate
Determine which copy came through the approved path. Check whether a manual entry and a sync created two records, or whether a retry produced a second transaction. Void or reverse only after confirming the accounting treatment with whoever controls the books.
Wrong job
Correct the Customer/Project or equivalent job reference at line level. Recheck every split line because one bill can contain costs for several jobs.
Wrong category
Use the cost-code crosswalk to correct the account, product/service, or category. Do not accept a balanced job total when the category mix is wrong.
Amount mismatch
Compare quantity, rate, tax, discount, retainage, tips, refunds, credit memos, and rounding. Determine whether an edit after the first sync should update the original record or create an adjustment under the integration rules.
Cutoff timing
Document records that are valid on both sides but fall into different periods. Include the expected clearing date. Review prior timing items first at the next close.
Orphaned record
An invoice, payment, time entry, or cost without a valid job link needs its own queue. Do not hide it under a general customer or overhead bucket merely to clear the report.
Controls that keep the next close clean
Use a few controls that are easy to inspect:
- Require a unique field job ID before work or billing can move to QuickBooks.
- Prevent free-text creation of near-duplicate jobs where the software allows it.
- Review sync failures daily and aged failures weekly.
- Compare transaction counts as well as dollars. Equal dollars do not rule out duplicates and omissions.
- Review negative costs, zero-cost labor, uncategorized expenses, and costs posted to closed jobs.
- Reconcile revenue separately from cost. An invoice tie-out does not prove payroll, vendor, or overhead completeness.
- Lock or restrict closed periods according to the bookkeeping policy.
- Reopen a completed tie-out when a backdated transaction changes the period.
Your final sign-off should state the period, covered jobs, field export total, QuickBooks total, unresolved timing items, preparer, reviewer, and completion date. The comparison file should let a reviewer move from a variance to both source records without searching by customer name.