Pricing

Product Pricing Strategy: 5 Ways to Price a Shopify SKU

Five product pricing strategies, and which SKU each fits

A product pricing strategy is the rule you use to set a SKU's selling price, then the evidence you require before you change it. For a physical Shopify product, the useful choice is rarely one storewide markup. It is a method that fits that SKU's cost structure, how shoppers compare it, and how much stock you are sitting on.

These five approaches cover most physical catalogs. Pick one as the starting method. Do not stack them on the same SKU in the same week.

ApproachBest forMain risk
Cost-plusStable landed cost, low price comparisonIgnores what shoppers will pay
Competitor-referencedShoppers can find the same or a close substituteA race to a price your costs cannot support
Value-basedA clear outcome the buyer can nameGuesswork if you have no willingness-to-pay evidence
PsychologicalA price already near a round numberA cosmetic change that does not move units
Penetration or premiumA launch window or a scarce, differentiated SKUA price that becomes the expected price

1. Cost-plus pricing

Cost-plus sets price from landed cost plus a target markup. It fits a replenishable SKU whose costs are stable and whose shoppers are not comparing three near-identical listings.

Use it as a floor, not as the finished price. A 2.5x markup on a $12 landed cost is $30. That number only tells you the price that hits your markup target. It does not tell you whether $30 converts, or whether $34 would convert just as well.

2. Competitor-referenced pricing

Competitor-referenced pricing starts from what similar products sell for, then places your SKU above, at, or below that band. It fits commodities and close substitutes: a standard size of a well-known material, a replacement part, a basic apparel silhouette.

Match the comparison, not a random listing. Same size, same material, same included accessories. A $28 competitor who ships a single unit is not the reference for your 3-pack. Record the date and the URL. Competitor prices move, and a screenshot from last quarter is not a current constraint.

3. Value-based pricing

Value-based pricing sets the price from the outcome the buyer gets, not from your cost or a competitor's tag. It fits a differentiated physical SKU: a tool that saves a measurable hour, a material that lasts longer, a size that removes a second purchase.

The outcome has to be something the buyer can check. "Premium feel" is not a pricing input. "Replaces two $18 refills over 90 days" is. If you cannot name that outcome in one sentence on the product page, you do not have a value-based price. You have a higher number.

4. Psychological pricing

Psychological pricing uses the shape of the number: $29 instead of $30, a price just under a free-shipping threshold, or a charm ending your category already uses. It is a finishing step on a price you have already justified, not a strategy by itself.

It fits a SKU whose price is already close to a round threshold and whose page converts. It does not fit a SKU with thin contribution, a high return rate, or a stock problem. Changing $32 to $29.99 without checking margin is a discount dressed up as a tactic.

5. Penetration or premium pricing

Penetration pricing opens below the price you expect to hold, to buy trial. Premium pricing opens above the category band because supply is limited or the product is clearly different. Both are time-boxed. Write the end date and the price you will move to before you publish the first price.

Penetration fits a new physical SKU with enough cover to absorb a burst of orders, and a contribution floor you will not cross. Premium fits a short run, a made-to-order item, or a SKU whose substitutes are weak. Neither fits a replenishable basic you will still be selling in six months at a "temporary" price.

Choose a starting price from costs and competitor context

Build the starting price in three numbers, in this order: landed cost, contribution floor, competitor band. The first two are constraints. The third is context. Skipping the floor and copying a competitor is how a SKU looks competitive and loses money on every order.

Landed cost, not the supplier invoice alone

  • Unit product cost from the supplier, including any per-unit surcharge.
  • Inbound freight and duty allocated to the unit, not left in a monthly overhead bucket.
  • Packaging and pick-pack consumables that scale with the unit.
  • Expected payment fees and the shipping subsidy you absorb on a typical order.
  • A returns allowance if this SKU, or this category, already comes back.

