ClearingHouse

Reading your own P&L: what's normal for an early-stage SaaS business

By Duncan ·

Most founders check their P&L every month without really knowing whether the numbers they're looking at are healthy, worrying, or completely normal for a business at their stage. There's no red flag icon that appears when something's off. You have to know roughly what to expect.

Here's a rough guide to reading your own numbers, and where founders most often misread them.

The shape of a SaaS P&L

At a basic level, a SaaS P&L breaks down as:

  • Revenue: subscription and usage income
  • Cost of sales / COGS: the direct cost of delivering the product, mainly hosting, infrastructure, third-party API costs, and payment processing fees
  • Gross profit: revenue minus cost of sales
  • Operating expenses: salaries, marketing, tools, office costs, professional fees
  • Net profit or loss: gross profit minus operating expenses

The single most useful number in that list, especially early on, is gross margin.

What normal gross margin looks like

Healthy SaaS businesses typically run gross margins between 70% and 85%. That's revenue minus the direct cost of serving customers (hosting, infrastructure, payment fees), divided by revenue.

If yours is meaningfully lower than that, it's worth digging into why:

  • Payment processing fees categorised as cost of sales are unusually high. Stripe fees of 1.5–3% shouldn't move the needle much on their own.
  • Infrastructure costs scale linearly with customers rather than sublinearly. If doubling your customer base doubles your hosting bill, something in your architecture (or your pricing) probably needs attention.
  • Support or account management costs are being counted as cost of sales when they're really operating expenses, or vice versa. Where the line falls varies by business, but it should be consistent, so you can trust the trend over time.

None of this means low margin is a crisis at early stage. It's common to run thinner margins while you're small and infrastructure costs haven't been optimised yet. What matters is knowing your number and whether it's trending in the right direction, not treating 70–85% as a pass/fail threshold on day one.

Reading opex and runway

Operating expenses are where founder judgement matters most, since there's no universal benchmark for "correct" spend on marketing or headcount. What you can check is whether opex is growing in proportion to something, revenue, customers, or a deliberate growth bet, rather than growing on its own.

If you're pre-revenue or early-revenue, the number that matters more than any single line item is runway: cash in the bank divided by monthly net burn. A P&L that shows a loss isn't inherently a problem. A P&L where you can't say with confidence how many months of runway that loss leaves you is.

Categorisation problems that make your P&L unreadable

The most common reason founders misjudge their own numbers isn't the business being unhealthy, it's the underlying categorisation being inconsistent, so the trend line is noise.

Payment processing fees lumped into generic "bank charges". If Stripe fees sit in a catch-all bank charges category alongside actual banking fees, you can't see them as a cost of sales line at all, and your gross margin looks better than it really is.

Revenue not split by product or plan. If you sell more than one product or plan tier, a single "sales" line hides which parts of the business are actually driving growth versus which are flat or shrinking.

Founder costs mixed into general opex. Director's salary, dividends, and personal expenses run through the business should be visible as their own lines, not folded into "staff costs" or "other", or you'll misjudge what the business actually costs to run without you.

One-off costs not flagged as one-off. A big one-time legal bill or a hiring burst can make a single month look like a trend when it isn't. If you're eyeballing month-over-month change, one-off items need to be visible as such.

How to actually use this

Don't read a single month in isolation. Look at three to six months of trend on gross margin, opex, and net burn. A single bad month tells you very little. A consistent direction over a quarter tells you a lot.

And before drawing any conclusions from the numbers, check that the categorisation behind them is consistent. A P&L built on inconsistent categorisation will send you chasing problems that don't exist, or missing ones that do.

Keeping the underlying data clean

Most of the categorisation problems above come down to how Stripe transactions get recorded in FreeAgent in the first place. If fees, refunds, and revenue by product aren't split out automatically, they tend to get lumped together by default. ClearingHouse handles that categorisation as transactions happen, so the P&L you're reading each month reflects the business accurately rather than however the native bank feed happened to group things.

Stop reconciling Stripe by hand

ClearingHouse syncs your Stripe invoices, payments, refunds, and fees into FreeAgent automatically. Try it free for 14 days.