The Short Version
Most residential builders at $500K–$3M treat their QuickBooks like a checkbook. Money in, money out, check the balance. That works until your accountant hands you a P&L that shows $180,000 in profit for a year when you know you barely broke even — or vice versa. The mismatch almost always comes from the same place: billing cycles that don't match project completion. You bill in advance of progress on some jobs, behind progress on others, and your P&L reflects invoices rather than economic reality. WIP accounting — specifically over-billing and under-billing journal entries — is how you fix that. Here's exactly how the entries work.
Sound Familiar?
Signs your QuickBooks WIP accounting needs attention:
- Your P&L shows a profitable month but your bank account didn't grow
- Your accountant asks for a WIP schedule and you send them a job list instead
- You recognize revenue when you send invoices rather than as you complete work
- Your banker asked about overbilling during your last credit line review and you weren't sure what to say
- Your end-of-year tax liability surprises you because your QuickBooks profit didn't match your cash position
What We Found
What Over-Billing and Under-Billing Actually Mean
Over-billing and under-billing are two sides of the same timing problem: the moment you invoice doesn't always match the moment you earn the revenue. On a long-form construction project — a custom home, a major remodel, a commercial tenant improvement — this timing gap can be substantial. WIP accounting exists to correct for it.
Over-billing (Billings in Excess of Costs and Estimated Earnings)
Over-billing happens when you've invoiced your client for more than the percentage of work you've actually completed. You bill 40% of the contract at contract signing, but as of the balance sheet date you've only completed 25% of the work. You've collected money you haven't yet earned. That delta — the 15% of contract value you've billed but not earned — is a liability. You owe the client work. Until you perform it, the cash sitting in your account isn't really profit. It's a future obligation.
In QuickBooks, over-billing is recorded as "Billings in Excess of Costs" — a current liability on your balance sheet. If your financial statements don't include this entry, your revenue is overstated by exactly the amount you've overbilled across all active projects.
Under-billing (Costs and Estimated Earnings in Excess of Billings)
Under-billing is the reverse. You've completed 60% of a project but you've only billed 45%. You've earned revenue you haven't invoiced yet. That delta is an asset — essentially a receivable for work performed but not yet billed. Builders who carry significant under-billing are doing work and deferring cash collection, which creates cash flow strain even on profitable jobs.
In QuickBooks, under-billing is recorded as "Costs in Excess of Billings" — a current asset on your balance sheet. Without this entry, your revenue is understated by the value of completed-but-unbilled work.
Why This Matters for Builders Seeking Bank Credit
Commercial lenders and bonding companies evaluate WIP schedules as standard due diligence. A construction company that can't produce a WIP schedule looks operationally unsophisticated to a lender. More practically: if your balance sheet shows large over-billing without the offsetting liability entry, your debt-to-equity ratio is overstated and your financial statements don't pass basic scrutiny. One detailed post on the Go First blog covers this specifically: construction WIP reports for banking and bonding.
The formula that drives both entries
Both entries are calculated from the same WIP schedule. For each active project:
- Percent complete = Costs incurred to date ÷ Total estimated costs
- Earned revenue to date = Percent complete × Total contract value
- Overbilling = Billings to date − Earned revenue to date (when positive)
- Underbilling = Earned revenue to date − Billings to date (when positive)
These calculations happen outside QuickBooks — typically in a spreadsheet. Then the totals become journal entries that adjust your balance sheet at month end.
The Actual Journal Entries in QuickBooks
Theory is one thing. Here's exactly how the entries work in QuickBooks. I'll use a concrete example.
The scenario
You have two active projects at month end:
- Project A: $200,000 contract. $80,000 costs incurred. Total estimated costs: $160,000. Billed to date: $120,000.
- Project B: $150,000 contract. $45,000 costs incurred. Total estimated costs: $100,000. Billed to date: $50,000.
Project A calculation:
- Percent complete: $80,000 ÷ $160,000 = 50%
- Earned revenue: 50% × $200,000 = $100,000
- Billed: $120,000
- Overbilling: $120,000 − $100,000 = $20,000 (liability)
Project B calculation:
- Percent complete: $45,000 ÷ $100,000 = 45%
- Earned revenue: 45% × $150,000 = $67,500
- Billed: $50,000
- Underbilling: $67,500 − $50,000 = $17,500 (asset)
The journal entries in QuickBooks
For over-billing (Project A):
- Debit: Construction Revenue — $20,000
- Credit: Billings in Excess of Costs (Current Liability) — $20,000
For under-billing (Project B):
- Debit: Costs in Excess of Billings (Current Asset) — $17,500
- Credit: Construction Revenue — $17,500
These entries reduce over-stated revenue on Project A and recognize under-stated revenue on Project B. Your P&L now reflects work actually earned, not just invoices sent.
Reversing entries at the start of the next period
WIP journal entries are adjusting entries — they correct the balance sheet at a point in time and get reversed at the start of the next period. In QuickBooks, you can set journal entries to automatically reverse on the first day of the following month. The reversal zeroes out the WIP accounts, and you recalculate them fresh from the current WIP schedule each month. This prevents WIP balances from accumulating and becoming impossible to reconcile.
Setting up the accounts in QuickBooks
You need two accounts in your QuickBooks chart of accounts:
- Costs in Excess of Billings — Account type: Other Current Asset. This holds the value of work performed but not yet billed.
- Billings in Excess of Costs — Account type: Other Current Liability. This holds the value of amounts billed beyond work performed.
If these accounts don't exist in your chart of accounts, add them before running your first WIP entries. If your chart of accounts needs a broader cleanup, a cost code and chart of accounts audit is often where we start — because WIP entries built on top of a messy COA produce reports nobody can read.
Building a Monthly WIP Schedule Outside QuickBooks
The journal entries are only as accurate as the WIP schedule behind them. The schedule is a separate spreadsheet — outside QuickBooks — that you run monthly before closing the books. It doesn't have to be complicated. For a builder running 4–8 active projects, a simple table with the following columns handles it:
- Project name
- Total contract value (including approved change orders)
- Total estimated cost to complete
- Costs incurred to date (pulled from JobTread or QuickBooks job cost report)
- Percent complete (column 4 ÷ column 3)
- Earned revenue to date (column 5 × column 2)
- Billings to date (pulled from QuickBooks AR)
- Over/under billing (column 7 − column 6)
Run this table at month end. Sum columns 8 separately for positive values (over-billing total) and negative values (under-billing total). Those two totals become your journal entries.
This schedule also tells you something valuable beyond the accounting: it shows which projects are under-billed, meaning you have cash flow recovery available if you bill more aggressively. And it shows which projects are significantly over-billed, meaning your next draw is essentially already spent on committed costs — and you need to be careful about spending it before the work comes in.
I've seen builders run this schedule for the first time and discover $40,000–$90,000 in under-billing they had no idea about. Work they had performed, revenue they had earned, cash sitting on the table because they hadn't invoiced. That's the practical value of WIP accounting beyond the P&L accuracy: it shows you where your cash collection is running behind your production.
If you want to set up the WIP schedule template and QuickBooks account structure together, that's part of the financial systems work we do with builders — building the monthly close process that produces financial statements you can actually use to run the business.
Get Your QuickBooks Built for Real Construction Financials
Book a strategy call to set up WIP accounting, clean your chart of accounts, and build the monthly close process that shows you what you actually earned.
Book a Strategy Call →Frequently Asked Questions
WIP (Work in Progress) journal entries are month-end adjustments that correct your revenue recognition to reflect project completion percentage rather than invoice dates. Over-billing entries reduce revenue and create a current liability for work you've billed but not yet earned. Under-billing entries increase revenue and create a current asset for work you've completed but not yet invoiced. Together they make your P&L reflect economic reality rather than cash timing.
Divide costs incurred to date by total estimated costs to get percent complete. Multiply percent complete by total contract value to get earned revenue. Compare earned revenue to actual billings to date: if billings exceed earned revenue, you're overbilled by that amount; if earned revenue exceeds billings, you're underbilled. Run this calculation for every active project at month end and total the overbilling and underbilling amounts separately for your journal entries.
Add two accounts: 'Costs in Excess of Billings' as an Other Current Asset (for under-billing), and 'Billings in Excess of Costs' as an Other Current Liability (for over-billing). These accounts are zeroed out each month via reversing entries and recalculated fresh from your WIP schedule. Without these accounts, you're recording WIP adjustments to your regular revenue accounts, which makes month-to-month P&L analysis meaningless.
Yes. WIP entries are adjusting entries for a point in time — they correct the balance sheet at month end but should not accumulate. Set them to reverse on the first day of the following month in QuickBooks. This zeroes out the WIP accounts at the start of each period so you can recalculate them fresh from the current month's WIP schedule. Without reversing entries, WIP balances compound and become impossible to reconcile within 2–3 months.