You can simulate any price. Which one should you actually pick?

A simulation tells you what happens if you choose a number. It does not choose. So people scan by hand: try $29,000, run it, try $32,000, run it, try $36,000, then stop when they get bored and call the last one the answer. Optimization under uncertainty does the scan properly. You say which cells you are allowed to change and what you want to be best on, and the tool searches, running a full simulation for every candidate it tries.

Method guide for Google Sheets Optimization under uncertainty Pro engine

What optimization under uncertainty is

Three parts. The decision cells are what you control: a price, an order quantity, how much to hold back. The uncertain inputs stay uncertain and keep their distributions. The objective is a statistic of the output rather than the output itself, because under uncertainty there is no single value to be best at. Maximize the mean if you want the best average, or the 5th percentile if you care more about the bad case than the good one.

Every candidate is scored against the same set of random draws, which is called common random numbers. It means the difference between two candidates reflects the decision rather than luck in the sampling, and it is what lets a modest search find a real answer instead of chasing noise.

The questions it answers

  • What price, quantity or split is best once the uncertainty is priced in?
  • How much better is that than the number we default to?
  • What is the safest choice, as opposed to the highest-average one?

When you do not need the search

Skip it when nothing is uncertain. A fixed problem with constraints belongs in Optimization, which is free, exact and far faster. Skip it when the decision has three options rather than a range: simulate the three and read the answers.

Skip it when the objective is flat near the top, which is common and worth discovering, because the useful conclusion is then “anything in this range is fine” rather than a number to the nearest dollar. And know what the search will hold to: it moves decision cells between the bounds you set, a cell check keeps a formula cell inside a bound, and a requirement holds a statistic of another simulated cell, like the chance of a shortfall kept at most 5 percent. When no candidate can obey every rule, the result says so instead of pretending.

A worked example

A fixed-price bid. Price low and you win thin work; price high and the job goes to someone else. Four rivals may or may not turn up, each with a price of their own, and you only win by beating all of them.

Decision cellmy bid price, searched between $26,000 and $45,000
Cost to deliver the job$25,000
Cost to prepare the bid$1,000, spent either way
Rivals4, each submits a bid 60 percent of the time
Each rival's price$28,000, likely $35,000, up to $48,000
Objectivemaximize the mean of the profit cell
Search1,000 trials per candidate, 40 generations, seed 12345

The answer

The search settles here:

Best bid found
$31,960
Expected profit there
$4,304 per job
Chance you beat every rival
76%
Lowball at $29,000
$2,934 at a 98% win rate

The tool searched the whole price range and settled at about $31,960, worth roughly $4,300 a job. The shape around it is the useful part. Bidding $29,000 wins 98% of the time and earns $2,934, because plenty of work at a thin margin is still a thin margin. Bidding $36,000 keeps a fat margin and earns $2,221, because you almost never win. The top of the curve is also flat: anything from about $31,000 to $33,000 lands within a few percent of the best, which is worth knowing before anyone argues about $500.

Produced by running the shipped Competitive Bid Optimizer template through the same code the add-on runs. The search used 1,000 trials per candidate, 40 generations and seed 12345; the profit and win-rate figures are 10,000-trial simulations at each price with Latin hypercube sampling and the same seed. The panel ships with 200 trials per candidate, which is quicker; on this problem that setting moves the answer by up to about a thousand dollars between seeds, because each candidate is scored on a smaller simulation and, as above, the curve near the top is flat.

What you get back in the sheet

  • Cells Sortia may change, each with a Lower and an Upper, continuous or integer.
  • A choice of objective statistic: mean, median, standard deviation, the 5th or 95th percentile, or the minimum, maximized or minimized.
  • Cell checks and requirements: a check holds a formula cell to a bound with the candidate decisions applied, and a requirement holds a statistic of another simulated cell, its mean, median, spread, minimum, maximum, a percentile or a chance, measured over the same trials that score the objective.
  • An honest verdict on the rules: candidates that break one lose the search, and if no candidate can obey every rule the result says so instead of pretending.
  • An efficient frontier when you want the trade-off rather than one answer: sweep one requirement's bound across 2 to 25 points, each a full optimization, and get the table and chart of what the objective can reach as the rule tightens.
  • Common random numbers, so candidates are compared on identical draws.
  • A seeded differential evolution search, so the same model with the same seed returns the same answer.
  • The winning values written into your sheet when it finishes, with one-click restore of whatever was there before.
  • A report giving the status, the objective, the best statistic value, the number of model evaluations and the trials per candidate, so the run can be judged rather than just believed.
  • A written reading of the result. Every run ends with a card titled “What this means”: the probability that matters, the biggest driver, and what to tighten first. On the free tier the tool writes it from its own figures. On Pro you also get an AI reading of the same figures, written by a language model, and See what was sent shows the whole payload: “Ratios, shares, counts and cell references only. No cell values, no labels, no names, no formulas.”

Free or Pro

This is a Pro engine, one of five. Every free install includes five full-quality runs of any Pro engine: the same engine with nothing switched off, at any model size, on your own numbers. The five are one allowance shared across all five Pro engines, not five for each. A run counts only once it has produced a report, so a cancelled or failed run costs you nothing.

After that, this engine asks you to upgrade and nothing else does. Every statistics, forecasting and machine-learning tool stays free on every plan, and optimization and what-if stay free with limits set by the method rather than the plan: 2,000 decision cells on Simplex LP, 32 changing cells in a scenario. Nothing you have built stops working. Pro also removes the “Made with Sortia” footer from generated report tabs.

The other four Pro engines are Monte Carlo risk simulation, Decision trees, Schedule Risk (Monte Carlo CPM) and Critical Chain. Pro is $199/year, and a Day Pass covers seven days for $9 if you have a single decision to make.

Try it in your own sheet

  1. Open Sortia in Google Sheets and choose Start from a template.
  2. Pick one of the models above, and it loads with the inputs filled in.
  3. Change the assumptions to fit your situation and press Run.

Never used Google Sheets? Start here goes the whole way, in seven steps, and assumes nothing.

Other methods: Monte Carlo  Decision trees  Schedule risk  Critical chain  Statistics  Machine learning  Forecasting  Optimization  What-if analysis