Invoice Your Customers

Prev Next
SERVICETITAN · INVOICING
Invoice Your Customers

Bill for progress on long-term commercial projects using AIA-standard pay applications, manage retainage, track revenue recognition, and keep your WIP reporting accurate throughout the project lifecycle.

Create & Bill
Create an Application for Payment

a. Open the project and navigate to the Financials section. Click Actions > Add Application for Payment to create a new Application for Payment. The system generates a Continuation Sheet from the project estimate, with line items based on your project labels or estimate items.

b. For each line item, enter the Percentage Complete or Amount Completed for this billing cycle. The system automatically calculates: Total Completed and Stored to Date, minus Previous Billings, equals Current Payment Due.

c. If retainage is enabled, the system automatically withholds the configured percentage from the current billing amount. Verify the retainage calculation is correct before finalizing.

d. If billing for stored materials, add the materials to the Stored Materials column. Materials must have been received in the system (via PO) to be eligible.

⚠︎ The Schedule of Values (SOV) is the foundation of the AFP. It must mirror your project estimate cost codes exactly. If the SOV does not match the estimate, billing calculations will be incorrect. Set up the SOV carefully before the first billing cycle.

Review and send the pay application

a. Preview the AIA G702 (Summary) and G703 (Continuation Sheet) documents. Verify the math: Total Completed and Stored, minus Retainage, minus Previous Billings, equals Current Payment Due.

b. Email or print the pay application package to the general contractor or customer. Go to the project page to view, email, or print Applications for Payment.

c. Track the status of the pay application. GCs typically review and approve before issuing payment. Note the contractual payment terms (Net 30, Net 45, etc.) for AR follow-up timing.

⚠︎ GCs frequently reject pay applications for math errors, missing backup documentation, or SOV mismatches. Using the AFP module eliminates manual math errors. Always include supporting documentation (daily logs, photos, change orders) with the pay application.

Account for change orders in billing

a. When a change order is approved, it adds new line items to the project estimate. The SOV and Continuation Sheet update to include the additional scope.

b. On the next billing cycle, the change order value appears in the Continuation Sheet. Enter the percentage complete on the change order line items just like the original scope.

c. Track approved vs. pending change orders. Only approved change orders should be billed — billing for pending change orders before approval creates contract disputes.

⚠︎ Change orders in ServiceTitan are stored as estimates linked to the project. They are not a separate entity type. Ensure the change order estimate is approved and linked to the project before including it in a billing cycle.

Manage Retainage
Configure retainage before the first bill

a. Enable retainage in Project Settings before creating the first Application for Payment. Define the default retainage percentage (typically 5–10%).

b. Map the retainage to a dedicated Retainage Receivable GL account — not your general Accounts Receivable account. This ensures withheld funds are tracked separately on the balance sheet.

c. Verify the retainage label is configured for GL reporting. Without this label, retainage is not properly categorized in your accounting exports.

⚠︎ Retainage must be enabled before the first billing cycle. Enabling it mid-project requires manual adjustments to prior billing periods. Plan retainage configuration during project setup, not after billing has started.

Release retainage at project completion

a. When the project reaches substantial completion, open the project and navigate to the AFP section. Use the Collect Retainage feature in the Continuation Sheet.

b. This moves the withheld balance from Retainage Receivable to Current Due and generates the final billing invoice. The retainage amount now appears in AR aging as a current receivable.

c. Send the final invoice to the customer. After payment is received, post and export the payment through the standard batch workflow.

⚠︎ Retainage Receivable is a separate asset account from general AR. When reviewing the balance sheet, do not combine these — retainage is a contractual holdback, not a standard receivable. It should only move to AR when formally released.

Review, Post & Export Invoices
Review project invoices before batching

a. Go to Accounting > Invoices. Progress billing invoices appear alongside standard job invoices. Use filters to identify project-level invoices by project name or date range.

b. For project invoices, verify the billing amount matches the approved pay application, retainage is calculated correctly, and the GL accounts are mapped to the correct project-specific accounts.

c. Change the Review Status to Reviewed when satisfied. Assign invoices for review by selecting them and clicking Actions > Assign invoices to.

Batch, post, and export

a. Go to Accounting > Batch/Export Transactions. Create a new batch or select an existing one. Add unbatched invoices to the batch.

b. Review the batch contents. Confirm line items, totals, business unit assignments, and GL mappings are correct.

c. Click Post to post the batch. Posting locks the invoices and creates the accounting entries.

d. After posting, export the batch to your accounting software (QuickBooks Desktop, QuickBooks Online, Intacct, or Xero) — or use Bypass Export if you don't use an accounting integration.

