
Client prepayments should be recorded as a contract liability, not as earned revenue, until you deliver the promised service. When cash arrives, increase Cash and Deferred Revenue or Contract Liability by the same amount, then release revenue only as milestones, service periods, or supported progress are actually completed. This keeps income from being overstated and helps preserve cash needed to finish the work.
A client prepayment is not earned revenue on day one. Under ASC 606 and IFRS 15, cash you receive before transferring the promised service is presented as a contract liability, often labeled deferred revenue, until the work is actually delivered.
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.
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.
Revenue should move out of the liability bucket only when your contract says value has been transferred. In practice, these triggers often fall into three patterns.
| Evidence item | Supports | Article note |
|---|---|---|
| Signed contract | Let the contract drive the trigger | Evidence pack |
| Scope or statement of work | Map each part to the delivery trigger the contract supports | 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 |
|---|---|---|---|
| Milestone-based | A defined deliverable or approval is completed | Decrease contract liability and recognize earned revenue for that milestone | Contract names the milestone, and you retain delivery or acceptance evidence |
| Time-based | A service period passes and the service is provided over time | Decrease contract liability and recognize revenue for that period | Contract states the service period clearly, and your close calendar matches it |
| 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 | You can explain and document the measure used, not just estimate loosely |
Use milestone-based recognition when value transfers at clear handoff points, such as strategy approval, design delivery, or launch. Use time-based recognition for retainers, subscriptions, or access-based services delivered evenly across a stated period. If work is performed over time but unevenly, a progress-based method may fit better, but only if you can support the measure with documentation.
Let the contract drive the trigger, not the invoice date and not your internal feeling that the job is mostly done. A bill can go out before delivery. Cash can arrive before delivery. Neither event, by itself, proves that revenue is earned. If you want a broader framework for this timing logic, A Guide to Revenue Recognition for SaaS Companies is a useful companion.
If the agreement says a milestone must be completed or approved, recognition should wait for that event. If the agreement says service is provided across a period, recognition should follow that period rather than bunching the amount into the day cash arrives.
This also matters when a single contract contains more than one pattern. If one part of the engagement is tied to a defined handoff and another part covers a service period, do not force the whole arrangement into one release rule just because that is easier to book. Map each part to the delivery trigger the contract supports, then make sure your records show how you got there.
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.
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.
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.
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:
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 should equal the value of work still owed | 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 |
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.
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:
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.
One caution on taxes: under the accrual method, income is generally reported when earned, regardless of when cash is received, but tax reporting and financial statement presentation are not always identical. If you are unsure, get the recognition rule and the tax treatment reviewed separately.
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.
The article does not give a universal tracking rule for solo or small-team situations. A practical approach is to track each contract, cash received, remaining obligation, and the event and evidence used for any revenue release. Then confirm your method with your accountant.
The article does not set a universal spending rule for prepayments. Set a policy with your accountant. Keep cash movement and remaining obligations visible so your close process is explainable.
Not necessarily. The label retainer alone is not enough to determine treatment. Confirm it based on your specific facts, accounting method, and jurisdiction with your accountant.
The article does not give a universal contract-clause threshold for timing. At minimum, keep the agreement, delivery evidence, and your accounting rationale together. It also points to service dates, milestones, payment terms, refund terms, milestone definitions, and proof of delivery or service period completed as useful support.
The article does not set a full everyday rule for deferred revenue versus accounts receivable. It treats a client prepayment before delivery and a delivered-but-unpaid amount as separate policy questions that should follow your accounting policy. Acquisition-related contract liabilities should be analyzed separately under Topic 805 and ASU 2021-08.
Set it up so you can review liability and revenue activity separately, then test a sample flow from receipt through release using your own policy. In Banner, turn on Include Revenue Accounts when you want revenue detail in the detail block. If amounts look incomplete, clear the Program, Account, Account Type, Activity, and Location fields. When revenue accounts are left unchecked, Banner calculates Available Balance on the Net Total line.
Not always. The article says tax reporting and financial statement presentation are not always identical. Confirm tax treatment directly with your accountant for your method and jurisdiction.
It matters when you acquire another entity and fall under Topic 805, Business Combinations. The article says FASB issued ASU 2021-08 in late 2021 to improve consistency around acquired contract-liability treatment. Treat that as a separate accounting question rather than folding it into your normal prepayment process.
Use a three-part check each close. Match each open liability balance to a named contract or customer, confirm the file shows the event and evidence used for any amount released, and investigate any balance you cannot explain quickly. It is short enough to repeat monthly and can catch unsupported releases and timing mismatches.
A former product manager at a major fintech company, Samuel has deep expertise in the global payments landscape. He analyzes financial tools and strategies to help freelancers maximize their earnings and minimize fees.
With a Ph.D. in Economics and over 15 years of experience in cross-border tax advisory, Alistair specializes in demystifying cross-border tax law for independent professionals. He focuses on risk mitigation and long-term financial planning.
Includes 3 external sources outside the trusted-domain allowlist.
Educational content only. Not legal, tax, or financial advice.

**Start with a risk-control sequence, not an ad hoc handoff.** As the Contractor, your goal is simple: deliver cleanly, control scope, and release payment only when the work and file are complete.

Use revenue recognition as an operating control, not a year-end cleanup task. If you make decisions from cash balance alone, you can spend against cash that is not earned yet. Under ASC 606, cash collected before you transfer the promised service is a [contract liability](https://dart.deloitte.com/USDART/home/codification/revenue/asc606-10/roadmap-revenue-recognition/chapter-14-presentation/14-2-contract-liabilities), commonly called deferred revenue, until that service is delivered.

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.