Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- What-if: return multiplier, all rows (required) Conditional
-
Unit x returns Default 1 Range 0 to 5
About this input
Multiplies every return rate before anything is calculated, from 0 to 5. The columns of the what-if table are centred on it. Each return rate times this must stay at most 100%.
- Sales by product and channel (required)
-
Default 2 rows
About this input
Up to 30 sales rows, one per product and channel: list price, units a month, and optionally a discount, units per order, a shipping charge, a return rate, a profile, ad spend and average inventory. List price times units a month must be at most 1,000,000,000. Non-zero units must be at least 0.01.
Column Range or allowed values Product Not declared Channel Not declared List price 0 to 100000 Discount 0 to 1 Units a month 0 to 100000 Units per order 1 to 10000 Shipping charged per order 0 to 10000 Return rate 0 to 1 Fulfilment profile Not declared Ad spend a month 0 to 10000000 Average inventory, units 0 to 10000000 - Simulated return multiplier, most likely (required) Conditional
-
Unit x returns Default 1 Range 0 to 5
About this input
The most likely return multiplier, the peak of the triangular distribution, between the low and the high value.
- Simulated return multiplier, high (required) Conditional
-
Unit x returns Default 1.2 Range 0 to 5
About this input
The highest return multiplier in the 100 trials, from 0 to 5. Each return rate times the what-if multiplier times this must stay at most 100%. Set low, most likely and high equal to switch the variation off.
- Simulated return multiplier, low (required) Conditional
-
Unit x returns Default 0.8 Range 0 to 5
About this input
The lowest return multiplier in the 100 trials, from 0 to 5. One multiplier per trial, shared by every row and channel.
- Target margin Conditional
-
When omitted Blank
Default Not set Range -1 to 0.95
About this input
The target search finds the lowest price on each channel that leaves this share of net revenue as contribution, from -100% to 95%. Blank means no target search: its section stays empty.
- Random seed Conditional
-
When omitted Blank
Default Not set Range 1 to 2147483646
About this input
The starting number of the random draws, a whole number from 1 to 2,147,483,646. The same seed and inputs always give the same 100 trials. Blank means 42.
- Monthly sales pattern
-
When omitted Blank
Default 0 rows
About this input
A sales index for each month: monthly units are units a month times this index. Blank means 1. An index is 0, or from 0.01 to 5. Values after the last month of the plan are not read.
Column Range or allowed values Month Not declared Sales index 0 to 5 - Highest price to try Conditional
-
When omitted Blank
Default Not set Range 0 to 300000
About this input
The highest list price the searches try, from 0 to 300,000 and not below the lowest price to try. Blank means 3 times the highest list price of the product. Lowest and highest may be equal: the searches then test that one price.
- Lowest price to try Conditional
-
When omitted Blank
Default Not set Range 0 to 300000
About this input
The lowest list price the searches try, before the row discount, from 0 to 300,000. Blank means 0.
- Table step, price multiplier (required) Conditional
-
Default 0.05 Range 0 to 0.2
About this input
The spacing of the 11 price rows of the what-if table, above 0 and at most 0.2. When the lowest row would fall below 0, only the table is withheld.
- Table step, return multiplier (required) Conditional
-
Default 0.2 Range 0 to 1
About this input
The spacing of the 11 return columns of the what-if table, above 0 and at most 1. When the lowest column would fall below 0, or the highest would return more than 100% of a row, only the table is withheld.
- Fee rules
-
When omitted Blank
Default 1 row
About this input
Up to 15 fee rules, each belonging to one channel. A rule charges a percent of item sales, shipping or both, or a fixed amount per order or per item, held between a minimum and a cap, in its own months, with a share refunded on returned units. May be empty: no fees.
Column Range or allowed values Rule ID Not declared Channel Not declared Charged on Item sales, Shipping, Combined, Orders, Units Percent 0 to 1 Fixed amount 0 to 10000 Charged per Per order, Per item Minimum 0 to 10000 Cap 0 to 10000 Refund on returns 0 to 1 First month 1 to 12 Last month 1 to 12 - Channel to compare against (required) Conditional
-
Default DIRECT
About this input
The channel results show each other channel against this one: contribution, unit contribution and margin. Pick a Channel ID from the channels table.
- Channels (required)
-
Default 2 rows
About this input
Up to 3 sales channels. Each has an ID, and may have a payment delay in months and a storage cost per unit per month. Customer money and fees settle after the delay. Blank means 0.
Column Range or allowed values Channel ID Not declared Payment delay, months 0 to 6 Storage cost per unit per month 0 to 1000 - Products (required)
-
Default 1 row
About this input
Up to 10 products. Each has an ID and a cost per unit, and may keep a share of that cost when a unit comes back and can be resold. Do not include channel fees or shipping in the cost; enter those as fee rules and profiles, so they are counted once.
Column Range or allowed values Product ID Not declared Product cost per unit 0 to 100000 Returned stock value kept 0 to 1 - Fulfilment profiles
-
When omitted Blank
Default 2 rows
About this input
Up to 10 fulfilment profiles: pick and pack and shipping out per order, and return shipping per returned unit. A sales row may name one. May be empty when no sales row names a profile. Blank costs mean 0.
Column Range or allowed values Profile ID Not declared Pick and pack per order 0 to 10000 Shipping out per order 0 to 10000 Return shipping per returned unit 0 to 10000 - Product to price (required) Conditional
-
Default MUG
About this input
The break-even and target searches find the lowest price of this product on each channel it sells on. Every other row keeps its price. Pick a Product ID from the products table.
- Months in the plan (required) Conditional
-
Unit months Default 1 Range 1 to 12
About this input
Months modelled from month 1, a whole number from 1 to 12. Sales, ads and storage run for these months.
- What-if: price multiplier, all rows (required) Conditional
-
Unit x price Default 1 Range 0 to 3
About this input
Multiplies every list price before anything is calculated, from 0 to 3. The rows of the what-if table are centred on it. The searches try their own prices, so this does not move them.
Outputs
- Simulated 10th percentile
-
No unit declared
About this output
The contribution that 10% of the trials fall below. With 100 trials it is illustrative.
- Simulated 90th percentile
-
No unit declared
About this output
The contribution that 90% of the trials fall below. With 100 trials it is illustrative.
- Simulated median
-
No unit declared
About this output
The middle contribution of the 100 trials.
- Simulated minimum
-
No unit declared
About this output
The lowest contribution of the 100 trials.
- Share of trials below zero
-
No unit declared
About this output
The share of the 100 trials below zero. Zero of 100 does not mean zero risk.
- Target price of the chosen product, by channel
-
No unit declared
About this output
The same search for the target margin. Empty when no target is entered.
- Target search status
-
No unit declared
About this output
The same as the break-even status, for the target margin. Blank when no target is entered.
- Standard error of that share
-
No unit declared
About this output
The sampling error of the share of trials below zero.
- Storage
-
No unit declared
About this output
Average inventory times the storage cost of the channel, over the plan. It comes from inventory, never from sales.
- Mean of trials 51 to 100
-
No unit declared
About this output
The mean of the last 50 trials. It shows how settled the 100-trial mean is.
- Shipping collected
-
No unit declared
About this output
Shipping charged to customers. It is not refunded on returns.
- Risk range, by channel
-
No unit declared
About this output
The 100 trials of each selling channel, all on the same draws: mean, percentiles, range, the trials it is the best channel and the trials below zero, with their shares and standard errors. Zero of 100 does not mean zero risk.
- Lowest price tried
-
No unit declared
About this output
The lowest list price the searches tried.
- PP08 Season Check
-
No unit declared
About this output
The check of each month: blank when the cell is blank or after the last month of the plan, OK, or the problem found, starting with its code.
- Simulated contribution, 100 trials
-
No unit declared
About this output
The 100 trial totals in 10 equal bins from the lowest to the highest. All trials sit in bin 1 when every trial is equal.
- Simulated mean contribution
-
No unit declared
About this output
The average of 100 trials in which one number scales every return rate. Prices and costs stay fixed.
- Mean of trials 1 to 50
-
No unit declared
About this output
The mean of the first 50 trials. It shows how settled the 100-trial mean is.
- Trials below zero
-
Unit of 100
About this output
How many of the 100 trials have a total contribution below zero.
- Simulated maximum
-
No unit declared
About this output
The highest contribution of the 100 trials.
- Table1 CMP Row Axis
-
No unit declared
About this output
The price multipliers down the left of the what-if table: your own multiplier in the middle, five equal steps below and five above.
- Table1 CMP Row Input
-
No unit declared
About this output
Machinery, not an input: the cell the table substitutes each row price multiplier into. The rest of the time it repeats the price multiplier. Change the input, never this cell.
- Table1 CMP Column Input
-
No unit declared
About this output
Machinery, not an input: the cell the table substitutes each column return multiplier into. The rest of the time it repeats the return multiplier.
- Table1 CMP Corner
-
Unit 0.00
About this output
The figure the what-if table recalculates, the total contribution, placed in its top-left corner as the spreadsheet requires. It is formatted away.
- Table1 CMP Values
-
Unit $0
About this output
Each cell is the total contribution recalculated with every list price multiplied by the row value and every return rate multiplied by the column value. The middle cell is your own plan.
- Warnings
-
No unit declared
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.
- Warning messages
-
No unit declared
About this output
Every warning that applies, separated by semicolons. Blank when none applies.
- Trials
-
Unit count
About this output
The number of simulated trials, always 100.
- Warnings
-
Unit count
About this output
How many warnings apply to this result. The warnings table lists them.
- Table1 CMP Column Axis
-
No unit declared
About this output
The return multipliers across the top of the what-if table: your own multiplier in the middle, five equal steps below and five above.
- Returned units
-
Unit units
About this output
Units returned over the plan.
- Units
-
Unit units
About this output
Units sold over the plan: units a month times the monthly index. Quantities are expected values, so fractions are allowed.
- Total contribution
-
No unit declared
About this output
Net revenue less net product cost, net fees, fulfilment, return shipping, ads and storage, over the whole plan. Every value behind it is your own assumption.
- Orders
-
Unit orders
About this output
Orders over the plan: units divided by units per order.
- Contribution per unit
-
No unit declared
About this output
Contribution per unit sold. Blank when no units sell.
- Workbook self-check
-
No unit declared
About this output
PASS when every internal consistency check of this result holds. FAIL means the result should not be relied on. Blank until the inputs are valid.
- Status code
-
No unit declared
About this output
The short code of the reason shown in the status, or OK.
- Reference data version
-
No unit declared
About this output
The version of any reference data used. None: every value is your own assumption.
- Seed used
-
No unit declared
About this output
The seed of this run: your entry, or 42 when blank.
- Highest price tried
-
No unit declared
About this output
The highest list price the searches tried.
- Cash by month
-
No unit declared
About this output
Net cash by month for each channel row, in grid order, with the whole-plan net and cumulative cash. Customer money and fees settle after the payment delay; costs fall in their own month. Blank after the last month with a cash flow.
- The plan, by channel
-
No unit declared
About this output
One row per channel, with each channel against the one you chose to compare against, its cash inside and after the plan, and how many times its current returns take its contribution to zero (blank when returns cannot reach that).
- Cash after the plan
-
No unit declared
About this output
The part of contribution that settles after the last month of the plan, because of the payment delays.
- Cash inside the plan
-
No unit declared
About this output
The part of contribution that has settled by the last month of the plan.
- PP08 Channels Check
-
No unit declared
About this output
The check of each channel row: blank for an unused row, OK, or the first problem found, starting with its code.
- Fee audit
-
No unit declared
About this output
One row per fee rule: where it applied, how many orders or items it charged, what it charged and refunded, and on how many rows the minimum or the cap held. It adds up exactly to the fees in the plan.
- Fee refunds
-
No unit declared
About this output
The share of fees on returned units that comes back.
- Product cost
-
No unit declared
About this output
Units at their cost per unit, before any returned stock value kept.
- Product cost, net
-
No unit declared
About this output
Product cost less returned stock value kept.
- Break-even price of the chosen product, by channel
-
No unit declared
About this output
For each channel the product sells on: the lowest list price on the scanned range at which it stops losing money, within 0.01, with the scan facts. Closest gap and closest price show how near the scan came. Margin may not move one way with price; see Monotone.
- Model version
-
No unit declared
About this output
The version of the model that produced these results.
- Next seed
-
No unit declared
About this output
A seed that continues the random stream after these 100 trials, for a further independent run.
- Custom assumptions
-
No unit declared
About this output
Whether any reference value was overridden. Always FALSE here: the model uses no reference data.
- Status
-
No unit declared
About this output
OK, or the first reason the result needs attention: NOT VALID for inputs the model cannot use or for a calculation that exceeds the supported numerical range (code NUMERIC_RANGE), INFEASIBLE when the price range is empty, NO SOLUTION FOUND when no price reaches a goal, and CHECK for a result to look at. Above about $10 trillion of revenue plus cost the calculator refuses, because whole cents stop being exact there. Below that, one cent of posted contribution decides the best channel, apart from small rounding in the underlying sum.
- Break-even search status
-
No unit declared
About this output
OPTIMAL when every channel the product sells on has a price at the goal: the lowest on the scanned range, within 0.01. NO_SOLUTION when one has none. INFEASIBLE when the price range is empty. Blank when the search did not run.
- Lead of the best channel
-
No unit declared
About this output
The contribution of the best channel less that of the next best. Blank with one selling channel.
- Best channel per unit
-
No unit declared
About this output
The channel with the highest contribution per unit, among channels with units above 0, read to 15 significant digits. Ties go to the earlier channel row.
- Ads
-
No unit declared
About this output
Ad spend a month over the plan.
- Best channel
-
No unit declared
About this output
The channel with sales rows and the highest contribution. Ties go to the earlier channel row.
- PP08 Products Check
-
No unit declared
About this output
The check of each product row: blank for an unused row, OK, or the first problem found, starting with its code.
- PP08 Profiles Check
-
No unit declared
About this output
The check of each profile row: blank for an unused row, OK, or the first problem found, starting with its code.
- Peak cash need
-
No unit declared
About this output
The lowest point of cumulative cash, as a positive amount. 0 when cash never goes below zero. Stock purchases are not modelled.
- The plan, by product
-
No unit declared
About this output
One row per product. Best channel has the highest contribution for that product; ties go to the earlier sales row.
- Returned stock value kept
-
No unit declared
About this output
The share of unit cost kept on returned units that can be resold.
- The plan, by sales row
-
No unit declared
About this output
One row per sales row: units, posted money lines and contribution. Blank rows are unused. Per unit and margin are blank at a zero denominator.
- PP08 Sales Check
-
No unit declared
About this output
The check of each sales row: blank for an unused row, OK, or the first problem found, starting with its code.
- Refunds
-
No unit declared
About this output
Returned units at the price after discount.
- Return shipping
-
No unit declared
About this output
Return shipping per returned unit.
- Month of the peak cash need
-
Unit month
About this output
The first month at the lowest point of cumulative cash. Blank when there is no deficit.
- Fees, net
-
No unit declared
About this output
Fees charged less fee refunds.
- Fulfilment
-
No unit declared
About this output
Pick and pack and shipping out, per order.
- Fees charged
-
No unit declared
About this output
Every fee rule on every row of its channel, before refunds.
- PP08 Fees Check
-
No unit declared
About this output
The check of each fee rule: blank for an unused row, OK, or the first problem found, starting with its code.
- Why the what-if table is withheld
-
No unit declared
About this output
Blank when the what-if table is shown. Otherwise the step to change, or that some what-if scenarios exceed the supported numerical range. Every other result still calculates.
- Contribution margin
-
No unit declared
About this output
Contribution as a share of net revenue. Blank at zero net revenue.
- Net revenue
-
No unit declared
About this output
Item sales plus shipping collected less refunds.
- Item sales
-
No unit declared
About this output
Units at the price after discount.
- Sales rows that lose money
-
Unit count
About this output
How many sales rows have a contribution below zero.
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 shows what is left from each sale on each sales channel. A seller sells up to 10 products through up to 3 channels, over a plan of 1 to 12 months. Each product on each channel is one sales row, with its own price, discount, monthly units, returns, ads and inventory. Up to 15 fee rules belong to the channels. A monthly pattern scales the units of every row.
One Calculate fills every result section of that one model: the plan by channel, product and row, a fee audit, cash by month, the break-even price of one product on each channel, the price for a target margin when you enter one, 100 simulated return levels and an 11 by 11 what-if table of price against returns.
Every figure on this page is computed by the spreadsheet; the page adds nothing to it. Every value is your own assumption. The calculator holds no channel's fee schedule, it does not say how customers respond to a price or how a channel will change its terms, it is not certified financial reporting, and it does not guarantee a profit.
Inputs and units
- Plan: the months in the plan, a whole number from 1 to 12, and the channel the others are compared against, chosen from the channel IDs you typed.
- 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 product cost per unit, from 0 to 100,000; and optionally the share of that cost you keep when a unit comes back and can be resold, from 0% to 100% (blank means 0%). Channel fees and shipping do not belong in the product cost; enter them as fee rules and profiles, so they are counted once. At least one product is required.
- Channels, up to 3 rows, filled from the top: a channel ID, in the same form; the payment delay in whole months, from 0 to 6 (blank means 0); and the storage cost per unit per month, from 0 to 1,000 (blank means 0). At least one channel is required.
- Fulfilment profiles, up to 10 rows, which may be empty: a profile ID, and the pick and pack cost per order, the shipping cost per order and the return shipping cost per returned unit, each from 0 to 10,000 (blank means 0).
- Sales by product and channel, up to 30 rows, filled from the top. Rows can be typed or pasted from a spreadsheet. Each row has a product and a channel from their tables, one row per product and channel; a list price from 0 to 100,000; and units a month, either 0 or from 0.01 to 100,000. List price times units a month must be at most 1,000,000,000. Optional, with what blank means: the discount, from 0% to 100% (0%); units per order, from 1 to 10,000 (1); the shipping charged per order, from 0 to 10,000 (0); the return rate, from 0% to 100% (0%); a fulfilment profile from its table (no fulfilment cost); the ad spend a month, from 0 to 10,000,000 (0); and the average inventory in units, from 0 to 10,000,000 (0). At least one row is required.
- Fee rules, up to 15 rows, which may be empty. Rows can be typed or pasted from a spreadsheet. Each rule has a rule ID, used once; a channel from its table; and what it is charged on: Item sales, Shipping, Combined, Orders or Units. Optional, with what blank means: a percent, from 0% to 100% (0%), which a rule on Orders or Units cannot have; a fixed amount, from 0 to 10,000 (0); a minimum and a cap, each from 0 to 10,000 with the cap not below the minimum (none); the refund on returns, from 0% to 100% (not refundable); and the first and last month, from 1 to 12 (the whole plan). A rule on Item sales, Shipping or Combined also says whether it is charged per order or per item.
- Monthly sales pattern: a sales index for each of the 12 months, either 0 or from 0.01 to 5. Blank means 1. Months after the plan are not read.
- Price search: the product to price, chosen from the product IDs you typed, and optionally the lowest and highest list price to try, each from 0 to 300,000. The slider reaches 10,000; you can type a higher price in the box. Blank lowest means 0, and blank highest means 3 times the product's highest list price. The two may be equal: the searches then test that one price.
- What-if table: a price multiplier from 0 to 3 and a return multiplier from 0 to 5, applied to every row before anything is calculated (1 unless you change them), and the spacing of the table's rows, above 0 up to 0.2, and columns, above 0 up to 1.
- Optional, under "Optional: target and risk":
- the target margin, from −100% to 95% (blank means no target search);
- the simulated return multiplier low, most likely and high, each from 0 to 5, in that order (0.8, 1 and 1.2 by default);
- the random seed, a whole number from 1 to 2,147,483,646 (blank means 42).
Money is in dollars. Percentages are shares of a price, of an amount or of units.
Governing relationships
Units and orders. Units on a row over the plan are units a month times the sum of the sales index over the months in the plan. Orders are units divided by units per order. Units, orders and returned units are expected values, so they can be fractions.
A fee rule. A rule applies to every sales row of its channel. Per order or per item, in the rule's own months, the amount before limits is the percent of what the rule is charged on, plus the fixed amount. Item sales means the price after discount, Shipping means the shipping charged and Combined means both; Orders and Units take the fixed amount only. The minimum and cap then hold that amount, per order or per item, on the original amount. The fee is that amount times the orders or items sold in the rule's months. The refund is the returned share of the original fee times the refund on returns, including any fixed part.
The ledger. Each line of each row is rounded once to the cent, half away from zero. Every total is a sum of those lines.
- Net revenue is item sales plus shipping collected less refunds. Refunds are the returned units at the price after discount; shipping collected is not refunded.
- Net product cost is the product cost of all units less the returned stock kept, which is the returned units at product cost times the share kept.
- Net fees are the fees charged less the fee refunds.
- Fulfilment is orders times pick and pack plus shipping out. Return shipping is returned units times its rate.
- Ads are the ad spend a month times the months in the plan.
- Storage is average inventory times the channel's storage rate times the months in the plan. It comes from inventory, never from sales, so it carries on through a month with no sales.
- Contribution is net revenue less net product cost, net fees, fulfilment, return shipping, ads and storage.
Margin is contribution divided by net revenue, and contribution per unit is contribution divided by units. Each is blank when what it divides by is zero. The best channel has the highest contribution, and a tie goes to the earlier row. The best channel per unit is read to 15 digits: two channels that match that far tie, and the earlier row is named.
Cash by month. Cash is separate from contribution. Costs fall in the month they happen. Customer money and fees settle after the channel's payment delay, so some money can land after the plan ends: that amount is shown. Sales, cost of sales and fees spread over the months by the sales index, and a fee only over its own months. Ads and storage spread evenly. Each channel's months add up exactly to its contribution, with any rounding cent placed by month order. Product cost is dated in the month of sale; stock purchases are not modelled.
Break-even and target prices. For the product to price, on each channel it sells on, the search varies that row's list price, before its own discount, and every other row keeps its price. It tries 101 evenly spaced prices from the lowest to the highest, and where the goal is crossed it narrows the price by 40 halving steps. The break-even goal is a contribution of zero and always runs. The target goal is contribution equal to your margin on net revenue and runs only when you enter a target. The answer is the lowest price that meets the goal, within one cent of contribution. A price rounded up to the cent is shown beside it. When the goal is already met at the lowest price tried, that price is the answer, with a warning. Fee minimums and caps can make margin move both ways with price, and the page warns when they do: prices closer together than one scan step can then be missed. Up to 3 crossings are located and reported; a falling crossing too steep to locate within a cent is counted but not reported.
Simulation. Each of the 100 trials draws one return multiplier from your low, most likely and high (a triangular distribution). That one number scales the returns of every row and channel, so channels are compared on the same draws. Prices stay fixed and nothing is re-optimized. Each trial is exact, because contribution moves in a straight line with the return rate. The same seed and inputs give the same 100 trials, and each Calculate after the first moves on to the next seed, so a new press draws new trials. Percentiles from 100 trials are illustrative only, and 0 of 100 trials below zero does not mean zero risk.
Return multiple at break-even. For each channel, the channel table shows how many times current returns would take its contribution to zero. It is blank when returns cannot do so, or when some row would pass 100% returned first.
What-if table. Rows are 11 price multipliers centred on yours, one row step apart; columns are 11 return multipliers centred on yours, one column step apart. Each cell is the total contribution recalculated by an Excel Data Table. The middle cell is your own plan. When a step would take the lowest row or column below 0, or take a row's returns above 100%, the table is withheld with that reason and every other result still stands.
Calculation sequence
The spreadsheet first checks the products, channels, profiles, sales rows, fee rules and monthly pattern, then that each key names a row of its table, then the settings, and stops with NOT VALID at the first problem it finds, with every figure at 0. It then works out each rule's fee on each row and posts the ledger to the cent, adds the channel, product and rule totals, and dates the cash. It searches the prices, runs the 100 trials and recalculates the what-if table at its 121 combinations. A block of consistency checks runs before the status is returned, including that the rows and channels add up to the plan, that each channel's cash adds up to its contribution, that the fee audit adds up to the net fees, and that the table's middle cell equals the contribution.
Outputs and interpretation
The headline gives the total contribution, the margin and the cash that arrives within the plan. The result sections follow.
- The plan: the best channel, its lead and the best channel per unit, the contribution per unit, the units, returned units and orders, each revenue and cost line and how many rows lose money; with tables by channel, by product and by sales row. The channel table also shows each channel against the one you chose to compare with, its cash in and after the plan, and its return multiple at break-even.
- Fee audit: the fees charged, refunded and net; and for each rule its months in the plan, the rows it charged, the orders or items charged, its fee, refunds and net, and how many rows sit at its minimum and at its cap. The audit adds up exactly to the fees in the plan.
- Cash by month: the amount after the plan, the largest cash need and its month; with net cash by channel, the whole plan and the running total, month by month.
- Break-even price on each channel: the range searched; and for each channel the price now, the status, the lowest price, that price rounded up to the cent and after the discount, the contribution and margin there, whether the answer is the lowest price tried, the crossings and prices found, and the closest the scan came.
- Price for the target margin: the same table for your target. With no target entered this section is empty and says so.
- Risk: 100 simulated return levels: the mean, median, 10th and 90th percentile, lowest and highest total contribution; the share of trials below zero with its count and standard error; the means of the first and last 50 trials and the seed used; with a table by channel, including how often each channel was best, and a histogram.
For nearby questions, the Cost-to-Serve & Minimum Profitable Order Calculator looks at what one order costs by size and policy, 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 INFEASIBLE, then NO SOLUTION FOUND, then CHECK, then OK.
- NOT VALID names the first problem: a product, channel, profile, sales row or fee rule (a blank row above a used row, a missing, malformed or repeated ID, a value outside its limits, or a rule that does not fit together, such as a percent on Orders or a minimum above the cap); no product, channel or sales row; a month index outside its limits; a sales row or rule naming a product, channel or profile not in its table, or a product and channel entered twice; a setting outside its limits, including a return rate that a multiplier would take above 100%; or a calculation that exceeds the supported numerical range.
- INFEASIBLE means the lowest price to try is above the highest after a blank highest takes its value. The plan, cash, fee audit, simulation and table stay valid and shown.
- NO SOLUTION FOUND means no price in the range brings a searched row to break-even or, with a target entered, to the target margin. The plan, cash, fee audit, simulation and table stay valid and shown. A channel that reached its goal keeps its answer, and the closest the scan came is shown for the one that did not.
- CHECK accompanies a valid result that needs a look because a workbook consistency check failed.
- OK otherwise.
Warnings say when sales rows lose money; when the channel to compare against has no sales rows; when a goal is already met at the lowest price tried; when margin does not move one way with price on a searched row; when the search found more than 3 crossings; when no row has returns, or no row has both sales and a price, so what-if columns or rows are identical; when the simulated multipliers are all equal; when a month index after the plan is not used; when the what-if table is withheld; when net revenue is zero on a selling channel; when the product to price has no sales rows; when an amount settles after the plan; and when a fee rule charges nothing on this plan.
Assumptions and limitations
- Capacities are 10 products, 3 channels, 10 profiles, 30 sales rows, 15 fee rules and 12 months, with cash shown to month 18.
- Units are what you enter. A price or fee change moves no units: the calculator does not estimate how customers respond.
- One return multiplier is shared by every row and channel in a trial, so the simulation does not show one channel's returns moving on their own.
- Returned units are refunded at the price after discount. Shipping collected is not refunded. A returned unit keeps only the share of cost you enter.
- A fee rule applies to every sales row of its channel. Its limits apply per order or per item, not per month or per plan.
- Stock purchases, taxes, overheads and financing costs are not modelled.
- A row at the largest allowed size can leave a target search that is negative without an answer, because 40 halving steps then resolve price more coarsely than one cent. It reports no solution, never a false price.
- Above about $10 trillion of revenue plus cost the calculator refuses, because whole cents stop being exact there. When only some what-if scenarios pass that limit, only the table is withheld.
- Results exactly on, or within rounding noise of, a half-cent edge may differ by one cent, including a tie between channels or the month a cent of cash falls in, so the best channel or peak month named can change.
- Amounts within two cents below the $10 trillion limit may show as $10 trillion. Near $10 trillion, this can also change the peak month or raise a one-cent settlement warning.
- Near $10 trillion, whether a plan with returns simulation is refused can depend on the seed, because it refuses only when a drawn trial exceeds the limit.
- Above $10 billion, a simulated mean can be off by less than one cent.
- A loss far under a cent can read as no loss, and near $10 trillion two channels less than 0.05 of a cent apart in a trial count as tied.
Restrictions and non-computing states
The calculator enforces its numeric and choice limits before it accepts a result. A blank row between used rows, a repeated ID, a key not in its table, a sales row above the size limit and a fee rule that does not fit together are refused by the workbook. With no target the target section is left blank. When a table step would take the what-if table out of range, only the table is withheld.
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 your channels' current terms, before using it to set a price or choose a channel.
References
Sources and further reading
Your prices, units, costs, fee rules, returns, ads, inventory and payment delays come from the inputs; the calculator holds no market, channel or fee data, and every value is your own assumption. The sources below explain the ideas the model uses. They do not endorse this calculator.
- OpenStax, Principles of Accounting, Volume 2: Managerial Accounting, 3.1 Explain Contribution Margin defines contribution margin as the amount by which a selling price exceeds variable cost, the amount left to cover fixed costs and profit; the calculator's contribution is a channel's net revenue less the costs its sales cause (retrieved 2026-11-03).
- OpenStax, Principles of Accounting, Volume 2: Managerial Accounting, 3.2 Calculate a Break-Even Point in Units and Dollars explains the break-even point as the level at which costs are recovered; the calculator searches for it by price on each channel rather than by a formula, because fee minimums and caps bend the line (retrieved 2026-11-03).
- Microsoft Support, Calculate multiple results by using a data table describes the two-variable data table the spreadsheet uses for the 11 by 11 what-if table (retrieved 2026-11-02).
- Park, S. K. and Miller, K. W. (1988), Random number generators: good ones are hard to find, Communications of the ACM 31(10) describes the multiplicative congruential generator with modulus 2^31 − 1 that draws the simulation's return multipliers (DOI checked 2026-11-02).
This is an educational model of the plan you enter, not financial, accounting, pricing or legal advice. It does not estimate how customers respond to a price or how a channel will change its fees, it is not certified financial reporting, and it does not guarantee a profit; check a result against your own costs and your channels' current terms before using it.
Found a problem, or have an idea?
Tell us if a result looks wrong, a label is unclear, or something is missing. We read every message.