⚠︎ If auto-batching is enabled, invoices can be automatically added to a batch within seconds of creation. If you need to manage batches manually, temporarily disable auto-batching at Settings > Accounting > Journal Entries and Auto-Batching.

⚠︎ After exporting, always check for sync errors. If your accounting software rejected a record, the individual invoice may show an error even though the batch itself shows as exported. Check per-record status when troubleshooting mismatches.

Correct a posted or exported invoice

a. If the invoice is Pending, edit it directly — adjust line items, then save.

b. If the invoice is Posted but not exported and the accounting period is open, go to Accounting > Batch/Export Transactions, find the batch, and click Unpost. Make corrections, then re-post.

c. If the invoice is Exported, it is permanently locked. Open the original invoice and click Add an adjustment invoice. Add corrective line items. The adjustment invoice must be batched, posted, and exported separately.

⚠︎ Unposting is blocked if the invoice date falls in a closed accounting period. The only correction path in a closed period is an adjustment invoice. Closing an accounting period is irreversible — plan period closes deliberately.

Troubleshoot Commercial Invoice Issues
Troubleshoot — GC rejects the pay application

a. Review the rejection reason. Common causes: math errors in the Continuation Sheet (rare with AFP module but possible if manual overrides were applied), missing backup documentation, or SOV line items that don't match the contract.

b. Correct the issue in ServiceTitan. If the pay application invoice is still in Pending status, edit it directly. If it has been posted, unpost the batch first (if the accounting period is open) or create an adjustment invoice.

c. Resubmit the corrected pay application with the required documentation. Track resubmission dates to avoid payment term delays.

Troubleshoot — Revenue not showing on WIP report

a. Check the project's revenue recognition method. If set to Percentage of Completion, the project shows no recognized revenue until the Completion Percent field is updated. If no one is maintaining this field, the WIP report will show zero earned revenue regardless of how much work has been done.

b. Verify the project has a start date. Projects without a start date may be excluded from the WIP report entirely.

c. Confirm the project invoices have been posted. Unposted invoices do not appear in accounting or WIP reports.

⚠︎ For Percentage of Completion projects, someone must manually update the Completion Percent each billing cycle. This is not automated. If the field is not maintained, revenue recognition stalls and the WIP report becomes unreliable.

Troubleshoot — Retainage balance does not match expectations

a. Compare the Retainage Receivable GL account balance against the retainage summary on the project's AFP history. These should match.

b. Check whether the retainage GL label is configured correctly. Without the label, retainage posts to a default or general AR account instead of the dedicated Retainage Receivable account.

c. Verify that retainage was enabled before the first billing cycle. If retainage was enabled mid-project, earlier billings may not have retainage applied, creating a discrepancy between the expected and actual withheld amounts.

d. After retainage release, confirm the final invoice was posted and exported. Unposted release invoices leave stale retainage balances on the books.

Troubleshoot — Double-booked revenue on a project

a. This occurs when both job-level invoicing and project-level progress billing are used on the same project. Revenue is recognized once when the job is completed (via the job invoice) and again when the pay application is created (via the project invoice).

b. Determine which billing method is correct for the project. For commercial construction with GC relationships, use progress billing / AFP only. For simpler multi-job projects, use job-level invoicing only.

c. To fix existing double-booked revenue, void or create adjustment invoices for the duplicate entries. Going forward, enforce a single billing method per project.

⚠︎ This is the most common LTP-specific revenue error. It is caused by mixing Core project mode (job-level billing) with Phased project mode (progress billing). Establish the billing method during project setup and do not change it mid-project.

Measure the impact
Billing Cycle
Days from billing date to pay application sent
Commercial pay applications follow a contractual billing cycle (typically monthly). Track how many days after the billing date your team submits the pay application. Late submissions delay payment by an entire billing cycle.
WIP Accuracy
Overbilling and underbilling variance
The WIP report compares Earned Revenue (based on percentage of completion) against Billed Revenue. Overbilling means you have billed more than you have earned (a liability). Underbilling means you have earned more than you have billed (a cash flow risk). Both should be monitored and reconciled monthly.
Reports > All Reports > search for "Work in Progress" ↗
Retainage
Retainage Receivable aging
Track how long retainage sits unreleased after substantial completion. Retainage that ages beyond the contractual release period signals a closeout process gap — the project may be operationally complete but financially open.
Change Order Capture
Approved change orders billed vs. unbilled
Track whether approved change orders are included in billing. Unbilled approved change orders represent earned revenue that is not being invoiced — free work. Review change order status against the Continuation Sheet each billing cycle.