FinTech

How to Read a P&L, for Software Engineers

A profit and loss statement is a system with about eight components and a strict order of operations. You already read stack traces. This is easier — and it tells you which of your arguments will land and which are structurally unanswerable.

Published May 27, 20269 min readUpdated May 27, 2026

Written by · Full-Stack Agentic AI Software Engineer — AI Agents, Automation & Revenue Systems for GTM/RevOps teams

In brief

How does a profit and loss statement work, and why should a software engineer be able to read one?

A P&L is a waterfall with a fixed order of operations: revenue at the top, then cost of goods sold, giving gross profit and gross margin; then operating expenses split into research and development, sales and marketing, and general and administrative, giving operating income; then interest and tax, giving net income. The order is the point, because it determines which line your work touches and therefore which arguments are available to you. Infrastructure, third-party APIs and support sit in cost of goods sold, so cutting them raises gross margin — the metric software valuations rest on, generally expected above roughly 75%. Engineering salaries sit in R&D, below the gross margin line, which is why headcount arguments are structurally different from cost-to-serve arguments and why 'we spend 42% of the week on technical debt' does not show up anywhere on this statement. Reading it also explains the Rule of 40, the difference between profit and cash, and why a profitable company can still run out of money.

  • The P&L is a waterfall and the order of operations is the whole information content — which line you touch decides what argument you can make
  • Cost of goods sold is where infrastructure and support land, and it is nearly the only line an engineer can move unilaterally
  • Engineering salaries sit in R&D below gross profit, so a maintenance burden never appears as a cost of serving customers
  • Profit is not cash: a P&L can look healthy while the bank balance falls, which is why runway is tracked separately
  • The Rule of 40 — growth rate plus profit margin — is the standard summary, and Benchmarkit's 2026 cohort has a median of 25%

Evidence notes

Benchmarkit 2026 SaaS Benchmarks (342 companies)

Median Rule of 40 score of 25%, up from 15% the prior year — reported as the largest single-year gain in five years of the survey. Median CAC payback 16 months, improved from 18. Net revenue retention around 106% on average, above 120% for top performers. Software businesses generally expected to hold gross margin above roughly 75%. Self-reported survey data from participating companies.

Andreessen Horowitz, '16 Startup Metrics'

Sets out the distinction between bookings, billings, recognised revenue and cash collected — four numbers a single contract can produce, only one of which appears at the top of a P&L — and why conflating them is the most common way company performance gets misdescribed.

Stripe / Harris Poll, 'The Developer Coefficient' (2018)

13.5 hours of an average 41.1-hour developer week on technical debt and 3.8 on bad code, roughly 42%. Because engineering salaries are booked to R&D as operating expense rather than to cost of goods sold, none of this appears as a cost of serving customers and it does not affect gross margin at all.

David Skok, 'SaaS Metrics 2.0'

Explains why gross margin functions as a multiplier inside LTV rather than as a standalone efficiency measure, which is the mechanism connecting a cost-of-goods-sold reduction to the ratio investors price a company on.

A profit and loss statement has about eight meaningful components and a strict order of operations. If you can read a stack trace you can read one of these in an afternoon, and the reason to bother is entirely practical: the line your work touches determines which arguments are available to you.

Most engineering proposals lose because they arrive denominated in a unit nobody in the room can compare against anything. Knowing the statement fixes that.

The waterfall

It's a sequence of subtractions. Each step takes something from the flow and passes the remainder down.

Line

What it holds

Your relationship to it

Revenue

What customers were billed for the period

Indirect — via retention and expansion

− Cost of goods sold

Hosting, third-party APIs, egress, support, delivery

Direct. This is your line

= Gross profit / gross margin

What's left to fund everything else

The metric your cost work moves

− R&D

Engineering and product salaries

You are this line

− Sales & marketing

Salaries, commission, advertising

None

− General & administrative

Finance, legal, HR, premises

None

= Operating income

Profit from running the business

Downstream of everything above

− Interest and tax

Financing and government

None

= Net income

The bottom line, literally

Two rows carry almost all the information for an engineer, and they're on opposite sides of the gross profit line. That split is the single most useful thing on the statement.

Why the split matters so much

Cost of goods sold is above gross profit. Anything in it is subtracted before gross margin is computed, so reducing it raises gross margin directly and permanently — every month, without further spend.

Engineering salaries are below it, in R&D. Reducing them does not touch gross margin at all. It improves operating income, which matters, but it is a different argument made to different people with different concerns.

Cut the hosting bill and you have improved the business model. Cut the engineering budget and you have improved this quarter. Those are not the same claim and they don't persuade the same person.

