Price structure

Bundle Pricing & Product Mix Optimizer

Prices up to 3 bundles of up to 10 products jointly. Customer groups enter their size and the most they will pay, buy the bundle that leaves them the most money, and bundles draw stock in a fixed priority order before products sell on their own. One Calculate compares no bundles, your plan and the best of up to 125 combinations, with a what-if table of bundle cost against bundle demand. A different split of stock could earn more; estimates for planning, not advice.

Last updated

Calculator overview

Inputs and outputs

This summary comes from the calculator's published input and output contract.

Inputs

Table step, bundle demand (required) Conditional
About this input

The spacing of the 11 bundle demand columns of the what-if table, from 0.001 to 1. When the lowest column would fall below 0, only the table is withheld.

Default 0.1 Range 0.001 to 1
Table step, bundle cost (required) Conditional
About this input

The spacing of the 11 bundle cost rows of the what-if table, from 0.001 to 1. When the lowest row would fall below 0, only the table is withheld.

Default 0.05 Range 0.001 to 1
Customer groups (required)
About this input

Up to 3 customer groups. Each has an ID, a number of customers and, for each bundle row, the most they will pay. Blank means the group will not buy that bundle at any price. Each customer buys at most one bundle: the one that leaves the most money.

Default 1 row
ColumnRange or allowed values
Group ID Not declared
Customers 0 to 1000000
Most they pay, bundle row 1 0 to 1000000
Most they pay, bundle row 2 0 to 1000000
Most they pay, bundle row 3 0 to 1000000
Products (required)
About this input

Up to 10 products. Each has an ID, a price on its own, a unit cost, a stock and how many customers would buy it on its own without any bundle. Stock is the same in every case compared.

Default 2 rows
ColumnRange or allowed values
Product ID Not declared
Price on its own 0 to 100000
Unit cost 0 to 100000
Stock 0 to 1000000
Sold on its own without bundles 0 to 1000000
Bundle to examine (required) Conditional
About this input

The bundle whose prices are shown side by side, with the other bundles held at their best. Pick a Bundle ID from your bundles table. It changes no other result.

Default AB
Bundles (required)
About this input

Up to 3 bundles. Each has an ID, a stock priority (1 draws stock first), packaging per bundle, a launch cost paid whenever the bundle is offered, a planned price, and up to 3 other prices to try. Your plan offers every bundle at its planned price.

Default 1 row
ColumnRange or allowed values
Bundle ID Not declared
Stock priority 1 to 3
Packaging per bundle 0 to 100000
Launch cost 0 to 1000000000
Planned price 0 to 1000000
Another price to try (2) 0 to 1000000
Another price to try (3) 0 to 1000000
Another price to try (4) 0 to 1000000
What-if bundle cost multiplier (required) Conditional
About this input

Multiplies what goes into each bundle sold, its components and its packaging, from 0 to 5. Standalone costs and launch costs do not change. 1 means no change. The rows of the what-if table are centred on it.

Unit x cost Default 1 Range 0 to 5
What-if bundle demand multiplier (required) Conditional
About this input

Multiplies the customers who choose each bundle, from 0 to 5. Standalone demand does not change. 1 means no change. The columns of the what-if table are centred on it.

Unit x demand Default 1 Range 0 to 5
What each bundle contains (required)
About this input

One line for each product in each bundle: how many go into one bundle and, optionally, how many sales on its own each bundle sold takes away. Lines with the same bundle and product add together. At most 10 lines may have sales lost above 0.

Default 2 rows
ColumnRange or allowed values
Bundle ID Not declared
Product ID Not declared
Quantity in the bundle 1 to 1000
Sales on its own lost per bundle 0 to 1000

Outputs

Your plan: standalone contribution lost
About this output

Standalone contribution with no bundles less standalone contribution in your plan.

No unit declared
Your plan against no bundles
About this output

How much more your plan earns than selling with no bundles. It can be negative.

No unit declared
Your plan contribution
About this output

The total contribution with every bundle offered at its planned price. The what-if table recalculates this figure.

No unit declared
Your plan margin
About this output

Contribution of your plan as a share of its revenue. Blank when revenue is zero.

No unit declared
Your plan: standalone contribution
About this output

The part of your plan contribution earned by products sold on their own.

No unit declared
Your plan revenue
About this output

Bundle and standalone revenue of your plan.

No unit declared
Your plan, by product
About this output

One row per product in your plan: stock, units used in bundles, standalone demand before and after the bundles, units sold on their own, unused stock, standalone revenue, cost and contribution, and the contribution lost against no bundles.

