The balance looks healthy on Monday morning, so you buy the truck wrap, approve overtime and pay a supplier early. By Friday you are short on payroll. Nothing went wrong on the jobs. You spent customer deposits as if they were earned profit.

Why a Deposit Is a Liability

When a homeowner hands you 30% to get on the schedule, you have not earned anything yet. You owe them a finished roof or a refund. That is the definition of a liability, and the standard account for it is Customer Deposits (also called unearned revenue) under current liabilities.

If you book the deposit straight to income, two things break. Your P&L overstates profit in the month you signed, and understates it in the month you finish. And your balance sheet hides the obligation, which matters when a surety or lender reads it. See how sureties read working capital.

Worked Example: 12 Open Jobs

All figures are illustrative. Say your average contract is $24,000 and you collect a 30% deposit, $7,200, at signing.

Line Amount
Bank balance $120,000
Customer deposits held (12 jobs × $7,200) −$86,400
Cash that is actually yours $33,600

If weekly payroll and fixed overhead run $18,000, that $33,600 covers 1.9 weeks, not the 6.7 weeks the bank balance suggests. And the deposits are not free money later either. Materials for those 12 jobs still have to be bought and crews paid before the final payment arrives.

Now the P&L side. Sign six jobs in October that do not start until November. Booked as income, October shows $43,200 of revenue with zero cost against it, a margin that looks like 100%. November then carries the costs with no matching revenue. Neither month tells you the truth.

Recording It in QuickBooks

  1. Create a Customer Deposits account under current liabilities.
  2. Record each deposit against the customer and job. Cash goes up, the liability goes up, income does not move.
  3. Apply the deposit to the final invoice. Invoice the full contract price, then apply the deposit as a credit so the balance due is the contract less the deposit. Revenue is recognized as the work is performed, which ties to your WIP schedule.
  4. Handle cancellations. A refunded deposit clears the liability. A deposit you keep under a signed cancellation clause becomes income only when the contract supports it, so have your attorney review that language.
💡 Tax treatment can differ from book treatment. Advance payments may be taxed in a different period than your books recognize them, depending on your accounting method. Confirm with your CPA before you set the policy. Also check your state's rules: some states cap how much a home-improvement contractor can collect up front.

The Weekly Cash Check

Every Monday, run one calculation: bank balance, minus Customer Deposits, minus sales and payroll tax liabilities. That is your spendable cash. Compare it to next week's payroll and supplier payments.

If the number gets thin, the fix is timing, not hope. Stage your deposits to cover materials on order, schedule supplier payments around milestone collections, and pull forward invoicing on completed jobs. For the seasonal version of this problem, read seasonal cash flow planning.