CASHFISH · REVENUE TRACKING

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.

Subscriptions & retainersAgencies & studiosStores & product linesMixed-model businesses

Growth plan · $29/mo billed yearly ($349) · 4-day free trial · Full refund guarantee

01The flat total

The bank app says $27,390.
It doesn't say why.

March · as the bank tells it
$27,390

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.

4 SOURCES18 LINES1 OVERDUE
THE 3RD · STRIPE PAYOUT
A payout lands. Fourteen customers are inside it.
Stripe pays out $4,870 on the 3rd. Two upgrades, one cancellation and a failed card are all in there — netted into a single line in the bank feed with nothing attached.
THE 12TH · PAYPAL
The project final arrives under a different name.
Meridian Group's last invoice is paid from a PayPal account registered to their parent company. The deposit says one thing, the invoice says another, and only you know they are the same.
THE 19TH · THE OVERDUE ONE
Harbor & Co. owe $2,400. The forecast already spent it.
Invoice #312 went out on the 10th. It is nine days past due, still counted in March's number, and nowhere in March's bank balance.
MONTH END · THE SPREADSHEET
MRR, in a tab nobody trusts
The recurring total lives in a spreadsheet that gets updated when someone remembers. The last update was February. It still says $18,105.
02What reports in

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.

Reports in

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 $18,400Projects $6,200Products $2,150Other $640
Rolls up

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.

OCT → MAR$18,400 MRR · $220,800 ARR
Splits

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.

New
+$250
Expansion
+$140
Contraction
$0
Churned
−$95
Net, March+$295
Groups

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.

OCT7 of 8
DEC11 of 13
JAN9 of 11
FEB6 of 6
Flags

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.

14 matched · $22,1803 inside terms · $2,8101 overdue · $2,400 · 9 days
Compares

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.

Estimate
$30,100
Landed
$27,390
Gap $2,710 · the overdue $2,400 explains most of it
03Where it actually came from

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.

SourceJanFebMarvs 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%
March · matched to payments$22,180 of $27,390 · 81%
14 lines matched · $22,1803 inside terms · $2,8101 overdue · Harbor & Co. #312 · $2,400 · 9 days
Recognition

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.

Matching

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.

04What stays in view

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.

01
Revenue mapped by source
Stripe, PayPal, Square, store orders and bank deposits are matched to customers, so the total always breaks down into who paid, for what, and through which door.
Recurring $18,400Projects $6,200Products $2,150Other $640
02
MRR and ARR, continuously computed
Recurring revenue rolls up from active subscriptions and retainers and is refreshed as payment data syncs — about every five minutes, without anyone opening a sheet.
OCT → MAR$18,400 MRR · $220,800 ARR
03
Movement with names attached
Each month's change splits into new, expansion, contraction and churned revenue, listed customer by customer rather than netted into one figure.
New
+$250
Expansion
+$140
Contraction
$0
Churned
−$95
Net, March+$295
04
Cohorts by start month
Customers grouped by when they joined, with retention tracked per group. The effect of a price change or an onboarding fix reads here first.
OCT7 of 8
DEC11 of 13
JAN9 of 11
FEB6 of 6
05
Payment status beside every number
Paid, due and overdue stay visible per customer, with aging on anything late — so booked revenue and banked revenue never get confused for each other.
14 matched · $22,1803 inside terms · $2,8101 overdue · $2,400 · 9 days
06
Estimate against realised
A forward figure assembled from history, receivables and recurring patterns, then set beside what actually landed. Always labelled as an estimate.
Estimate
$30,100
Landed
$27,390
Gap $2,710 · the overdue $2,400 explains most of it
05In numbers

What the ledger
is built on.

$0M+
Processed through CashFish — invoices, charges and deposits matched to the records that raised them.
0+
Banks available for read-only sync, so the wire that lands outside Stripe still reports in.
0 min
Roughly how often payment data refreshes — and how stale the MRR figure is allowed to get.

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.

06Sources

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.

Stripe
AVAILABLE
Subscriptions, one-off charges and payouts, matched to the invoice or plan that raised them.
PayPal
AVAILABLE
Project payments and fees, tied to the customer even when the account name differs.
Square
AVAILABLE
In-person and one-off payments, mapped to a source instead of landing as a bare deposit.
WooCommerce
AVAILABLE
Store orders roll up as product revenue, order by order.
Shopify
PRIVATE BETA
Request access and we will tell you when it opens for your store.
Request access →
QuickBooks
ONE-WAY IMPORT
Existing books come in one way. Nothing is written back.

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.

07The plan

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.

$29/month billed yearly ($349) · or $39 monthly

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 →
08What the ledger doesn't guess

Asked before connecting.

No. Recurring lines get the MRR and ARR treatment, but project invoices, store orders and one-off charges are tracked by source and customer in the same ledger. The March on this page is a mixed month on purpose — most businesses are.

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