Two hardware store owners end up next to each other at a co-op meeting, and over coffee they discover they both "make 40 percent" on the same line of fasteners. They buy from the same vendor at the same cost, so they shake hands on it and move on to talking about truck day. What neither of them says out loud is that one owner sets his prices by margin and the other sets his by markup, and those two habits produce different prices on every single item on the shelf. By the end of the year, one of them is eleven points poorer than he thinks he is, and he has no idea, because his price tags say exactly what he told them to say.

This is the most expensive vocabulary mix-up in independent retail, and about half the stores we talk to use the two words interchangeably. The profit dollars are identical either way. What changes is the number you divide by, and that one difference compounds across every price tier, every contractor discount, and every cost increase you absorb at the receiving bench. Here are the two definitions, worth memorizing before you read another word:

Markup % = (price − cost) ÷ cost. Your profit measured against what you paid.

Margin % = (price − cost) ÷ price. Your profit measured against what you charged.

Same dollars in your pocket, different base under the division. Everything else in this article, the table, the calculator, the contractor tier that earns less than you think, follows from that one line.

The formulas, side by side

Take the classic worked example, an $80 cordless drill you sell for $120. Your profit is $40. Measured against cost, that is a 50% markup. Measured against price, that is a 33.3% margin. Both statements are true about the same drill sitting on the same shelf.

Now take a $12.00 cost item you want at a 40% margin. To get there, the price has to be $20.00, because the price formula is cost ÷ (1 − margin). That $8.00 profit is a 40% margin, but it is a 66.7% markup. Same item, same profit, two very different numbers depending on which word you use.

Cordless drill $12 item at 40% margin
Cost $80.00 $12.00
Price $120.00 $20.00
Profit $40.00 $8.00
Markup (profit ÷ cost) 50% 66.7%
Margin (profit ÷ price) 33.3% 40%

The four formulas worth taping to the wall by the tint area:

  • Markup % = (price − cost) ÷ cost
  • Margin % = (price − cost) ÷ price
  • Price from a markup: price = cost × (1 + markup)
  • Price from a target margin: price = cost ÷ (1 − margin)

Notice the margin number is always smaller than the markup number for the same sale, because price is always bigger than cost. That is the whole trap. A markup sounds more impressive than it is, and a margin is worth more than it sounds.

The conversion table

If your store thinks in one language and a vendor program, a co-op report, or your pricing manager thinks in the other, this table is the Rosetta Stone. Print it. Laminate it. Nail it to the bench next to the label printer.

Margin Equivalent markup
10% 11.1%
20% 25%
25% 33.3%
30% 42.9%
33.3% 50%
40% 66.7%
45% 81.8%
50% 100% (keystone, doubling cost)
60% 150%
75% 300%

The conversions themselves are margin = markup ÷ (1 + markup) and markup = margin ÷ (1 − margin), but for the common numbers you can get there in your head with a little practice. A 33.3% margin is a 50% markup. A 50% margin is a 100% markup, which is keystone, doubling your cost. Once you have those two anchors, the rest of the table stops being surprising.

The row to stare at is the keystone row. Keystone pricing, doubling cost, sounds like a fat 100% when you say it as a markup. As a margin it is 50%, and half of every dollar coming across the counter is already spoken for by the cost of the goods.

Margin and markup calculator

Type in a cost and either a margin or a markup, and this will show you the price, the profit, and the other number so you never have to convert at the bench again.

What the item costs you landed, after freight.
A percentage. Say whether it is a margin or a markup below.
Fill this in and the target above is ignored.

Retail $20.00

A 40% margin on a $12.00 cost is a 66.7% markup. You keep $8.00 of every sale.

Three places the mix-up costs money

Knowing the difference in the abstract is one thing. Here is where it actually takes money out of the register, with the numbers worked out.

Contractor discounts

