Start with the work you need to finish
Choosing distribution fitting software starts with a practical question: what will you do with the fitted model? Exploring a column in a browser, maintaining an Excel workbook, preparing simulation inputs and repeating an analysis in Python place different demands on a tool.
This guide compares Phitter, XLSTAT, ExpertFit and MCP Analytics using their official documentation, checked on 9 September 2026. It is published by Phitter. The recommendations below concern workflow and documented features; we have not run a performance benchmark across these products.
Four questions before you compare tools
Write down the quantity you are modelling, its units and any physical bounds. Decide whether you have counts or measurements, and whether the observations represent one reasonably stable process. Then ask:
- Where can the data be processed? Distinguish calculation on your machine from uploading a file to a service.
- What must the output contain? You may need a plot, named parameters, an executable script or a distribution expression your simulator accepts.
- How will you repeat the analysis? A one-off investigation and a monthly pipeline need different records of data preparation, settings and software versions.
- What evidence will support the decision? Plan to inspect diagnostics and the consequences of choosing another plausible model.
Match the workflow to the tool
| Your workflow | An option to examine | What to check first |
|---|---|---|
| Explore data interactively in a browser | Phitter web | Candidate families and browser resources |
| Repeat fits in a notebook or script | Phitter Python | Versions, estimation settings and saved inputs |
| Keep analysis with an Excel workbook | XLSTAT | Required fitting method and licence |
| Prepare input distributions for simulation | ExpertFit | Export format for your simulator |
| Obtain a report from an uploaded CSV | MCP Analytics | Sampling limit and report delivery |
Phitter: browser exploration and Python workflows
Phitter’s web application fits 77 continuous and 10 discrete distributions, processes observations locally through Pyodide, and accepts pasted values, TXT, CSV and XLSX inputs. It is free and requires no account. The Python package provides a route into scripts and notebooks, with source available under the MIT licence.
Use the browser to examine a sample and compare candidates. For repeated work, record the package version and fitting options in a script. When moving between web and Python, check the implementation version, subsampling and estimator settings before expecting identical results. A broad catalogue is useful for exploration, but the number of distributions does not establish accuracy. Browser memory and computation time still depend on your data and device.
XLSTAT: fitting within Excel
XLSTAT’s fitting documentation describes parameter estimation by moments and, for specified families, maximum likelihood. It reports chi-square and Kolmogorov–Smirnov diagnostics and overlays the fitted distribution on a histogram. This makes it worth evaluating when the working document is already an Excel workbook. Check that the required family and estimation method are available, then confirm the appropriate licence.
ExpertFit: moving a fit into a simulation
ExpertFit’s manufacturer documents distribution fitting, graphical diagnostics, batch processing and versions intended for discrete-event simulation. Those versions provide distribution formats for import into simulation packages. If the next step is a simulation model, evaluate that handoff: confirm the supported destination and parameter convention for your version. A convenient export is valuable when it removes manual transcription from the modelling process.
MCP Analytics: a CSV-to-report workflow
The MCP Analytics fitting tool accepts a CSV and advertises maximum-likelihood fitting, AIC/BIC rankings, goodness-of-fit diagnostics and Q–Q plots. Its current form requests an email for the report. The free tool states a 10,000-row limit, with larger files randomly sampled. Check whether that sampling suits your analysis, especially when uncommon observations matter.
Validate the fit before adopting it
Comparisons become useful when you ask each tool the same statistical question. Use the same cleaned observations and candidate families. Record whether location parameters are fixed, how the parameters are estimated, and whether subsampling occurs. Different choices can produce different fits without either program malfunctioning.
Inspect a histogram alongside the fitted model and examine a Q–Q plot. Check whether the model assigns probability to impossible values. Compare the quantities your application needs: for a waiting-time model, that might be the probability of exceeding a service target. Two plausible fits can lead to different operational decisions.
A test name alone does not establish that its reported probability is calibrated for your problem. The usual fully specified continuous Kolmogorov–Smirnov test has different assumptions from a test applied after estimating parameters from the same sample. NIST explains this limitation.
For suitable continuous-data problems, a parametric bootstrap can account for parameter estimation by refitting each simulated sample. SciPy’s goodness_of_fit documentation describes that procedure and its limitations. This is a separate validation step to consider; do not assume every tool’s default diagnostics perform it.
Make the final choice with a small evaluation
Take one representative dataset through two suitable tools. Save the settings, diagnostic plots and resulting model, then compare the effort required to repeat the work. Prefer the workflow that gives you the evidence and usable output your project needs.
For a first exploration, fit your sample with Phitter. Before using the first row of any ranking, read how to assess competing fits and how fitting choices affect simulation.