Pricing Lab exists to answer one question at a time: which pricing formula actually fits this SKU, and how much better off is the business if we use it? Each step tests one more piece of evidence — cost, demand, inventory, competition, time — adjust it on the left, watch the model's fit and the dollar impact update on the right.
How the bench works
Every step below follows the same layout: inputs on the left, results on the right. Nothing is hidden — every number on the right traces back to a control on the left, and Step 7 tells you plainly which formula the evidence actually supports and what it's worth versus today's price.
The eight-step process, left to right
Each step must be reviewed before its output is trustworthy enough to feed the next one. Step 6 is where a single-SKU test becomes a company-wide run.
Ready to test at scale?
Steps 1–5 tune the assumptions behind the math. Step 6 applies them to every SKU in the company in one pass and flags anything that needs a second look before it ships.
The identity of the one SKU every step below tests and prices. Fill this in once — its name follows you to the top of every step, and its competitors feed Step 4's benchmark directly.
Basic identity
Competitors — SKU & price
The competing products this SKU is actually up against, and what they currently sell for. This list seeds Step 4's competitor benchmark and relative price index — edit weights there once it's loaded.
Profile summary
Save & backup
Export saves everything — the SKU profile, its photo and competitors, history, and every input across all 8 steps — to a .json file. Import that same file later, on any account or any device, to pick up exactly where you left off.
Step 1 of 8 — The realized price, not the list price, should drive profitability analysis. Set the cost rules and deductions here; every later step inherits them. §1.3
Markup vs. margin — §1.2
There's one cost figure, not two: Variable cost is entered once, here. It flows down to the waterfall panel below (shown there as a read-only figure) and combines with Allocated fixed cost to form Unit cost, which the two formulas below actually use.
List → pocket price waterfall — §1.3
All fields below are dollar amounts subtracted from list price (not percentages) — see the waterfall chart on the right for how each one nets out. Variable cost is read-only here — it's entered once, in the Markup vs. margin panel above.
Resulting price by rule
| Rule | Resulting price |
|---|---|
| Cost-plus markup | — |
| Target-margin | — |
Waterfall — list price to pocket contribution
Step 2 of 8 — Predict demand at alternative prices; do not predict a price directly without an economic objective. §14
SKU history — at least a year, month by month
Enter this SKU's own price, units sold, cost and the competitor's price for each month — by hand below, or upload a spreadsheet. Two columns are optional and each reverts to the original behavior if left blank: on-hand inventory flags and excludes stockout-constrained months (§4.1), and foot traffic (store visits or site sessions) shifts the estimate onto conversion rate so a slow month caused by low footfall isn't mistaken for a price effect.
Columns, any order, one header row: Month, Price, Units Sold, Cost, Competitor Price. Drag a file here or click Upload. .xlsx and .csv only — no data leaves your browser.
Model family — manual scenario
Pre-filled from your history above. Adjust to stress-test a hypothesis against what the data actually shows.
Constant-elasticity inputs — §3.1, §5.2
Midpoint elasticity calculator — §3
1. Price movement — history at a glance
This SKU's own price by month, straight from the history you're entering on the left. Check for real movement here first — a flat line means price barely changed, and no elasticity estimate below can be trusted.
2. What your data says
Log-log regression of units sold on price, per §3.1's log model. n = one row per month.
3. Actual vs. model fit — test a model against real data
The dots are this SKU's actual (price, units) for each month in its history. The line is what the model on the left — with its current slider values — predicts. Drag Q₀, P₀, ε (or a, b for the linear model) and watch the line move and the error below update: the closer the line tracks the dots, the better that model and those parameters explain this SKU.
4. Suggested model for this SKU — from your data
5. Which pricing approach actually fits this SKU? — §2
Use the fit chart above to confirm a demand-based anchor actually tracks this SKU before relying on it. Click any row to see the price it actually implies for this SKU, using the numbers already entered in this tool — where this tool has no formula for an approach, it says so rather than guessing.
| Approach | Primary anchor | Strong fit when… | Watch out for | |
|---|---|---|---|---|
| Cost-plus | Cost + target markup | Simple, stable, contract work | Ignores willingness to pay | |
| Target-margin | Cost + required margin | Guardrail / financial planning | May miss demand response | |
| Demand-based | Elasticity + contribution | Real price variation, well-fit history (see panel 3 above) | Needs a trustworthy elasticity estimate | |
| Competition-based | Relative market position | Comparable, searchable products | Can copy competitor mistakes | |
| Value-based | Customer economic value | Differentiated, high-impact offers | Needs research & segmentation | |
| Penetration | Adoption & market share | Network effects, low switching cost | Hard to raise later | |
| Skimming | Early willingness to pay | Innovation, constrained supply | Invites competition | |
| Segment pricing | Economics differ by segment | B2B, channels, service levels | Needs defensible criteria | |
| Bundle pricing | Portfolio / basket economics | Complements, cross-sell | Can discount items bought anyway | |
| Dynamic pricing | Time-varying market state | Scarce, perishable, capacity-limited | Trust & governance risk |
This tool's Steps 2–7 are built to test the top four anchors — cost, demand, inventory/scarcity and competition — quantitatively, on this specific SKU.
6. Quantity, revenue & contribution vs. price — Figure 1
Peaks can fall at different prices — maximizing revenue is not maximizing profit. §3.2
7. Midpoint elasticity result
| Midpoint ε | — |
|---|
If ε = −2.0, a 1% price rise implies ≈2% lower quantity, all else equal.
Step 3 of 8 — Every unit has a time-dependent economic value: excess creates markdown exposure, scarcity creates stockout opportunity cost. §4
Explainable MVP rule — §4.2
Perishable markdown schedule — §4.5, §8.3
Price-grid assumptions — Example A, §8.1
Demand(P,Pᶜ) = Q₀·(P/P₀)^ε·(Pᶜ/Pᶜ₀)^εᶜ, capped by on-hand inventory.
Heuristic reading
| Inventory gap g | — |
|---|---|
| Suggested price adjustment | — |
| Reading | — |
A heuristic guardrail, not a substitute for demand simulation. §4.2
Recommended markdown path
Recommended price declines as the deadline approaches and sell-through lags plan — a gradual schedule, not a last-minute clearance.
Inventory-adjusted price grid
Economic contribution = Sales contribution − Holding − Terminal loss.
Step 4 of 8 — Competitor pricing is not a single scraped number — comparability, availability and likely reaction all matter. §5
Location & market context
Competitor data is usually reported for one reference market — if this SKU actually sells somewhere systematically pricier or cheaper (a flagship vs. a rural outlet, one region vs. another), say so here rather than assuming the raw benchmark applies everywhere.
Weighted benchmark & relative price index — §5.1
Cross-price effect — §5.2
Benchmark result
Cross-price result
| Predicted demand effect | — |
|---|
Example B, §8.2: εᶜ=+0.7 and a 5% competitor cut ⇒ demand falls ≈3.5%, before other effects.
Competitor-reaction scenarios — §5.4
—
—
Step 5 of 8 — Seasonality is recurrent and learnable; an external event is a dated shock; a promotion is a company-chosen intervention. Keep them separate. §6
Seasonal index — §6.2
External event impulse — §6.4
Launch adoption — Bass diffusion, §6.6
Promotion inputs — Figure 10, §6.5
Seasonal demand curve
Event impulse curve
Lead-in, peak on event day, decay afterward — not a single-day flag.
Bass diffusion curve
Promotion incrementality waterfall
Step 6 of 8 — Apply the same optimization to every SKU in the company in one pass, fast, and surface anything that shouldn't ship on autopilot before it becomes step 7's problem.
Portfolio
Synthetic SKUs spanning seven categories, each with its own cost, elasticity, inventory and competitor data — standing in for a real ERP/POS feed.
Exception guardrails
A SKU is flagged whenever its recommendation would violate one of these — matching the constraint set in §7.3.
Portfolio summary
SKU-by-SKU recommendation
Click a flagged row's arrow to load that SKU straight into Step 7 for a full deep-dive.
Step 7 of 8 — Score(P) = w₁Contribution + w₂Revenue + w₃Sell-through − w₄Stockout risk − w₅Price-change risk, maximized subject to constraints. §7
Objective weights
Contribution bridge adjustments — §6.7, §7.4
Baseline → seasonal → external-event → business-event → competitor → inventory constraint → final. Makes double counting visible.
Which pricing model applies to this SKU?
Read from what Steps 2–5 actually measured for this SKU — not a generic rule.
Recommendation card — §10.2
Candidate price grid
Contribution bridge
Step 8 of 8 — Preserve managerial accountability: display uncertainty, route by impact and confidence, keep an auditable record. §12
Evidence grade
§9.2 — observed correlation = causal effect + confounding from demand, inventory and managerial decisions. The badge on the Recommendation card reflects this grade.
Approval routing policy — §12.1
| Expected impact | Confidence | Control |
|---|---|---|
| Low | High | Auto-approve inside preauthorized rules |
| Medium | High | Pricing-manager approval |
| High | High | Commercial & finance approval |
| Any | Low | Experiment, collect evidence, or reject |
| Sensitive customer effect | Any | Legal, privacy & ethics review |