No unit declared
What-if table withheld because
About this output

Why the what-if table is withheld, or blank when it is shown. Nothing else changes when it is withheld.

No unit declared
The prices of the bundle to examine
About this output

One row per option of the bundle to examine, with the other bundles held at their best: its price, the customers who choose it, the units sold, the total contribution and that contribution less the best. A row with no price is blank.

No unit declared
PP06 Components Check
About this output

The check of each component line: blank for an unused row, OK, or the first problem found, starting with its code.

No unit declared
Best against no bundles
About this output

How much more the best combination earns than selling with no bundles.

No unit declared
Your plan, by bundle
About this output

One row per bundle in your plan: its planned price, the customers who choose it, the units sold, those short of stock, its revenue, costs and contribution.

No unit declared
Your plan: bundle contribution
About this output

The part of your plan contribution earned by bundles, after packaging and launch costs.

No unit declared
Best: standalone contribution lost
About this output

Standalone contribution with no bundles less standalone contribution in the best combination.

No unit declared
PP06 Products Check
About this output

The check of each product row: blank for an unused row, OK, or the first problem found, starting with its code.

No unit declared
Table1 BPM Row Input
About this output

Machinery, not an input: the cell the table substitutes each row bundle cost multiplier into. The rest of the time it repeats the bundle cost multiplier. Change the input, never this cell.

No unit declared
Table1 BPM Row Axis
About this output

The bundle cost multipliers down the left of the what-if table: your own multiplier in the middle, five equal steps below and five above.

No unit declared
Table1 BPM Corner
About this output

The figure the what-if table recalculates, your plan contribution, placed in its top-left corner as the spreadsheet requires. It is formatted away.

Unit 0.50
Table1 BPM Values
About this output

Each cell is your plan contribution recalculated at the bundle cost multiplier of its row and the bundle demand multiplier of its column, with your planned prices fixed. Stock, the choice rule and lost standalone sales are all re-evaluated; the table never re-optimizes. The middle cell is your own plan.

Unit $0
Warning messages
About this output

Every warning that applies, separated by semicolons. Blank when none applies.

No unit declared
Warnings
About this output

Every warning the model can raise, whether it applies to this result (1) or not (0), and its message when it applies.

No unit declared
Warnings
About this output

How many warnings apply to this result. The warnings table lists them.

Unit count
Reference data version
About this output

The version of any reference data used. None: every value is your own assumption.

No unit declared
PP06 Segments Check
About this output

The check of each customer group row: blank for an unused row, OK, or the first problem found, starting with its code.

No unit declared
What each customer group buys
About this output

One row per customer group: its customers and the bundle it chooses in your plan and in the best combination, or None. Each group buys the bundle that leaves it the most money, with ties going to the higher stock priority.

No unit declared
Workbook self-check
About this output

PASS when every internal consistency check of this result holds. FAIL means the result should not be relied on.

No unit declared
Table1 BPM Column Input
About this output

Machinery, not an input: the cell the table substitutes each column bundle demand multiplier into. The rest of the time it repeats the bundle demand multiplier.

No unit declared
Table1 BPM Column Axis
About this output

The bundle demand multipliers across the top of the what-if table: your own multiplier in the middle, five equal steps below and five above.

No unit declared
Status code
About this output

The short code of the reason shown in the status, or OK.

No unit declared
Best margin
About this output

Contribution of the best combination as a share of its revenue. Blank when revenue is zero.

No unit declared
Best contribution
About this output

The total contribution of the best combination: bundle revenue less component, packaging and launch costs, plus standalone contribution, under the stated stock rule.

No unit declared
The best combination, by bundle
About this output

One row per bundle in the best combination: its price (blank when not offered), the customers who choose it, the units sold, those short of stock, its revenue, costs and contribution.

No unit declared
Best: bundle row 1 offer
About this output

What the best combination does with bundle row 1: do not offer it, or one of its prices. Blank for an unused row.

No unit declared
Best: bundle row 1 price
About this output

The price of bundle row 1 in the best combination. Blank when it is not offered or the row is unused.

No unit declared
Best: bundle row 3 offer
About this output

What the best combination does with bundle row 3: do not offer it, or one of its prices. Blank for an unused row.

No unit declared
Best: bundle row 2 offer
About this output

What the best combination does with bundle row 2: do not offer it, or one of its prices. Blank for an unused row.

No unit declared
Model version
About this output

The version of the model that produced these results.

No unit declared
Status
About this output

OK, or the first reason the result needs attention: NOT VALID for inputs the model cannot use, and CHECK for a result to look at.

