Leaders Insights
Leaders Insights

Rester au meilleur niveau, un peu chaque jour.

DomainesMarketingDataFinanceIA
RessourcesApprendreTestOutilsBlogGlossaire
© 2026 Leaders Insights — Tous droits réservés.
Formations/Data in retail/Data in retail/Data-driven pricing, markdowns, and elasticity in practice
4/4+150 XP

Data in retail

1Turning POS and inventory streams into a single source of truth+1502Building customer intelligence from loyalty and clienteling data+1503Forecasting demand and optimizing assortment by store cluster+1504Data-driven pricing, markdowns, and elasticity in practice+150

Data-driven pricing, markdowns, and elasticity in practice

# Data-drivenData-drivenAn approach where decisions are systematically informed by data analysis rather than intuition alone.Voir la définition complète → pricing, markdowns, and elasticity in practice

A winter coat costs the retailer $60. It launches at $180. By February it sells for $89, and the buyer is happy. Why $89 and not $99 or $79? A generation ago that answer came from a merchant's gut. Today it comes from data: a measured estimate of how many extra coats sell for each dollar you drop the price, weighed against the cost of holding stock nobody wants by March.

This lesson shows you how that estimate gets built and how it drives two decisions: the opening price and the markdown cadence (the schedule of price cuts that clears inventory before the season ends).

The core idea: price elasticityprice elasticityHow sensitive demand is to a price change. High elasticity means customers react strongly to price increases.

Voir la définition complète →

Price elasticity of demandPrice elasticity of demandHow sensitive demand is to a price change. High elasticity means customers react strongly to price increases.Voir la définition complète → measures how sensitive sales volume is to price. The formula is simple:

> Elasticity = (% change in units sold) / (% change in price)

If cutting price 10% lifts unit sales 20%, elasticity is roughly -2.0. The number is almost always negative (higher price, fewer units). Retailers usually drop the minus sign and talk about "elasticity of 2."

Two practical buckets:

  • Elastic (greater than 1): shoppers react strongly. Fashion basics, electronics accessories, anything with easy substitutes. Discounts drive real volume.
  • Inelastic (less than 1): shoppers barely react. Staples, unique items, urgent needs. Discounting here just gives away margin.

The whole game is knowing which items are which, at which times, in which stores.

Estimating elasticity from your own history

You do not need a lab. Your point-of-sale (POS) system already ran hundreds of natural experiments: every past promotion was a price change with a measurable sales response.

Step 1: Assemble the panel

Build a table at the SKU-store-week level. SKU means Stock Keeping Unit, the individual product variant (this exact coat, in navy, size medium). Each row needs:

  • units sold
  • actual selling price (after any promo)
  • whether a promo was active
  • inventory on hand
  • basic seasonality flags (week of year, holidays)

Step 2: Isolate the price effect

The trap: sales rise in December because it is December, not only because you cut prices. You must separate the price signal from seasonality, weather, and stockouts. A common starting model is a log-log regression, where the coefficient on log price is the elasticity directly.

python
import statsmodels.formula.api as smf

# df has: units, price, is_promo, week_of_year, store_id
df["log_units"] = np.log(df["units"])
df["log_price"] = np.log(df["price"])

model = smf.ols(
    "log_units ~ log_price + C(week_of_year) + C(store_id) + is_promo",
    data=df
).fit()

# coefficient on log_price IS the elasticity estimate
print(model.params["log_price"])

A coefficient of -1.8 means roughly 1.8% more units for every 1% price cut. Always check the confidence interval: a wide range means you lack enough price variation to trust the number.

Step 3: Add competitor context

Your own history tells you how customers respond to your prices. It does not tell you what a rival is charging next door. That is where competitive price scraping comes in: automated collection of competitor prices from public websites.

A few cautions, because this is often misunderstood:

  • Scraping public prices is common practice, but respect each site's terms of service and applicable law. Rules vary by country. Treat this as an operational and legal question, not a purely technical one.
  • Prices go stale fast. A scrape from Monday may be wrong by Friday.
  • Match carefully. A "similar" coat with different insulation is not the same product.

Competitor prices sharpen the model by explaining demand your own history cannot. If your sales dropped one week despite no price change from you, a rival's promotion may be the reason.

For a solid, plain-language primer on elasticity itself, the OpenStax Principles of Economics chapter on elasticity is free and reliable.

Setting the opening price

With an elasticity estimate per product family, opening prices stop being guesswork.

Work backward from your goals. For a new fashion item, the objective is usually to sell most units at or near full price during the peak weeks, leaving a manageable remainder for markdown. High elasticity argues for a sharper opening price to build volume early. Low elasticity lets you hold a premium.

Two anchors keep the model honest:

1. Cost floor. Never model below landed cost plus minimum required margin.

