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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.