Where revenue
came from.Not just
how much.
The bank app says $27,390 for March. CashFish says $18,400 of it is recurring, $6,200 is two project invoices — one of them nine days overdue — $2,150 is store orders and $640 is a workshop. Stripe, PayPal, your store and a read-only bank feed each report in, every payment is matched to the invoice or charge that raised it, and the month explains itself source by source.
Growth plan · $29/mo billed yearly ($349) · 4-day free trial · Full refund guarantee
The bank app says $27,390.
It doesn't say why.
One number. Underneath it: four sources, eighteen lines, one invoice that hasn't been paid, and a recurring figure nobody has recomputed since February. The total isn't wrong. It's just the least useful thing you know about the month.
Every payment
reports in.
Then it gets a name.
A charge, a transfer, a store order — each arrives as a bare amount. Six things happen to it before it becomes part of a number you can act on. Step through them; every stage stays on the page.
Every source reports in
March arrives in four shapes: Stripe charges for subscriptions and retainers, a PayPal payment closing Meridian Group's project, WooCommerce orders, and a Square payment for a workshop. CashFish maps each one to a customer and a source before it touches the total.
Recurring becomes a number you can watch
Active subscriptions and retainers roll up to $18,400 MRR — $220,800 annualised — recomputed as payment data refreshes, about every five minutes. Not a spreadsheet tab. Not a February figure.
The movement under the total
Recurring moved by +$295 in March, and every dollar of that has a name: Bluepeak and Atlas Advisory add $250 as new customers, Northwind Media's upgrade from $180 to $320 adds $140, and one cancellation takes $95 back out.
Cohorts show who stays
Customers grouped by the month they started tell you whether they stay. Of the eleven who joined in January, nine are still paying. A pricing change or an onboarding fix shows up here months before it shows in the total.
Booked is not banked
Eighteen revenue lines in March: fourteen are matched to a payment, three retainer invoices sit inside their terms, and Harbor & Co.'s $2,400 is nine days past due — flagged with the customer attached, not buried in a balance.
The estimate, then what landed
The March estimate — built from history, open receivables and recurring patterns — said $30,100. The month landed at $27,390, and the overdue $2,400 explains most of the gap. The estimate stays labelled as one, because that is what it is.
The quarter,
source by source.
Three months, four sources, one total per month — and a delta with a reason next to it. This is the view the bank app can't draw, because the bank never knew which invoice a deposit belonged to.
| Source | Jan | Feb | Mar | vs Feb |
|---|---|---|---|---|
| RecurringStripe subscriptions · retainer invoices2 new · 1 upgrade · 1 cancellation | $17,650 | $18,105 | $18,400 | +$295 |
| ProjectsInvoices · PayPal · bank wire$2,400 booked, not banked · 9 days overdue | $4,300 | $8,900 | $6,200 | −30% |
| ProductsWooCommerce orders | $2,310 | $1,980 | $2,150 | +9% |
| OtherSquare · workshops | $720 | $410 | $640 | +56% |
| Total booked | $24,980 | $29,395 | $0 | −7% |
A line enters the ledger when CashFish can trace it to something you raised: an invoice, a subscription charge, a store order. That is what "recognised" means here — the amount has an origin, a customer and a month, before any money has moved.
When the payment lands — a Stripe payout, a PayPal transfer, a wire in the read-only bank feed — it is matched back to the line that raised it. Anything that doesn't match stays visible as unmatched until you assign it. Nothing is absorbed quietly into a total.
Six views
of the same money.
Not six reports to build. Six angles on the same lines, each kept current as payment data refreshes — so the question you have on the 19th is answered by the view that already exists.
What the ledger
is built on.
Bank access is read-only; CashFish never moves money. Data is protected with 256-bit encryption (SOC 2 Type II, ISO 27001, GDPR), and every connection can be reviewed or disconnected from settings.
Wherever the money arrives,
it reports in.
Store and payment connections switch on with Growth. Each one shows its health in settings and can be disconnected there.
Also Gmail, Outlook and any IMAP inbox for the invoices themselves, plus Xero (one-way import), Slack, Zapier and webhooks. Bank sync covers 12,000+ banks, read-only.
Connect Stripe once.
March explains itself from there.
Growth is the plan because the Stripe, store and bank connections that feed the ledger — and revenue and expense forecasting — switch on there. Scale adds advanced forecasting and the revenue leakage dashboard when you want them.
4-day free trial · Full refund guarantee
Your subscription begins after the 4-day trial unless canceled beforehand. Full refund guarantee within the first 4 days.
See every plan →Asked before connecting.

Start managing money smart.
Start managing money smart.
4-day free trial · Cancel anytime · Full refund guarantee
© 2026 CashFish Inc. All rights reserved.
CashFish
CashFish
CashFish

