---
title: "Bill for Project Progress"
slug: "bill-for-project-progress"
updated: 2026-05-11T19:14:58Z
published: 2026-05-11T19:14:58Z
---

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

# Bill for Project Progress

<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 · PROJECTS</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">Bill for Project Progress</div><p style="position:relative;font-size:13.5px;color:#B5DEFF;margin:0;line-height:1.65;max-width:540px;opacity:0.85">Bill accurately as work progresses. Create AIA-style pay applications, manage schedules of values, and release retainage when the project is complete.</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/bill-for-project-progress#p1" class="jp" rel="noopener">Set Up Progress Billing </a><a href="/docs/bill-for-project-progress#p2" class="jp" rel="noopener">Create Pay Applications &amp; Release Retainage </a><a href="/docs/bill-for-project-progress#p3" class="jp" rel="noopener">Troubleshoot Progress Billing Issues </a><a href="/docs/bill-for-project-progress#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">Set Up Progress Billing</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">Configure retainage and Application for Payment settings</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">⚠︎ Configure retainage in <b>Settings</b> &gt; <b>Accounting</b> &gt; <b>Application For Payment</b> BEFORE creating the first pay application. Retainage settings can also be overridden per project inside the project record. Changing defaults after billing has started does not retroactively update existing applications.</p></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>Settings</b> &gt; <b>Accounting</b> &gt; <b>Application For Payment</b>. Configure the default settings for how pay applications are generated and formatted.</p><p style="margin:0 0 2px"><b>b.</b> Set the default retainage percentage that will apply to new projects. Choose whether retainage applies to the full contract value or only to work completed.</p><p style="margin:0 0 2px"><b>c.</b> Configure a <b>Retainage Project Label</b> for GL reporting. This label tracks retainage in a separate "Retainage Receivable" asset account. Without this label configured, retainage is not properly tracked in your general ledger.</p><p style="margin:0 0 2px"><b>d.</b> To override the default on a specific project, open the project record and update the retainage percentage for that project only.</p></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">Build or import a schedule of values</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> The schedule of values (SOV) is typically populated from your <b>project estimate</b>. When you sell the estimate, the project labels and line items flow into the SOV automatically. The label hierarchies (parent labels) become the line items on the continuation sheet.</p><p style="margin:0 0 2px"><b>b.</b> To import an SOV from an external source, open the project and go to the billing section. Download the SOV template, fill in line items with descriptions and scheduled values, and upload the file.</p><p style="margin:0 0 2px"><b>c.</b> Review the SOV line items to confirm they match your contract. Each line item should map to a project label so costs and revenue are tracked correctly on the Budget vs. Actual table.</p></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></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">Create Pay Applications &amp; Release 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">Create an application for payment (AIA G702/G703)</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">⚠︎ Always verify the schedule of values is up to date before generating a pay application. Mismatched line items cause rejection by general contractors.</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">⚠︎ Materials must be received in ServiceTitan via a Purchase Order before they can be entered as Stored Materials on a pay application. Unbilled materials not yet received will not be eligible.</p></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 go to the billing section. Click <b>Add Application for Payment</b>.</p><p style="margin:0 0 2px"><b>b.</b> Select the billing period. ServiceTitan pulls in the schedule of values with previous billing totals already calculated.</p><p style="margin:0 0 2px"><b>c.</b> Enter the <b>% Complete</b> or <b>Amount Completed</b> for each line item. The system calculates "Total Completed &amp; Stored to Date," subtracts "Previous Billings," and determines "Current Payment Due." The G702 summary and G703 continuation sheet update automatically.</p><p style="margin:0 0 2px"><b>d.</b> If billing for <b>Stored Materials</b> (inventory purchased but not yet installed), enter the stored materials value for applicable line items. This improves cash flow by allowing recovery of material costs before installation.</p><p style="margin:0 0 2px"><b>e.</b> Review the retainage amounts, then click <b>Save</b>. When ready, finalize the pay application for submission.</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">⚠︎ Do NOT mix job-level invoicing and project-level progress billing on the same project. This causes double-booked revenue — once on the job completion and again on the pay application.</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">⚠︎ Automated commissions (Native Commissions and Configurable Payroll) do NOT process project/AFP invoices. These are non-job invoices with no Sold By field or tech splits. Commission tracking for progress-billed work must be done manually via custom reports and Payroll Adjustments.</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></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 on a completed 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> Upon substantial completion, open the project and go to the <b>Continuation Sheet</b> in the billing section.</p><p style="margin:0 0 2px"><b>b.</b> Use the <b>Collect Retainage</b> feature. Choose whether to release the full retainage amount or a partial amount. Partial release is common in commercial contracts where retainage is released in stages — for example, the majority upon substantial completion and the remainder after the punch list is closed. Confirm the release schedule with your GC or contract terms.</p><p style="margin:0 0 2px"><b>c.</b> Collecting retainage moves the balance from "Retainage Receivable" (Asset) to "Current Due" and generates the final invoice. Until released, retainage does NOT age in standard AR — it sits in a separate retainage bucket.</p><p style="margin:0 0 2px"><b>d.</b> Send the final invoice to the customer or general contractor. The retainage amount now appears as a current receivable in AR aging.</p></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></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">Troubleshoot Progress Billing 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:#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">Progress billing not syncing to accounting</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> Confirm the pay application has been finalized — draft pay applications do not sync to your accounting system.</p><p style="margin:0 0 2px"><b>b.</b> Go to <b>Accounting</b> &gt; <b>Batch/Export Transactions</b> and check for export errors on the project invoice. Common issues include mismatched GL account mappings or connectivity timeouts.</p><p style="margin:0 0 2px"><b>c.</b> Verify that the GL accounts mapped for progress billing revenue and retainage match valid accounts in your accounting software. The retainage account must map to a "Retainage Receivable" asset account, not general AR.</p><p style="margin:0 0 2px"><b>d.</b> Check your accounting integration status at <b>Settings</b> &gt; <b>Integrations</b> &gt; <b>Accounting</b>. If the connection shows an error, try disconnecting and reconnecting, then re-export.</p></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></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">Cash Flow</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Outstanding retainage balance</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">Track across all active projects. A growing retainage balance may signal delays in project completion or release requests.</div><a href="https://go.servicetitan.com/#/Search" target="_blank" class="sl" rel="noopener">Open a project &gt; Financials &gt; Budget vs Actual section ↗</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">Billing Velocity</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Days from work completion to pay app submission</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">Faster submissions mean faster payments. Delays beyond the billing period cost you a full cycle of cash flow.</div><a href="https://go.servicetitan.com/#/Search" target="_blank" class="sl" rel="noopener">Open a project &gt; Financials &gt; Application for Payment section ↗</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">Accuracy</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Pay application rejection rate</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">Rejected pay apps delay revenue. Common causes include mismatched SOV line items and incorrect retainage calculations.</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">Completeness</div><div style="font-size:12.5px;font-weight:600;color:#1a1a1a;margin:0 0 4px">Accounting sync success rate</div><div style="font-size:11.5px;color:#6A7A85;line-height:1.55;margin:0 0 8px">Check export history for failed syncs. Every failed export means revenue is missing from your books until resolved.</div><a href="https://go.servicetitan.com/#/new/accounting/invoicing/unbatched" target="_blank" class="sl" rel="noopener">Accounting &gt; Batch/Export Transactions ↗</a></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>