This also explains a distortion worth knowing about. Because engineering salaries sit in R&D, the roughly 42% of the developer week Stripe measured going to technical debt and bad code never appears as a cost of serving customers. A product with an enormous maintenance burden can post an excellent gross margin indefinitely, because the cost of keeping it alive is booked as investment in building it. Pair this with XenGrowth's work on go-to-market systems if how to read a P&L, for software engineers sits inside a wider growth programme.

That is not an accounting error — the convention is defensible, since building a product genuinely is an investment. But it means the statement is structurally blind to maintenance burden, and no amount of staring at a P&L will surface a problem that your team lives with daily. There is a longer treatment of the operations side of this in The XenGrowth resource library.

Four numbers one contract can produce

Before the waterfall even starts there is an ambiguity worth resolving, because it is where most confusion about company performance originates. A single deal generates several different figures, all of them legitimate, all of them routinely called 'revenue' in conversation.

Bookings are the total value of the contract signed — a three-year deal books all three years. Billings are what has actually been invoiced, which may be one year of that. Recognised revenue is the portion earned in the current period, which for an annual contract billed upfront is one twelfth per month. Cash collected is what has arrived in the bank, which depends on payment terms and on whether the customer pays on time.

Only recognised revenue appears at the top of a P&L. So a company can announce a record bookings quarter, show flat revenue, and hold a large cash balance, all truthfully and simultaneously. When somebody quotes a number to you, the useful question is which of the four it is — and the fact that this question is rarely asked is precisely why the largest-sounding of the four is the one that tends to get quoted.

The gap between billings and recognised revenue has a name on the balance sheet: deferred revenue, money received for work not yet delivered. It is recorded as a liability, which surprises people the first time they see it, and it is one of the clearest illustrations that these statements are describing obligations rather than simply counting money.

Profit is not cash

The misunderstanding most likely to embarrass you in a meeting. A P&L recognises revenue when it is earned, not when the money arrives, and spreads some costs over time rather than recording the outflow.

So a company can bill a year in advance, hold a large cash balance, and show only modest profit — the revenue is recognised monthly as it is earned. Or it can sell on ninety-day terms, report a profitable quarter, and be unable to make payroll, because profitable and solvent are different properties.

This is why runway lives on the cash flow statement rather than here, and why 'are we profitable' and 'how long do we have' are separate questions with occasionally opposite answers. If you only ever learn one thing about company finance, learn that these are two statements and not one. XenGrowth on AI agents and marketing automation goes further into AI agents and marketing automation.

What the numbers should roughly look like

Benchmarks are directional rather than precise — these are self-reported survey figures from companies who chose to participate — but they tell you when something is unusual enough to ask about.

  • Gross margin above roughly 75% is the software convention. Well below it, and either cost to serve is too high or the business is more services-shaped than its valuation assumes

  • Rule of 40 — growth rate plus profit margin above 40 — is the standard summary. Benchmarkit's 2026 cohort of 342 companies had a median of 25%, up from 15% the previous year

  • Net revenue retention around 106% on average, above 120% for top performers. Below 100% means the existing customer base is shrinking and new sales are refilling a leaking bucket

  • CAC payback with a median of 16 months, improved from 18, with top quartile at 6 months and fourth quartile as long as 48. The spread matters more than the median

  • Gross margin falling in a growing company is the signal worth escalating: it usually means cost per customer is rising, which is an engineering problem arriving as a finance number

That last one is the single most useful thing to watch, because it's the case where a finance report is telling you about your own system before your own monitoring does.

What this changes about how you argue

The practical payoff is that you stop making two categories of argument that cannot be answered, and start making ones that can.

The unanswerable kind asserts a technical judgement and asks for trust: this is wasteful, this needs refactoring, the architecture is wrong. Every one of those may be true. None of them gives the person holding the budget anything to compare against the four other proposals on their desk, so the decision gets made on seniority and confidence rather than on merit — which is a game engineers usually lose to sales.

The answerable kind names a line and a direction. This moves gross margin by roughly this much, permanently. This reduces support tickets, which sit in cost of goods sold. This shortens onboarding, which shows up in CAC payback. Each of those can be checked, argued with, and prioritised against other things — which feels riskier, because a claim that can be checked can also be found wrong, and that is precisely why it carries weight.

There is a discipline attached, though. Once you start speaking this way people will begin to check, and the credibility that makes the technique work evaporates the first time a number turns out to have been optimistic. If a saving is small, say it is small. Being the engineer whose figures hold up is worth considerably more over a career than winning any individual argument.

Where to actually find this

