Free AuditEnterprise AIShelfSense
Back to Blog
StrategyFeb 202613 min read

Dynamic Markdown Pricing for Near-Expiry Products

Build a rules-based markdown system for perishables. Tier timing by category, discount depth that moves product, and recovery math.

The $847 trash bag

A composite scenario, but representative of what I hear from grocery operators constantly: a store manager in Ohio pulls 43 items off the shelf on a Monday morning. Yogurt, deli salads, sliced cheese, juice boxes, a handful of frozen entrees someone returned to the wrong cooler. Combined retail value: $847. Combined cost of goods: $389. She puts them in a black bag, logs the waste in a spreadsheet, and moves on with her day.

Here is the part that should bother you. Twenty-three of those 43 items still had 1-2 days of shelf life remaining. They were not expired. They were near expiry. And the reason they ended up in the trash was not food safety -- it was the absence of a system. Nobody marked them down. Nobody moved them to a clearance section. Nobody sent a text to the discount-hunting regulars. Nobody did anything at all, because the store had no protocol for what to do with a product between "full price" and "trash."

That gap -- the dead zone between full price and the dumpster -- is where dynamic markdown pricing lives. And for most independent groceries and mid-size retailers, it is the single largest recoverable cost center in the store. Not labor. Not energy. Not theft. Markdown timing.

The math is simple and brutal. If you sell a $4.99 item at 50% off, you collect $2.50. If you throw it away, you collect $0.00. The "loss" from discounting is $2.49 compared to full price. The loss from trashing it is $4.99 in retail value and roughly $2.30 in actual cost-of-goods. The discount recovers money. The trash bag does not. Every minute you delay a markdown on a product that will not sell at full price is a minute closer to recovering nothing.

And yet, most stores get this catastrophically wrong.

Free Tool

Not sure how much you're losing to expiry?

Run a free inventory waste audit — find your bleeding SKUs in 60 seconds. No sign-up required.

Run free audit

Why markdown timing fails: the three sins

I have talked to enough grocery operators to identify a pattern. Markdown failure is almost never a single mistake. It is three mistakes compounding on each other, and they are so common they might as well be an industry standard.

Sin #1: Too late

The most common failure mode. A product reaches its best-by date, someone notices it during a shelf walk, and then they think about marking it down. By that point, you have maybe 24 hours to sell it -- and customers can see the date. A product with tomorrow's date on it at 25% off is not a deal. It is a warning sign. Customers do not buy near-expiry at small discounts. They buy near-expiry at large discounts, or they do not buy it at all.

The optimal markdown window for most perishables is 3-7 days before expiry, not 1 day. By the time you are putting a "Quick Sale" sticker on something that expires tomorrow, you have already missed the window where a moderate discount would have moved it.

Sin #2: Too small

A 10% discount on a $3.29 yogurt saves the customer 33 cents. Thirty-three cents is not enough to change anyone's behavior. It is not enough to make someone reach past the fresher yogurt to grab the older one. It is not enough to make someone buy two instead of one. It is a rounding error masquerading as a promotion.

The research on markdown optimization grocery is consistent: discounts below 20% on perishables have negligible impact on sell-through velocity. The product sits there at 10% off just as effectively as it sat there at full price, except now you have also wasted the labor of someone printing and applying a sticker.

Effective markdowns start at 25% and escalate. The discount has to be large enough that a customer's internal calculator says "this is worth adjusting my shopping plan for." For most grocery categories, that threshold is somewhere between 25% and 30%.

Sin #3: Too inconsistent

This is the silent killer. Store A marks down dairy at 3 days out. Store B (same chain) marks down dairy at 1 day out. Manager Carlos is aggressive with markdowns because he hates waste. Manager Priya is conservative because she was told that markdowns "hurt margins." The Tuesday shift marks things down. The Thursday shift does not, because they are short-staffed and nobody told them it was their job.

Inconsistency means you cannot measure anything. You cannot tell whether markdowns are working because the process changes every day depending on who is working, how busy they are, and whether anyone remembered to check the dates. Expiry date pricing without consistency is just chaos with stickers.

The markdown curve: understanding the economics

There is a concept I call the markdown curve, and once you see it, you cannot unsee it. It governs the economics of every perishable item in your store.

Imagine a product with 14 days of shelf life -- a block of cheddar cheese, retail price $5.49, cost $2.75. On day 1, the probability of selling at full price is high. On day 14, the probability is zero (it is expired). The markdown curve maps the relationship between remaining shelf life, discount depth, and expected recovery value.

