Close Your Books

Prev Next
SERVICETITAN · ACCOUNTING & FINANCE
Close Your Books

Run the financial reports you need to close the books with confidence. Verify revenue, reconcile balances, and deliver accurate financials on time.

Confirm All Transactions Are Posted & Exported
Verify all invoices and payments are posted and exported

a. Go to Accounting > Batch/Export Transactions. Filter for the closing period.

b. Confirm there are no invoices or payments still in Pending status for the period. For commercial projects, this includes both job invoices (from individual site visits) and project invoices (progress billing / AFP invoices). Both must be posted and exported.

c. If any items remain in Pending or Posted status, batch, post, and export them before proceeding.

d. Check for export errors at Accounting > GL Errors. Records that failed to sync will show "Error" status even if the batch shows "Exported." Resolve any errors before continuing.

⚠︎ "Exported" does not mean successfully synced. If your accounting system rejected a record, the individual record's sync status may show "Error" even though the batch shows "Exported." Always check per-record sync status.

⚠︎ Project invoices (progress billing / AFP) are non-job invoices — they have no Sold By field, no technician assignment, and no tech splits. Automated commissions do not process on project invoices. If your team expects commission on project revenue, that must be handled manually via reporting.

Reconcile Project Financials
Reconcile work in progress (WIP)

⚠︎ For commercial projects, the WIP report is the most critical financial tool at month-end. It prevents the existential risk of overbilling (a liability — you have borrowed from the project) or underbilling (an asset drain — you are financing the client). The Controller must reconcile WIP before closing.

a. Go to Reports > All Reports and search for Work in Progress. Set the As Of Date to the last day of the period you are closing.

b. For each active project, review the overbilling/underbilling position. The WIP formula is: Earned Revenue = (Total Actual Costs / Total Estimated Costs) × Contract Value. If Billed exceeds Earned, you are overbilled (liability). If Earned exceeds Billed, you are underbilled (asset).

c. For projects using Stored Materials billing, verify that stored materials are included in the "Completed & Stored to Date" column. Stored materials inflate the completed column — ensure the amounts reflect materials actually on site.

d. Journal off any material overbilling or underbilling variances in your accounting system before closing.

⚠︎ Job Costing must be enabled for the WIP report to populate. Ensure the Project Start Date is filled in on all projects — without a start date, projects may be excluded from the WIP report entirely. For project-level aggregation, the report uses the Project cost type, which does not include procurement costs to avoid double-counting materials ordered on a different job within the same project.

Verify revenue recognition on all active projects

⚠︎ ServiceTitan supports four revenue recognition methods for projects: Sales Basis, Completed Contract, Percentage of Completion, and Cash Basis. The method controls when revenue appears on the income statement. Failing to update the relevant inputs means revenue will be misstated.

a. For projects using Percentage of Completion: verify that the Completion Percent has been updated for every active project for the period. Revenue is only recognized proportional to the completion percentage — if PMs have not updated this field, recognized revenue will be understated.

b. For projects using Completed Contract: verify that no revenue has been prematurely recognized. Revenue should only appear when the project status is set to Completed.

c. For projects using Sales Basis (the default): verify that all invoiced revenue for the period is posted and exported. Revenue is recognized at point of sale, so any unposted invoices mean missing revenue.

d. Review the project's Budget vs. Actual data to confirm that recognized revenue aligns with actual costs incurred and the contract value.

⚠︎ Do not mix Core and Phased project modes. Using Core project logic on a Phased (progress billing) project causes double-booked revenue — once on Job Completion and again on the Pay Application. This is the most dangerous revenue recognition error for commercial contractors.

Reconcile retainage

⚠︎ Retainage is a deferred receivable — not standard AR. It must be tracked in a dedicated Retainage Receivable asset account on your balance sheet, not in general Accounts Receivable. Failing to segregate retainage overstates your collectible AR and creates audit risk.

a. For each active project with retainage enabled, verify that the Retainage Receivable balance matches the expected held amount (retainage % × total billed to date, minus any retainage already released).

b. If retainage was released during the period (e.g., upon substantial completion), verify that the release posted correctly: Debit: Accounts Receivable; Credit: Retainage Receivable. The released amount should now appear in standard AR aging.

c. In your accounting system, verify the Retainage Receivable account balance against the sum of all held retainage across active projects. These should match.

⚠︎ The retainage label must be configured in Project Settings for retainage to track properly in GL reporting. If the label is not set, retainage amounts may not post to the correct GL account. Retainage must be enabled on the project before the first bill — enabling it mid-project does not retroactively apply to prior pay applications.

Review Budget vs. Actual and committed costs

