myrevenuemap.com

How to Build a Revenue Map for a Small Business

6 min read

A revenue map is a single view of where your money comes from: which streams, which customers, which channels, and how much of each sale you keep after the costs that come with it. You can build a first version in an afternoon from last year's sales records, and it answers questions a profit and loss statement cannot, such as which customer you could not afford to lose.

This is general information, not financial advice. The numbers below belong to a made-up neighborhood bakery and are there only to show the mechanics.

List every revenue stream

A revenue stream is a distinct way money comes in, with its own pricing logic and its own costs. Pull twelve months of data from wherever sales are recorded: your point-of-sale system, invoices, your payment processor, marketplace payouts and bank deposits. Before you do anything else, check that the total matches your books. A map that does not tie to your accounting will be argued with, and rightly.

For each stream, record:

  • annual revenue and number of sales,
  • the natural unit (one order, one seat, one item) and the average price per unit,
  • how it is priced (per item, per order, per hour, per seat),
  • when it sells (steady, seasonal, tied to holidays).

The example bakery has four streams: a retail counter, wholesale orders to local cafes, custom celebration cakes, and weekend baking classes. Look for streams hiding inside other ones, too. Delivery fees, gift cards, catering add-ons and one-off rentals often sit in a catch-all line and never get evaluated on their own.

Add customers and channels

Next, record who pays and how they reach you.

Customers. Group anonymous buyers (walk-ins, one-time cake orders) and name the accounts that buy repeatedly or on invoice. In the bakery example, wholesale is seven cafes. Retail is thousands of small tickets from people you will never name.

Channels. A channel is the route to the sale: walk-in, your own website, phone orders, a third-party delivery app, a marketplace, a referral partner. Channels matter because they carry different costs. A card-present sale at the counter, a website order with a processing fee, and a delivery app order with a commission can bring in the same revenue and leave very different amounts behind.

Build a grid with streams down the side and channels across the top, and put annual revenue in each cell. Empty cells are informative. If custom cakes only ever arrive by phone, that is either a gap to fix or a deliberate choice worth writing down.

Work out unit economics for each stream

For each stream, calculate the contribution per unit: the price minus the variable costs that come with one more sale. Variable costs are ingredients, packaging, payment fees, marketplace commissions and any labor that scales directly with volume. Rent, insurance and salaried staff are fixed costs and stay out of this step.

StreamPrice per unitVariable cost per unitContribution per unit
Retail ticket$14$6$8
Wholesale order$300$210$90
Custom cake$120$45$75
Class seat$65$20$45

Multiply by annual volume and the picture changes:

StreamRevenueContributionMargin
Retail (8,000 tickets)$112,000$64,00057%
Wholesale (200 orders)$60,000$18,00030%
Custom cakes (350)$42,000$26,25063%
Classes (400 seats)$26,000$18,00069%
Total$240,000$126,25053%

In this example, wholesale brings in a quarter of revenue but only about a seventh of contribution. Classes are the smallest stream by revenue and contribute as much as wholesale. Neither fact shows up on a normal income statement, where all four streams blend into one sales line.

Contribution is what pays the fixed costs. The SBA's guide to startup costs gives the break-even formula: fixed costs divided by (price minus variable costs) equals the number of units you must sell to break even. Run it per stream to see how many cakes or class seats a new fixed cost, such as a second oven or a part-time instructor, would require.

If a stream depends on paid marketing, add the acquisition cost too. A class seat that costs $30 in ads to fill contributes $15, not $45.

Check concentration risk

Concentration is how much of your revenue depends on a small number of customers, channels or streams. Measure it three ways.

Top customer and top five customers as a share of revenue. In the example, one cafe (Cafe A) buys $36,000 a year: 15% of the bakery's total revenue and 60% of its wholesale stream. For a sense of scale, US accounting rules treat 10% as the line at which a public company must report a major customer: under ASC 280-10-50-42, as summarized in Deloitte's accounting roadmap, a public entity discloses the fact when revenue from one external customer is 10% or more of its revenue. That rule does not apply to a private bakery, but it is a sensible marker for "large enough that a board would want to know."

A concentration index for each stream. The US Department of Justice calculates the Herfindahl-Hirschman Index (HHI) for markets by squaring each firm's market share and adding the results; its example of four firms at 30%, 30%, 20% and 20% scores 2,600. The DOJ uses it for markets, not for customer lists, but the same arithmetic works on your customers' shares of a stream. A stream with one customer scores 10,000. The example wholesale stream (60%, 20%, 10% and four cafes at 2.5% each) scores 4,125. Track the number over time rather than comparing it with anything external.

Channel dependence. One delivery app or one ad platform supplying most orders is the same risk in a different place. A fee change or a policy change there reaches straight into your revenue.

For anything that crosses your comfort line, write down what happens if it disappears. In the example, losing Cafe A removes $36,000 of revenue but only $10,800 of contribution, because wholesale margins are thin. If the bakery's fixed costs were $110,000 a year (another example figure), contribution would fall from $126,250 to $115,450: still covering fixed costs, but with the cushion down from $16,250 to $5,450. That is the kind of answer a revenue map exists to give.

A simple spreadsheet layout

Five tabs are enough.

  1. Transactions. One row per sale or invoice line: date, stream, customer, channel, units, revenue, variable cost. Everything else is calculated from this tab.
  2. Streams. One row per stream: revenue, units, contribution, margin, share of total revenue and share of total contribution.
  3. Customers. One row per named customer, sorted by revenue, with share and cumulative share.
  4. Channels. Revenue and contribution by channel, including channel fees as a variable cost.
  5. Map. A one-screen summary: the stream by channel grid, the top five customers, and the concentration numbers.

If the Transactions tab uses column B for stream, C for customer, F for revenue and G for variable cost, the Streams tab can pull its figures with SUMIFS, which works the same way in Excel and Google Sheets:

Revenue for the stream named in A2:
=SUMIFS(Transactions!$F:$F, Transactions!$B:$B, $A2)

Contribution for the same stream:
=SUMIFS(Transactions!$F:$F, Transactions!$B:$B, $A2) - SUMIFS(Transactions!$G:$G, Transactions!$B:$B, $A2)

HHI for customer shares stored as decimals in C2:C20:
=SUMSQ(C2:C20) * 10000

Keep raw data and calculations apart. Nobody types a number into the Streams or Map tabs; if a figure looks wrong, the fix happens in Transactions, and every tab updates.

Keep it current

Refresh the map every quarter, and whenever something big changes: a new wholesale account, a price increase, a new delivery partner. Each refresh, look at three things. Which stream has the best contribution per hour of effort, and could it grow? Which customer or channel has grown past your concentration line? And which stream would you drop, or reprice, if you had to free up time next month? A map that answers those three questions is doing its job.

More from myrevenuemap.com