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 an input, watch the model's fit and the dollar impact update.
How the bench works
Most steps below follow the same layout — inputs on the left, results on the right; Pricing Model and Inventory Position instead stack inputs at the top, intermediate/calculated factors in the middle, and results or simulations at the bottom. Nothing is hidden — every number traces back to a control nearby, and Step 6 tells you plainly which formula the evidence actually supports and what it's worth versus today's price.
The seven-step process, left to right
Each step must be reviewed before its output is trustworthy enough to feed the next one.
Ready to see a recommendation?
Steps 1–5 tune the assumptions behind the math. Step 6 turns them into a single explainable price recommendation for this SKU.
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 7 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 7 — The realized price, not the list price, should drive profitability analysis. Set the cost basis, the deduction bridge and the pricing rules here; every later step inherits them. Markup and margin rate calculators live in Step 2 · Pricing Model. §1.3
Unit cost — §1.2
There's one cost figure, not two: Variable cost is entered once, here. It flows down to the waterfall below (shown there as a read-only figure) and combines with Allocated fixed cost to form Unit cost — the starting point of the waterfall, and the cost basis the markup/margin model in Step 2 uses.
Pricing rules — guardrails
Hard limits this SKU's price must respect, independent of how it was calculated. The waterfall's resulting price is checked against these on the right — etc. covers any further guardrail your commercial policy adds (channel floors, MAP, contractual caps…).
Resulting price vs. rules
List → pocket price waterfall — §1.3
All fields below are dollar amounts subtracted from list price (not percentages) — see the waterfall chart below for how each one nets out, starting from Unit cost. Variable cost is read-only here — it's entered once, in the Unit cost panel on the left.
Waterfall — cost to resulting price
Starts at Unit cost, bridges up to List price, then nets down through every deduction to the resulting price — the figure checked against the rules above.
Step 2 of 7 — The Pricing Model step: demand and elasticity are variables you can calculate from history or input by hand, alongside a markup/margin model built on Step 1's cost basis. Predict demand at alternative prices; do not predict a price directly without an economic objective. Laid out top to bottom: inputs, then intermediate/calculated factors, then curve fitting and price modeling. §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.
Markup & margin model — inputs — §1.2
Another model for this SKU, alongside demand/elasticity — built on Step 1's Unit cost, kept here so every pricing model lives together and Step 1 stays about cost and rules. Resulting prices are further down, with the other price-modeling outputs.
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 above. 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 above — 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. Midpoint elasticity result
| Midpoint ε | — |
|---|
If ε = −2.0, a 1% price rise implies ≈2% lower quantity, all else equal.
6. Markup & margin model — resulting prices
| Rule | Resulting price |
|---|---|
| Cost-plus markup | — |
| Target-margin | — |
7. 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–6 are built to test the top four anchors — cost, demand, inventory/scarcity and competition — quantitatively, on this specific SKU.
8. Quantity, revenue & contribution vs. price — Figure 1
Peaks can fall at different prices — maximizing revenue is not maximizing profit. §3.2
9. Waterfall — cost to resulting price, for the selected pricing model
Starts at Unit cost, bridges up to the contribution-maximizing price from the demand model selected above (Figure 1's optimum), then nets down through the same deductions as Step 1's waterfall — those deduction amounts (discount, promotion, rebate, freight, payment-term) come from Cost & Price Rules, not from a separate copy here. Change them there, not here.
Step 3 of 7 — Every unit has a time-dependent economic value: excess creates markdown exposure, scarcity creates stockout opportunity cost. Perishable SKUs face a markdown-to-expiry schedule below; non-perishable SKUs face a de-stocking schedule against holding cost instead — set which one this SKU is in SKU Profile. §4
Explainable MVP rule — §4.2
Non-perishable overstock schedule — §4.4
For durable SKUs with no expiry — set in SKU Profile. Unsold units aren't wasted, but sitting in inventory past a target clearance horizon keeps racking up holding cost.
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 de-stocking path
Price eases down only as far as needed to clear the overstock near the target horizon — holding cost keeps accruing on whatever's left, but nothing is wasted.
Inventory-adjusted price grid
Economic contribution = Sales contribution − Holding − Terminal loss.
Step 4 of 7 — 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 7 — 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 7 — 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 7 of 7 — Take this run with you: export the full data behind it, or generate a print-ready PDF report of every step's results and the final recommendation.
Export data
Saves everything — the SKU profile, its photo and competitors, history, and every input across all 7 steps — to a .json file. Import that same file later, on any account or any device, to pick up exactly where you left off.
PDF report
Opens a print-ready summary of this run in a new tab — SKU identity, cost basis and pricing rules, the pricing model, inventory position, competitive position, seasonality, and the final recommendation. Use your browser's print dialog (destination: Save as PDF) to keep a copy.
Tell us what's wrong, confusing, or missing. Your report is kept with your work in this browser — sign in before submitting if you want it to reach the team so they can follow up.
What's the issue?
Pick the category that best matches — this helps us route and prioritize your report.