No unit declared
Custom assumptions
About this output

Whether any reference value was overridden. Always FALSE here: the model uses no reference data.

No unit declared
Search status
About this output

OPTIMAL means every combination of the prices entered was evaluated and the best under the stated stock rule is shown. A better price between the ones you entered, or a different split of stock, could earn more. Blank when the inputs are not valid.

No unit declared
Best: bundle contribution
About this output

The part of the best contribution earned by bundles, after packaging and launch costs.

No unit declared
Revenue with no bundles
About this output

Standalone revenue with no bundle offered.

No unit declared
Contribution with no bundles
About this output

What the products earn on their own from the same stock, with no bundle offered.

No unit declared
Best: bundle row 2 price
About this output

The price of bundle row 2 in the best combination. Blank when it is not offered or the row is unused.

No unit declared
Best against your plan
About this output

How much more the best combination earns than your plan. Never negative, because your plan is one of the combinations ranked.

No unit declared
Best: unused stock
About this output

Units of stock left over in the best combination.

Unit units
Best: cost of unused stock
About this output

The unit cost of the stock left over in the best combination. For information only: it is not charged against contribution.

No unit declared
PP06 Bundles Check
About this output

The check of each bundle row: blank for an unused row, OK, or the first problem found, starting with its code.

No unit declared
The three cases side by side
About this output

No bundles, your plan and the best combination: standalone, bundle and total contribution, revenue, bundles offered and unused stock.

No unit declared
Combinations evaluated
About this output

How many combinations of the prices entered were evaluated, at most 125.

Unit count
Best: bundles offered
About this output

How many bundles the best combination offers.

Unit count
Best revenue
About this output

Bundle and standalone revenue of the best combination.

No unit declared
The best combination, by product
About this output

One row per product in the best combination: stock, units used in bundles, standalone demand before and after the bundles, units sold on their own, unused stock, standalone revenue, cost and contribution, and the contribution lost against no bundles.

No unit declared
Best: bundle row 3 price
About this output

The price of bundle row 3 in the best combination. Blank when it is not offered or the row is unused.

No unit declared
Best: standalone contribution
About this output

The part of the best contribution earned by products sold on their own.

No unit declared
Best: bundle row 3 units sold
About this output

The units of bundle row 3 sold in the best combination. Blank for an unused row.

Unit units
Best: bundle row 2 units sold
About this output

The units of bundle row 2 sold in the best combination. Blank for an unused row.

Unit units
Best: bundle row 1 units sold
About this output

The units of bundle row 1 sold in the best combination. Blank for an unused row.

Unit units
This page is provided by LogicCommons for informational purposes only. Results are model outputs computed from the inputs you supply and are not financial, investment, tax, accounting, or legal advice, and no advisory relationship is created. Verify all inputs and results independently before relying on them in any decision. These calculators model the prices, costs and demand assumptions you enter. They do not estimate how customers respond to price, they are not certified financial reporting, and they do not guarantee a profit improvement.

LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.

Methodology

Purpose and model boundary

This calculator prices up to 3 bundles of up to 10 products together. It answers two questions: does a bundle earn more than the products sold on their own, and which prices should the bundles have when customers choose between them and they share stock?

Each product has a price, a unit cost, a stock and how many it sells on its own without bundles. Each bundle has a stock priority, a packaging cost, a launch cost, a planned price and up to 3 other prices to try. A table says what each bundle contains. Up to 3 customer groups each have a size and, for each bundle, the most they will pay.

One Calculate fills every result section. It works out the no-bundle case, on the same stock; your plan, with every bundle at its planned price; and the best combination, with each bundle at one of its prices or not offered at all. At most 125 combinations are evaluated, every one of them, and ranked together. It also shows what each price of one chosen bundle would earn, and an 11 by 11 what-if table of your plan.

Every figure on this page is computed by the spreadsheet; the page adds nothing to it. Customer figures are your assumptions, not a measure of what customers will do. Nothing is fitted or inferred from them, and there is no simulation.

