---
title: "Invoice Your Customers"
slug: "invoice-your-customers-3"
updated: 2026-05-11T19:06:12Z
published: 2026-05-11T19:06:12Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://help.servicetitan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Invoice Your Customers

<editor360-custom-block data-preprocessing="true" data-sanitizationtags="b,svg,polyline,style"><div class="sc" style="max-width:960px;margin:0 auto;padding:0 0 3rem;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#1a1a1a"><div style="border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#0d1b35 0%,#162a4a 60%,#0f2040 100%);padding:32px 32px 28px;margin:0 0 16px;border-top:3px solid #3892F3;position:relative;"><div style="position:absolute;top:-60px;right:-60px;width:320px;height:320px;background:radial-gradient(circle,rgba(2,101,220,0.18) 0%,transparent 70%);pointer-events:none;"></div><div style="position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;border-radius:12px;"></div><div style="position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:20px;background:rgba(2,101,220,0.18);border:1px solid rgba(56,146,243,0.4);margin:0 0 16px"><span class="hb">SERVICETITAN · INVOICING</span></div><div style="position:relative;font-size:24px;font-weight:800;color:#ffffff;line-height:1.25;margin:0 0 10px;max-width:520px;letter-spacing:-0.01em">Invoice Your Customers</div><p style="position:relative;font-size:13.5px;color:#B5DEFF;margin:0;line-height:1.65;max-width:540px;opacity:0.85">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.</p></div><div style="display:flex;align-items:center;gap:8px;margin:0 0 16px;flex-wrap:wrap"><span style="font-size:11px;color:#6A7A85;font-weight:500">Jump to:</span><a href="/docs/invoice-your-customers-3#p1" class="jp" rel="noopener">Create &amp; Bill </a><a href="/docs/invoice-your-customers-3#p2" class="jp" rel="noopener">Manage Retainage </a><a href="/docs/invoice-your-customers-3#p3" class="jp" rel="noopener">Review, Post &amp; Export Invoices </a><a href="/docs/invoice-your-customers-3#p4" class="jp" rel="noopener">Troubleshoot Commercial Invoice Issues </a><a href="/docs/invoice-your-customers-3#kpi" class="jp" rel="noopener">Measure Impact </a></div><div id="p1" style="margin:20px 0 8px;padding:10px 14px;background:#E3FCFF;border-radius:8px;border-left:4px solid #038299"><div style="font-size:14px;font-weight:700;color:#038299">Create &amp; Bill</div></div><div style="display:flex;flex-direction:column;gap:6px"><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#E3FCFF;color:#038299;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Create an Application for Payment</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Open the project and navigate to the <b>Financials</b> section. Click <b>Actions</b> &gt; <b>Add Application for Payment</b> 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.</p><p style="margin:0 0 2px"><b>b.</b> For each line item, enter the <b>Percentage Complete</b> or <b>Amount Completed</b> for this billing cycle. The system automatically calculates: Total Completed and Stored to Date, minus Previous Billings, equals Current Payment Due.</p><p style="margin:0 0 2px"><b>c.</b> If retainage is enabled, the system automatically withholds the configured percentage from the current billing amount. Verify the retainage calculation is correct before finalizing.</p><p style="margin:0 0 2px"><b>d.</b> If billing for stored materials, add the materials to the <b>Stored Materials</b> column. Materials must have been received in the system (via PO) to be eligible.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/create-a-progress-invoice-based-on-application-for-payment" target="_self" translate="no" class="sl" rel="noopener"><u>Create a progress invoice based on Application for Payment</u></a><a href="/v1/docs/manage-double-rev-from-combining-progress-billing-with-afp" target="_self" translate="no" class="sl" rel="noopener"><u>Manage double counting revenue from combining progress billing with AFP</u></a></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#E3FCFF;color:#038299;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Review and send the pay application</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Preview the <b>AIA G702</b> (Summary) and <b>G703</b> (Continuation Sheet) documents. Verify the math: Total Completed and Stored, minus Retainage, minus Previous Billings, equals Current Payment Due.</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> 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.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/progress-billing-overview-and-setup" target="_self" translate="no" class="sl" rel="noopener"><u>Progress billing overview and setup</u></a></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#E3FCFF;color:#038299;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Account for change orders in billing</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> 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.</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> Track approved vs. pending change orders. Only approved change orders should be billed — billing for pending change orders before approval creates contract disputes.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div></div></div></div></div><div id="p2" style="margin:20px 0 8px;padding:10px 14px;background:#E0F2FF;border-radius:8px;border-left:4px solid #004491"><div style="font-size:14px;font-weight:700;color:#004491">Manage Retainage</div></div><div style="display:flex;flex-direction:column;gap:6px"><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#E0F2FF;color:#004491;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Configure retainage before the first bill</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Enable retainage in <b>Project Settings</b> before creating the first Application for Payment. Define the default retainage percentage (typically 5–10%).</p><p style="margin:0 0 2px"><b>b.</b> Map the retainage to a dedicated <b>Retainage Receivable</b> GL account — not your general Accounts Receivable account. This ensures withheld funds are tracked separately on the balance sheet.</p><p style="margin:0 0 2px"><b>c.</b> Verify the retainage label is configured for GL reporting. Without this label, retainage is not properly categorized in your accounting exports.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/set-up-retainage-based-on-application-for-payment" target="_self" translate="no" class="sl" rel="noopener"><u>Set up retainage based on Application for Payment</u></a><a href="/v1/docs/bill-for-retainage-based-on-application-for-payment" target="_self" translate="no" class="sl" rel="noopener"><u>Bill for retainage based on Application for Payment</u></a></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#E0F2FF;color:#004491;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Release retainage at project completion</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> When the project reaches substantial completion, open the project and navigate to the AFP section. Use the <b>Collect Retainage</b> feature in the Continuation Sheet.</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> Send the final invoice to the customer. After payment is received, post and export the payment through the standard batch workflow.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div></div></div></div></div><div id="p3" style="margin:20px 0 8px;padding:10px 14px;background:#F1EDFF;border-radius:8px;border-left:4px solid #4F3A9E"><div style="font-size:14px;font-weight:700;color:#4F3A9E">Review, Post &amp; Export Invoices</div></div><div style="display:flex;flex-direction:column;gap:6px"><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#F1EDFF;color:#4F3A9E;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Review project invoices before batching</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Go to <b>Accounting</b> &gt; <b>Invoices</b>. Progress billing invoices appear alongside standard job invoices. Use filters to identify project-level invoices by project name or date range.</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> Change the <b>Review Status</b> to <b>Reviewed</b> when satisfied. Assign invoices for review by selecting them and clicking <b>Actions</b> &gt; <b>Assign invoices to</b>.</p></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/review-invoices-before-batching" target="_self" translate="no" class="sl" rel="noopener"><u>Review invoices before batching</u></a></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#F1EDFF;color:#4F3A9E;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Batch, post, and export</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Go to <b>Accounting</b> &gt; <b>Batch/Export Transactions</b>. Create a new batch or select an existing one. Add unbatched invoices to the batch.</p><p style="margin:0 0 2px"><b>b.</b> Review the batch contents. Confirm line items, totals, business unit assignments, and GL mappings are correct.</p><p style="margin:0 0 2px"><b>c.</b> Click <b>Post</b> to post the batch. Posting locks the invoices and creates the accounting entries.</p><p style="margin:0 0 2px"><b>d.</b> After posting, export the batch to your accounting software (QuickBooks Desktop, QuickBooks Online, Intacct, or Xero) — or use <b>Bypass Export</b> if you don't use an accounting integration.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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 <b>Settings</b> &gt; <b>Accounting</b> &gt; <b>Journal Entries and Auto-Batching</b>.</p></div><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/batch-post-and-export-transactions" target="_self" translate="no" class="sl" rel="noopener"><u>Batch, post, and export transactions</u></a><a href="/v1/docs/bypass-exporting-a-batch-to-accounting-software" target="_self" translate="no" class="sl" rel="noopener"><u>Bypass exporting a batch to accounting software</u></a></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#F1EDFF;color:#4F3A9E;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Correct a posted or exported invoice</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> If the invoice is <b>Pending</b>, edit it directly — adjust line items, then save.</p><p style="margin:0 0 2px"><b>b.</b> If the invoice is <b>Posted</b> but not exported and the accounting period is open, go to <b>Accounting</b> &gt; <b>Batch/Export Transactions</b>, find the batch, and click <b>Unpost</b>. Make corrections, then re-post.</p><p style="margin:0 0 2px"><b>c.</b> If the invoice is <b>Exported</b>, it is permanently locked. Open the original invoice and click <b>Add an adjustment invoice</b>. Add corrective line items. The adjustment invoice must be batched, posted, and exported separately.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/how-to-void-or-cancel-an-invoice" target="_self" translate="no" class="sl" rel="noopener"><u>How to void or cancel an invoice</u></a><a href="/v1/docs/create-an-adjustment-invoice" target="_self" translate="no" class="sl" rel="noopener"><u>Create an adjustment invoice</u></a></div></div></div></div></div><div id="p4" style="margin:20px 0 8px;padding:10px 14px;background:#FEF3E2;border-radius:8px;border-left:4px solid #8B5E0F"><div style="font-size:14px;font-weight:700;color:#8B5E0F">Troubleshoot Commercial Invoice Issues</div></div><div style="display:flex;flex-direction:column;gap:6px"><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#FEF3E2;color:#8B5E0F;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Troubleshoot — GC rejects the pay application</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> 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.</p><p style="margin:0 0 2px"><b>b.</b> Correct the issue in ServiceTitan. If the pay application invoice is still in <b>Pending</b> status, edit it directly. If it has been posted, unpost the batch first (if the accounting period is open) or create an adjustment invoice.</p><p style="margin:0 0 2px"><b>c.</b> Resubmit the corrected pay application with the required documentation. Track resubmission dates to avoid payment term delays.</p></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#FEF3E2;color:#8B5E0F;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Troubleshoot — Revenue not showing on WIP report</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Check the project's revenue recognition method. If set to <b>Percentage of Completion</b>, the project shows no recognized revenue until the <b>Completion Percent</b> 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.</p><p style="margin:0 0 2px"><b>b.</b> Verify the project has a <b>start date</b>. Projects without a start date may be excluded from the WIP report entirely.</p><p style="margin:0 0 2px"><b>c.</b> Confirm the project invoices have been <b>posted</b>. Unposted invoices do not appear in accounting or WIP reports.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#FEF3E2;color:#8B5E0F;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Troubleshoot — Retainage balance does not match expectations</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> Compare the <b>Retainage Receivable</b> GL account balance against the retainage summary on the project's AFP history. These should match.</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> 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.</p><p style="margin:0 0 2px"><b>d.</b> After retainage release, confirm the final invoice was posted and exported. Unposted release invoices leave stale retainage balances on the books.</p></div></div></div></div><div class="st" style="border:1px solid #D0D8DD;border-radius:8px;padding:10px 14px"><div style="display:flex;align-items:flex-start;gap:10px"><div class="sn" style="min-width:24px;height:24px;border-radius:6px;background:#FEF3E2;color:#8B5E0F;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0"></div><div style="flex:1"><div style="font-size:13.5px;font-weight:600;color:#1a1a1a;margin:0 0 1px">Troubleshoot — Double-booked revenue on a project</div><div style="font-size:13px;color:#374151;line-height:1.7;margin:6px 0 0;padding-left:1em"><p style="margin:0 0 2px"><b>a.</b> 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).</p><p style="margin:0 0 2px"><b>b.</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.</p><p style="margin:0 0 2px"><b>c.</b> To fix existing double-booked revenue, void or create adjustment invoices for the duplicate entries. Going forward, enforce a single billing method per project.</p><div style="padding:5px 10px;background:#EAEFF2;border-left:3px solid #8C9CA5;border-radius:6px;margin:4px 0 4px"><p style="font-size:12px;color:#4B5563;margin:0;line-height:1.5">⚠︎ 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.</p></div></div><div style="margin:6px 0 0;padding-top:5px;border-top:1px solid #DFE0E1"><a href="/v1/docs/manage-double-rev-from-combining-progress-billing-with-afp" target="_self" translate="no" class="sl" rel="noopener"><u>Manage double counting revenue from combining progress billing with AFP</u></a></div></div></div></div></div><div id="kpi" style="margin:24px 0 12px"><div style="display:flex;align-items:center;gap:8px;margin:0 0 12px"><svg width="15" height="15" viewbox="0 0 24 24" fill="none" stroke="#004491" stroke-width="2.5"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg><div style="font-size:13px;font-weight:700;color:#004491;text-transform:uppercase;letter-spacing:0.06em">Measure the impact</div></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:8px"><div style="padding:14px 16px;border-radius:10px;background:#fff;border:1px solid #DFE0E1;border-top:3px solid #0265DC;"><div style="font-size:11px;font-weight:700;color:#0265DC;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 6px">Billing Cycle</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Days from billing date to pay application sent</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">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.</div></div><div style="padding:14px 16px;border-radius:10px;background:#fff;border:1px solid #DFE0E1;border-top:3px solid #0265DC;"><div style="font-size:11px;font-weight:700;color:#0265DC;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 6px">WIP Accuracy</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Overbilling and underbilling variance</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">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.</div><a href="https://go.servicetitan.com/#/new/reports/all" target="_blank" class="sl" rel="noopener">Reports &gt; All Reports &gt; search for "Work in Progress" ↗</a></div><div style="padding:14px 16px;border-radius:10px;background:#fff;border:1px solid #DFE0E1;border-top:3px solid #0265DC;"><div style="font-size:11px;font-weight:700;color:#0265DC;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 6px">Retainage</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Retainage Receivable aging</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">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.</div></div><div style="padding:14px 16px;border-radius:10px;background:#fff;border:1px solid #DFE0E1;border-top:3px solid #0265DC;"><div style="font-size:11px;font-weight:700;color:#0265DC;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 6px">Change Order Capture</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Approved change orders billed vs. unbilled</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">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.</div></div></div></div><style> .sc { counter-reset: step } .sn { counter-increment: step } .sn::before { content: counter(step) } .hb { font-size: 10.5px; font-weight: 700; color: #78BBFA; letter-spacing: 0.08em } .jp { font-size: 11.5px; font-weight: 600; color: #374151; text-decoration: none; padding: 5px 13px; background: #fff; border: 1px solid #D0D8DD; border-radius: 20px; transition: all 0.15s } .jp:hover { background: #E0F2FF; border-color: #B5DEFF; color: #004491 } .st { transition: box-shadow 0.15s, border-color 0.15s } .st:hover { border-color: #B5DEFF !important; box-shadow: 0 2px 12px rgba(2, 101, 220, 0.07) } .sl { font-size: 10.5px; color: #0265DC; text-decoration: none; margin-right: 6px } .sl:hover { text-decoration: underline } .sl+.sl::before { content: "· "; color: #D0D8DD } p[data-block-id] { font-size: 1rem; } ul li p[data-block-id] { margin-bottom: 0; } ul[data-type="taskList"] li div p[data-block-id] { margin-bottom: 0; } ol li p[data-block-id] { margin-bottom: 0; } table tbody th p[data-block-id] { margin-bottom: 0; } blockquote p[data-block-id] { margin-bottom: 0 !important; } p[data-block-id]:empty::after { content: "\00A0"; } </style></div></editor360-custom-block>
