Understand B2B metrics

The metrics that matter in B2B

Why conversion rate is the wrong headline number here, and the six that are worth watching instead.

Most analytics tooling was designed for a shop with 400,000 anonymous visitors and 4,000 orders a month. You have 400 customers, twelve of whom place most of the orders, and you know all of their names. Almost every default metric is wrong for that shape of business.

The number that does not work here

Conversion rate is orders divided by visits. It is the headline KPI of B2C because a B2C shop's problem is turning strangers into buyers.

Your problem is not strangers. A buyer at one of your customers logs in, already has a contract price, already knows the part number, and is placing an order that was going to happen anyway: by phone, by fax, by email, or through your shop. Sessions like that convert at 60 to 90 percent. The number is high, it is stable, and it tells you nothing you can act on.

Worse, it moves for reasons you do not want. Publish a public product catalog that attracts search traffic and your conversion rate collapses, because the denominator filled up with people who were never going to buy. The business got better. The KPI got worse. The same goes for sessions, bounce rate and traffic sources: diagnostic detail for a specific question, not the score.

The shift. In B2C you measure visits. In B2B you measure accounts. Everything below is a per-account number, or a number derived from accounts.

What to measure instead

Revenue per account, and its direction

The single most useful number in a B2B shop is not total revenue. It is revenue per account compared with the same account's previous period. Total revenue hides the thing you need to know: that three accounts grew 40 percent and four shrank by half, netting out to "flat".

Look at the same account across three windows: 30, 90 and 365 days. The 365-day figure is the account's weight; the 30-day figure against a twelfth of it tells you the direction. An account at 20 percent of its usual monthly run rate is a conversation for Monday morning, not a data point.

Share of orders arriving through the shop

This is the digitalisation KPI, and for most Mittelstand companies running a new B2B shop it is the real one, the number the project was funded on.

Count every order the company received in a period, from every route: the shop, punchout, email attachments typed in by the Innendienst, phone calls, the fax that still arrives. Then take the share that came through a digital channel.

It works because it is honest about the goal. Nobody bought a shop to increase online orders in isolation; they bought it to stop keying orders by hand. Measured per account it also tells you who to call. The customer still phoning in 200 lines a week is your highest-value migration target.

This metric only works if manual orders are visible to the platform. If your Innendienst types phone orders straight into the ERP and the ERP does not push them back, your shop share will read 100 percent and mean nothing. Decide how non-shop orders reach the platform before you report on this. See Deciding your system of record.

Order frequency, and time since last order

B2B customers rarely churn. They go quiet.

Nobody cancels a wholesale relationship. They start ordering from someone else, and the only visible symptom is that an account which used to order every eleven days has not ordered in seven weeks. There is no cancellation event to count, so the metric has to be built from silence: days since the last order, compared against that account's own normal interval.

A flat "no order in 90 days" list is a blunt version and still worth having. The sharper version is per account: an account that orders quarterly is fine at day 80; an account that orders weekly is a problem at day 30.

Average order value and basket composition

Average order value tells you whether the buying behaviour changed. In B2B it usually moves for a structural reason rather than a psychological one: a customer split one weekly order into three small ones because your free-shipping threshold changed, or because the shop makes reordering cheap enough that they stopped batching.

That is worth knowing, because small orders cost you money in picking and shipping. Always read average order value next to order count: the pair distinguishes "they are buying more" from "they are buying the same amount in more deliveries". Basket composition, which lines recur together, is what makes reorder lists and replenishment work at all.

Assortment penetration

Take one customer. Count the distinct articles they bought this year. Divide by the articles in the assortment they are entitled to see.

For most technical wholesalers the answer is embarrassing: a customer buying 90 articles out of an assortment of 12,000. That gap is the most reliable growth number in the business, because it is not a hypothesis about new customers. It is demand your existing customers already have and are currently satisfying somewhere else.

Penetration is also the number that justifies catalog work. A customer cannot buy the 11,910 articles they never see, and they will not find them if the data is not structured enough to filter. See Data quality in practice.

Cohorts when you have 400 customers

Cohort analysis in B2C means grouping tens of thousands of signups by month and watching retention curves smooth out. With 400 customers, a monthly cohort has six members and one large account joining or leaving moves the whole curve. Statistical cohort analysis does not work at this size; it produces confident lines drawn through noise.

What does work is treating cohorts as named lists you can act on:

Instead ofUse
Retention curve by signup monthThe list of accounts that ordered last quarter but not this one
Average customer lifetime valueThe top 20 accounts by 365-day revenue, and each one's trend
Conversion rateShare of accounts that ordered at all this quarter
Churn rate percentageDays since last order, per account, against its own interval

The rule: with 400 customers, every metric should resolve to a list of company names somebody can work through. A percentage nobody can act on is decoration.

How this works in the Revenue Cloud

Per-account metrics are maintained by the Customers app as organization_metrics: one record per organization, recalculated on a schedule rather than queried live. The fields are the ones this article argues for:

FieldWhat it gives you
revenue_30d revenue_90d revenue_365d revenue_totalRevenue per account across three windows plus lifetime
order_count_30d order_count_90d order_count_365d order_countOrder frequency, and its trend
avg_order_value avg_order_value_365dBasket size, lifetime and recent
first_order_at last_order_atTime since last order, the churn signal
currency currency_mixedWhich currency the money is in, and a flag when an account has traded in more than one
computed_at orders_as_ofWhen the numbers were last calculated, and how far the order data reached

You meet them in two places today, both in Commerce Studio › CRM:

  • On the organization. Open an organization and its Orders tab. Under the order list sits Order history: First order, Last order (shown as "x days ago", and flagged stale after 180 days), Orders 30 d, Orders 90 d, Revenue 30 d, Revenue 90 d and Mixed currencies. An organization with no computed figures yet says so rather than showing zeros.
  • In segments. A segment rule can select on the Revenue & orders fields: revenue and order count in every window, average order value, first and last order date, and days since last order. A segment with the rule days since last order greater than 45 is the "gone quiet" list from the section above, kept up to date without anyone exporting anything. A segment on Revenue (365 d) gives you the top-account list.

Those two are the management report until Analytics Studio ships. Read the gone-quiet segment on Monday and the top-account segment once a month, and you are ahead of most dashboards.

Analytics Studio is planned. The prepared Revenue, Orders and Customers views described in Dashboards and KPIs are not yet on your tenant. The per-organization figures and the segments above are.
currency_mixed is not a footnote. If an account has ordered in both EUR and CHF, its revenue figures are a sum of two currencies and are wrong as a single number. Check the flag before you put an account revenue figure in front of management. The same applies to any total across a market with a different base currency.

Next