Days RemainingRecommended DiscountExpected Sell-ThroughRecovery per Unitvs. Trash
7+ days0% (full price)Normal velocity$5.49N/A
5-7 days20-25% off55-65%$4.12-$4.39+$4.12
3-4 days30-40% off60-70%$3.29-$3.84+$3.29
1-2 days50% off50-60%$2.75+$2.75
0 days (expiry)N/A -- waste0%$0.00$0.00

The critical insight: at every point on the curve, recovery exceeds zero. Even the worst-case markdown scenario -- 50% off with only 50% sell-through -- recovers $2.75 on the units that sell. That is exactly cost, meaning you break even on those units. The units that do not sell at 50% off were going to the trash anyway. You have lost nothing additional by trying.

This is the core argument for dynamic markdown pricing: there is no scenario where a well-timed markdown makes you worse off than throwing the product away. None. The math does not allow it. You are comparing "some money" to "no money." Some money wins every time.

The category adjustment

Not every product follows the same curve. A container of fresh-cut fruit with a 5-day shelf life needs earlier, steeper markdowns than a jar of pasta sauce with a 12-month shelf life. The general framework by category:

Ultra-short shelf life (1-5 days): bakery, deli, fresh-cut produce, fresh juice.

  • First markdown at 60-70% of shelf life remaining (day 2-3 of a 5-day product)
  • Starting discount: 30%
  • Final discount: 50-70%
  • These products need aggressive, early markdowns because the window is tiny

Short shelf life (6-14 days): dairy, fresh meat, prepared meals, fresh pasta.

  • First markdown at 50% of shelf life remaining (day 7 of a 14-day product)
  • Starting discount: 25%
  • Final discount: 50%
  • The standard 3-tier approach works well here

Medium shelf life (15-90 days): deli meats, some cheeses, specialty items, refrigerated beverages.

  • First markdown at 30% of shelf life remaining
  • Starting discount: 20%
  • Final discount: 40%
  • More time means more gradual discounting

Long shelf life (90+ days): dry goods, canned items, frozen products.

  • First markdown at 60-90 days remaining
  • Starting discount: 15-20%
  • Final discount: 30-40%
  • These rarely need aggressive markdowns, but they do need markdowns -- a can of soup that expires in 45 days is not moving at full price if fresh stock is next to it

Setting up a rules-based markdown system

The difference between stores that recover money and stores that throw it away is not talent or motivation. It is systems. A rules-based markdown system removes the decision from the individual employee and makes it automatic, consistent, and measurable.

Here is how to build one.

Step 1: Define your markdown tiers by category

Create a simple matrix. For each product category, define:

  • Tier 1 trigger: how many days before expiry the first markdown applies
  • Tier 1 discount: typically 20-25%
  • Tier 2 trigger: second escalation point
  • Tier 2 discount: typically 35-45%
  • Tier 3 trigger: final markdown before expiry
  • Tier 3 discount: typically 50%+
  • Pull date: when the product comes off the shelf regardless (usually expiry date or 1 day before)

Here is a working example for a mid-size grocery:

CategoryTier 1 (days/discount)Tier 2 (days/discount)Tier 3 (days/discount)Pull Date
Bakery (3-day)Day 2 / 30%Day 3 / 50%N/ADay 3 close
Deli preparedDay 2 / 30%Day 3 / 50%N/ADay 3 close
Fresh dairyDay 5 / 25%Day 3 / 40%Day 1 / 50%Expiry date
Fresh meatDay 3 / 30%Day 2 / 40%Day 1 / 50%Expiry date
Packaged cheeseDay 7 / 20%Day 4 / 30%Day 2 / 40%Expiry date
Frozen foodsDay 30 / 20%Day 14 / 30%Day 7 / 40%Expiry date

Step 2: Assign ownership

Markdowns that are "everyone's job" are nobody's job. Assign a specific person per department or per shift who is responsible for:

  • Running the near-expiry report (or checking the system alerts)
  • Pulling items that hit a markdown tier
  • Applying the discount (sticker, POS code, shelf label -- whatever your system uses)
  • Placing marked-down items in the designated clearance area
  • Logging what was marked down (critical for measuring effectiveness)

The person does not need to be a manager. They need to be consistent. A reliable stock clerk who checks the markdown list every morning at 7 AM will outperform a brilliant manager who remembers to check it "when she gets a chance."

Step 3: Create a physical clearance destination

Marked-down items that stay in their original shelf position do not sell. They sit between fresher products, and customers reach past them. You need a designated clearance area -- a specific shelf, cooler section, or endcap where marked-down items live. Customers who hunt for deals know where to look. Customers who do not care about deals never see the discounted items, so you are not cannibalizing full-price sales.