Inputs and units

  • Products, up to 10 rows, filled from the top without a blank row between used rows: a product ID, which is a capital letter and then up to 15 capital letters or digits, each ID used once; the price on its own and the unit cost, each from 0 to 100,000; the stock and how many sell on their own without bundles, each a whole number from 0 to 1,000,000. At least one product is required.
  • Bundles, up to 3 rows, filled from the top: a bundle ID in the same form; a stock priority, where the used rows must hold 1 to the number of bundles, each once, and 1 draws stock first; the packaging per bundle, from 0 to 100,000; the launch cost, from 0 to 1,000,000,000; a planned price, above 0 and at most 1,000,000; and up to 3 other prices to try, in the same range. A blank price is not tried, and the prices of one bundle must all differ. At least one bundle is required.
  • What each bundle contains, up to 20 lines, typed or pasted from a spreadsheet: a bundle ID and a product ID from the tables above, the quantity in one bundle, a whole number from 1 to 1,000, and optionally the sales on its own lost per bundle sold, from 0 to 1,000 (blank means 0). At most 10 lines may have sales lost above 0. Every bundle needs at least one line, and lines with the same bundle and product add together.
  • Customer groups, up to 3 rows, filled from the top: a group ID in the same form, the customers, a whole number from 0 to 1,000,000, and the most they will pay for each bundle row, from 0 to 1,000,000. "Bundle row 1" is the first row of the bundles table, and so on. Blank means this group will not buy that bundle at any price, and the column of an unused bundle row must stay blank. At least one group is required.
  • Bundle to examine: chosen from the IDs typed in the bundles table.
  • Optional, under "Optional: what-if table", each with a value already set: the bundle cost multiplier and the bundle demand multiplier, each from 0 to 5 (1 means no change), and the spacing of the table's rows and columns, from 0.001 to 1.

Money is in dollars. Products, customers, bundles and stock are whole units. The sales lost per bundle can be a fraction.

Governing relationships

What a group chooses. For each bundle offered, a group's money left is the most it will pay less the price. A price equal to the most it will pay is a sale, with 0 left. Above it, the group will not buy that bundle. Each group buys at most one bundle: the one that leaves it the most money, and equal money left goes to the higher stock priority. The whole group follows its choice; customers are not split. The bundle demand multiplier scales the customers choosing each bundle, rounded down to whole customers.

Stock. Each combination sells bundles first, in your stock priority order, then sells each product on its own from the stock left. This is a fixed rule: a different split of stock could earn more. A bundle sells the smaller of the customers who chose it and what its scarcest component allows, in whole bundles only. Customers who chose a bundle that runs out do not switch to another bundle.

Sales on their own. Each bundle sold takes away the sales you entered from that product's demand on its own, and demand stops at 0. Each product then sells the smaller of that demand and its remaining stock, in whole units. Sales on their own never change bundle demand. The no-bundle case is the same calculation with nothing offered, so it uses the same stock.

Contribution. Bundle revenue is units sold times the price. Component cost and packaging are units sold times the cost, and the bundle cost multiplier applies to both. The launch cost is paid whenever a bundle is offered, even if none sells, and no multiplier applies to it. Standalone contribution is units sold on their own times the price less the unit cost. Each line is rounded once to the cent, half away from zero, and every total is a sum of those lines. Margin is contribution divided by revenue, blank when revenue is 0.

The best combination. Every bundle has up to 5 options: do not offer, the planned price, and up to 3 other prices. The spreadsheet evaluates every combination of those options, so choices, shared stock and lost sales are all inside each one, and ranks them by posted contribution. Equal contribution goes to fewer bundles offered, then to the earlier combination, with the planned price before the other prices. Offering nothing is always one of the combinations, so a best always exists. The search limit is that it is the best of the combinations tried under the stock rule: a better price between the ones you entered, or a different split of stock, could earn more.

The bundle to examine. Each price of that bundle, and not offering it, is compared with the other bundles held at their prices in the best combination. It changes no other result.

What-if table. Rows are 11 bundle cost multipliers centred on yours, one row step apart; columns are 11 bundle demand multipliers centred on yours, one column step apart. Each cell is your plan's contribution recalculated through the spreadsheet's own two-variable data table, with your plan's prices fixed: it never searches for a new best. Stock, choices and lost sales are worked out again in every cell. The middle cell is your own plan. When a step would take the lowest row or column below 0, the table is withheld with that reason and nothing else changes. A multiplier of 0 always withholds it.

Calculation sequence

The spreadsheet first checks every product, bundle, component line and customer group and every setting, and stops with NOT VALID at the first problem it finds, with every figure at 0. It then adds up each bundle's contents, lays the bundles out in stock priority order, and evaluates your plan once at the two multipliers for the what-if table. It evaluates all 125 possible combinations, leaving out those with a price you did not enter, ranks them, reads the best, your plan and the no-bundle case from those rows, builds the prices of the bundle to examine, and fills the what-if table. Its consistency checks then confirm that posted lines add up, stock is conserved and the two evaluations of your plan agree.

Outputs and interpretation

