Filed under Auto Markdown

Shopify Automated Markdowns: A Pricing Rules Playbook

Static sitewide sales bleed margin. Here's how to automate Shopify markdowns with velocity rules and a floor that protects unit economics.

You sit down on a Friday afternoon to look at the products that haven’t sold this week. There are 80 of them. You manually mark down 30%. By Monday a few sell, but the others sit. Two weeks later you mark them down 50%, and the customer who bought a similar item last week at full price finds out and asks for a refund.

That’s the manual-markdown trap. The work doesn’t compound, the rules aren’t visible, and you’re always reactive. Automating the same logic with two simple rules, velocity-triggered drops and a hard floor on every SKU, turns the same workload into a system that runs itself.

Key takeaways

  • Two rules sustain automated markdowns: a per-collection velocity trigger and a per-SKU floor, typically cost × 1.10.
  • Starting recipes: core collections 30 days / 5% drop, seasonal 14 days / 10%, end-of-life 7 days / 15%.
  • Reset the cycle when a unit sells, or the next unit inherits a discount nobody needed.
  • Margin protection is immediate; sell-through gains show up over 30–60 days.

Why static “20% off everything” sales bleed margin

The default Shopify markdown UX rewards volume promotions: percent-off codes that apply across collections or the whole store. They’re easy to set up. They’re also the worst possible answer for inventory you’re trying to clear.

Three reasons:

  • They subsidize products that don’t need it. Your bestsellers were going to sell at full price. Discounting them too discounts revenue you didn’t have to leave on the table.
  • They train customers to wait. Run a sitewide sale every six weeks and your repeat buyers learn to time purchases. Conversion at full price drops permanently.
  • They miss the actual problem. The slow SKU isn’t slow because it’s expensive. It’s slow because demand is below what you bought.

A velocity-aware markdown system fixes all three. It only discounts products that have stopped moving. It applies asymmetrically; different categories can have different rules. And it resets when the SKU finally sells, so the next unit doesn’t unnecessarily inherit the discount.

The two-rule system

Most automated-markdown playbooks have one rule: when a SKU is older than X days, drop the price Y%. That works for a quarter, then erodes margin everywhere. The version that sustains adds a second rule.

Rule 1: Velocity trigger

A markdown fires when a SKU has gone N days without a sale, where N is configured per collection. Slow-moving categories (formal wear, off-season inventory) get longer N. High-velocity categories (basics, accessories) get shorter N. The clock resets every time a unit sells, so SKUs that find one buyer don’t slide further automatically.

A typical first-pass setup:

  • Core collections: 30-day trigger, 5% drop
  • Seasonal collections: 14-day trigger, 10% drop
  • End-of-life SKUs: 7-day trigger, 15% drop, repeating

Rule 2: Floor protection

Before any markdown executes, the resulting price is checked against a floor. If the new price would land below the floor, the markdown is capped at the floor. The floor is computed per SKU: usually cost × 1.10 (a 10% margin) or cost × 1.20 for premium items.

This is the rule that makes automation safe. Without it, a SKU bought at the wrong margin can spiral toward break-even or worse with each cycle. With it, you can let the system run on autopilot indefinitely.

Auto Markdown implements exactly this two-rule system. Set rules per collection in the admin, set a floor formula, and let it run.

Three real-world rule recipes

Borrow these as starting points. Tighten the numbers based on your category margins.

Recipe 1: End-of-season clothing

Goal: clear summer inventory before fall collection lands.

  • Days without sale: 14
  • Drop per cycle: 10%
  • Floor: cost × 1.10
  • Cycle resets on sale: yes

The first 30 days of slow inventory get a cumulative ~20% off. By day 45, ~30% off. The floor catches anything that would go below 10% margin.

Recipe 2: Slow-moving accessories

Goal: reduce the stock-out tax on long-tail SKUs.

  • Days without sale: 21
  • Drop per cycle: 5%
  • Floor: cost × 1.20
  • Cycle resets on sale: yes

Smaller drops, longer windows. Accessories typically have higher gross margins, so the floor stays comfortably above cost.

Recipe 3: Discontinued line

Goal: clear remaining units of a discontinued product, accept break-even on the last few.

  • Days without sale: 7
  • Drop per cycle: 15%
  • Floor: cost × 1.05
  • Cycle resets on sale: no

Aggressive cycle, no reset, very thin floor. Use only on SKUs you’ve decided to discontinue and will not restock.

Common mistakes

No floor. The single fastest way to lose money on automated discounting. Always cap markdowns at a margin floor.

One rule for everything. Sitewide rules generate the same problem as sitewide sales. Different categories have different velocity baselines and different margin profiles. Configure separately.

Forgetting to reset the cycle on sale. If a SKU finally sells but the system keeps marking down the next unit, you’re surrendering margin to nobody. There’s no clearance pressure left for that SKU.

Hiding the markdown from the customer. Sale prices that aren’t visible as “was $X, now $Y” don’t drive conversion. Show the strikethrough.

Letting promotions stack. Automated markdowns plus a sitewide promo code equals compounding discounts the system never accounted for. Either block stacking or build the floor with stacked discounts in mind.

Where automated markdowns fit in your Shopify stack

Markdowns are a margin tool, not a revenue tool. They live next to two other systems that handle the other two levers most Shopify operators care about:

The combined effect is more interesting than any single tool: capture more carts, route stale inventory through a clean rules layer, and offer concierge-style touchpoints to your top buyers.

FAQ

Does Shopify have built-in automated markdowns?

Shopify supports scheduled sale prices on individual products and collection-level discount codes, but not rules-based velocity-triggered markdowns with floor protection out of the box. That’s where third-party apps like Auto Markdown fit.

What’s a sensible floor formula?

Most merchants land on cost × 1.10 (10% margin floor) for everyday items, cost × 1.20 for premium categories, and cost × 1.05 for discontinued lines. Adjust based on your true cost-to-serve, not just COGS.

How fast should I see results?

Margin protection is immediate. Inventory throughput improvements show up over 30-60 days as the velocity rules cycle through stale SKUs. Track sell-through rate before and after to measure.

Will customers notice if prices change overnight?

Customers care more about consistency than absolute price. Schedule markdown executions for the same time of day (e.g. midnight Tuesdays) to make changes feel intentional. Avoid mid-day price changes during a customer’s session.

Can I run automated markdowns alongside promo codes?

Yes, but explicitly decide whether they stack. Most setups disable promo-code stacking with auto-markdown SKUs to keep the floor logic intact.


— Palm Beach Themes is a Miami-based Shopify app studio. We use the apps we sell, so every claim in this post comes from our own merchant testing.

Ready to put your markdown strategy on rules instead of weekends? Get Auto Markdown →