Year-End WIP Checklist: 10 Things Every Contractor Must Review

By Martin ยท 2026-02-02

Year-end close is when sloppy WIP practices turn into expensive problems. That job you've been meaning to update the estimate on? If you don't fix it before December 31, you're filing tax returns based on bad numbers. That change order you've been sitting on? If it's not properly documented, your auditor is going to have questions.

I've been through enough year-end closes to know what goes wrong. Controllers scrambling to reconcile billings. PMs suddenly realizing their estimates-to-complete are wildly optimistic. Owners discovering their taxable income is $300K higher than they thought because jobs were under-billed.

This checklist will help you avoid those nightmares. These are the 10 things every contractor needs to review before closing the year. Do them in November or early December, not December 28th. Your CPA, your surety, and your sanity will thank you.

1. Update All Job Estimates to Completion

This is the most important item on the list and the one most contractors get wrong.

Your estimate-to-complete (ETC) determines your revenue recognition under percentage-of-completion accounting. If your ETC is wrong, your revenue is wrong, your profit is wrong, and your tax liability is wrong.

Go through every active job. Talk to the PM. Look at what's been spent so far. Look at what's left to do. Update the budget to reflect reality, not what you hoped for when you started the job.

Common mistakes: PMs are optimistic about how much work is left. They assume productivity will improve. They don't account for known issues that will add cost. They round numbers instead of building detailed bottoms-up estimates.

I worked with a contractor who had a $4.2M job that was 70% complete. Original estimate was $3.6M cost, $600K profit (14% margin). Year-end review revealed the true ETC was $4.1M, which meant the job would make $100K instead of $600K. That's a $500K swing in recognized profit, which flowed straight to taxable income. If they hadn't caught it until after year-end, they would have overstated income by half a million dollars and paid taxes on profit they didn't actually earn.

What to look for: Jobs over 50% complete where the ETC hasn't been updated in 60+ days. Jobs where actual costs are tracking higher than budget without a corresponding ETC increase. Jobs where the PM is saying "everything is fine" but the cost trends don't support that.

2. Review and Resolve All Pending Change Orders

Pending change orders create accounting nightmares at year-end. You've done the work. You've incurred the cost. But you don't have a signed change order, so you're not sure if you can recognize the revenue.

The conservative approach: don't recognize revenue on unsigned change orders unless you have strong evidence collection is probable. The aggressive approach: recognize it all and hope it doesn't get rejected.

The right approach: go through every pending CO before year-end. Get signatures if possible. If you can't get signatures, make a realistic assessment of collectibility and document it. Write off the ones that are clearly dead. Recognize the ones where approval is just a paperwork formality.

I've seen contractors carry $200K-$400K in pending COs on their WIP schedule, treating them as if they're guaranteed revenue. Then half of them get rejected or negotiated down, and suddenly the year-end numbers fall apart.