Shopify's product cost field is the practical place to store unit cost so profit reports can use it. Shopify's help docs say Cost per item is what you pay for the product, customers do not see it, and if you enter it, Shopify uses it in profit reports and in the Cost amount on sales reports. Keep the field current when a purchase order lands at a new cost. A price set on last quarter's invoice is already wrong.

A contribution floor before any markup

Contribution margin per unit is price minus the variable costs of selling one more unit, after refunds. That calculation, including how to treat multi-item orders, lives in the contribution margin per unit guide. Use the result here as a constraint: the lowest price you will publish.

Example, labeled as hypothetical. Use one method throughout: treat the returns allowance as a percent of price inside contribution per unit, then multiply that contribution by units sold. Do not also subtract returned units, or you count returns twice.

A ceramic pour-over kettle has a $14.00 landed cost and $2.40 payment and packaging variable cost. The returns allowance is 4% of price. At a $42 candidate price, the allowance is $1.68, so variable cost per unit sold is $18.08. Contribution per unit sold is $42.00 − $18.08 = $23.92, about 57% of price.

If your floor for this SKU is $18 contribution per unit sold, solve price − ($16.40 + 0.04 × price) = $18. That is 0.96 × price = $34.40, so the floor price is $35.84, which you round up to $36. At $36 the allowance is $1.44, variable cost is $17.84, and contribution is $18.16. Do not round down for psychology through that floor.

Competitor context, not a target

Pull three to five current listings that a shopper would actually compare. Note price, what is included, shipping, and review count. Then place your SKU:

  • Below the band only if your contribution floor allows it and you want trial, with an end date.
  • Inside the band when the product is comparable and your page is not weaker on photos, shipping, or reviews.
  • Above the band only when the page states the difference a buyer can verify: size, material, warranty, what is in the box.

A careless price change is not a small merchandising tweak. Check the floor before you chase a competitor's tag. If volume falls more than contribution per unit rises, the cheaper-looking price can still shrink the money the SKU actually produces.

Gate the change on contribution, conversion, and stock cover

A method picks the candidate price. Three gates decide whether you change the live price. If any gate fails, leave the price and fix the failed gate first.

Gate 1: contribution still clears the floor

Recalculate contribution at the candidate price with current landed cost, not the cost from when you first listed the SKU. Keep the same returns method you used for the floor: a percent of the new price, inside contribution per unit sold. A price cut that drops contribution below the floor fails, even if competitors are cheaper. A price increase that only works if you set the returns allowance to zero also fails. Use the returns rate you already see.

If the SKU is only profitable inside a bundle, do not force a standalone price to carry the bundle's discount. Bundle discounts and component stock have their own gate in the bundle pricing strategy guide.

Gate 2: conversion says the page can carry the price

Product conversion rate is orders divided by sessions for that product, not the storewide rate. How to calculate it and when a low rate is a traffic problem versus a page problem is covered in the product conversion rate article. Read it before you treat a weak page as a pricing problem.

A practical read, using your own baseline rather than a borrowed benchmark:

  • Conversion is near this SKU's recent baseline, and sessions are real: a price test is fair.
  • Conversion is far below this SKU's baseline, and the page has thin photos, missing size info, or slow delivery promises: fix the page before raising price. A higher price will not repair a page people already leave.
  • Conversion is strong and contribution is well above the floor: test a small increase before you add discounting.
  • Conversion is strong only when the SKU is on a sitewide sale: you do not have a base price yet. You have a discount price. Set the base, then decide if the sale is still needed.

Price is not the only reason a session dies. Extra costs that appear late, such as shipping and tax, can stop an order even when the product price looked fine. If the surprise is at checkout, changing the product price will not fix that abandonment.

Gate 3: stock cover matches the price move

Price and cover move together. A cut on a SKU with two weeks of cover can sell you out before the reorder arrives. A raise on a SKU with nine months of cover can freeze cash you needed to turn.

  • Short cover (under your reorder lead time): do not cut price to move units unless the alternative is a stockout you have already accepted. Hold price or raise it if conversion is already healthy.
  • Healthy cover (enough to cover lead time plus a normal buffer): this is the window for a controlled test, up or down.
  • Long cover (well past your target, aging, or seasonal leftover): a lower price can be the right method, but only after Gate 1. If the floor fails, the move is a bundle, a channel change, or a write-down, not a quiet price cut that still loses money slowly.