If you work at a public company, the quarterly filings contain all of it and are free. Read your own employer's, then read a competitor's, and the differences will teach you more than any explanation — you'll see immediately which of them is spending on sales and which on engineering, and what each is betting on. XenGrowth on AI search, GEO and discovery covers the AI search, GEO and discovery side of this.

At a private company, ask. Most finance teams are pleased to be asked and slightly startled that an engineer wants to know; the request is unusual enough to be memorable in a way that's generally good for you. If the numbers are confidential, ask for gross margin and its direction, which is usually shareable and is the part you can act on anyway.

Question to ask

What the answer tells you

What's our gross margin, and which way is it moving?

Whether cost to serve is outrunning price

What's in our cost of goods sold?

Which of your decisions are actually in scope

How much of revenue is infrastructure?

Whether the work you want to do is material

What's our net revenue retention?

Whether reliability and product quality have a financial argument

What's runway, and is it computed on current burn?

Which constraint the company is actually operating under

Five questions, one conversation, and afterwards you can tell whether your proposal is material or a rounding error — which is worth knowing before you spend a quarter on it.

Further reading from XenGrowth

Where this work meets go-to-market

For the marketing and revenue operations view of how to read a P&L, for software engineers, see XenGrowth's growth operations team.

Can you place the lines?

Five questions on where things sit and why it matters. Getting these right is the difference between an argument a CFO can act on and one they have to translate first.

1 / 5
Where does your cloud hosting bill appear on a P&L?

Apply this article

How to turn insights into execution

A practical sequence for teams turning concepts into production outcomes.

FinanceBusinessCareersAccountingSoftware EngineeringUnit Economicsfinance

Audit your current state

Map the bottlenecks and constraints connected to the article’s core problem.

Choose one bounded change

Test the most useful recommendation on one workflow before widening the scope.

Measure what changed

Keep the parts that improve the work, document what failed, and make the next decision from evidence.

Next step

Need help applying this in your stack?

I can translate these patterns into a concrete implementation plan for your team.

Discuss implementationBack to blog

Replies usually within 24 hours.

Next Steps

Continue reading

ARR, MRR, CAC, LTV and Churn, Explained for Engineers

Not a glossary. Each of these is a rate, a ratio or a stock, they compose in specific ways, and most of the arguments you'll hear in a planning meeting are people disagreeing about a denominator. Including the famous 3:1 rule, which its own author says he explained badly.

Navigate

A Dollar Saved Is Worth More Than a Dollar Earned

At a 20% net margin, saving a dollar of cost does the same for profit as earning five dollars of revenue. Engineers are usually the only people in the building who can save dollars unilaterally — and almost nobody frames the work that way.

Navigate

How to Calculate the Business Value of Engineering Work

There are only four places business value can come from, and knowing which one you're claiming does most of the work. The commonest mistake isn't bad arithmetic — it's claiming a benefit in a category the work doesn't actually touch.

Navigate

The Economics of a One-Person Software Business

Stripe's own data shows the gap between a top-decile solo founder and the median one has gone from 34x to 61x in four years. That gap is the whole story: a one-person software business isn't a smaller startup, it's a different asset class, and revenue per hour is the metric that proves it.

Navigate

How Architecture Decisions Affect Gross Margin

Your architecture sets a ceiling on gross margin that no amount of cost-cutting can lift. Software is expected above roughly 75% — and the decisions that decide whether you clear it were made years earlier, usually by someone who never saw the number.

Navigate
  • What Unit Economics Means for Engineering Decisions

    Unit economics asks one question: does one more customer make you better or worse off? If the answer is worse, growth accelerates the problem — and the fastest way to be wrong about it is to average a cost that isn't evenly distributed.

  • How Much Revenue Can One Engineer Actually Influence?

    More than most engineers think and less than the 10x stories claim. The useful version isn't a multiplier — it's four specific channels, each with a formula, and knowing which ones your job actually gives you access to.

  • When Technical Debt Becomes Financial Debt

    The debt metaphor is better than the people using it realise. Debt has a principal, an interest rate, and a maturity — and the only one of those most teams ever discuss is the principal, which is the least important of the three.

  • Every Engineer Should Know How Their Company Makes Money

    Not as a loyalty exercise. Because the revenue model silently determines which technical tradeoffs are correct — and two teams building identical features under different models should make opposite decisions about caching, uptime and cost.

  • What Happens to Pricing When Code Gets Cheap to Produce

    Cursor was reportedly paying Anthropic more than it collected from customers, at negative gross margin, while charging some of the lowest prices in software history. That isn't a Cursor problem. It's what happens to price and margin whenever the marginal cost of producing the good collapses — a pattern economics named forty years before AI wrote a line of code.