Say your $12.00 cost item retails at $20.00, a 40% margin, and you give your contractors a percentage off retail. A contractor with 10% off pays $18.00. Your instinct says you dropped from 40% to 30%, because 40 minus 10 is 30. Your instinct is wrong. The margin on that sale is $6.00 ÷ $18.00, which is 33.3%. Give him 15% off and he pays $17.00, and the margin is 29.4%, not 25%.

Discount off $20.00 retail Contractor pays Actual margin
10% $18.00 33.3%
15% $17.00 29.4%

The discount always bites harder than it looks, because it comes off the bigger number. Ten points off the price is more dollars than ten points off the cost, and the margin absorbs every one of them. This is why contractor tiers earn less than owners think they do, and why a paint retailer we talked to is moving "from dollar-based to margin-based custom pricing to protect profitability." If you run charge accounts and contractor pricing, it is worth reading how stores handle this on the account side too, in our piece on contractor charge accounts for paint stores and the buyer's guide to POS charge accounts.

Cost increases

Your vendor raises the $12.00 item to $14.00. Now you have a decision, and there are three defensible answers that produce three different stores.

Choice New price Resulting margin
Hold the dollar markup ($8.00) $22.00 36.4%
Hold the 40% margin $23.33 40%
Hold the old price $20.00 30%

Holding the dollar markup feels fair, you made $8.00 before and you make $8.00 now, but your margin quietly slips from 40% to 36.4%. Holding the price feels kind to your customers, and it costs you ten full points of margin. Holding the margin is the only choice that keeps your percentage intact, and it requires raising the price by $3.33, which is more than the $2.00 your cost went up. That last part surprises people. When cost rises by $2.00, price has to rise by more than $2.00 to hold the margin, because the margin is a percentage of price.

An owner put it to us exactly this way on a call: "It went up by two dollars. We still want to make 50 percent. Will it now reduce the margin because we didn't change the sales price?" Yes. It will. Every time.

The receiving bench

This is where the confusion is born, because "cost plus 40" is the way benches have talked for decades, and cost plus is markup language. If the pricing rule in your system is a margin and you type 40 on a $12.00 cost, you get a $20.00 price. If the rule is a markup and you type 40, you get $16.80. Same cost, same keystrokes, a $3.20 difference per unit, and the second store just gave away eleven points of margin without feeling a thing.

Rule type Cost Typed value Price Actual margin
Margin $12.00 40 $20.00 40%
Markup $12.00 40 $16.80 28.6%

This is the classic trap: a buyer told to "price at 40%" applies a 40% markup, lands a 28.6% margin, and the store misses its target by eleven points on every item that crosses the bench. The fix is not better math skills. The fix is deciding, as a store, which word your system speaks, and then making sure everyone typing prices knows.

Which one should a supply store use?

Use margin for anything you plan, report, or measure, and treat markup as a bench habit you know how to translate.

Margin is the language of your P&L, your accountant, your buying group, and every benchmark you will ever compare yourself against. Gross margin is profit as a share of sales, and sales is the number that shows up everywhere. It is also the number GMROI is built on, since gross margin return on investment divides your margin dollars by your average inventory cost, and we walk through that math in our piece on the inventory turnover ratio and GMROI.

The NHPA's 2025 Cost of Doing Business Study, covering fiscal 2024 across 1,082 stores, put hardware stores' gross margin after rebate at 42.6%, the highest since 2016, with profit before taxes at 4.7%. That 42.6 is a margin. So when you say your store "makes 40 percent," you are right at the typical independent's margin only if that 40 is a margin. If it is a markup, your margin is 28.6%, and you are running fourteen points below the typical store while believing you are two points under it. That gap, between what the number says and what the number means, is the whole subject of this article in one sentence.

There is nothing wrong with markup as a habit. It is quick mental math at the bench, and plenty of sharp operators think that way. The rule is simply that targets, reports, tiers, and benchmarks should live in margin, and anyone reaching for markup should know the conversion cold. For the common numbers, you can do it in your head: 25% markup is 20% margin, 50% markup is 33.3% margin, 100% markup is 50% margin.

Cost plus and keystone

