⚠︎ Run the WIP report at least monthly, before closing any accounting period. Skipping WIP reconciliation can hide overbilling (a liability) or underbilling (a cash flow drain) that distorts your financial statements.
a. Open the project and review the financial summary. The WIP report compares Earned Revenue (based on percentage complete or cost-to-cost) against Billed Revenue for the project.
b. If Billed Revenue is greater than Earned Revenue, the project has been overbilled. This cash is a liability on your balance sheet and must be recognized. If Earned Revenue is greater than Billed Revenue, you are financing the customer's project and need to issue a pay application to recover the shortfall.
c. Resolve any material variances. Work with your controller to journal off imbalances before closing the accounting period for this project.
⚠︎ WIP accuracy depends on the project's revenue recognition method. ServiceTitan supports four methods: Sales Basis (revenue at point of sale), Completed Contract (revenue only when the project completes), Percentage of Completion (revenue proportional to costs incurred), and Cash Basis (revenue when payment is received). Confirm your project's method at the project record level before interpreting WIP results.
a. Open the project and review the Budget vs. Actual table. This shows your original budget alongside actual costs incurred to date, broken down by cost category (labor, materials, subcontractor, equipment).
b. Review the Committed Costs column. This shows the total of all issued Purchase Orders (POs) that have not yet been billed. Without checking committed costs, a project manager might spend budget that is already spoken for by outstanding POs.
⚠︎ If committed costs are not visible, confirm that the Committed Costs in Job Costing setting is enabled. Without this setting, POs issued but not yet billed do not appear in the budget view, and you risk overspending.
c. Click on any actual cost number to drill down to the specific labor hours, material receipts, or subcontractor charges driving that cost. Use this to investigate variances and identify where the project is over or under budget.
⚠︎ Once an accounting period is closed, no one (without admin override) can edit, void, or add transactions in that month. Close periods only after you have reconciled WIP and confirmed all project invoices are posted and exported. This protects your financial statements from changes after they have been finalized.
a. Go to Settings > Accounting > Accounting Periods. Review the list of open periods.
b. Before closing a period, confirm all project pay applications for that month have been finalized, batched, posted, and exported to your accounting software.
c. Set the period status to Closed. Once closed, edits to invoices in that period are blocked. If a correction is needed in a closed period, the only option is to create an adjustment invoice (credit memo) in the current open period.
a. Confirm that all pay applications from the previous billing period have been finalized. Draft pay applications do not sync to your accounting software.
b. Go to the Accounting section and open Batch/Export Transactions. Check for export errors on project invoices. Common issues include mismatched GL account mappings and connectivity timeouts.
⚠︎ "Exported" does not always mean synced. If your accounting software rejected a record, the individual transaction may show an error even though the batch is marked as Exported. Always check per-record sync status to confirm your data landed correctly.
c. Verify that your GL accounts are mapped correctly for progress billing revenue and retainage. The retainage account must map to a Retainage Receivable asset account—not general Accounts Receivable. If this was set up during the Bill for Project Progress step, confirm it is still in place.
d. If your accounting connection shows errors, check your integration settings. For platform-specific setup steps (QuickBooks Desktop, QuickBooks Online, Sage Intacct, Xero), see the accounting integrations article linked below.
a. Confirm the pay application has been finalized and the invoice has been generated. Draft pay applications and unsaved invoices do not appear in the batch queue.
b. Check for export errors in Batch/Export Transactions. Look at the individual record's sync status, not just the batch-level status. A batch can show "Exported" while individual records within it show errors.
c. Verify the GL account for retainage maps to a Retainage Receivable asset account. If it maps to general AR, retainage balances will be mixed into your aging report and will not reconcile correctly.
d. If the invoice date falls in a closed accounting period, the invoice cannot be batched or exported. Either reopen the period (requires admin privileges) or create the invoice with a date in the current open period.