What's the difference between a contract asset and a contract liability under ASC 606?
It's about which side moved first. A contract asset is your right to payment for goods or services you've already delivered, when that right depends on something other than time passing — you performed, but haven't fully earned an unconditional bill yet. A contract liability is the opposite: the customer paid (or owes payment) before you've delivered what they're paying for.
Part of the revenue recognition guide.
| Contract asset | Right to payment for work already delivered, conditional on something other than time passing |
|---|---|
| Contract liability | Obligation to deliver, because the customer already paid or owes payment |
| What flips a contract asset to a receivable | Once only the passage of time stands between you and payment |
| Balance sheet treatment | Presented separately from receivables — a contract asset is not a receivable |
| Governing section | ASC 606-10-45-1 through 45-3 (contract asset and liability presentation) |
The one-question test
Ask which happened first: your performance, or the customer's payment. If you performed first and your right to be paid is conditioned on something other than time passing — a future milestone, a second deliverable in the same contract — you have a contract asset. If the customer paid first, or owes payment before you've delivered, you have a contract liability. The standard's own definitions track this exactly: a contract liability exists when an entity receives consideration (or has an unconditional right to it) before transferring goods or services; a contract asset exists when the entity has transferred goods or services but its right to payment is still conditional.
Why a contract asset isn't just a receivable with a different name
A receivable is an unconditional right to payment — the only thing standing between you and cash is time. A contract asset still has a hurdle: some future performance, a milestone, an inspection, before the right to payment becomes unconditional. That's why the two have to be presented separately on the balance sheet rather than combined — a growing contract-asset balance signals revenue that's been recognized but isn't yet a clean, unconditional claim on cash, which is a different risk profile than a receivable sitting in AR aging.
A contract liability isn't automatically deferred revenue
"Contract liability" is ASC 606's own term; "deferred revenue" is the more familiar label many general ledgers still use for the same concept, and in practice the two usually map one-to-one. What matters operationally is the trigger: the liability exists because cash (or an unconditional right to it) arrived before delivery, not because of any particular billing cadence — an annual prepay and a milestone-based deposit both create the same kind of liability, even though they look different in AR.
Next step
Map the finance workflow with the most exposure and prove the automation path.
Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.
Worked example
A two-milestone contract, moving between both states
A $100,000 implementation contract has two milestones, each worth $50,000, billed only on completion. The vendor finishes milestone 1 but hasn't billed it yet — that $50,000 becomes a contract asset, since the right to payment is conditioned on invoicing after milestone completion, not on time alone. Once the invoice goes out, the same $50,000 reclasses from contract asset to a plain receivable, since now only the passage of time (the payment term) stands between the vendor and cash. Separately, the customer prepaid a $20,000 deposit at signing before any work started — that $20,000 sits as a contract liability from day one, and stays one until enough of milestone 1's work is delivered to recognize it as revenue.
Frequently Asked Questions
Sources
Related
Topic
Revenue Recognition
Revenue recognition determines when — not just how much — revenue hits the books. Under ASC 606 (US GAAP) and its international counterpart IFRS 15, revenue is recorded as a company satisfies its perf…
Read moreHow-to
How do you calculate a contract's transaction price under ASC 606?
Transaction price is the consideration a company expects in exchange for goods or services. Start with the stated contract price, add variable consideration using the expected-value or most-likely-amount method, constrained to amounts unlikely to reverse, adjust for any significant financing component, then subtract noncash consideration and amounts payable to the customer.
Read moreDiagnostic
Why doesn't deferred revenue match the general ledger?
Deferred revenue usually drifts from the general ledger when the billing system's revenue schedule isn't synced to GL journal entries, or when manual entries post outside that schedule. Reconcile the deferred revenue roll-forward against the GL trial balance at the contract-line level, not the invoice level, to find exactly where the two diverge each month.
Read moreComparison
What is unbilled AR, and how does it differ from a contract asset?
Unbilled AR (an unbilled receivable) is revenue you've earned and are unconditionally entitled to — the invoice just hasn't gone out yet, and only the passage of time stands between you and payment. A contract asset looks similar but has a real hurdle left: your right to payment depends on something more than time, like a future milestone in the same contract.
Read more