Omniscope Custom Views › pvmbridge

Price Volume Mix

Revenue went up 2%. Was that price, volume, mix or new products? The bridge answers in one picture, and the table shows which products did it.

Bar visokio-agents

Open the demo in Omniscope Download demo.ioz Sample data: sales.csv Source on GitHub

Items tagged visokio-agents are community examples built by Visokio's agents, to extend Omniscope's core blocks and views with popular, specialist and more unusual use cases, and to show what anyone, people or agents, can build on Omniscope. They are tested by automated tests and were run on a real Omniscope server. They were not reviewed by Omniscope's core team, so they are not on a par with the core blocks and views, which have years of manual, functional and unit tests behind them. About

Revenue went up 2%. Was that price, volume, mix or new products? The bridge answers in one picture, and the table shows which products did it.

Live: an invented manufacturer's revenue, 2024 to 2025, split into volume, mix, price, new and discontinued products. Hover a bar for what it means; click a bar or a product to select those sales.

The problem it solves

A single growth figure hides very different stories. Revenue up 2% could be a healthy business selling more, or a shrinking one held up by price rises; it could be customers trading up to premium lines, or a few launches masking decline elsewhere. Commercial and finance teams answer this with a price-volume-mix analysis, often in a spreadsheet that is rebuilt every month.

The Price Volume Mix view computes the standard decomposition live from sales data and draws it as a waterfall: base revenue, then the volume, mix, price, new-product and discontinued-product effects, then current revenue. A table shows each product's contribution, and the numbers always add up. In the invented manufacturer above, total revenue rose 2%, but units fell (a 273k volume drag) while price (+229k) and a shift towards premium lines (+182k) more than made up for it; three launches roughly offset two discontinued products.

Where it earns its place

The examples below are illustrative.

Business Products Typical question
Food, drink and consumer goods SKUs, brands Did our price increase stick, or did we lose volume?
Retail and wholesale Categories, products Is growth coming from more baskets or from trading up?
Industrial and B2B Product lines, part numbers How much of the margin change is mix?
Software and subscriptions Plans, add-ons How much growth is price, seats or plan mix?
Hospitality and travel Room types, fare classes Rate against occupancy, and the effect of upgrades

How to use it in Omniscope

  1. Connect row-level sales (date or period, product, units, revenue) to a Report block; add a Year or Quarter field in the workflow if needed.
  2. Add a view and choose Price Volume Mix.
  3. Set Products, Period, Volume and Revenue; choose the Base period and Current period or leave them on the latest two.
  4. Hover each bar for what it means; click a bar or a product to select those sales and see them by customer, region or channel in other views.
  5. Filter by region or customer group to get the bridge for that slice, for example price realisation by channel.

Why do this in Omniscope

Data and options

Row-level sales with product, period, units and revenue.

Option What it does
Products, Period, Volume, Revenue The fields
Base period, Current period Periods to compare (default: latest two)
Products in table Number of products in the breakdown

Tested with 200,000 rows and 2,000 products.

Tested

Selecting the price effect
Selecting the price effect
Running on the Omniscope server
Running on the Omniscope server

Reference

Fields it reads

NameTypeWhat it does
ProductsFIELDThe level at which price and mix are measured, e.g. Product or SKU
PeriodFIELDField holding the periods to compare, e.g. Year or Quarter (text or numbers work best)
VolumeFIELDUnits sold (summed)
RevenueFIELDRevenue (summed); price is revenue divided by volume per product

Options

NameTypeWhat it does
Base periodTEXTValue of Period to compare from, e.g. 2024 (default: the second latest)
Current periodTEXTValue of Period to compare to, e.g. 2025 (default: the latest)
Products in tableNUMBERNumber of products listed in the breakdown (largest changes first, default 12)

Third-party libraries