Price Elasticity Analysis — Know Which Products Can Handle a Price Increase

You are thinking about raising prices on a few products, or running a 20% off sale on your best sellers. But how much will demand actually change? Price elasticity gives you the number: if you raise prices 10% and sales drop 15%, elasticity is -1.5 — elastic demand, meaning customers are price-sensitive and volume falls faster than price rises. Upload your Shopify orders CSV, and this analysis tells you exactly which products can absorb a price increase and which ones need discounts to move.

What Is Price Elasticity Analysis?

Price elasticity of demand measures how sensitive your customers are to price changes. The core idea is simple: when you change the price, how much does the quantity sold change? The answer is a single number — the elasticity coefficient — that tells you everything you need to make pricing decisions.

Here is how to read it. An elasticity of -1.5 means a 10% price increase causes a 15% drop in units sold. An elasticity of -0.3 means a 10% price increase only causes a 3% drop — customers barely notice. The sign is always negative (higher prices mean fewer sales), so what matters is the magnitude. If the absolute value is greater than 1, demand is elastic — customers are price-sensitive, and a price hike will cost you more in lost volume than it gains in per-unit revenue. If the absolute value is less than 1, demand is inelastic — you can raise prices and total revenue goes up because the volume drop is small relative to the price increase.

This analysis uses log-log regression to estimate elasticity from your Shopify order data. By taking the natural log of both price and quantity, the slope of the regression line directly equals the elasticity coefficient. This is the same method used in economics research and pricing consultancies — it assumes a constant elasticity across the price range, which works well for most product catalogs. The report classifies every product in your catalog as elastic or inelastic and projects what happens to revenue if you adjust prices.

When to Use Price Elasticity Analysis

The most common use case is planning a price increase. You have rising costs — shipping, materials, supplier prices — and you need to pass some of that along. But not every product can absorb a 10% increase equally. Price elasticity analysis tells you which products have room to raise prices (inelastic demand) and which ones will lose too many sales if you try (elastic demand). Instead of guessing or applying a blanket increase, you raise prices strategically.

Discount planning is the flip side. When you run a seasonal sale or flash promotion, you want to discount the products where a lower price actually drives meaningful volume increases. If a product has elasticity of -0.4, a 20% discount only increases units sold by 8% — you are giving away margin for almost nothing. But if another product has elasticity of -2.0, that same 20% discount drives a 40% volume increase, potentially growing total revenue even at the lower price.

New product pricing is another strong use case. If you are launching a product similar to existing items in your catalog, the elasticity of comparable products gives you a benchmark. A new athletic shoe priced at $140 will likely see demand patterns similar to your other shoes in the $120-160 range. The elasticity data helps you pick a launch price that balances margin with volume.

Finally, this analysis is valuable for category management. When you see that your entire premium tier has inelastic demand (|elasticity| < 0.5), that tells you your brand positioning is working — customers buy those products for reasons beyond price. When your commodity products show high elasticity (|elasticity| > 2.0), it confirms that price is the primary purchase driver, and you need to be competitive.

What Data Do You Need?

You need a Shopify orders export CSV with four required columns: product name (which item was sold), sale price (what the customer actually paid per unit), compare-at price (the original or MSRP price), and quantity (units purchased in that line item). Three optional columns add depth: order date (for time-based trends), vendor (for brand-level analysis), and SKU (for variant-level detail).

To export this from Shopify, go to Orders > Export, and select the line-item level export. The key fields map as follows: "Lineitem name" to product name, "Lineitem price" to sale price, "Lineitem compare at price" to compare price, and "Lineitem quantity" to quantity. If you have custom price columns or use a different naming convention, the tool lets you map columns when you upload.

For reliable results, you need at least five distinct price points — meaning five or more products selling at different prices. More is better. The regression needs price variation to estimate elasticity. If all your products sell at $29.99, there is no price variation and no elasticity to measure. You also want at least 50 total orders spread across those products. Very thin data (two orders per product) produces unstable estimates with wide confidence intervals. The tool enforces a configurable minimum order threshold per product to filter out noise.

One important nuance: this analysis measures cross-product elasticity by default — it compares how demand differs across products at different price tiers. This is distinct from within-product elasticity, which measures how one product's demand changes when its own price changes over time. For within-product elasticity, you need historical data showing the same product at different prices across multiple time periods. The report makes this distinction clear in its findings.

How to Read the Report

