Profit describes revenue less expenses under the reporting basis; cash flow describes money moving in and out. A profitable business can have unpaid customer invoices, and a loss-making business can receive financing. Read the profit and loss report alongside relevant balances and cash information rather than substituting one for the other.
Practical records guidance · Updated October 17, 2026 · Fictional examples
Make the records make sense.
Payment timing creates differences
Under accrual reporting, an earned invoice can contribute to profit before the customer pays. An unpaid supplier bill can affect expenses before cash leaves. Prepayments, inventory and asset purchases can add further differences beyond these simplified examples.
Financing is another cash source
Loans and owner funding can increase cash without creating customer revenue. Loan principal repayments and owner withdrawals also differ from ordinary operating expenses. Understanding those movements helps prevent the bank balance from being misread as monthly earnings.
Check before you close.
Identify the reporting basis and period on the profit and loss statement.
Review customer and supplier balances alongside cash movements.
Separate funding, owner movements and loan principal from operating activity.
Discuss unusual differences with your bookkeeper rather than relying on a single balance.
Illustrative example · Fictional data
Follow the business event.
Illustrative example: $3,000 of services are earned and $1,000 of expenses incurred, with no other activity. Accrual profit is $2,000. If the customer has not paid and a separate $5,000 loan arrives, cash movement reflects financing and payment timing, not $5,000 of profit.
Questions before you get started.
Can I be profitable but short of cash?
Yes. Receivables, payment timing, inventory or other uses of cash can leave cash limited despite reported profit.
Does a financial report predict future cash?
A historical report is not automatically a cash forecast. Forecasting assumptions and deliverables need separate scope.