PVM Bridge splits a change in sales into volume, mix and price across as many product attributes as you need. It runs in your browser, so your sales file never leaves your computer.
Free and open source. No account. Works with CSV and Excel files.
| Sales 2025 | 57,908,260 |
| Volume | +4,843,531 |
| Mix: Model | +1,141,258 |
| Mix: Finish | +823,665 |
| Mix: Color | +2,244,655 |
| Mix: Material | −93,715 |
| Price (like-for-like) | +1,026,258 |
| New configurations | +3,517,202 |
| Discontinued configurations | −961,576 |
| Sales 2026 | 70,449,538 |
A standard bridge needs one product key. When a product is a combination of choices, such as a model, a finish, a color and a material, no single key works.
Most full combinations sold in only one of the two periods. They have no prior price to compare with, so real price changes disappear into “new products”.
A customer moving to a premium finish raises the average price of the model. The bridge reports it as a price increase, and it is not one.
It compares each configuration with the same configuration last period. Where there is no match, it falls back to the nearest group that did exist, in the attribute order you set.
| Same data, two bridges | Price effect reported | Against the true +3.21M |
|---|---|---|
| Grouped by model only | +9.72M | 3 times too high |
| PVM Bridge, four attributes | +3.19M | Within 1% |
Test on three million made-up sales lines with a 4% price increase planted on part of the range, so the true answer is known. In the model-only bridge, a shift toward higher-priced color options is counted as price. Why the grouping level changes the price effect.
Setup stays on the left, results on the right. Every table can be copied, and every number can be traced.




Three steps, and the second one can be saved for next time.
A CSV or Excel file with one row per sales line: a date or period, units, sales and your product attributes.
Pick the two periods and put the attributes in order of importance. Use one attribute for a classic bridge, or several. Two columns can be combined into one attribute.
A waterfall, the largest movers behind each bar, the configurations that had no match, and an Excel file with the formulas in it.
Built for the person who has to defend the numbers in a review.
A separate mix line for each attribute, so you can say how much came from finish and how much from material.
Add a gross sales column and the price effect splits into list price changes and discount changes.
Add a cost column and the bridge moves to margin, with the rate effect split into selling price and unit cost.
Rows with sales and no units get their own line, so a rebate accrual never shows up as a price cut.
Show them as a price difference with units in volume, or at full sales outside volume and mix.
How much of matched sales went up 2% to 5%, stayed flat or went down, with the effect of each band.
The change split by account, with net and gross retention. Works on customer, region or any other column.
Enter the planned increase and see realized price against plan for each product group or customer.
Put customer last and see who pays less than others for the same product, with the sales at stake.
Click a bar to see what is behind it. Click a row to break it down by the next attribute. Every row adds up to its own sales change.
The bridge is rerun with each attribute left out, so you can see how far the price number depends on your choices.
The share of sales compared against an exact prior configuration, and every new configuration with the reference price used.
With dates in the file, one bridge per quarter or month shows when a price change took hold.
If product rolls up to family and category, the tool spots it and offers to add the levels in order.
A single HTML page with the chart, bridge, summary and top movers. It holds totals and a written summary, names the file, the setup, its filter values and the top movers, and holds no rows, so it can be emailed.
A plain-language paragraph of the bridge to paste into commentary. It is built from fixed patterns, so it never changes between runs.
The bridge, coverage, movers and a detail sheet where every effect is a live formula, with a check row that should read zero.
Include or exclude values before calculating. A check tab counts returns, blank values and rows that were ignored.
The browser remembers your column mapping for the next file with the same columns, never the data or filter selections. Untick one box to turn it off, or save the setup to a file to share it.
Invoice-level sales by customer is not something to upload to a website. PVM Bridge loads a database engine into the browser tab and does the calculation there.
The data lives in the tab’s memory. Close the tab or choose Clear data and it is gone. Only the column mapping is remembered, and you can turn that off. No cookies, no accounts. No tracking scripts.
The file is read by the page itself. You can confirm this in your browser’s network panel: loading a file sends no requests.
The calculation and the app are public under the MIT license, so your IT or audit team can read exactly what runs.
The method is fixed arithmetic, not a language model. The same file and setup always give the same bridge.
Most teams choose between a spreadsheet they rebuild every month and a pricing suite they cannot justify. PVM Bridge sits between the two.
| Spreadsheet template | PVM Bridge | Enterprise pricing suite | |
|---|---|---|---|
| Time to a first bridge | Hours, then again each period | Minutes; the setup is remembered | An implementation project |
| Products built from several attributes | One grouping level at a time | Any number of attributes, with fallback matching | Usually yes, after configuration |
| Hundreds of thousands of rows | Slow or over the row limit | Yes, in the browser | Yes |
| Where the sales data goes | Stays on your computer | Stays on your computer | Usually the vendor’s servers |
| Can a reviewer check the numbers? | If the formulas are readable | Excel export with live formulas; open source | Depends on the product |
| Cost | Your time | Free | Quoted by a sales team |
The analysis is free. A paid plan for repeat use and teams is planned and not available yet.