The report opens with the Pricing Intelligence Summary (TLDR card). This is the executive view: the overall elasticity coefficient, how many products are elastic vs. inelastic, and the headline revenue impact finding. If the summary says "Portfolio elasticity is -1.3 — demand is elastic overall. A 10% price reduction is projected to increase revenue by 3% across the catalog," you have the key takeaway before reading any charts.

The Sales Volume by Product chart shows a bar chart of units sold for each product, annotated with the selling price. Products are sorted by price tier so you can visually see the demand curve — do cheaper products sell dramatically more, or is volume fairly flat across price points? A steep decline from low-price to high-price products signals elastic demand across your catalog.

The Price vs. Volume (Log-Log) scatter plot is the statistical engine of the analysis. Each dot is a product, plotted with ln(price) on the x-axis and ln(units sold) on the y-axis. The dashed regression line through these points has a slope equal to the elasticity coefficient. A steep downward slope means highly elastic demand. A nearly flat slope means inelastic demand. The R-squared value tells you how well price alone explains the variation in sales volume — an R-squared of 0.6 means price explains 60% of the variation, which is strong for a single-variable model. Products sitting far from the line are outliers worth investigating individually.

The Revenue Impact chart compares current revenue to projected revenue under a 10% price reduction scenario. For each product, it shows two bars side by side. If the green (projected) bar is taller than the blue (current) bar, that product would generate more revenue at a lower price — the volume increase from the elastic demand more than compensates for the lower per-unit price. If the blue bar is taller, keep the price where it is or even consider raising it.

The Discount Depth chart shows how deeply each product is currently discounted from its compare-at (MSRP) price. A product selling at $120 with a compare-at price of $150 has a 20% discount. This chart helps you understand your current markdown strategy and spot products where you might be discounting too aggressively (deep discount + inelastic demand means you are leaving money on the table) or not aggressively enough (shallow discount + elastic demand means a bigger markdown would drive disproportionate volume).

The Product Pricing Summary table puts everything together: each product with its selling price, compare-at price, discount percentage, units sold, revenue, elasticity classification (elastic/inelastic), and the projected revenue change under the 10% scenario. Sort by elasticity to find your most and least price-sensitive products. Sort by revenue impact to find the biggest optimization opportunities.

Finally, the Regression Model Statistics card shows the technical details of the log-log OLS model: R-squared, adjusted R-squared, F-statistic, p-value, and coefficient confidence intervals. An R-squared above 0.4 suggests meaningful pricing dynamics. A p-value below 0.05 on the elasticity coefficient confirms that the price-demand relationship is statistically significant rather than random noise.

When to Use Something Else

If you want to measure the causal effect of a specific price change on a specific product, A/B testing prices is the gold standard. Show half your visitors one price and half another, then compare conversion rates. This gives you true within-product elasticity with no confounders. Price elasticity analysis from observational data (like order history) measures correlation, not causation — other factors like seasonality, marketing spend, and product quality also affect demand. A/B testing isolates price alone.

If you have historical data where a product's price changed over time and you want to model that relationship, regression on price vs. quantity over time (a time-series approach) may be more appropriate. You can include controls for seasonality, marketing campaigns, and competitor actions. This analysis focuses on cross-product price variation at a point in time, which is a different question.

For new products where you have no sales data at all, conjoint analysis (survey-based) lets you estimate willingness to pay by showing potential customers different product configurations at different prices. This is common in CPG and tech product development. It tells you how much customers value specific features relative to price before you set any real prices.

If your goal is simply to understand discount effectiveness without the full elasticity framework, the promotional analysis module compares revenue, volume, and margin during promotional vs. non-promotional periods. And if you are looking at overall Shopify order patterns rather than pricing specifically, the AOV analysis module breaks down average order value trends and drivers.

The R Code Behind the Analysis

Every report includes the exact R code used to produce the results — reproducible, auditable, and citable. This is not AI-generated code that changes every run. The same data produces the same analysis every time.

The analysis uses lm() from base R to fit the log-log regression model — lm(log(quantity) ~ log(price)) — where the coefficient on log(price) directly equals the price elasticity of demand. This is the same constant-elasticity demand model taught in microeconomics courses and used by pricing consultancies. Revenue projections use the fitted elasticity to simulate demand at alternative price points. Discount depth is calculated by comparing the selling price against the compare-at (MSRP) price. Every step — data cleaning, log transformation, regression fitting, classification, and revenue simulation — is visible in the code tab of your report, so you or an analyst can verify exactly what was done and reproduce it independently.