The metrics that matter in B2B
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.
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.
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 of | Use |
|---|---|
| Retention curve by signup month | The list of accounts that ordered last quarter but not this one |
| Average customer lifetime value | The top 20 accounts by 365-day revenue, and each one's trend |
| Conversion rate | Share of accounts that ordered at all this quarter |
| Churn rate percentage | Days 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:
| Field | What it gives you |
|---|---|
revenue_30d revenue_90d revenue_365d revenue_total | Revenue per account across three windows plus lifetime |
order_count_30d order_count_90d order_count_365d order_count | Order frequency, and its trend |
avg_order_value avg_order_value_365d | Basket size, lifetime and recent |
first_order_at last_order_at | Time since last order, the churn signal |
currency currency_mixed | Which currency the money is in, and a flag when an account has traded in more than one |
computed_at orders_as_of | When 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.
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
- Agree what counts as an order — the definition every figure above depends on.
- Trusting your numbers — before you report any of this upward.