2. Competitive ceiling. Scraped rival prices cap how high you can go on comparable goods.

The elasticity estimate then guides where to land between floor and ceiling to maximize expected gross margingross marginGross margin is the share of revenue left after subtracting the direct cost of producing goods or services, expressed as a percentage of revenue.Voir la définition complète → dollars, not just margin percent. A 55% margin on 100 units loses to a 45% margin on 300 units.

The markdown problem

Here is the tension every seasonal retailer lives with. You bought a fixed quantity of coats. They have a shelf life: after the season, leftover stock is dead capital, often liquidated for pennies. But every early markdown gives away margin on coats that might have sold at full price anyway.

Markdown optimization is the discipline of scheduling price cuts to clear inventory by a deadline while protecting total margin.

The two costs you are balancing

  • Cost of holding too long: unsold units at season end, cleared far below cost, plus storage and cash tied up.
  • Cost of cutting too early: margin surrendered on units that would have sold at a higher price.

The optimal path threads between them.

How the model works, conceptually

You need three ingredients per SKU:

1. A demand forecast at each candidate price, driven by your elasticity estimate and seasonality.

2. Remaining inventory and days left in the season.

3. A salvage value: what one leftover unit is worth after the deadline.

The engine simulates markdown schedules (for example: hold at full price four weeks, then 20% off, then 40% off) and projects the ending inventory and total margin for each. It recommends the schedule that clears stock by the deadline with the highest expected margin.

A worked intuition

Say you have 500 units, eight weeks left, and current pace of 30 units per week at full price. At that rate you end with 260 units unsold. That is the trigger.

Your elasticity of 2.0 suggests a 20% cut roughly lifts weekly pace toward 42 units. Rerun the projection: closer to clearance, but maybe not enough. The model may recommend 20% now and a deeper 40% cut in week five if pace still lags. The point is the cadence, staged cuts, not one panicked blowout.

Sell-through as the daily signal

Merchants track sell-through rate: units sold divided by units received, as a percentage. If your target is 80% sell-through by week six and you are tracking at 60%, the model surfaces the gap early enough to act. Modern markdown systems rerun this weekly, sometimes daily, feeding fresh POS and scrape data back in.

Vérification des acquis

1. A retailer finds that a 10% price cut on a staple grocery item produces almost no increase in units sold. What does this reveal about the item, and what is the implication for discounting it?

2. Why can a retailer estimate elasticity from its own POS history without running a formal experiment?

3. The lesson says the markdown cadence weighs the extra units sold per dollar of price cut against the cost of holding unsold stock. What core trade-off does this represent?

CHOIX MULTIPLES

4. Select ALL correct answers. Which characteristics tend to make an item MORE elastic (elasticity greater than 1)?

Sélectionnez toutes les réponses correctes.

CHOIX MULTIPLES

5. Select ALL correct answers. Why is the elasticity panel built at the SKU-store-week level rather than as a single company-wide number?

Sélectionnez toutes les réponses correctes.

Where it breaks in the real world

Models mislead when the data lies. Guard against these:

  • Stockouts masquerade as low demand. If you sold out on Tuesday, your weekly sales understate true demand. Flag out-of-stock periods and exclude or correct them, or your elasticity looks artificially weak.
  • Halo and cannibalization. Discounting the coat may lift matching scarf sales (halo) or steal sales from a similar coat (cannibalization). SKU-level models miss this. Category-level views help.
  • Brand and perception damage. Constant deep discounting trains customers to wait. The model optimizes this season; it cannot see next season's eroded full-price demand. That is a leadership judgment, not a formula.
  • Thin price variation. If a product was never discounted, you have no signal on its elasticity. Borrow estimates from similar items, and flag the uncertainty.

Practical governance

Keep humans in the loop. The best setups let the system recommend and let a merchant approve, with guardrails: no price below cost, no cut deeper than X% without sign-off, no more than one markdown per two weeks. The algorithm handles scale; people handle judgment and exceptions.

Key takeaways

  • Elasticity is measurable, not mystical. Your POS history is a library of past price experiments. A log-log regression, controlled for seasonality and stockouts, turns it into a usable number per product family.
  • Optimize margin dollars, not margin percent. A lower margin on higher volume often wins. Elasticity tells you when.
  • Markdowns are a cadence, not an event. Staged cuts guided by sell-through beat one desperate end-of-season blowout.
  • Clean the inputs first. Stockouts, cannibalization, and stale competitor scrapes distort every downstream decision. Correct them before you trust the output.
  • Keep judgment above the algorithm. Guardrails and human approval protect brand equitybrand equityThe commercial value your brand adds beyond functional product attributes: the price premium, preference and loyalty it generates.Voir la définition complète → and next season's full-price demand, which no single-season model can see.

Précédent

Forecasting demand and optimizing assortment by store cluster