In December a customer signs an annual contract and pays $120,000 up front. On cash-basis books, December revenue is $120,000 and every other month of the contract is zero. On accrual books, December revenue is $10,000 and so is every month after.
Both are correct. They answer different questions. Cash books answer "what happened to the money". Accrual books answer "what happened to the business". For the first year or two of most startups the two answers are close enough that nobody cares. Then something happens - an annual contract, a big prepaid bill, a fundraise - and they split.
What each basis actually does
Under cash basis, revenue is recorded when money arrives and expenses when money leaves. The ledger is a tidier version of the bank statement. It is simple, it is what the IRS lets most small businesses use, and it cannot be gamed by timing invoices.
Under accrual basis, revenue is recorded when it is earned and expenses when they are incurred, regardless of when cash moves. An invoice issued in December is December revenue whether it is paid in December or February. A bill received in December is a December expense. The gap between earned and paid lives in two accounts the cash books do not have: accounts receivable (what you are owed) and accounts payable (what you owe).
The mechanics are two entries instead of one. When you issue a $10,000 invoice, accrual books record receivable up, revenue up. When the customer pays, they record bank up, receivable down. The second entry touches no revenue account, so the sale is counted once, on the day it was earned.
Prepayments add a third pair. The $120,000 annual contract goes first to deferred revenue, a liability, because you owe the customer twelve months of service. Each month $10,000 moves from deferred revenue to revenue. A $12,000 annual software bill paid in January goes to prepaid expense, an asset, and $1,000 moves to expense each month.
When cash stops being enough
A few triggers, in the order we usually see them:
Annual or multi-month contracts. The moment a customer prepays for more than one period, cash revenue is lumpy and monthly revenue growth means nothing. Investors will ask for MRR and ARR, which are accrual concepts.
A fundraise. Institutional investors expect accrual financials in diligence (the funding structure advisor covers which instrument, not the books, but a priced round is where the request lands), and a diligence request for "monthly P&L" from a company on cash books produces a chart with a spike wherever a big customer happened to pay.
Meaningful payables. A company paying contractors and vendors net-30 has a month of expenses that cash books have not seen yet. Runway calculated from cash books overstates how long you have (our runway calculator takes trailing net burn, which is a cash figure, so subtract open payables from the balance before you read the months).
Revenue over roughly $25 million, at which point the IRS requires accrual for tax. This is not the trigger that gets seed-stage founders, but it is the one that eventually makes the decision for you.
The honest answer for most pre-seed companies is that cash is fine, and the cost of accrual - two entries where there was one, and a receivable and payable ledger to keep straight - is not worth paying until one of the triggers above shows up.
What switching actually changes
Switching basis is not re-labelling the same numbers. It changes three things:
- The chart of accounts grows. Accounts receivable, accounts payable, deferred revenue and prepaid expense need to exist, and every invoice and bill needs to post to them.
- Every invoice and bill becomes a ledger entry. In cash books, invoices and bills are tracking documents; the bank transaction is the entry. In accrual books, the document is the entry, and the bank transaction settles it.
- The bank transaction is categorised differently. A customer payment is no longer "revenue". It is a payment against a receivable. Categorise it as revenue by habit and the sale is counted twice. This is the single most common accrual error, and it is why switching is not just a report setting. It is the same mechanism that counts a Stripe payout as revenue on cash books, with a receivable in place of the Stripe balance.
Reports on both bases from the same ledger are possible, and it is how we are designing it. Every journal entry carries two dates: the date the economic event happened and the date cash moved. An accrual report filters on the first, a cash report on the second. A plain bank transaction with no invoice behind it has the same date in both, so it looks identical either way. An unpaid invoice has no cash date yet, so the cash report leaves it out by construction rather than by a rule someone has to remember.
Where we are today
Our ledger is cash-basis. Journal entries are created from bank transactions, dated when money moved. Invoices and bills are tracked and matched to payments, but they do not post entries, which means there is no real receivable or payable balance in the books, and no deferred revenue.
The accrual design above is specified: an accounting method per company, cash by default, switchable with a guarded one-time backfill; the four new accounts seeded idempotently; two recognition dates per entry; a recognition schedule that spreads a December invoice for December-through-January service across both months. It is not built yet. If you are choosing an accounting provider on the strength of accrual reporting today, we would rather you knew that than found out.
What is built is the part that makes accrual safe when it arrives: a categorisation pipeline that knows a Stripe payout is a transfer and not revenue, a matcher that pairs invoices and bills to the bank transactions that settle them, and a feed layer that keeps one purchase as one entry no matter how many times the bank sends it. Those are the two places accrual books go wrong, and they are wrong on cash books too, just less visibly.
Common questions
What is the difference between cash and accrual accounting?
Cash basis records revenue when money arrives and expenses when money leaves, so the ledger tracks the bank statement. Accrual records revenue when it is earned and expenses when they are incurred, whether or not cash has moved, and holds the gap in receivables, payables, deferred revenue and prepaid expenses.
When should a startup switch from cash to accrual?
When annual or multi-month contracts make monthly cash revenue lumpy, when a priced round brings diligence requests for a monthly accrual P&L, when net-30 payables materially change runway, or when revenue passes the IRS threshold, roughly $25 million, that requires accrual for tax.
Does Vecty support accrual accounting?
Our ledger is cash-basis today. The accrual design, with an accounting method per company, two recognition dates per entry, and deferred revenue and prepaid expense schedules, is specified but not built. We would rather say that plainly than imply otherwise.
Tools that go with this
- SaaS accounting: revenue recognition and tax - revenue recognition for subscriptions, which is the accrual case most startups hit first
- Burn rate and runway calculator - runway from a cash view, and why payables change it
- Funding structure advisor: SAFE, note, priced round or grant - the fundraise that usually triggers the switch