Two phrases you will hear forever, so it pays to pin them down.

Cost-plus pricing is markup pricing wearing a work shirt. "Cost plus a percentage of cost" is the definition of a markup, full stop. When a store says it prices cost plus 30, it means a 30% markup, which is a 23.1% margin. Nothing wrong with it, as long as everyone in the building knows which word is doing the work.

Keystone is the old retail standard of doubling cost: a 100% markup, a 50% margin. It survives as a rule of thumb on gift items, seasonal endcaps, and anything without a co-op suggested retail, but it is a starting point, not a strategy, and plenty of categories will not carry it. The important thing is that keystone is a margin of 50%, not 100%, no matter how it sounds when you say "we double our cost."

How Rundoo prices by margin

Since you are reading this on the Rundoo site, here is how the AI-first POS for independent supply stores handles all of this, verified against our support threads, sales calls, and the feature board. (The full walkthrough lives on the pricing and purchasing page.)

Every product in Rundoo has a Price Strategy with three options: Dollar, where you type the price yourself; Margin, where the price is computed from cost at a target margin; and Discount, a percentage off Tier 1, usually retail. Margin tiers compute from Standard cost.

In Rundoo, "Margin" means gross margin on price, exactly the formula from the top of this article: price = cost ÷ (1 − margin%). A $38.65 cost at a 40% margin prices at $64.42. And here is the clarification this article exists for: there is no separate markup strategy. If your store has always thought "cost plus 10%" in the markup sense, you enter the equivalent margin, which is 9.1%. Type 10 into a margin field expecting cost plus 10 and your price will land at an 11.1% markup instead of the 10% you meant. Now you know why that matters, and by how much.

Rule-based price tiers, Tier 2 and up, can be "X% off Tier 1" or "cost plus Y% margin," scoped by vendor, department, or class, with anything unmatched falling back to Tier 1. Quantity breaks can be by discount or by margin, and price rounding to .99 is available. One plain caveat: there is no department-wide default margin field. Department-wide pricing runs through rule-based tiers or Custom prices (By rules).

At receiving, where this article says the trouble starts, you click edit on a line and change the cost (one-time cost, Standard cost, or Default cost) and the retail and tier prices on one page, by dollar, by margin, or by discount, per unit of measure, with the live margin shown right there. It tells you what the price needs to be at that margin, which is exactly what owners have asked us for in their own words: "I would love to see a margin box. We have 12 dollars cost and we want a 50 percent margin. We shouldn't have to calculate it somewhere else." Another put it shorter: "Put in the cost, hit 40 percent, it tells us where we should be." That is what it does.

One subtlety worth understanding before you trust any system with repricing. Rundoo keeps two costs. Receiving updates Average cost, which is what the units on your shelf actually cost you. Margin-based tiers compute from Standard cost, and a receipt does not change Standard cost, so your prices do not drift until you update it deliberately, either on the product's Costs tab or through the Price changes queue. Products > Integrations > Price changes queues vendor catalog and EDI cost changes with columns for New price, Price change %, Current price, New cost, Cost change %, Current cost, and Margin change, and the new price and cost cells are editable before you apply anything. The actions are Update costs, Update prices, or Update prices and costs. Nothing reprices automatically on receipt; you see the margin impact first, then you decide. And if the "cost" in all of this should include freight, which it should, our companion piece on landed cost covers how to get it there.

When you do apply changes, Products > Print labels offers "Print N labels with price changes" since the last print, with a Price change since print filter and Reset labels, so the tags on the shelf match the prices in the system without a storewide label hunt. And Dooey, Rundoo's AI, can run a routine that flags margin drops after cost changes and text you a price-change alert, so a cost increase does not quietly sit on the shelf eroding your percentage for a month.

Rundoo runs in 500+ independent stores across the US and Canada, and the proof point clients report is +2% gross margin. Set that against the NHPA's 4.7% profit before taxes and two points is not a rounding error; it is earned mostly by catching exactly the leaks described above.