A convenience store's profit margin comes in two numbers. The gross margin, what's left of sales after the cost of what sold, is a blend of quite different categories: milk might earn 30%, bottled drinks around half, and a coffee bar three-quarters. The net margin, after card fees, shrink, rent, wages and power for the coolers, is much thinner. In the example below, a corner store sells $24,000 in a month at a 49.3% gross margin and keeps $895, a 3.7% net margin, before paying its owner. Below is the margin by category, what comes off before the bottom line, what moves it, and a free calculator.
The short version
- Gross margin = (sales − cost of goods sold) ÷ sales, worked out by category.
- Categories differ widely: dairy and staples thin, drinks and snacks middling, coffee and fountain drinks high.
- Card fees and shrink take a few points of sales before any fixed cost.
- Rent, wages and the coolers' power take most of the rest.
- Small changes in shrink or the coffee bar move net profit a lot.
- Count often: shrink you can't see is shrink you can't fix.
- TaroStack records every loss with a reason and shows margin by product. More below.
Gross margin by category
Penobscot Corner Store, a made-up corner store in Bangor, Maine, I use in these examples, has a typical month:
| Category | Sales | Gross margin | Gross profit | Share of sales | Share of gross profit |
|---|---|---|---|---|---|
| Beverages | $9,000 | 52% | $4,680 | 37.5% | 39.6% |
| Snacks and candy | $5,500 | 50% | $2,750 | 22.9% | 23.3% |
| Dairy and eggs | $3,000 | 30% | $900 | 12.5% | 7.6% |
| Bakery | $1,200 | 40% | $480 | 5.0% | 4.1% |
| Coffee bar | $2,400 | 75% | $1,800 | 10.0% | 15.2% |
| Household and health | $1,800 | 40% | $720 | 7.5% | 6.1% |
| Local products | $1,100 | 45% | $495 | 4.6% | 4.2% |
| The store | $24,000 | 49.3% | $11,825 |
Dairy is 12.5% of sales and only 7.6% of the gross profit; it's there because people come in for milk and leave with a coffee and a snack. The coffee bar is 10% of sales and more than 15% of the gross profit. How margin and markup differ is in markup vs margin.
From gross to net
| The month | Amount |
|---|---|
| Sales | $24,000 |
| Gross profit | $11,825 |
| Card fees, 2.5% of sales | −$600 |
| Shrink: theft, damage, out of date, 2% of sales | −$480 |
| Rent | −$2,800 |
| Wages, part-time help | −$5,200 |
| Utilities, coolers and lights | −$1,100 |
| Insurance | −$300 |
| Register and software | −$150 |
| Other | −$300 |
| Left, before the owner's pay | $895 |
That's a 3.7% net margin, and the owner works the counter for it. A convenience store lives on volume and on the small differences: the store's whole profit is less than four points of sales.
What moves the margin
- Shrink. Cutting it from 2% of sales to 1% adds $240 a month, more than a quarter of the profit. It's out-of-date dairy and bread, damaged goods and theft, and all three show up only if you count.
- The coffee bar. Another $1,000 of coffee sales adds $750 of gross profit for the cost of beans and cups.
- The mix. Shelf space given to a 50% item rather than a 30% one lifts the blend.
- Local products. A maker's jam or granola at 45% to 50%, with fewer competitors on price, can earn more per foot than another brand of chips.
Why counts and records drift apart is in why inventory doesn't match, and how gross margin relates to the money tied up in stock in GMROI formula.
Get the calculator
Download the convenience store margin calculator. Two sheets: by category, where each category's sales and gross margin give gross profit and each category's share of sales and of gross profit; and the month, where card fees and shrink as shares of sales and your fixed costs give what's left and the net margin. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
A category margin on a spreadsheet is a guess about thousands of items, and shrink at 2% is a number you plug in, not one you measured. Which milk went out of date, which items walked out, and which vendor's invoices were short all disappear into the one percentage.
How TaroStack does it
TaroStack records every loss with a reason and shows margin by product.
Losses with a reason. Every adjustment carries its reason, lost, damaged, expired, spoiled, sample, found or correction, so shrink is reported by reason, by item and by site, not plugged in as 2%.
Counts that find it. Counting on a phone by barcode suggests what to count first, by what it would cost to be wrong, and shows what a variance is worth before you post it.
Margins on what things cost. Margins are reported by product and customer on what each item actually cost, from the deliveries received, with a price-creep report by supplier. Dairy and bread keep their dates, so out-of-date losses can be caught before they happen.
| The job | Spreadsheet | In TaroStack |
|---|---|---|
| Shrink | A plugged-in 2% | By reason, item and site |
| Out-of-date milk | Found on the shelf | Dates, oldest first |
| What to count first | Everything, monthly | Suggested by risk |
| A vendor's price creeping up | Unnoticed | Price-creep report |
Counts, losses by reason, expiry and margin reports are on every plan, from $49 a month, with no limit on items; TaroStack connects to Square. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
