An Analytic Solver alternative for Monte Carlo simulation
xellstorm runs Monte Carlo simulations of Excel models in the browser, and it opens a workbook built for Analytic Solver’s simulation as it is: it reads 49 of Analytic Solver’s distribution functions and 18 of its percentile forms, with their parameters still linked to your cells, along with PsiOutput, PsiCorrMatrix and PsiSimParam. It needs neither Analytic Solver nor Excel, on Windows, macOS or Linux.
Your workbook is not changed, so the model still opens in Analytic Solver. Before you run, the import lists what it converted and every formula it left, with the reason.
Analytic Solver and xellstorm side by side
| Analytic Solver | xellstorm | |
|---|---|---|
| Where it runs | Inside Excel: the desktop add-in in Excel for Windows; Analytic Solver Cloud also in Excel for Mac and on the web, which needs a Microsoft 365 subscription | In a browser on Windows, macOS or Linux, without Excel; Chrome and Edge recommended |
| Installation | An add-in in Excel for everyone who runs the model | None, and no admin rights |
| Your workbook | Psi functions in the cells; without Analytic Solver they do not calculate | Read as it is: xellstorm writes nothing into it |
| Colleagues | Need Analytic Solver to rerun the model | Open it in the browser; report readers need no license |
| Where it calculates | The desktop add-in on your computer; Analytic Solver Cloud on its vendor’s servers | On your computer, in the browser tab; the workbook is never uploaded |
What the table says about Analytic Solver follows its vendor’s published notes as of October 2026; check the current requirements with the vendor.
Which Analytic Solver functions convert
The tables are generated from the importer’s own rule list, so they are exactly what it converts. Each function maps to the distribution it describes, with its parameters translated as Analytic Solver documents them, and each mapping is tested against the equivalent scipy distribution. “Percentiles” marks the …Alt forms, which give a distribution by its percentiles: xellstorm solves for the distribution exactly when you run. † marks the functions that convert with numbers only.
| Distribution (xellstorm name) | Analytic Solver |
|---|---|
Bernoullibern | PsiBernoulli |
Betabeta | PsiBetaPsiBetaGenPsiBetaSubj† |
Binomialbinom | PsiBinomial |
Burr III (Dagum)burr | PsiDagum |
Chi-squaredchi2 | PsiChiSquarePercentiles: PsiChiSquareAlt |
Cumulativecumul | PsiCumul |
Discretecustom | PsiDiscretePsiDisUniform |
Exponentialexpon | PsiExponentialPercentiles: PsiExponentialAlt |
Extreme value (max, Gumbel)gumbel_r | PsiMaxExtremePercentiles: PsiMaxExtremeAlt |
Extreme value (min)gumbel_l | PsiMinExtremePercentiles: PsiMinExtremeAlt |
Ff | PsiFDist |
Fatigue life (Birnbaum–Saunders)fatiguelife | PsiFatigueLifePercentiles: PsiFatigueLifeAlt |
Fréchetinvweibull | PsiFrechetPercentiles: PsiFrechetAlt |
Gamma, Erlanggamma | PsiGammaPsiErlangPercentiles: PsiGammaAlt |
Histogramhistogram | PsiHistogram |
Hyperbolic secanthypsecant | PsiHypSecant |
Hypergeometrichypergeom | PsiHyperGeo |
Integer uniformrandint | PsiIntUniform |
Inverse Gaussianinvgauss | PsiInvNormal |
Johnson SBjohnsonsb | PsiJohnsonSB |
Johnson SUjohnsonsu | PsiJohnsonSU |
Kumaraswamykumaraswamy | PsiKumaraswamy |
Lévylevy | PsiLevyPercentiles: PsiLevyAlt |
Log-logisticfisk | PsiLogLogisticPercentiles: PsiLogLogisticAlt |
Logisticlogistic | PsiLogisticPercentiles: PsiLogisticAlt |
Lognormallognorm | PsiLogNormalPsiLognormPsiLognorm2Percentiles: PsiLogNormalAlt |
Negative binomial, geometricnbinom | PsiGeometricPsiNegBinomial |
Normalnorm | PsiNormalPsiErf†Percentiles: PsiNormalAlt |
Paretopareto | PsiParetoPercentiles: PsiParetoAlt |
Pareto II (Lomax)lomax | PsiPareto2Percentiles: PsiPareto2Alt |
Pearson V (inverse gamma)invgamma | PsiPearson5Percentiles: PsiPearson5Alt |
Pearson VI (beta prime)betaprime | PsiPearson6 |
PERTpert | PsiPert |
Poissonpoiss | PsiPoisson |
Rayleighrayleigh | PsiRayleighPercentiles: PsiRayleighAlt |
Reciprocal (log-uniform)loguniform | PsiReciprocal |
Student’s tt | PsiStudentPercentiles: PsiStudentAlt |
Triangulartriang | PsiTriangular |
Triangular from percentilestrigen | PsiTriangGen |
Uniformunif | PsiUniform |
Weibullweibull_min | PsiWeibullPercentiles: PsiWeibullAlt |
A distribution can stand alone or carry one positive multiplier and at most one added or subtracted offset, as in PsiNormal(B1*1.1,B2)*C1+5; its arguments can use numbers, single-cell references and arithmetic, and stay linked to those cells. A statistic such as PsiMean(B1) makes B1 an output, as it does in Analytic Solver. The property functions, markers and statistics:
| Function | Becomes in xellstorm |
|---|---|
PsiTruncate | Truncation: type 1 (the default): truncate_min, truncate_max before any shift; -1: of the shifted values; 3: truncate_pmin, truncate_pmax |
PsiTruncateP | Truncation: truncate_pmin, truncate_pmax (percentiles of the distribution) |
PsiShift | Shift: shift |
PsiName | Name: the input's name |
PsiCorrMatrix | Correlation: rank correlations between the inputs of one matrix |
PsiCorrDepen | Correlation: a rank correlation with the input of the same pair name |
PsiCorrIndep | Correlation: a rank correlation with the input of the same pair name |
PsiSimParam | One value per simulation: a fixed cell in the base run, one scenario per further simulation |
PsiOutput | Output: an output: the cell itself, or the cells it refers to |
PsiSimOutput | Output: an output: the cell itself, or the cells it refers to |
PsiMean | Statistic: the cell of its first argument becomes an output (as with every Psi statistic of an output) |
What does not convert from Analytic Solver
- Functions with no exact equivalent.
PsiPertAltwith the other two-shape percentile forms, and any Psi function not in the tables above. For a PERT, give its min, most likely and max (PsiPert), which converts. - Formulas the import cannot rewrite. Several distributions in one cell, a distribution inside another function or in a denominator, and arithmetic that would have to be reordered, such as
(PsiNormal(0,1)+5)*2. Split them into cells, one distribution each. - Optimization models. The import reads the simulation, not a Solver optimization model; xellstorm sets up its own optimization of decision cells under uncertainty, next to the workbook.
- The workbook around the model. VBA macros, user-defined functions and links to other workbooks, as in any workbook xellstorm opens.
Each formula that does not convert is listed with its reason, and the compatibility check names every cell the engine cannot calculate, before you run. Moving a model from an add-in goes through a whole example, with what to do about each formula left.
Moving an Analytic Solver model, step by step
- Open the workbook. Drop the .xlsx or .xlsm file into xellstorm; save an .xlsb workbook as .xlsx first. It is read and calculated in your browser tab.
- Import the Psi functions. Import from workbook on the Distributions step lists what becomes an input, an output, a correlation or a scenario, and every formula left, with the reason.
- Check what is left. The compatibility check compares the formulas with the values Excel saved and names any cell the engine cannot calculate. Replace those before you rely on the results.
- Run and compare. Once everything converts and the check is clean, means and percentiles differ from Analytic Solver’s only by sampling noise. Save the setup as a project file next to the workbook to rerun it later.
Questions
Do I need Analytic Solver or Excel installed?
Neither. xellstorm reads the formulas from the workbook file itself and calculates the model with its own engine in your browser, on Windows, macOS or Linux.
Can I run an Analytic Solver simulation model on a Mac?
Analytic Solver’s desktop add-in runs in Excel for Windows; Analytic Solver Cloud also works in Excel for Mac and needs a Microsoft 365 subscription. xellstorm runs in the browser on macOS as well, and opens the workbook without Excel or the add-in; Chrome and Edge are recommended.
Will I get the same results as Analytic Solver?
The same model, not the same random numbers. Converted distributions keep their parameters and correlations keep their rank correlations. Once everything converts and the compatibility check is clean, means and percentiles differ from Analytic Solver’s by sampling noise, which shrinks as you run more trials; with correlated inputs, each tool pairs the draws its own way, so the tails can differ a little more.
Can I keep using Analytic Solver on the same workbook?
Yes. The import turns the formulas into inputs of xellstorm’s own setup and writes nothing into the file, so the workbook still opens and runs in Analytic Solver.
Analytic Solver is a trademark of its owner. xellstorm is not affiliated with it; its function names appear here only to say what xellstorm reads.
Related
- Guide
Moving a model from @RISK, ModelRisk or Analytic Solver
xellstorm reads 164 distribution functions of @RISK, ModelRisk and Analytic Solver and lists what it converted and why any formula was left. - Guide
An @RISK alternative that opens your @RISK workbooks
xellstorm opens workbooks built for @RISK without @RISK or Excel, converts 53 of its distribution functions with their cells still linked, and runs the model in a browser on Windows, macOS or Linux. - Guide
A ModelRisk alternative that opens your ModelRisk workbooks
xellstorm opens workbooks built for ModelRisk without the add-in or Excel, converts 62 of its Vose distribution functions with their cells still linked, and runs the model in a browser.
xellstorm is a browser-based Monte Carlo simulation tool for Excel models: no add-in, and the workbook never leaves your computer.