What is Contract Liability?
Before you recognize revenue, you need to fulfill your promises. That’s where contract liability comes in.
In both accounting standards and legal terms, a contract liability is defined as:
“An entity’s obligation to transfer goods or services to a customer for which the entity has received consideration (or an amount is due) but has not yet satisfied the related performance obligation.”
In layman’s terms: If a customer pays you upfront, or even just agrees to pay, you owe them something. Until you deliver that product or service, that money sits on your books as a liability, not revenue. It’s your promise in financial form.
Whether it’s a software subscription paid in advance for a year’s access or a custom order still in production, contract liability shows what you still need to deliver.
Synonyms
- Deferred revenue
Contract Liability Under ASC 606 and IFRS 15
Depending on whether you operate in the US or internationally, your company will follow one of two major accounting standards for revenue recognition: ASC 606 or IFRS 15.
ASC 606
Under ASC 606, a contract liability happens when the customer pays (or when you have an unconditional right to receive payment) before you’ve delivered the goods or services. In practice, this is what we call “deferred revenue” or “unearned revenue” on the balance sheet.
For example, if a customer prepays for a 12-month software subscription, you recognize that upfront payment as a contract liability and release it as revenue monthly over the contract term. You’d do something similar as a service business with upfront payments for project milestones.
IFRS 15
IFRS 15 follows the same five-step model for revenue recognition as ASC 606 and treats contract liabilities similarly. But the key difference is that IFRS 15 is principles-based, while ASC 606 is rules-based.
What does “principles-based” mean in a real context?
It means IFRS gives you general guidelines and expects companies to assess things like performance obligations, delivery timing, and transfer of control based on the economic substance of the transaction.
Let’s say two software companies sell a license. One offers a downloadable product the customer can use immediately. Another offers ongoing access via the cloud, with continuous updates and support.
The timing of control transfer determines when you reduce your contract liability and recognize revenue. For the downloadable product, if control transfers at the moment of download, the contract liability is short-lived. For the cloud-based SaaS, control transfers over time as the service is delivered
That’s what makes IFRS “principles-based.” You’re required to interpret the nature of the promise (and document that interpretation), not just follow a rigid rule about timing or invoicing.
Contract Liability as Deferred Revenue
In practice, “contract liability” and “deferred revenue” usually mean the same thing, especially in industries like software and professional services. Both terms refer to money you’ve received (or are owed) for goods or services you haven’t delivered yet.
- Deferred revenue is the older, more traditional term used on financial statements.
- Contract liability is the updated term introduced by ASC 606 and IFRS 15 to better align with modern revenue recognition standards.
You’ll still see “deferred revenue” on the balance sheet, especially in U.S. GAAP filings, but the underlying accounting follows the contract liability model set by ASC 606 and IFRS 15.
Recording Contract Liability
Now, for revenue reporting purposes, let’s take a look at how you can record a contract liability on your books.
Recognition triggers
You record a contract liability when:
- A customer pays you before you the promised goods or services, OR
- You have an unconditional right to receive payment (i.e., you’ve invoiced the customer), even if they haven’t paid yet.
In both cases, the key is this: The customer owes you money, but you still owe them the product or service. Until you fulfill your performance obligation, that money sits on your balance sheet as a liability.
Contract liability journal entry examples
Let’s say you have a service contract. Someone pays you a $1,000 refundable deposit for a service to be delivered later. The contract allows the customer to cancel before delivery.
You haven’t performed yet, so you recognize a contract liability, not revenue.
Dr. Cash $5,000
Cr. Accounts Receivable $5,000
Once you deliver the service, revenue is earned.
Dr. Contract Liability $5,000
Cr. Revenue $5,000
Now, what if that customer were to sign a non-cancellable $5,000 contract to deliver services next month? You invoice now, then payment and delivery follow.
When you send the invoice, you now have accounts receivable.
Dr. Accounts Receivable $5,000
Cr. Contract Liability $5,000
And upon delivery, the same thing happens because again, revenue is earned.
Dr. Contract Liability $5,000
Cr. Revenue $5,000
Balance sheet presentation
Contract liabilities show up on the liabilities side of your balance sheet, not on your statement of profit or loss. They usually appear under “current liabilities” if you expect to fulfill the obligation within 12 months, or “non-current liabilities” for long-term contracts extending beyond a year.
Even though the word “revenue” is in the name, deferred revenue doesn’t hit your profit and loss statement until you’ve earned it. The P&L only reflects revenue that matches performance, not just cash inflows.
B2B Examples of Contract Liability
Contract liability is particularly important in software, professional services, construction, and manufacturing because these businesses collect payment before delivering their products and services. In SaaS, that’s monthly and annual subscriptions. In professional services, it’s retainers and milestone-based projects. In manufacturing, it’s down payments and fulfillment.
But since there are inherent differences in how these different companies deliver value, there are also are differences between how each recognizes contract liabilities and revenue.
SaaS subscription
When you get paid upfront for a one-year subscription, that money is a contract liability from day one. Each month, as you deliver that service, you reduce the liability by one-twelfth and recognize an additional one-twelfth of that revenue.
Manufacturing deposit
When a customer pays a deposit before you start production, it’s deferred until you build and deliver them the product. Even if production takes weeks, you can’t touch that money on your income statement. Once you fulfill the order, the liability clears and you recognize the revenue all at once.
Maintenance contract
Maybe a customer prepays for future maintenance, like a 12-month support agreement or a multi-year service plan. You’re obligated to provide ongoing support, inspections, or fixes over time. As you perform those services month by month, you reduce the liability.
Consulting retainer
If one of your clients pays a portion of your fee upfront, the same rule applies: it’s a liability. As you bill hours or complete project phases, you recognize revenue and reduce the liability. Unless you charge a flat rate instead of hourly, this model is consumption-based. That means that the liability gradually shrinks in line with service delivery, rather than on a set schedule.
Long-term projects
For long-term projects like construction or web/app development, you’ll get partial payments as the project progresses. Each payment becomes a contract liability until that portion of the work is finished.
Or, if you’ve already been paid or invoiced and you use a percentage-of-completion method, you reduce the contract liability gradually as work is performed. You measure this by input (costs incurred) or output (milestones delivered).
Importance of Contract Liability for Finance
Recognizing that upfront payment as a liability instead of revenue keeps your financials accurate, compliant with accounting standards, and aligned with how value is actually delivered. It also gives investors and stakeholders a clearer picture of your future obligations.
Timing revenue recognition properly
In financial reporting, recognizing income before you’ve earned it inflates your top line and misleads stakeholders. Contract liabilities prevent that because they force you to tie revenue to performance rather than payment.
That’s critical for SaaS companies, project-based businesses, and any model where customers pay in advance. Without contract liability accounting, you could easily report big revenue spikes from cash received, even when you haven’t delivered a thing.
It would also work the other way. Let’s say you won multiple year-long seven-figure contracts in November and recognized the income upfront. Your financials would look great at first, but in the year you spend delivering them, it’ll look like you’re making no money.
Communicating with investors and analysts
While contract liability starts as an accounting standard, it ends up being a real-time window into performance, operational bottlenecks, and financial momentum. Anyone reading into your financials has instant visibility into:
- Future revenue you’ve already secured (but not yet recognized)
- Delivery risk (how much you still owe in terms of services or product fulfillment)
- Cash flow vs. revenue timing (helping them separate operational performance from billing strategy)
- Business model clarity (showing whether your growth is built on sustainable, recurring contracts or one-off deals)
Let’s say your software company reports $10 million in cash collected this quarter, but only $6 million in recognized revenue and $4 million in contract liabilities. That tells us the company has already locked in $4 million in future revenue, which is great for predictability. But it also means you still need to deliver on those services.
If that $4 million stays on the books for too long, it’ll raise red flags about delays, churn risk, and operational capacity. On the flip side, if your contract liabilities consistently convert to revenue on schedule, it shows healthy delivery and strong customer retention.
Presenting more accurate and comparable financials
When you have a consistent framework that reflects how value is delivered, it gives you accurate profit margins, predictable revenue trends, and clearer performance benchmarks across periods.
It also makes your financials easier to compare with other companies, since you’re all speaking the same language, aligned with ASC 606 or IFRS 15. That’s essential if you’re fundraising, preparing for an audit, or benchmarking your performance against others.
People Also Ask
What is a contract liability under ASC 606?
A contract liability under ASC 606 is the obligation to deliver goods or services to a customer after you’ve already been paid or invoiced. You record it on the balance sheet until you fulfill the performance obligation and recognize revenue.
Is a contract liability deferred income?
No. A contract liability is better described as deferred revenue, not deferred income. It represents unearned revenue, which is money you’ve collected for goods or services you still owe the customer.
What are contract assets?
A contract asset is the opposite of a contract liability. It comes up when you’ve performed work but haven’t yet billed the customer. It represents earned revenue that’s waiting on invoicing or payment. It’s also called accrued revenue or unbilled revenue.