a. For each active project, open the project record and review the Budget vs. Actual (BvA) table. Compare total budgeted costs, actual costs, and committed costs (POs issued but not yet billed).

b. Verify that all POs received during the period have been billed — these should have moved from the Committed column to the Actual column. POs that remain in Committed but were received represent unbilled vendor invoices that will understate your expenses.

c. Review committed costs remaining to confirm they represent genuine future obligations, not forgotten or canceled POs that should be closed out.

d. Drill into any Actual cost variances by clicking on the amount to see the specific labor hours or material receipts driving the cost. Investigate any unexpected variances before closing.

Verify change order financial impact

a. Review all change orders approved during the period. Confirm that each approved CO has updated the project's Total Budget and Contract Value.

b. Verify that approved change order work performed during the period has been invoiced via the next progress billing cycle. Approved COs that have not been billed represent earned revenue that is missing from the period.

c. Check for any change orders still in Pending status with labor already booked against them. Labor on a Pending CO cost code is "at-risk work" — it will appear in Job Costing but the associated revenue cannot be billed until the CO is approved.

⚠︎ Change orders in ServiceTitan are not a separate entity type — they are Estimates linked to the project with a change order flag. Their status follows the Estimate lifecycle (Open, Sold, Dismissed). An approved change order with work performed but not billed creates a gap between costs incurred and revenue recognized.

Run Financial Reports
Review the Accounting Detail report

a. Go to Reports > Legacy Reports and search for Accounting Detail. Set the date range to the period you are closing. Filter by Business Unit as needed.

b. Review cash receipts, income by GL account, and net change in A/R. For commercial projects, verify that progress billing revenue, retainage entries, and standard job invoice revenue are each posting to the correct GL accounts.

c. Compare these totals against the prior period to identify significant variances before reconciling in your accounting software.

Verify GL account mapping

a. Go to Reports > All Reports and open the Invoice Items report template. Filter by GL Account Type to confirm revenue and cost items are posting to the correct GL accounts.

b. For commercial projects, verify three critical GL mappings: (1) Revenue items are posting to the correct income GL accounts by Business Unit; (2) Cost of Goods Sold items are properly mapped for inventory and material items; (3) Retainage is posting to a dedicated Retainage Receivable asset account, not general Accounts Receivable.

⚠︎ Fixing GL mappings in the Pricebook only corrects future exports. Already-exported transactions are not retroactively corrected — those require adjustment invoices or manual corrections in the accounting software.

Run your income statement (in accounting software)

a. In your accounting software, run the Income Statement (Profit & Loss) report for the closing period. Select the relevant Class/Department (which maps to your ServiceTitan Business Units).

b. Review total revenue, cost of goods sold, and net income for accuracy. For commercial contractors, compare the income statement against the WIP report — revenue recognized on the P&L should align with earned revenue calculated by the WIP formula.

c. To cross-reference against ServiceTitan data, go to Reports > Legacy Reports and search for Accounting Detail.

Run your balance sheet (in accounting software)

a. In your accounting software, run the Balance Sheet as of the last day of the closing period.

b. Confirm that total assets equal total liabilities plus equity.