The best implementations I have seen use a dedicated cooler endcap with clear signage ("Quick Sale -- Use Today," "Clearance -- Best By This Week") and color-coded stickers. Yellow for Tier 1. Orange for Tier 2. Red for Tier 3. The color system works because it communicates urgency without requiring customers to do mental math.

Step 4: Measure everything

You cannot improve what you do not measure. Track these metrics weekly:

  • Markdown recovery rate: total revenue from marked-down items / total cost of marked-down items. Target: 120%+ (meaning you are recovering more than cost)
  • Waste-to-markdown ratio: items trashed / items marked down. Target: below 0.3 (for every 10 items marked down, fewer than 3 end up as waste)
  • Markdown sell-through by tier: what percentage of Tier 1 items sell before reaching Tier 2? Target: 50%+
  • Shrink percentage by category: total waste value / total category sales. Compare month over month
  • Revenue recovered: total sales from marked-down items that would otherwise have been waste. This is the number that makes owners pay attention

Dollar-value examples: what recovery looks like

Let me walk through three scenarios to make the economics concrete. These are composite examples based on patterns from stores with 1,000-5,000 SKUs.

Scenario A: The dairy cooler

A store carries 120 dairy SKUs. Average retail price: $4.20. Average cost: $2.40. Weekly waste without markdowns: 35 units ($147 retail, $84 cost). With a 3-tier markdown system running for 90 days:

  • 22 of 35 units now sell at Tier 1 (25% off): 22 x $3.15 = $69.30 recovered
  • 7 of 35 units sell at Tier 2 (40% off): 7 x $2.52 = $17.64 recovered
  • 3 of 35 units sell at Tier 3 (50% off): 3 x $2.10 = $6.30 recovered
  • 3 units still go to waste: $7.20 in cost lost

Weekly recovery: $93.24. Previous weekly loss: $84 in cost. The markdown system does not just reduce losses -- it actually turns waste into a small profit stream, because you are recovering above cost on Tier 1 items.

Annual impact: $4,848 in recovered revenue from dairy alone. For a single cooler section.

Scenario B: The bakery department

An in-store bakery produces 80 items daily. Average retail: $3.50. Average cost: $1.05 (bakery has high margins). Daily waste without markdowns: 18 items ($63 retail, $18.90 cost). The short shelf life makes timing critical -- bakery items need day-of-bake markdowns.

With an afternoon markdown protocol (30% off after 3 PM, 50% off after 7 PM on day-old items):

  • 10 of 18 waste items sell at 30% off: 10 x $2.45 = $24.50/day
  • 4 of 18 sell at 50% off: 4 x $1.75 = $7.00/day
  • 4 items still go to waste: $4.20 cost lost

Daily recovery: $31.50. Annual: $11,498. On a bakery that was previously losing $6,898 annually in cost-of-goods to waste. The markdown system recovers 167% of the previous waste cost.

Scenario C: The whole-store impact

A 3,000 SKU independent grocery with $2.8M in annual revenue and an 8.2% perishable shrink rate (about average for independents, per FMI data). That is roughly $229,600 in annual perishable shrink at retail value.

Implementing a store-wide markdown system with 60% sell-through on marked-down items at an average 35% discount:

  • Items entering markdown: ~70% of previous waste items
  • Sell-through on markdowns: 60%
  • Average recovery per unit: 65% of retail
  • Annual recovered revenue: $95,800 - $110,000
  • Shrink reduction: from 8.2% to approximately 4.5-5.0%
  • Net margin impact: +$42,000 to +$55,000 (after accounting for markdown labor and materials)

For a store operating on 2-3% net margins ($56,000-$84,000 on $2.8M revenue), an additional $42,000-$55,000 in net profit is transformational. It is the difference between surviving and thriving.

Staff training: the human element

The best markdown system in the world fails if the people executing it do not understand why it exists. I have seen store owners implement perfect tiered systems that collapsed within three weeks because staff treated markdowns as optional, or worse, as a sign of personal failure ("I overstocked again").

Effective staff training on markdown execution covers three things:

1. Reframe the narrative. A markdown is not a failure. It is a recovery. The failure already happened when the product did not sell at full price. The markdown is the rescue operation. Train staff to see the clearance sticker not as a white flag but as a revenue recovery tool. "We are not losing $2 on this yogurt. We are saving $3 that would have gone in the trash."