Pull cover from units on hand divided by recent daily unit sales for that variant, and exclude days the SKU was already sold out so you do not understate velocity. Skymetrics can sit beside this review with SKU sales, stock cover, traffic, and conversion in one place. It does not measure price elasticity. You still have to run the test and read the result.

Test one SKU change, then read net sales, returns, and units

Change one variable on one SKU. A price edit plus a new photo plus a sale badge plus a collection move is not a price test. You will not know which change paid for itself.

Set the test before you edit the price

  1. Write the current price, the candidate price, and the contribution at both, using the same returns allowance method.
  2. Pick a window long enough for a normal order cycle, often 14 days if the SKU sells several times a week. Slow SKUs need longer, or you are reading noise.
  3. Do not start the window on a holiday, a sitewide sale, or a stockout recovery week.
  4. Leave ads, collection position, and the product page template alone for that window, unless the test is explicitly about one of those.
  5. Note units on hand at the start so a stockout does not look like weak demand.

Shopify's sales reports can show units, gross sales, discounts, and returns for the variant over a chosen range. Shopify's help docs describe the default Sales report, including Gross sales, Discounts, Returns, Net sales, and a Cost amount that uses the cost per item you enter on the product. Compare the test window with the same number of days immediately before it, and say so in your notes. A week that includes a paid campaign is not a clean baseline.

What to read when the window closes

  • Units sold, not just revenue. A higher price can raise revenue while units fall enough to strand the next purchase order.
  • Net sales after discounts and returns, not gross sales. A price increase that triggers more refunds did not stick.
  • Contribution dollars for the window: units sold times contribution per unit sold. Because the returns allowance is already inside that contribution figure, do not subtract returned units again.
  • The product's conversion over the same dates, so you can see whether sessions stopped turning into orders.
  • Stock left, and whether you stocked out mid-window. A stockout truncates the test.

Hypothetical close, same method as the floor. The kettle moves from $42 to $46. The 4% allowance is recalculated on the new price: 0.04 × $46 = $1.84. Variable cost per unit sold is $14.00 + $2.40 + $1.84 = $18.24. Contribution per unit sold is $46.00 − $18.24 = $27.76.

Over 14 days, units sold go from 40 to 34. Window contribution goes from 40 × $23.92 = $956.80 to 34 × $27.76 = $943.84. Units fell, and total contribution fell. Revert, or run a longer window before you keep $46. If units sold had held at 36, window contribution would be 36 × $27.76 = $999.36, above the $42 window, and $46 would earn a longer hold.

Keep the winner only if contribution dollars hold or improve without a stockout you cannot replenish, and without a return rate above the allowance you priced in. If actual returns run hotter than 4%, recompute contribution with the rate you saw before you keep the new price. If contribution rises only because you sold through dead stock you will not reorder, label that as a clearance result, not as the new base price for the next purchase order.

When not to run the test

  • The candidate price fails the contribution floor.
  • The variant has fewer than a handful of orders in a normal month. Wait, or group the decision at the product level and say you are doing that.
  • The SKU is already in a sitewide percentage discount. End or exclude it first, or you are testing a stack.
  • You cannot hold ads and merchandising still for the window.
  • You are about to change suppliers and landed cost is about to jump. Recompute the floor first.

Put the rule on the SKU, not on the store

Assign each physical SKU one starting method, write its contribution floor next to its cost, and refuse a live price change that fails contribution, conversion, or cover. Review prices when landed cost changes, when a competitor band moves, or when cover drifts, not on a calendar impulse to refresh pricing.

The next action is small: pick the SKU with the most revenue in the last 30 days, write its floor and its cover, and decide whether its current price even matches the method you think you are using. One SKU with a written rule beats a storewide markup you cannot defend.