xellstorm Learning center
EN
Open the app

A ModelRisk alternative that opens your ModelRisk workbooks

Guide · Updated October 2026

xellstorm runs Monte Carlo simulations of Excel models in the browser, and it opens a workbook built for ModelRisk as it is: it reads 62 of ModelRisk’s distribution functions, with their parameters still linked to your cells, along with VoseOutput, VoseSimTable, VoseXBounds and VoseAggregateMC. It needs neither ModelRisk nor Excel, on Windows, macOS or Linux.

Your workbook is not changed, so the model still opens in ModelRisk. Before you run, the import lists what it converted and every formula it left, with the reason. One thing to know first: ModelRisk correlates inputs through copulas, which do not convert, so a correlated model needs its correlations entered again.

ModelRisk and xellstorm side by side

ModelRiskxellstorm
Where it runsInside Excel for WindowsIn a browser on Windows, macOS or Linux; Chrome and Edge recommended
InstallationAn add-in on every computer that runs the modelNone, and no admin rights
Your workbookVose functions in the cells; without ModelRisk they do not calculateRead as it is: xellstorm writes nothing into it
ColleaguesNeed ModelRisk to rerun the modelOpen it in the browser; report readers need no license
CorrelationCopulasRank correlations, with a normal or Student’s t copula

What the table says about ModelRisk follows its vendor’s published system requirements as of October 2026; check the current requirements with the vendor.

Which ModelRisk 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 ModelRisk documents them, and each mapping is tested against the equivalent scipy distribution. † marks the functions that convert with numbers only.

ModelRisk distribution functions the importer converts, by distribution († numbers only: the parameters are computed from the arguments)
Distribution (xellstorm name)ModelRisk
Bernoulli
bern
VoseBernoulli
Beta
beta
VoseBeta
VoseBeta4
VoseBetaSubj†
Binomial
binom
VoseBinomial
Burr III (Dagum)
burr
VoseDagum
Cauchy
cauchy
VoseCauchy
Chi-squared
chi2
VoseChiSq
Chi, Maxwell
chi
VoseChi
VoseMaxwell
Compound (frequency × severity)
compound
VoseAggregateMC
Cumulative
cumul
VoseCumulA
VoseCumulD†
VoseOgive†
Discrete
custom
VoseDiscrete
VoseDUniform
Exponential
expon
VoseExpon
VoseExponential
Extreme value (max, Gumbel)
gumbel_r
VoseExtValueMax
F
f
VoseF
Fatigue life (Birnbaum–Saunders)
fatiguelife
VoseFatigue
Gamma, Erlang
gamma
VoseGamma
VoseErlang
General (relative weights)
general
VoseRelative
Generalized Pareto
genpareto
VoseGPD
Histogram
histogram
VoseHistogram
Hyperbolic secant
hypsecant
VoseHS
Hypergeometric
hypergeom
VoseHypergeo
Integer uniform
randint
VoseIntUniform
VoseStepUniform†
Inverse Gaussian
invgauss
VoseInvGauss
Johnson SB
johnsonsb
VoseJohnsonB
Johnson SU
johnsonsu
VoseJohnsonU
Kumaraswamy
kumaraswamy
VoseKumaraswamy
VoseKumaraswamy4
Laplace
laplace
VoseLaplace
Lévy
levy
VoseLevy
Log-logistic
fisk
VoseLogLogistic
Logistic
logistic
VoseLogistic
Lognormal
lognorm
VoseLognormal
VoseLognormalE
Negative binomial, geometric
nbinom
VoseGeometric
VoseNegBin
VoseNegBinom
VosePolya†
Normal
norm
VoseNormal
VoseErf†
Pareto
pareto
VosePareto
Pareto II (Lomax)
lomax
VosePareto2
Pearson V (inverse gamma)
invgamma
VosePearson5
Pearson VI (beta prime)
betaprime
VosePearson6
PERT
pert
VosePERT
VoseModPERT
Poisson
poiss
VosePoisson
Rayleigh
rayleigh
VoseRayleigh
Reciprocal (log-uniform)
loguniform
VoseReciprocal
Student’s t
t
VoseStudent
VoseStudent3†
Triangular
triang
VoseTriangle
Triangular from percentiles
trigen
VoseTriangleAlt
Uniform
unif
VoseUniform
Weibull
weibull_min
VoseWeibull
VoseWeibull3

A distribution can stand alone or carry one positive multiplier and at most one added or subtracted offset, as in VoseNormal(B1*1.1,B2)*C1+5; its arguments can use numbers, single-cell references and arithmetic, and stay linked to those cells. VoseAggregateMC(n, VoseLognormalObject(mean, sd)) becomes one compound input: a count, then that many amounts added up. The property functions and markers:

ModelRisk property functions, markers and statistics the importer reads
FunctionBecomes in xellstorm
VoseXBoundsTruncation: truncate_min, truncate_max (before any shift)
VosePBoundsTruncation: truncate_pmin, truncate_pmax (percentiles of the distribution)
VoseShiftShift: shift
VoseInputName: the input's name
VoseSimTableOne value per simulation: a fixed cell in the base run, one scenario per further simulation
VoseOutputOutput: an output, with the name it gives

What does not convert from ModelRisk

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 a ModelRisk model, step by step

  1. 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.
  2. Import the Vose functions. Import from workbook on the Distributions step lists what becomes an input, an output or a scenario, and every formula left, with the reason.
  3. Add the correlations. If the model correlates inputs, set the same pairs in xellstorm as rank correlations.
  4. 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.
  5. Run and compare. Once everything converts and the check is clean, means and percentiles differ from ModelRisk’s only by sampling noise. Save the setup as a project file next to the workbook to rerun it later.

Questions

Do I need ModelRisk 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.

What happens to a correlated ModelRisk model?

The distributions convert, but the copulas that correlate them do not: a distribution driven by a copula through its U argument is listed with its reason. Set the correlations again in xellstorm as rank correlations: a matrix that is not consistent is corrected to the nearest valid one, and a scatter plot shows the correlation you got. With a different way of pairing the draws, the tails of a correlated model can differ from ModelRisk’s more than sampling noise alone explains.

Will I get the same results as ModelRisk?

The same model, not the same random numbers. Converted distributions keep their parameters. Once everything converts and the compatibility check is clean, means and percentiles differ from ModelRisk’s by sampling noise, which shrinks as you run more trials.

Can I keep using ModelRisk 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 ModelRisk.

ModelRisk is a trademark of its owner. xellstorm is not affiliated with it; its function names appear here only to say what xellstorm reads.

Related

xellstorm is a browser-based Monte Carlo simulation tool for Excel models: no add-in, and the workbook never leaves your computer.