Wholesale Progress Bars: Showing B2B Buyers the Next Price
Making wholesale quantity tiers visible with a discount progress bar, and checking which buyers it is worth moving to the next tier.
A discount progress bar makes the next wholesale tier visible to approved accounts. When the whole line reprices at a tier, moving a buyer from just below a threshold can lower revenue and gross profit, so model gross profit by starting quantity first. In this example, moving buyers to 25 cases adds gross profit only from 18 cases or fewer.
At a glance
- Challenge
- Wholesale orders cluster just below quantity thresholds, and nothing on the product page shows buyers how close the next tier price is.
- Approach
- Quantity tiers in one segment-restricted Wholesale / B2B Pricing campaign, the discount progress bar and quantity table for approved accounts, and a gross profit check per starting quantity.
- Discount Prime campaign types used
- Wholesale / B2B PricingDiscount Progress Bar
Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.
Short Answer
A progress bar that says "add 1 more case to unlock the next price" makes a wholesale tier visible at the moment the buyer chooses a quantity. Before you turn it on, check one thing: in tiered pricing where the whole line reprices at the new tier, pushing a buyer from just below a threshold to the threshold can lower your revenue and gross profit on that order. The bar is worth it when the buyers it moves are far enough below the threshold that the extra units pay for the lower price, or when larger, less frequent orders save you real per-order costs.
Recommendation for this scenario: keep the tiers in one Wholesale / B2B Pricing campaign, show the progress bar and quantity table only to approved accounts, and model gross profit for buyers at each starting quantity before launch.
Scenario
Metro Industrial Supply is a fictional Shopify distributor of cleaning and maintenance consumables. Buyers are approved business accounts who log in and reorder in cases. Suppose Metro's order data shows quantities clustering just below its tier thresholds (9, 24 and 49 cases), and the product page says nothing about the next price.
The hypothesis: some buyers stop below a threshold because they do not know it is there. A visible next price might move them up. Whether that helps Metro depends on the arithmetic below.
Data you need
| Data | Why |
|---|---|
| Price and cost per case (Shopify "Cost per item") | Gross profit at each tier and the cost floor |
| Distribution of order quantities per product | How many orders sit in the zone the bar will target |
| Fulfillment cost per order | Fewer, larger orders can save this |
| Who is an approved account (a Shopify segment) | Who should see tier prices and the bar |
The Tiers
Metro sells a commercial degreaser in cases of 12. The Shopify variant is the case.
Illustrative assumptions: cost $60.00 per case. Floor: cost plus a minimum profit of 20% of cost, so $72.00 per case.
| Cases per line | Price per case | Per unit (12) | Fixed off per case | Gross profit per case |
|---|---|---|---|---|
| 1 to 9 | $122.40 | $10.20 | none | $62.40 |
| 10 to 24 | $106.80 | $8.90 | $15.60 | $46.80 |
| 25 to 49 | $94.80 | $7.90 | $27.60 | $34.80 |
| 50+ | $86.40 | $7.20 | $36.00 | $26.40 |
Gross profit here is price minus product cost only; it excludes shipping, payment fees and overheads.
Worked Example: Who Should the Bar Move?
When a line reaches 25 cases, every case on the line is priced at $94.80. Compare a buyer's order at their starting quantity with the same buyer moving to 25 cases:
| Starting quantity | Revenue then | Revenue at 25 | Gross profit then | Gross profit at 25 | Change in gross profit |
|---|---|---|---|---|---|
| 15 cases | $1,602.00 | $2,370.00 | $702.00 | $870.00 | +$168.00 |
| 18 cases | $1,922.40 | $2,370.00 | $842.40 | $870.00 | +$27.60 |
| 20 cases | $2,136.00 | $2,370.00 | $936.00 | $870.00 | -$66.00 |
| 24 cases | $2,563.20 | $2,370.00 | $1,123.20 | $870.00 | -$253.20 |
With these prices, moving a buyer to 25 cases earns more gross profit only if they started at 18 cases or fewer (break-even is 870 / 46.80, about 18.6 cases). A buyer at 24 cases who adds one case pays $193.20 less in total, and Metro ships one more case for $253.20 less gross profit.
The same happens at the other thresholds: 10 cases ($1,068.00) cost less than 9 ($1,101.60), and 50 cases ($4,320.00) cost less than 49 ($4,645.20). This is a general rule: when a tier lowers the price by more than 1/N at a threshold of N units (10% at 10, 4% at 25, 2% at 50), the order at the threshold costs less than the order one unit below.
What this means for the decision:
- If buyers near 24 cases would have ordered 24 anyway, the bar mostly costs margin.
- It can still be right if it changes behavior you value: buyers consolidating two small orders into one (saving a fulfillment cost per order), or buyers at 10 to 18 cases moving up.
- If you do not want to reward the last case so heavily, make the step at that threshold shallower and rerun the table. Changing tier prices is a pricing decision; the bar only makes whichever tiers you choose visible.
To adapt: put your own price, cost and tier prices into the table, and weight each row by how many of your orders actually start there.
Options Compared
| Option | Fits when | Does not fit when |
|---|---|---|
| No visible tiers (status quo) | Most buyers already order at or above thresholds | Buyers routinely miss tiers they would value |
| Static tier table on the product page | Buyers plan quantities in advance | Buyers decide in the cart |
| Sales reps explain tiers | Few large accounts | Many accounts ordering online |
| Deeper tier discounts | Tiers are too shallow to matter | The problem is visibility; deeper tiers raise the cost of every order at the tier |
| Progress bar plus quantity table | Buyers decide quantity online and the gross profit table supports moving them | Most buyers near the threshold would move from the loss rows above |
Setup in Discount Prime
| Setting | Value |
|---|---|
| Campaign type | Wholesale / B2B Pricing (Prime plan) |
| Customer eligibility | Specific customer segments: approved wholesale accounts |
| Only show to eligible customers | On |
| Based on | Profit margin |
| Tier threshold | Quantity, applies to each item |
| Tier values | Fixed amount off per case: $15.60 at 10, $27.60 at 25, $36.00 at 50 |
| Prevent final price from going below cost | On, minimum profit 20% of cost |
| Discount progress bar | On, product page and cart, with your own messages |
| Quantity table | On, so buyers see all tiers and can tap one to set the quantity |
Why Wholesale / B2B Pricing and not a separate Tiered Unit Pricing campaign: the discount progress bar is shown only for Wholesale / B2B Pricing tiers, and a product variant can be held by only one price campaign at a time, so the two cannot both price the same product.
Why per item: each product line reaches its own tier. If you count all items together, a mixed cart reaches tiers on combined quantity, but a fixed amount off then becomes one lump off the combined order rather than a per-case price.
What the Buyer Sees
- Product page: the bar uses the quantity of the selected variant that is already in the cart, not the number typed in the quantity selector. It appears for quantity-based tiers. Messages are templates you write, filled with the remaining quantity and the next tier's reward.
- Cart: a wholesale goal appears once a line is at least 60% of the way to its next tier (for the 25-case tier, from 15 cases). If a free shipping goal is also active, both are merged into one bar, with the closest goal shown large.
- Prices: the tier price is applied as an automatic discount in the cart and at checkout. How the discounted line price looks in the cart depends on your theme.
- Who sees it: with "Only show to eligible customers" on, guests and non-approved customers see store prices and no wholesale widgets. Restricted pricing requires a logged-in customer at checkout.
| Cart (approved account) | Bar | Price per case |
|---|---|---|
| 8 cases | Toward 10 cases | $122.40 |
| 14 cases | No cart bar yet (below 60% of 25) | $106.80 |
| 24 cases | "1 more" toward 25 | $106.80 |
| 25 cases | No cart bar until 30 cases (60% of 50) | $94.80 |
Limits
- Currency: storefront widgets do not convert currency. In a non-base currency, spend amounts in messages can be wrong. Test before relying on spend-based messages there.
- Spend-based tiers are measured on cart prices before discounts, matching checkout.
- No minimum order enforcement: tiers decide prices, not whether an order is allowed.
- Cost data: the floor uses Shopify's Cost per item. A missing cost follows the campaign's missing-cost rule (skip the variant, or discount the selling price with no floor).
Pre-Launch Tests
| Test input | Expected result |
|---|---|
| Guest on the product page | Store price, no bar, no tier table |
| Approved account, 9 then 10 cases in cart | Price changes to $106.80 per case on all 10 |
| Approved account, 14 cases | No wholesale goal in the cart bar |
| Approved account, 24 cases | Cart bar shows 1 case to the next tier |
| Free shipping goal active at the same time | One merged bar |
| Product page with 0 in cart and quantity selector set to 24 | Bar counts 0, not 24 |
Measurement
- Primary: gross profit per order and per account, not only cases per order.
- Diagnostic: distribution of order quantities around each threshold before and after launch; share of orders landing exactly at a threshold.
- Guardrails: share of orders that moved from the loss rows of your table (for example 20 to 24 cases into 25), and order frequency per account (consolidation shows up as fewer, larger orders).
- Baseline: the same accounts in a comparable prior period. Wholesale demand is seasonal and account-specific, so compare per account. If you can, launch the bar for one product group first and compare with similar products without it; without a comparison group, a before/after change is not proof the bar caused it.
- Decide: if most moved orders come from just below the threshold and gross profit per account falls, make that tier's step shallower or limit the bar to tiers where moving buyers adds gross profit. If buyers far below the threshold move up and gross profit holds, keep it.
Frequently asked questions
How do I show wholesale customers how close they are to the next pricing tier on Shopify?
In Discount Prime, turn on the discount progress bar for a Wholesale / B2B Pricing campaign, on the product page, the cart or both, and add the quantity table. The bar is shown only for Wholesale / B2B Pricing tiers. With "Only show to eligible customers" on, guests and non-approved customers see store prices and no wholesale widgets.
Can a progress bar to the next tier lose money?
Yes. When a tier reprices the whole line, the order at the threshold can cost less than the order one unit below. With illustrative prices, 24 cases at $106.80 cost $2,563.20 while 25 cases at $94.80 cost $2,370.00, and at a $60 cost per case gross profit falls by $253.20. Moving a buyer up adds gross profit only if they start far enough below the threshold.
How do I check if a wholesale tier creates a price cliff?
A tier that lowers the price by more than 1/N at a threshold of N units makes the order at the threshold cheaper than the order one unit below: more than 10% at 10 units, 4% at 25, 2% at 50. That is common and can be intended, but check it against gross profit, and make the step shallower if you do not want to reward the last unit that heavily.
When does the wholesale progress bar appear in the cart?
In the cart, a wholesale goal appears once a line is at least 60% of the way to its next tier, and it is merged with a free shipping goal into one bar if both are active. On the product page, the bar counts the selected variant's quantity already in the cart, not the number in the quantity selector. Widgets do not convert currency, so test spend messages in non-base currencies.
Can I use Tiered Unit Pricing and a wholesale progress bar on the same products?
Not together. The progress bar shows only for Wholesale / B2B Pricing tiers, and a product variant can be held by only one price campaign at a time. Put the quantity tiers inside the Wholesale / B2B Pricing campaign, for example as a fixed amount off per case at each threshold, with the cost floor turned on.
Go deeper
Run this architecture in your store
Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.