One mechanical contractor had $180K in pending COs at year-end. After review, $120K was solid (owner had verbally approved, just waiting for paperwork), $35K was questionable (disputed scope), and $25K was probably dead (sub dropped the ball, owner wasn't paying). They recognized $120K, wrote off $25K, and left $35K as a note in the financial statements. Their auditor appreciated the honesty, and their tax return was accurate.

What to look for: COs pending more than 90 days (probably not getting approved). COs where the work is substantially complete but there's no signed paperwork. COs where the owner has disputed the scope or pricing.

3. Reconcile Billings with Accounts Receivable

Your WIP schedule shows billings-to-date. Your accounts receivable aging shows what customers owe you. These numbers should reconcile, but often they don't.

Common discrepancies: billings that went out but weren't recorded in AR. Payments that cleared but weren't applied to the right job. Retainage that's tracked in WIP but not properly separated in AR. Credits or adjustments that hit one system but not the other.

This sounds like basic bookkeeping, but you'd be surprised how often it's wrong. I've seen contractors discover $50K-$100K in unbilled work or unapplied payments during year-end reconciliation.

One GC found $85K in billings from Q2 that were never sent to the customer. The PM thought accounting had billed them. Accounting thought the PM was holding them for some reason. The invoices were sitting in a draft folder. They sent them out in December, but the customer pushed back on the timing and delayed payment into the next year. That cash flow gap could have been avoided if they'd reconciled monthly.

What to look for: Jobs where billings-to-date on the WIP schedule don't match the AR balance for that customer. Large retainage balances that aren't properly tracked. Jobs that are substantially complete but still show open AR from early invoices (probably a collection problem).

4. Calculate Final Over/Under Billings Position

Over-billing and under-billing positions matter for taxes and for how your balance sheet looks.

Over-billed means you've billed more than you've earned under percentage-of-completion. This creates a liability (deferred revenue). Under-billed means you've earned more than you've billed, which creates an asset (unbilled receivables or contract asset).

At year-end, you want to minimize over-billing where possible because it creates taxable income in future periods when you complete the work. You also want to minimize under-billing because it ties up cash you've earned but haven't collected.

I worked with a sitework contractor who discovered they were $320K over-billed across their portfolio at year-end. That meant they'd collected cash for work they hadn't done yet, which sounds good for cash flow but creates a liability that has to be worked off in the next year. Worse, if jobs went badly and margins compressed, that over-billing could turn into a loss when the work was finally completed.

What to look for: Jobs that are heavily over-billed (more than 10% of contract value). This usually happens on front-loaded billing schedules or when jobs slow down but billing continues. Jobs that are heavily under-billed (also more than 10%). This usually means billing has fallen behind or there are disputes delaying invoices.

5. Review Jobs Over 90% Complete for Close-Out Readiness

Jobs that are 90%+ complete should be on a path to close-out. If they're sitting at 92% complete for months, something is wrong.

Common issues: punch list work that's dragging on. Final change orders that aren't resolved. Retainage that's tied up in disputes. Close-out documentation that isn't complete (warranties, as-builts, O&M manuals).

These jobs are a drain on overhead. You're carrying PM time, project management systems, insurance, bonding capacity, all for jobs that are essentially done but not closed.

I've seen contractors carry jobs at 95%+ complete for 6-12 months because nobody was pushing for final completion. Each one of those jobs ties up $50K-$200K in retainage that could be collected. Each one consumes bonding capacity that could be used for new work.

One electrical contractor had seven jobs over 90% complete at year-end, representing $480K in uncollected retainage. We pushed for close-out on all seven. Four closed within 60 days, releasing $310K in cash. The other three had legitimate disputes that took longer, but at least we knew what the issues were and could address them.

What to look for: Jobs that have been over 90% complete for more than 90 days. Jobs where the remaining work is mostly punch list and close-out. Jobs where retainage is being held for unclear reasons.

6. Assess Margin Fade Trends Across Portfolio

Margin fade is when a job starts strong and deteriorates over time. It's insidious because you don't notice it until you're deep into the project.

At year-end, look for patterns. Are jobs consistently starting at 16% projected margin and finishing at 11%? That's a 5-point fade, and it's telling you something about your estimating, project management, or change order process.

I worked with a GC who discovered a consistent margin fade pattern on projects over $5M. Jobs under $5M averaged 14% final margin. Jobs over $5M averaged 8%. The difference? Their estimating on large jobs wasn't accounting for coordination complexity, and their PMs weren't capturing change orders for scope creep.

Once we identified the pattern, we fixed the estimating process and trained PMs on change order documentation. Margin on large jobs improved by 4 points over the next year.

What to look for: Jobs where the projected final margin is significantly lower than the original estimate (3+ points of deterioration). Patterns across job types, sizes, clients, or PMs that show consistent underperformance. Jobs where costs are accelerating in the final 20% of completion (usually means rework or punch list issues).

7. Update Backlog Report

Your backlog is the contracted work you haven't started or haven't completed yet. It's a key metric for sureties, bankers, and buyers if you're ever looking to sell.

At year-end, your backlog report should be clean and current. Remove jobs that have been completed. Add jobs that have been awarded. Update values for change orders that have been approved.

One of the biggest mistakes contractors make is carrying dead or questionable work in backlog. That $2M project that was "awarded" six months ago but still hasn't started? It's probably not happening. Don't count it.

I've seen contractors show $8M in backlog when the reality was closer to $5M because they were counting projects that were on hold, under negotiation, or had been verbally awarded but never contracted.

Sureties notice this. If your backlog report shows jobs that never materialize, they lose confidence in your numbers. That makes bonding harder and more expensive.

What to look for: Jobs in backlog for more than 90 days that haven't started (verify they're actually happening). Jobs in backlog that are mostly complete (move them out). Values that don't reflect approved change orders.

