Key Takeaways
- Software studio WIP is the value of work delivered but not yet invoiced — it sits on the balance sheet as an asset under accrual accounting, while the corresponding credit flows through the income statement as unbilled revenue.
- WIP and unbilled revenue are related but distinct: WIP is the balance sheet account; unbilled revenue is the income statement recognition of earnings before an invoice is issued.
- Under ASC 606, a contract asset arises when revenue is recognized but the right to payment remains conditional on something other than the passage of time — such as completing a milestone.
- On fixed-fee projects, hours worked beyond the contracted scope do not increase billable WIP; they increase delivery cost and reduce margin.
- WIP aging beyond 90 days is a signal worth investigating: it typically indicates a billing delay, a disputed deliverable, or scope that was never contractually approved.
Software studio WIP is the value of work your team has delivered to a client that has not yet appeared on a final invoice. Under accrual accounting, that delivered work is an asset — it represents future cash you've earned — and it belongs on your balance sheet the moment the work is done, not the moment you send the invoice. The income statement counterpart is unbilled revenue: the credit that recognizes earnings before billing occurs.
This guide covers how to record WIP correctly under milestone contracts, how to distinguish a contract asset from unbilled accounts receivable, and what happens to your books at each stage of a milestone billing cycle. It stays within the scope of software studio milestone contracts; for time-and-materials consulting WIP, see Consulting WIP Accounting: How to Record and Manage Unbilled Revenue. For construction progress billing, see Construction WIP Accounting: Progress Billing, Over- and Under-Billings Explained.
What Is WIP in a Software Studio?
WIP — work in progress — is delivered work that has not yet been included on a final client invoice. As Deltek's Ajera documentation puts it: "Although the work was already completed or the expenses were already incurred, it is called work-in-progress because it is in progress of being billed."
In a software studio context, WIP accumulates when:
- Engineers log hours against a project between milestone dates
- Subcontractors or vendors deliver work that feeds into a client deliverable
- A phase is completed but the contractual billing trigger hasn't been reached yet
Under accrual accounting, WIP is recognized as an asset on the balance sheet. The change in WIP during a period flows through the income statement as revenue — specifically as unbilled revenue — so your financials reflect what you've earned, not just what you've invoiced.
Under cash-basis accounting, none of this applies: no entries are made to WIP, unbilled revenue, or accounts receivable until cash is received. Most studios above a certain scale operate on accrual, and any studio seeking outside investment or preparing for an audit will need to.
WIP vs. Unbilled Revenue: What's the Difference?
These terms are often used interchangeably, but they refer to different sides of the same transaction:
| Term | Where It Lives | What It Represents |
|---|---|---|
| WIP | Balance sheet (asset) | The receivable value of delivered, uninvoiced work |
| Unbilled revenue | Income statement (revenue) | The earnings recognized before an invoice is issued |
| Accounts receivable | Balance sheet (asset) | The right to payment once an invoice has been sent |
| Contract asset | Balance sheet (asset) | Revenue recognized where the payment right is still conditional |
As NetSuite's professional services accounting guide notes: "Unbilled revenue is not the same as WIP, which refers to the value of work initiated but not completed." In practice, the two accounts move together — but they are distinct line items, and conflating them creates reporting errors.
How Does a Software Studio Record WIP?
The journal entry pattern for software studio WIP under accrual accounting follows a two-step sequence: recognize when work is delivered, then reclassify when the invoice goes out.
Step 1 — Work is delivered, not yet invoiced:
Debit: WIP (or Contract Asset) $X
Credit: Unbilled Revenue (or Services Revenue) $X
Step 2 — Invoice is issued to the client:
Debit: Accounts Receivable $X
Credit: WIP (or Contract Asset) $X
Step 3 — Payment is received:
Debit: Cash $X
Credit: Accounts Receivable $X
This three-step flow is consistent with ASC 606 guidance on contract assets and receivables: recognize revenue when performance obligations are satisfied, carry the balance as a contract asset until the right to payment becomes unconditional, then reclassify to accounts receivable.
Hypothetical Example: Two-Milestone Fixed-Fee Project
The following is a hypothetical illustration. Inputs are not observed benchmarks.
Consider a hypothetical studio with a $60,000 fixed-fee contract to build a custom platform, structured as two milestones: $30,000 at Month 6 (first iteration complete) and $30,000 at Month 12 (final delivery), consistent with the milestone structure described by DealHub.
At Month 6, the first iteration is delivered but not yet invoiced:
| Event | Debit | Credit |
|---|---|---|
| Deliver first milestone (hypothetical) | WIP / Contract Asset: $30,000 | Services Revenue: $30,000 |
| Issue invoice for first milestone (hypothetical) | Accounts Receivable: $30,000 | WIP / Contract Asset: $30,000 |
| Receive payment (hypothetical) | Cash: $30,000 | Accounts Receivable: $30,000 |
At Month 12, the same three-entry sequence repeats for the second $30,000 milestone (hypothetical): deliver the final phase, issue the invoice to clear WIP into AR, then receive payment. At no point does the studio carry both a WIP asset and an accounts receivable for the same work — the reclassification from WIP to AR happens when the invoice is issued.
What Is the Difference Between a Contract Asset and Unbilled AR?
This is the question that trips up most studios, and the answer comes directly from ASC 606.
Unbilled accounts receivable (sometimes called unbilled AR) is work you've delivered and earned the right to bill — the only thing missing is the invoice itself. The right to payment is unconditional; you could send the invoice today.
A contract asset is different. It arises when revenue qualifies for recognition, but the right to payment still depends on meeting another contractual condition — typically completing a subsequent milestone or obtaining client sign-off. As Accelo's WIP accounting guide explains: "Finance records the $10,000 as revenue and a contract asset. Once that condition is met and the payment right becomes unconditional, Finance transfers the balance from the contract asset to accounts receivable."
The practical test: Can you send the invoice right now and have a legal right to collect?
- Yes → Unbilled AR (reclassify to AR immediately upon invoicing)
- No, because a condition remains → Contract asset (stays there until the condition is met)
| Scenario | Classification | When It Moves to AR |
|---|---|---|
| Work delivered; invoice not yet sent; no conditions remain | Unbilled AR | When invoice is issued |
| Work delivered; payment conditional on next milestone | Contract asset | When milestone condition is satisfied |
| Work delivered; client approval still required | Contract asset | When approval is received |
| Invoice sent; payment outstanding | Accounts receivable | When cash is received |
Under IFRS 15, the same logic applies: the distinction depends on whether any conditions remain before the organization has an unconditional right to payment, not simply whether it has issued an invoice.
How Does WIP Interact With Milestone Billing?
Milestone billing creates a timing gap between when work is delivered and when an invoice can legally be issued. That gap is exactly what WIP accounting is designed to capture.
In practice, a software studio working toward a milestone accumulates WIP throughout the delivery period. Each week that engineers log hours against the project, the WIP balance grows. When the milestone is reached and the invoice goes out, WIP is cleared and accounts receivable is created.
The critical accounting question at each close is: How much of the work delivered this period qualifies for revenue recognition?
Under ASC 606, revenue recognition depends on fulfilling performance obligations in the client agreement — not on consuming the project budget. As Accelo notes: "A project could consume half its budget because work took longer or required more expensive resources than planned. That does not necessarily mean half the promised services have been delivered, or that half the fee can be recognized as revenue."
This matters especially on fixed-fee projects. If your team spends more hours than planned reaching a milestone, those extra hours increase your delivery cost — they do not increase the billable amount. A WIP calculation that treats every hour as additional billable value will overstate the asset and obscure a cost overrun.
What Happens Between Milestones?
Between milestone dates, the studio has two choices for how to handle WIP in the monthly close:
Accrue WIP monthly based on percentage of completion or hours delivered. This keeps the P&L current and the balance sheet accurate at every close. It requires a reliable method for estimating completion — typically hours logged vs. hours budgeted, or deliverables completed vs. total deliverables.
Recognize revenue only at milestone dates. Simpler to administer, but it creates lumpy revenue that doesn't reflect the actual pace of delivery. For studios with multiple concurrent projects, this can make monthly financials misleading.
Most studios with more than a handful of active projects benefit from monthly WIP accrual. It produces a cleaner close, more accurate project profitability, and fewer surprises at milestone billing dates. For a structured approach to the close process, see Month-End Close Calendar Template: Day-by-Day Schedule.
How Does WIP Affect the Balance Sheet and P&L?
WIP sits on the balance sheet as a current asset — alongside accounts receivable, but distinct from it. The income statement impact is the credit to unbilled revenue (or services revenue) that is recorded when WIP is created.
Here is how the accounts move across a typical milestone cycle:
| Period | Balance Sheet | Income Statement |
|---|---|---|
| Work delivered, not yet invoiced | WIP ↑ (asset increases) | Unbilled revenue ↑ (revenue recognized) |
| Invoice issued at milestone | WIP ↓, AR ↑ (reclassification) | No P&L impact at invoicing |
| Payment received | AR ↓, Cash ↑ | No P&L impact at collection |
| WIP written off (uncollectable) | WIP ↓ | Write-off expense ↑ |
The write-off scenario is worth noting. If WIP is determined to be uncollectable — because the client disputes the work, the project is cancelled, or the hours were never contractually approved — the WIP balance must be credited and a write-off account debited. Deltek's documentation shows this entry explicitly: WIP is credited and a write-off account is debited for the same amount.
WIP aging is a useful signal here. Projects with WIP that is 90 days or older prompt the question: why has this WIP not been billed? The answer is usually one of three things: a billing delay, a disputed deliverable, or work that was never contractually approved and may need to be written off.
Fixed-Fee Projects: Where WIP Accounting Gets Complicated
Fixed-fee software projects introduce a specific risk that time-and-materials projects don't: the billable amount is capped regardless of hours delivered.
As Accelo's guide explains: "If a $50,000 engagement takes more hours than planned, the extra effort increases delivery cost and reduces margin. It does not increase the agreed fee unless the contract or an approved change allows an additional charge. A WIP calculation that includes those hours as extra billable value could therefore overstate future invoices while obscuring a cost overrun."
In practice, this means your WIP balance on a fixed-fee project should be capped at the contract value allocated to the work delivered — not at hours × billing rate. Consider a hypothetical studio that has logged 600 hours at $150/hour against a $60,000 fixed-fee contract: the WIP is not $90,000 — it is the portion of the $60,000 that corresponds to the work completed. (Hypothetical illustration; not an observed benchmark.)
For a deeper look at how fixed-fee revenue recognition works across the full project lifecycle, see Fixed-Fee Software Project Revenue Recognition: A Practical Reference.
WIP in the Monthly Close: What to Review
At each monthly close, the WIP review for a software studio should cover:
- Completeness — Is all delivered work captured? Hours logged, subcontractor invoices received, and expenses incurred should all be reflected in WIP before the close is finalized.
- Valuation — Is the WIP balance capped at the contractually billable amount? On fixed-fee projects, hours beyond budget do not increase WIP.
- Classification — Is each WIP item correctly classified as unbilled AR (unconditional right to bill) or contract asset (condition still outstanding)?
- Aging — Are any WIP items older than 90 days? If so, what is the reason, and is a write-off warranted?
- Reconciliation — Does the WIP balance reconcile to the project management system? Discrepancies between the accounting system and the project tracker are a common source of close errors.
A structured close process that includes WIP review produces more accurate monthly financials and fewer billing surprises. For a view of what a well-structured close looks like in practice, see Laya's sample close.
Frequently Asked Questions
What is the difference between WIP and unbilled revenue for a software studio?
WIP is the balance sheet asset representing delivered, uninvoiced work. Unbilled revenue is the income statement credit recognized when that work is recorded. They are created together in the same journal entry — WIP is debited and unbilled revenue is credited — and both are cleared when the invoice is issued.
When does a contract asset become accounts receivable?
A contract asset becomes accounts receivable when the right to payment is no longer conditional. Under ASC 606, if revenue has been recognized but payment depends on completing another milestone or obtaining client approval, the balance stays as a contract asset until that condition is met. Once it is met and the invoice is issued, the balance moves to AR.
Can WIP exceed the contract value on a fixed-fee project?
No — not correctly. On a fixed-fee project, WIP should be capped at the portion of the contract value attributable to work delivered. Hours logged beyond the contracted scope increase delivery cost and reduce margin, but they do not create additional billable WIP unless a change order has been approved.
What happens to WIP if a project is cancelled before a milestone is reached?
If a project is cancelled and the WIP balance is determined to be uncollectable, the WIP account is credited and a write-off account is debited for the same amount. The revenue previously recognized must also be reversed if it no longer meets the recognition criteria under ASC 606.
Laya provides this content for informational purposes only. This material does not constitute tax, legal, or accounting advice. Please consult your own tax, legal, and accounting advisors before engaging in any transaction.
If your studio's WIP balance isn't reconciling cleanly at each close, or you're unsure how to classify contract assets vs. unbilled AR, book an intro with Laya to see how we structure the close for software and web studios.
Disclaimer: This article is for general informational purposes only and does not constitute financial, tax, legal, or accounting advice. The information provided is not a substitute for consultation with a qualified professional. Consult a licensed accountant, CPA, or financial advisor for advice specific to your situation.