App, Python, or R - Which MCPower Face to Use
Pick by what you are doing right now. To try MCPower this minute without installing anything, open the browser app — it runs the full engine in a browser tab. For point-and-click analysis on your own machine, with bigger uploads and no internet needed, install the desktop app. To build a reproducible pipeline, script your power analysis, or run it against your own data files, use the Python or R package. It is one engine underneath all of them, so a study you set up in one maps cleanly onto the others — switching later costs nothing.
The browser build is the desktop app without installing — a way to reach the same point-and-click tool from a link, not a separate product. So the real choice is three: app, Python, or R.
What each face can do
App (desktop)
- Install: one installer (Windows/macOS/Linux)
- Upload row cap: 1,000,000 rows
- How you drive it: point and click
- What you save: a saved session
- Works offline: yes
- Plotting: built in, nothing to install
App (browser)
- Install: none — open a link
- Upload row cap: 10,000 rows
- How you drive it: point and click
- What you save: a saved session
- Works offline: after first load
- Plotting: built in, nothing to install
Python
- Install:
pip install mcpower - Upload row cap: 1,000,000 rows
- How you drive it: write a short script
- What you save: a
.pyscript - Works offline: yes
- Plotting: built in (optional extras for export)
R
- Install:
install.packages("mcpower") - Upload row cap: 1,000,000 rows
- How you drive it: write a short script
- What you save: a
.Rscript - Works offline: yes
- Plotting: built in (optional extras for export)
The browser app's lower upload cap (10,000 vs 1,000,000 rows) is the one capability gap that follows from where it runs — a browser tab is a tighter memory budget than a desktop install. Everything else is the same engine, the same models, the same numbers. If your pilot dataset is larger than 10,000 rows, use the desktop app or a package rather than the browser.
App, Python, and R give the same answer
Within any one face, a seeded run reproduces exactly — same seed, same inputs, same numbers, every time. Across faces (app vs Python vs R) the results are identical for every practical purpose: the only difference is floating-point rounding in the last bits, far below anything you would report. The single observable consequence would be a significance call sitting exactly on the α boundary flipping by one decision between two faces — a coincidence on the order of once in a billion years of running. It is noted here for honesty, not because it is something to plan around. See the limitations page for the full statement.
One caveat sits a level below this: a run split across a different number of workers (most visibly the browser app, which parallelises across browser threads) draws a different random path and lands on a slightly different estimate — statistically equivalent, within Monte Carlo noise, but not byte-identical. That is the same seed reproducing per-machine, not across every degree of parallelism. The reassurance above still holds: the faces agree to the last decimal that matters.
Where next
- How it compares — MCPower vs G*Power, superpower, simr, pwr, and WebPower. That is a different axis: this page is which MCPower face to use; that one is MCPower versus other tools.
- One engine, four ports — the engineering behind "same design, same seed, same answer" across all four faces.