Quick Answer
For accrual financial statements under ASC 606 or IFRS 15, a payment for unperformed service normally creates a contract liability. Recognize the allocated revenue as the obligation transfers under the applicable standard. Preserve contract and performance evidence and reconcile the liability each close. Billing milestones alone do not establish transfer; book and tax timing can differ.
Key Takeaways
- Under the applicable accrual revenue standard, record advances for unperformed service as contract liability.
- Tie each revenue release to a documented trigger such as a milestone completion, service period, or supported progress measure.
- Run a recurring close check that compares remaining liability to undelivered work and refund exposure.
- Keep contract terms, delivery evidence, and journal support in one file so each entry is explainable.
- Review book treatment and tax treatment separately with your accountant instead of assuming they always match.
Why That $50,000 Prepayment Isn't 'Income' (Yet)#
For accrual financial statements applying ASC 606 or IFRS 15, a client payment received before the related promised goods or services transfer normally creates a contract liability. This guide addresses that book treatment; cash-basis and tax rules can differ.
That distinction matters because your bank balance and your income statement are telling different stories. The bank balance answers a cash question: did the money arrive? The income statement answers an earning question: did you actually satisfy the obligation tied to that money? Those are not the same event.
A common operational risk looks like this: the prepayment lands, you take a larger owner draw or use some of it for unrelated bills, and later you realize the project still requires labor, software, or subcontractor spend. If the client cancels and your agreement requires a refund, the same cash shortfall turns into a credibility problem quickly.
The practical risk is not just a technical accounting error. Treating advance cash like finished income can push you into bad operating decisions early in the contract. When the delivery work catches up, you are left funding it with less cash than you thought you had. That is why the accounting entry and the cash habit need to line up from the start.
Step 1 Record the prepayment as a liability and separate the cash mentally#
Treat the payment as an obligation, not as spendable profit. In deferred revenue accounting, the first entry increases Cash and increases a liability account such as Deferred Revenue or Contract Liability by the same amount. Nothing hits earned revenue yet because no performance obligation has been satisfied.
| Check | What to confirm | If not |
|---|---|---|
| After the deposit posts | Balance sheet shows the prepayment in a liability account | If the cash receipt was posted straight to revenue by mistake, the error can spread |
| Current-period revenue | Income statement does not show the full amount as current-period revenue | You may make decisions off inflated income |
| Remaining obligation visibility | You can tell how much of the $50,000 is still owed back in services or refunds | If you cannot, you are already exposed |
| Contract and accounting alignment | Open milestones or a service period in the agreement match the accounting treatment | Otherwise, your records no longer reflect the commercial reality of the deal |
You do not need a complicated setup to make this work. You do need a clear barrier between cash received and cash available for general use. Some freelancers use a separate business account or a clearly labeled subaccount for advance payments so they do not spend against future delivery by accident. Even if you keep everything in one operating account, your books should still make it obvious that the cash came in attached to open obligations, which is easier to verify if you already know how to read a balance sheet.
A simple discipline helps here: when the prepayment lands, tie it immediately to the contract file before you move on. That file should let you answer, without guessing, who paid, what they paid for, what remains undelivered, and what refund terms still apply. If you have to reconstruct those facts later from email threads, your close process is already harder than it needs to be.
Verification point: after the deposit posts, your balance sheet should show the prepayment in a liability account, and your income statement should not show the full amount as current-period revenue.
That check is worth doing early, not only at close. If the cash receipt was posted straight to revenue by mistake, the error can spread. You may make decisions off inflated income, calculate owner distributions off numbers that are not really earned, or stop watching the reserved cash because the books appear to say the project is already profitable.
Red flag: if you cannot look at your books and tell how much of that $50,000 is still owed back in services or refunds, you are already exposed.
Another red flag is when the contract file and the accounting treatment live in separate worlds. If the agreement clearly shows open milestones or a service period, but the accounting shows the full amount as current revenue, the problem is not timing alone. Your records no longer reflect the commercial reality of the deal.
Step 2 Tie recognition to the actual delivery trigger#
Identify the performance obligations, allocate the transaction price and determine whether each transfers over time or at a point in time under the applicable standard. Contract terms and delivery evidence inform that assessment; a billing milestone alone is not a revenue-recognition rule.
| Evidence item | Supports | Record to retain |
|---|---|---|
| Signed contract | Identify enforceable promises and obligations | Agreement plus recognition rationale |
| Scope or statement of work | Identify distinct promises and assess their transfer pattern | Evidence pack |
| Payment terms | Cash and billing timing relative to delivery | A bill can go out before delivery; cash can arrive before delivery |
| Refund terms | What refund terms still apply | Evidence pack |
| Milestone definitions | Milestone-based release | Evidence pack |
| Proof of delivery or service period completed | That the trigger happened | Evidence pack |
| Method | Trigger | Accounting move | Control check |
|---|---|---|---|
| Point-in-time transfer | Control of the promised deliverable transfers | Release the allocated amount from contract liability to revenue | Assess control and substantive acceptance terms; a billing milestone alone is insufficient |
| Time-based | A service period passes and the service is provided over time | Decrease contract liability and recognize revenue for that period | Over-time criteria are met and elapsed time faithfully depicts the service transfer |
| Progress-based | Progress toward an over-time obligation can be measured credibly | Decrease contract liability and recognize revenue based on the selected measure of progress | Over-time criteria are met and a consistent progress measure faithfully depicts performance |
A distinct deliverable may be recognized at a point in time when control transfers. For an obligation meeting over-time criteria, use a measure that reflects performance: elapsed time can suit evenly provided stand-ready service, while uneven work may need another supported measure. Doing work over several weeks does not by itself qualify it for over-time recognition.
Apply the recognition standard to the contract rather than using invoice dates or subjective completion estimates. Advance billing and advance cash are separate from transfer of the promised service. See Revenue Recognition for SaaS Companies for a related framework.
Assess whether an acceptance clause is substantive evidence of control transfer or an administrative formality. Payment and approval milestones do not automatically determine revenue timing. For over-time obligations, recognize measured performance even when billing occurs at a later milestone.
When a contract contains distinct promises, allocate the transaction price under the applicable standard and assess each transfer pattern. Multiple billing milestones do not necessarily create multiple performance obligations.
The control that matters most is your evidence pack: signed contract, scope or statement of work, payment terms, refund terms, milestone definitions, and proof of delivery or service period completed. Without that file, your recognition schedule is hard to defend.
Build a contract evidence pack#
Specifically, keep one working packet that includes the signed agreement, the delivery proof, and a short rollforward showing what moved this month. That packet creates a cleaner audit trail, gives you better variance review, and makes How to Read a Cash Flow Statement more useful because the liability movement now has context.
- Contract packet: agreement, scope, refund clause, and milestone definitions in one place.
- Close packet: opening liability, advance additions, earned releases, refunds or reclassifications, and ending liability.
- Review packet: one owner note that explains why the remaining balance still fits the undelivered work.
Think of the evidence pack as the bridge between the contract and the journal entry. If you release revenue for a milestone, you should be able to point to both the milestone language and the evidence that it happened. If you release revenue over a service period, you should be able to point to the dates and show that the period has passed. If you are using progress-based recognition, your documentation should show how progress was measured and why that measure is the one you are consistently using.
A common failure mode is to start with one recognition idea and then drift as the project evolves. Scope shifts, timing changes, and informal client approvals can blur the original trigger. When that happens, do not leave the old release schedule on autopilot. Update the contract file and your close support so the books still match what the engagement now requires. Then make sure the books actually follow that trigger at each close.
Step 3 Release earned amounts during your close process#
Do not wait until year end to sort this out. Set a recurring close step where you review what was actually delivered and move only that earned portion from the liability account into revenue. The account flow is straightforward:
Run a 30-day close checkpoint#
As a result, set a 30-day checkpoint even if your formal close is quarterly. When we review a file, we look for the opening liability, we look for the release trigger, and we look for the ending balance to tie back to the contract. That same habit turns How to Read a Balance Sheet into a practical control instead of a theory article.
| Point in process | Account movement | Close test |
|---|---|---|
| On receipt | Cash goes up; contract liability goes up | Nothing hits earned revenue yet |
| As you perform | Contract liability goes down; earned revenue goes up | Book only that amount and leave the rest in the liability account |
| At any review date | Remaining liability reflects consideration received or due for performance obligations still unsatisfied, with refunds classified appropriately | If the remaining liability does not make sense against the work still open, something is off |
| Final comparison | Ending balance is compared to what you owe | That final comparison often catches the entries that looked reasonable in isolation but do not hold up when you step back |
- On receipt: Cash goes up, contract liability goes up.
- As you perform: contract liability goes down, earned revenue goes up.
- At review: reconcile remaining contract liability to allocated consideration for unsatisfied obligations; it is not an estimate of delivery cost.
That last line is the real test. If the remaining liability does not make sense against the work still open, something is off. Either too much has been recognized too early, too little has been released, or the contract support is incomplete. The close review is where you catch that before the error sits in the books too long.
- Illustrative receipt: debit Cash $12,000 and credit Contract Liability $12,000 for wholly unperformed service.
- If a distinct obligation allocated $4,000 transfers at the first handoff, debit Contract Liability $4,000 and credit Revenue $4,000.
- At the next close, support the remaining $8,000 against unsatisfied allocated obligations; assess delivery costs and any refund liability separately.
A practical close sequence can be very simple. Pull the list of contracts with open liability balances. For each one, look at the contract terms, the service period or milestones, and the delivery evidence for the period. Decide what was actually earned, book only that amount, and leave the rest in the liability account. Then do one more pass and ask whether the ending balance still matches what you owe. That final comparison often catches the entries that looked reasonable in isolation but do not hold up when you step back. If your month-end packet also includes a simple cash view, How to Read a Cash Flow Statement helps you explain why collected cash and earned revenue are moving on different clocks.
A short checklist keeps this from drifting:
- Create a liability account named Deferred Revenue or Contract Liability.
- Attach each client prepayment to a contract file with service dates, milestones, and refund terms.
- Choose a recognition method that matches each contract obligation and apply it consistently.
- At close, compare the liability balance to open obligations and booked delivery evidence.
- Investigate any negative liability balance, manual override, or fully recognized contract that still has undelivered work.
If you are doing the close yourself, avoid releasing revenue based on memory alone. Pull the documents and verify the trigger each time. That sounds basic, but it is exactly where rushed closes go wrong. You remember that a client was happy with the work, assume the milestone is done, release the amount, and only later notice the formal approval or delivery step had not actually happened yet.
Keep book and tax reviews separate#
Book deferral does not automatically defer U.S. taxable income. Cash-method income generally follows receipt; accrual-method advance payments have their own inclusion and limited deferral rules, subject to eligibility and elections. Review the actual tax method and jurisdiction separately from ASC 606 or IFRS 15 book recognition.
That separation matters operationally too. Do not use a tax assumption to justify a financial statement entry, and do not assume a book entry automatically answers the tax question. Keep those reviews distinct so one shortcut does not create two different problems.
If you want a deeper dive, read Hiring Your First Subcontractor: Legal and Financial Steps. Want a quick next step for "deferred revenue accounting"? Try the free invoice generator.
| Situation | Accrual treatment to assess | Common mistake |
|---|---|---|
| Payment received before service | Cash and contract liability for the unperformed portion | Recognizing revenue solely because cash arrived |
| Service transferred with unconditional payment right | Revenue and accounts receivable, subject to the contract assessment | Treating all unpaid revenue as deferred revenue |
| Service transferred but payment depends on further performance | Potential contract asset | Assuming every unbilled amount is a receivable |
| Advance invoice due before service | A receivable and contract liability can both arise | Assuming receivables require completed delivery |
Frequently Asked Questions
How do you track this if you are a solo professional or small team?
A practical internal approach is to track each contract, cash received, remaining obligation, and the event/evidence used for any release, then confirm your method with your accountant.
Can you spend the cash from a prepayment?
A contract liability does not by itself require a separate bank account or prohibit spending. Check contractual, trust or escrow restrictions and keep enough liquidity for delivery and applicable refunds. A separate account can be an internal cash-management choice.
Is a retainer always deferred revenue?
A retainer paid for future service can create a contract liability under accrual reporting. A stand-ready service may be earned over its coverage period. The name retainer, or a non-refundable label, does not by itself establish that an upfront fee is earned immediately.
What contract details should you tie to recognition timing?
Retain the promises, service periods, acceptance conditions, enforceable rights and refund terms. Document distinct obligations, price allocation and the point-in-time or over-time assessment. Billing terms alone do not set recognition timing.
What is the difference between deferred revenue and accounts receivable?
Contract liability reflects consideration received or due before the related service transfers. Accounts receivable reflects an unconditional right to payment, where only time remains before it is due; a conditional right can be a contract asset. Receivables and contract liabilities can coexist when an advance invoice is due.
How should you set this up in accounting software?
Create a contract-liability account and a customer or contract schedule. Test an advance receipt, an earned release and a refund, and verify that the schedule reconciles to the ledger without double-counting the invoice and cash receipt. Record the advance as debit Cash and credit Contract Liability when appropriate. On an earned release, debit Contract Liability and credit Revenue. Use your software’s supported workflow and verify the journal result; a revenue-detail display setting is not the accounting policy.
Does tax follow the same timing as your books?
No. Taxable income can follow receipt or specific advance-payment rules even while accrual books show a liability. Keep the tax method, elections and jurisdiction documented separately from the financial-reporting assessment.
When does ASU 2021-08 matter?
It matters if you acquire another entity and fall under Topic 805, Business Combinations. FASB issued ASU 2021-08 in late 2021 to address diversity in practice and improve consistency around acquired contract-liability treatment after post-ASC-606 debate. If that is your situation, treat it as a separate accounting question rather than folding it into your normal prepayment process.
What is the shortest monthly check worth doing?
Use this three-part check: Match each open liability balance to a named contract or customer. Confirm the file shows the event and evidence used for any amount released. Investigate any balance you cannot explain quickly. If you do nothing else, do that. It is short enough to repeat each close and can help catch unsupported releases, unexplained balances, and timing mismatches between records and agreements.
Try a related tool
Researched and edited by the Gruv editorial team. Gruv builds cross-border billing, payouts, and finance-operations software for global businesses.
Sources
Includes 2 external sources outside the trusted-domain allowlist.
Educational content only. Not legal, tax, or financial advice.
Related Posts

Hiring a Subcontractor for the First Time Without Costly Surprises
Hiring your first subcontractor works best when you can describe the job, review the result and afford the coordination time. Agree on scope, authority and payment terms before handing over client work, then pay according to those terms.

Revenue Recognition for SaaS Companies Under ASC 606
Under ASC 606, revenue follows the transfer of promised goods or services rather than the date money arrives. A customer prepayment for future service creates a contract liability, commonly called deferred revenue. Cash, billings, receivables and recognized revenue therefore need separate records.

How to Read a Balance Sheet for Freelancers and Small Teams
Use your balance sheet as a dated decision dashboard, not an accounting exercise. It shows what your business owns, what it owes, and what is left on that date. Use it to make better calls on cash safety, client risk, tax readiness, and growth timing.