The headline gives the best contribution, how much it beats no bundles by, and your plan's contribution. The result sections follow.

  • Best of the combinations tried: how many combinations were evaluated and how many bundles the best offers, how much it beats your plan by, its revenue and margin, what comes from sales on their own and from bundles, the standalone contribution lost to bundles, and the stock left unused and what it cost. Unused stock is information only: it is not charged against contribution. The tables show the best by bundle, where a blank price means not offered, and by product.
  • Your plan: the same figures with every bundle at its planned price. Your plan offers every bundle, so a bundle no group buys still pays its launch cost; to compare a plan without a bundle, remove its row.
  • No bundles, your plan and the best: the three cases side by side, and what each customer group buys in your plan and in the best.
  • Prices of the bundle to examine: each price, the customers who choose it, units sold, total contribution and its difference from the best.

The charts show standalone against bundle contribution, stock use by product in the best combination, and the prices of the bundle to examine. The what-if table follows them.

For nearby questions, the Price Volume Profit Scenario Simulator projects profit over months when demand responds to price, and the Quote Pricing & Deal Margin Optimizer prices one deal.

Validation and status logic

The workbook returns one status, chosen in this order: NOT VALID, then CHECK, then OK. There is no infeasible or no-solution status, because not offering any bundle is always a valid combination.

  • NOT VALID names the first problem: a product (a blank row above a used row, a missing, malformed or repeated ID, or a value outside its limits); no product; a bundle (a gap, a missing, malformed or repeated ID, a priority, cost or price outside its limits, or two prices the same); no bundle; stock priorities that are not 1 to the number of bundles, each once; a component line (a gap, a missing value, a bundle or product not in its table, or a value outside its limits); a bundle with no lines; more than 10 lines with sales lost above 0; a customer group (a gap, a missing, malformed or repeated ID, a value outside its limits, or a figure under an empty bundle row); no group; or a setting outside its limits.
  • CHECK accompanies a result that needs a look because a workbook consistency check failed.
  • OK otherwise.

Warnings say when stock runs out before every customer who chose a bundle is served in the best combination, when a bundle sells nothing in your plan and still pays its launch cost, when the best price is the highest or lowest tried and a group would buy beyond it, when the sales lost to bundles are above a product's demand on its own, when two lines name the same bundle and product, when a product sells below its unit cost, when the what-if table is withheld, when no group would pay a price tried, and when offering no bundle earns the most.

Assumptions and limitations

  • Capacities are 10 products, 3 bundles, 20 component lines and 3 customer groups, with up to 4 prices per bundle, so at most 125 combinations.
  • The best is only among the prices you enter. Demand changes only at the figures the groups enter, and a price between them can still matter, because it changes which bundle leaves a group more money.
  • Stock goes to bundles first, in your priority order. This is a fixed rule, not a search over how to split stock.
  • A group moves as a whole, so demand moves in steps. Customers who chose a sold-out bundle do not switch, and they remain in the standalone demand.
  • A sale lost to a bundle counts only for bundles actually sold. Sales on their own have no effect back on bundle demand.
  • The bundle cost multiplier covers components and packaging. It does not change standalone costs or launch costs. The bundle demand multiplier does not change standalone demand. Both apply to every result at their input values, not only in the what-if table.

Restrictions and non-computing states

The calculator enforces its numeric and choice limits before it accepts a result, so a missing bundle to examine, a setting outside its range or a table with no rows is refused with the page's own message. A blank row between used rows, a repeated ID, a component line naming a bundle or product not in its table, and priorities that are not 1 to the number of bundles are refused by the workbook. When a table step would take the lowest row or column below 0, only the what-if table is withheld. With a blank price, that combination is not tried, and the row for it under the bundle to examine shows no figures.

Errors and warnings

A request rejected by the page's input limits is not a computed result. A transport or service failure, a timeout or a cancelled run cannot establish a fresh workbook answer, and the last result stays on the page marked as out of date. Review the workbook's References and Disclaimer, and check a result against your own costs and terms, before using it to set a price.

References

Sources and further reading

Your prices, costs, stock, bundles, customer groups and the most each group will pay come from the inputs; the calculator holds no market, industry or customer data, and every value is your own assumption. The sources below explain the ideas the model uses. They do not endorse this calculator.

This is an educational model of the bundles and customer groups you enter, not financial, accounting, pricing or legal advice. Customer figures are your assumptions, not a measure of what customers will do, and the calculator does not guarantee a profit; check a result against your own costs and terms before using it.

Results are informational and not professional advice. See our Terms of Use. Powered by SpreadsheetWeb · About · Privacy · Terms