c. For commercial contractors, check these accounts specifically: Retainage Receivable (should match total held retainage across active projects), Accounts Receivable (should not include retainage — if it does, the GL mapping is wrong), and Overbilling liability (should match the WIP report's overbilled positions).

d. If the report is out of balance, review recent journal entries and unposted transactions in your accounting software before exporting additional data from ServiceTitan.

Run a trial balance (in accounting software)

a. In your accounting software, run the Trial Balance for the closing period.

b. Verify that total debits equal total credits. Any difference indicates unbalanced journal entries that need correction before closing.

Verify tax liability

a. In your accounting software, run a Tax Liability report for the closing period.

b. Review the tax collected and tax owed amounts by jurisdiction to confirm accuracy before filing.

⚠︎ ServiceTitan Tax Zone names must match your accounting software's Tax Item names exactly. Mismatches cause export errors and incorrect tax reporting. If you're using Avalara, rates are looked up automatically by address — but manual tax zone overrides can cause double-taxation on commercial recurring service visits.

Cross-reference revenue by GL account

a. In your accounting software, review revenue by GL account or Chart of Accounts for the closing period.

b. Cross-reference revenue totals against the ServiceTitan Accounting Detail Legacy Report (Reports > Legacy Reports > search "Accounting Detail") and/or the BU Dashboard Revenue report (Reports > All Reports > search "BU Dashboard Revenue") to verify that all revenue is posted to the correct GL accounts.

⚠︎ GL mapping in ServiceTitan does not affect job-level margin calculations inside ServiceTitan — ST calculates margin independently. However, items with no GL assignment export to a catch-all or default account in your accounting software. This is a silent data quality issue.

Lock the Period & Automate
Close the accounting period

a. Go to Accounting > Accounting Periods (or Settings > Accounting > Accounting Periods).

b. Set the status of the closing month to Closed. This blocks any user (without admin override) from editing, voiding, or adding transactions in that month.

⚠︎ Closing an accounting period is irreversible in practice. Once closed, unposting is blocked — only adjustment invoices (credit memos) are allowed for corrections. Lock months promptly after reconciliation to prevent backdated edits that change your printed financial statements.

Schedule automatic report delivery

a. Go to Reports > All Reports, find the report you want to schedule, and click the Calendar icon (or open the report, click More, and select Schedule).

b. Choose between a Simple Report (individualized per recipient) or Flexible Report (same report for all recipients).

c. Set the delivery cadence (e.g., every 1 month), date range (e.g., Previous Month), recipients, and export format (PDF or XLSX). Click Schedule.

d. To view or edit existing schedules, go to Reports > Scheduled Reports.

Troubleshoot Report Issues
Troubleshoot: Revenue missing from accounting software

a. Verify the date range on the report covers the full closing period. Transactions posted on the last day of the month are commonly missed if the end date is set one day early.

b. Check for unposted invoices. Go to Accounting > Batch/Export Transactions. Both job invoices and project invoices (AFP/progress billing) must be posted to generate journal entries.

c. For projects using Percentage of Completion, verify that the Completion Percent has been updated. If it has not been maintained, recognized revenue will be zero regardless of how much work has been performed.

d. Check for export errors at Accounting > GL Errors. Records that failed to sync will show "Error" status even if the batch shows "Exported."

e. Verify that progress billing invoices for the period were created. If a billing cycle was missed (e.g., the PM did not submit the pay application by the 25th), that revenue will not appear in the period.

Troubleshoot: Balance sheet out of balance

a. Run the Trial Balance in your accounting software for the same period. Verify that total debits equal total credits — a mismatch here confirms the imbalance source.

b. Review recent journal entries in your accounting software. Look for one-sided entries or entries with mismatched debit and credit amounts.

c. In ServiceTitan, go to Accounting > Journal Entries to review journal entries created during the period. Check for GL errors at Accounting > GL Errors.

d. Check the Retainage Receivable account. If retainage was released during the period but the reversing entry (Debit: AR, Credit: Retainage Receivable) did not post correctly, the balance sheet will be out of balance.

e. Check for WIP adjusting entries. If overbilling or underbilling journal entries were recorded in the accounting software, verify they are balanced and posted to the correct period.

f. Check for pending adjustments or voided transactions that may not have been fully reversed. Correct any errors, then re-run the balance sheet to confirm it balances.

Troubleshoot: Exported invoice needs correction

a. If the invoice has been exported, it is permanently locked in ServiceTitan. You cannot unpost or edit it.

b. Create an adjustment invoice (credit memo) in ServiceTitan to reverse the financial impact. This creates a new invoice record with reversing GL entries while preserving the original audit trail.

c. If the accounting period is already closed, only adjustment invoices are allowed — unposting is blocked.

Measure the impact
Timeliness
Days to close the month
Compare period end date to the date status is set to Closed. Faster close means faster financial visibility. Target: close within 5–10 business days of month-end.
Accounting > Accounting Periods ↗
Accuracy
WIP overbilling / underbilling ratio
Overbilling (Billed > Earned) creates a liability; underbilling (Earned > Billed) drains cash flow. Both should trend toward zero. Material imbalances signal missed billings or stale completion percentages.
Reports > All Reports > search for "Work in Progress" ↗
Completeness
Retainage reconciliation
The Retainage Receivable balance should match total held retainage across all active projects. Discrepancies indicate missed retainage entries or incorrect GL mapping.
Profitability
Budget vs. Actual variance by project
Track total actual costs vs. total budget per project. Consistently negative variances indicate estimating issues; positive variances indicate scope creep or unapproved change orders.
Completeness
Change order billing coverage
Every approved change order with work performed should be included in the next billing cycle. Unbilled approved COs represent earned revenue missing from the period.
Reports > All Reports > search for "Change Order Requests" ↗
Accuracy
Export error rate
All records should sync successfully. Export errors mean your accounting system has incomplete data for the period.
Accounting > GL Errors ↗
Compliance
Tax liability accuracy
Compare the Tax Liability report against filed returns. Mismatches indicate misconfigured tax zones or missed invoices.
Settings > Invoicing > Tax Zones ↗