8. Prepare Surety-Ready WIP Presentation

Your surety wants to see year-end WIP, and they want it in a specific format: jobs listed by contract value, cost-to-date, billings-to-date, percent complete, estimated final margin, over/under billings.

Don't wait for them to ask. Prepare it proactively and send it in January. This shows you're on top of your numbers and builds confidence.

Include a narrative summary: how the year went, what the portfolio performance looks like, what the outlook is for next year. Call out any troubled jobs and explain what you're doing to recover them. Sureties appreciate transparency.

I worked with a contractor who sent their surety a detailed year-end WIP package every January without being asked. The surety told them it was one of the reasons they got preferential treatment on bond requests. Most contractors only communicate when they need something. Proactive communication builds trust.

What to look for: Jobs that will raise red flags for the surety (large losses, significant over/under billings, slow-moving projects). Trends the surety will want explained (margin compression, backlog decline, concentration with one client). Opportunities to tell a positive story (consistent performance, strong backlog, good margin trends).

9. Review Retainage Receivable Aging

Retainage is cash you've earned but haven't collected. It's usually 5-10% of each billing, held until project completion or final acceptance.

At year-end, review your retainage aging. How much is current (less than 90 days old)? How much is aged (over 90 days)? How much is on completed projects but still not collected?

Retainage on completed projects should be collected within 30-60 days. If it's sitting unpaid for 6-12 months, there's a problem: a dispute, a punch list issue, missing close-out documents, or a cash-strapped client stalling.

I've seen contractors carry $200K-$500K in aged retainage that they've written off mentally but haven't actually written off on the books. That inflates assets and overstates equity.

One mechanical contractor had $180K in retainage from a project that completed 18 months earlier. The GC was in financial trouble and wasn't paying. They finally wrote it off at year-end, which reduced net income by $180K. If they'd faced reality sooner, they could have pursued lien rights or bond claims while those options were still available.

What to look for: Retainage over 90 days old on completed projects. Retainage on projects with known disputes or client financial problems. Retainage balances that are unusually large relative to contract values (suggests billing terms or disputes).

10. Document Lessons Learned on Completed Jobs

This isn't strictly a financial task, but it has huge financial implications. At year-end, go through every job that completed in the past 12 months and document what went right and what went wrong.

What was the final margin versus the estimate? If there was a variance, what caused it? Estimating error? Execution problems? Scope creep? Client issues? Sub performance?

This documentation becomes the basis for improving estimating and project management in the next year. Contractors who do this consistently get better over time. Contractors who don't keep making the same mistakes.

I worked with a sitework contractor who formalized this process. Every completed job got a lessons-learned review with the PM and estimator. They documented estimating misses, execution issues, client red flags, sub problems. After two years, their estimating accuracy improved dramatically, and their margin variance tightened from +/- 6 points to +/- 2 points.

What to look for: Jobs that finished significantly over or under budget (3+ points of margin variance). Patterns across jobs: certain clients, project types, subs, or site conditions that consistently cause problems. Execution issues that could be fixed with better processes or training.

The Bottom Line

Year-end WIP close is not just an accounting exercise. It's a strategic opportunity to get your financial house in order, identify problems before they become crises, and set yourself up for a strong start to the next year.

Contractors who treat year-end as a checklist to rush through end up with bad tax returns, surety problems, and audit issues. Contractors who take it seriously end up with clean books, accurate numbers, and confidence in their financial position.

Start this process in November. Give yourself time to fix problems, update estimates, resolve change orders, and prepare quality reporting. Don't wait until December 28th and try to do it all in three days.

Your CPA will appreciate getting accurate numbers instead of rushed guesses. Your surety will appreciate proactive communication instead of scrambling to answer questions. And you'll sleep better knowing your financial statements actually reflect reality.

Go through this checklist item by item. If you find issues, fix them now. Year-end is when WIP errors turn into expensive problems. Do the work now, and you'll close the year with confidence. For the full foundation, see our Complete Guide to WIP Reporting.