A lot of contractors focus hard on estimating and almost none on billing.
That is backwards.
You can win the job, do the work well, and still create payment problems if the invoice is unclear, late, or disconnected from the estimate the customer approved.
Download the template: Need a clean billing example? Download the sample contractor invoice PDF.
Related guides:
- Construction Estimate Template: How to Write an Estimate That Wins Jobs and Protects Your Margin
- Construction Change Order Template: How to Manage Change Orders Without Losing Money or Trust
- Landscaping Estimate Template: How to Price Landscaping Jobs Without Guessing
- Progress Invoice Example: 30-40-30 Remodel Schedule
A contractor invoice should answer three questions immediately:
- What am I being charged for?
- How much have I already paid?
- How much is due now and when?
What a contractor invoice should include
Every invoice should include:
| Section | What to include |
|---|---|
| Contractor info | Business name, address, phone, email |
| Customer info | Name, billing address, job address |
| Invoice number | Unique number for tracking |
| Invoice date | Date issued |
| Due date | Exact payment due date |
| Reference | Estimate number, job name, change order reference |
| Itemization | What is being billed |
| Amounts | Subtotal, tax if applicable, total |
| Payment history | Deposit paid, prior payments, current balance due |
| Payment terms | Accepted payment methods and late terms if used |
If you are billing from an estimate or change order, reference it directly.
When to invoice
Billing gets easier when it follows a consistent system.
| Billing type | Best for |
|---|---|
| Deposit plus final invoice | Small jobs |
| Deposit plus progress invoices plus final | Medium to large projects |
| Milestone billing | Remodels, landscape installs, larger scopes |
| Time and materials | Repair work, uncertain scope, service calls |
| Monthly billing | Ongoing contractor or subcontractor work |
Examples:
- 50% deposit, 50% at completion
- 30% deposit, 40% at material delivery, 30% at completion
- Invoice after demo, after rough-in, after final completion
Customers pay faster when they know the billing structure before the job starts.
The difference between an estimate and an invoice
| Document | Purpose |
|---|---|
| Estimate | Proposed price before approval |
| Change order | Approved price change after scope changes |
| Invoice | Bill requesting payment for approved work |
The invoice should follow the approved estimate and any approved change orders.
Step 1: Match your invoice to the approved scope
Before sending an invoice, check:
- What did the customer approve?
- Were there any approved changes?
- What amount has already been paid?
- Are you billing for a milestone, the full job, or the remaining balance?
Example reference lines:
- Invoice for Estimate #214
- Final invoice for patio installation at 124 Elm Street
- Progress invoice 2 of 3
- Invoice includes approved Change Order #214-1
Step 2: Itemize enough to be clear
Example: simple final invoice
| Description | Amount |
|---|---|
| Contract amount per approved estimate | $6,800 |
| Approved change order for extra drainage | $750 |
| Total billed | $7,550 |
| Deposit received on 04/02/2026 | -$3,400 |
| Progress payment received on 04/08/2026 | -$2,000 |
| Balance due | $2,150 |
Example: milestone invoice
| Description | Amount |
|---|---|
| 40% progress billing at completion of framing scope | $4,200 |
| Previous payments | -$2,800 |
| Amount due this invoice | $4,200 |
Be specific about what milestone was reached.
Step 3: Set payment terms that are easy to follow
Examples:
- Due upon receipt
- Due within 7 calendar days
- Final payment due upon substantial completion
- Deposit required before scheduling
- Late fees apply after 10 days if allowed by contract and local law
Use exact dates when possible.
Bad:
- Due next week
Better:
- Due April 18, 2026
Step 4: Track payments visibly
Customers should not need to do the math.
Your invoice should show:
- Total contract or billed amount
- Payments received
- Remaining balance due
Payment tracking example
| Payment date | Amount |
|---|---|
| April 2, 2026 | $2,500 |
| April 10, 2026 | $1,250 |
| April 14, 2026 | $800 |
Total invoiced: $5,900
Total paid: $4,550
Balance due: $1,350
Common contractor billing methods
1. Deposit billing
Useful for material-heavy or short-duration jobs.
2. Progress billing
Useful when the project lasts longer than a few days. Tie the invoice to a milestone.
3. Time and materials billing
Useful when scope is uncertain. Show labor hours, materials used, equipment or trip charges, and service dates.
4. Final billing
Final invoices should reference all prior payments and the remaining balance. This is where many contractors create confusion by failing to subtract deposits clearly.
Sample contractor invoice template
Header
- Company name
- Invoice number
- Invoice date
- Due date
- Customer name
- Job address
Reference
- Estimate number
- Job name
- Change order reference if applicable
Invoice table
| Description | Amount |
|---|---|
| Original contract amount | |
| Approved change orders | |
| Subtotal billed | |
| Payments received | |
| Balance due |
Payment details
- Accepted payment methods
- Where to send payment
- Any due-by language
Real-world contractor billing mistakes
1. Sending the invoice too late
If the work finished Friday and the invoice goes out a week later, momentum is gone.
2. Not referencing the estimate
The customer may not remember the exact number or scope.
3. Forgetting to show prior payments
Nothing frustrates customers faster than an invoice that looks like you ignored their deposit.
4. Billing unapproved extras
If extra work was not approved in writing, billing it on the invoice creates conflict. Use a change order first.
5. Vague descriptions
"Work completed" is weak. Say what phase or scope was completed.
6. No due date
Customers pay slower when the invoice does not state a deadline.
7. Poor mobile readability
A lot of customers open invoices on their phone. If the PDF is messy, the billing process feels less professional.
How to handle disputed invoices
If a customer pushes back, check these questions first:
- Did the invoice match the approved estimate?
- Was there a written change order for extra work?
- Did the invoice show previous payments?
- Was the billed milestone actually reached?
- Were terms clear before the job started?
Most invoice disputes can be traced back to documentation problems upstream.
Invoice example for a landscaping contractor
| Description | Amount |
|---|---|
| Landscape installation per approved estimate | $4,777.50 |
| Optional path lights added per approval | $870.00 |
| Total contract billed | $5,647.50 |
| Deposit received April 5, 2026 | -$2,500.00 |
| Balance due | $3,147.50 |
Invoice example for a general contractor
| Description | Amount |
|---|---|
| Progress invoice for drywall and trim milestone | $8,400 |
| Prior payments received | -$5,000 |
| Amount due this invoice | $8,400 |
A practical workflow: estimate to approval to invoice
- Send estimate with clear scope and payment terms
- Get written acceptance
- Do the work
- Issue change order if scope changes
- Send invoice tied to estimate or change order
- Track payments until the balance is zero
Estimation Builder lets contractors generate invoices directly from accepted estimates or change orders, then track payment dates and amounts while showing total, paid, and due in one place. Because it runs in the browser and works well on mobile, contractors can pull up a job, generate the invoice, and send a PDF without waiting to get back to the office.
Final takeaway
A contractor invoice should not make the customer think hard.
If the invoice clearly references the approved job, shows prior payments, states the amount due now, and includes a real due date, you will usually get paid faster and spend less time chasing balances.
For a clean example, download the sample contractor invoice PDF. If you want invoices generated from accepted estimates and tracked in one place, start Estimation Builder's 30-day free trial. No credit card is required.