2. Make it mechanical, not emotional. The markdown decision should never be a judgment call on the sales floor. If the system says "5 days to expiry, 25% off," then it is 25% off. Period. The employee does not evaluate whether the product "might still sell." They do not ask the manager. They do not wait until after lunch to see how the morning goes. The rule fires, the sticker goes on, the product moves to clearance. Mechanical compliance beats inspired inconsistency every single time.

3. Celebrate recovered dollars, not low waste. This is subtle but important. If you celebrate "low waste numbers," you incentivize staff to delay markdowns (because marked-down items that sell do not show up as waste, making the waste number look good regardless). If you celebrate "recovered dollars" -- the actual revenue collected from marked-down items -- you incentivize early, aggressive markdowns that maximize sell-through. The metric you celebrate is the behavior you get.

The technology layer: from manual to automatic

Everything I have described so far can be done with spreadsheets, stickers, and discipline. Plenty of stores do it that way. But the manual approach has hard limits:

  • Someone has to check expiry dates across hundreds or thousands of SKUs daily
  • Someone has to calculate markdown prices
  • Someone has to update POS pricing
  • Someone has to track what sold and what did not
  • All of this has to happen consistently, every day, regardless of staffing

This is where automated markdown grocery technology changes the game. Modern clearance pricing perishable inventory systems work by connecting batch-level expiry data to pricing rules, and triggering markdowns automatically.

The workflow looks like this:

  • Product is received with batch number and expiry date recorded in the system
  • System continuously compares current date against expiry date for every batch
  • When a product enters a markdown tier, the system generates an alert (push notification, morning report, dashboard flag)
  • The alert tells the employee exactly which items need markdown, what discount to apply, and where to move them
  • When the markdown is applied, the POS automatically reflects the new price
  • The system tracks sell-through and adjusts tier thresholds over time based on actual performance

The difference between manual and automated is not intelligence -- it is coverage. A diligent employee manually checking dates will catch 70-80% of items that need markdowns. An automated system catches 100%. That 20-30% gap, applied across thousands of SKUs, is tens of thousands of dollars annually.

Software like ShelfLifePro was built specifically for this workflow. Batch-level expiry tracking feeds directly into configurable markdown rules -- you set the days-before-expiry triggers and discount percentages by category, and the system handles the daily monitoring and alerting. The morning briefing tells your team exactly what needs markdown action today, with dollar values attached so they can prioritize high-value items first.

Measuring recovered revenue: the number that matters

Once your markdown system is running, there is one metric that should be on every weekly report: recovered revenue. This is the total sales revenue from items that were marked down due to approaching expiry.

It is not the same as total clearance sales (which might include overstocked items, seasonal closeouts, and other non-expiry markdowns). It is specifically the revenue recovered from products that were on a trajectory toward the waste bin.

Here is how to calculate it:

Recovered Revenue = (Units sold at markdown) x (Markdown selling price)

And the companion metric:

Recovery Rate = Recovered Revenue / (Units entering markdown x Full retail price)

A recovery rate of 50% means that for every dollar of retail value that entered the markdown pipeline, you recovered 50 cents. That is 50 cents you would not have had without the system. A good markdown system achieves recovery rates of 45-65%, depending on category mix and markdown timing discipline.

Track it weekly. Share it with staff. Put it on the break room whiteboard. Make it the first number discussed at the weekly team meeting. When people see that their markdown efforts recovered $2,340 last week -- money that would have been in the dumpster -- the system sustains itself.

The competitive reality

Here is the uncomfortable truth for independent grocers: the chains already do this. Kroger, Albertsons, Publix -- they all have sophisticated food waste pricing algorithms that trigger markdowns based on sell-through velocity, remaining shelf life, and store-level demand patterns. When you see "Manager's Special" stickers in a chain store, that is not a manager making a decision. That is a system executing a rule.

The question is not whether dynamic markdown pricing works. It demonstrably does. The question is whether you, as an independent operator, are going to keep throwing money in the trash because you do not have a system -- or whether you are going to build one.

The system does not have to be complicated. Three tiers. Category-specific timing. Assigned ownership. A clearance location. Consistent execution. Measurement. That is it.

The $847 in that Monday morning trash bag? With a functioning markdown system, $500-$600 of it sells. At a discount, yes. But $500 in the register is infinitely more than $0 in the dumpster.

Dynamic markdown pricing is not about accepting lower margins. It is about accepting reality -- some products will not sell at full price -- and building a system that extracts maximum value from that reality instead of pretending it does not exist.

The stores that figure this out recover tens of thousands of dollars annually. The stores that do not keep filling trash bags and wondering why margins are thin.

The trash bag does not care about your optimism. The markdown sticker does something about it.

See what batch-level tracking actually looks like

ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.