jamovi and JASP: free point-and-click statistics
Two free, open-source statistics programs with an SPSS-style layout, both built on R: install them, open a CSV, and run descriptives, t-tests, ANOVA, contingency tables, correlation and regression. Then see the R behind each click with jamovi's syntax mode and Rj, try JASP's Bayesian analyses, export your results, and learn when it is time to move to R.
Two free statistics programs built on R
jamovi and JASP look like SPSS: a spreadsheet of data, menus of analyses, and tables of results that update as you tick options. Both are free, both are open source, and both run R underneath. For a district team, a small NGO or a university department without an SPSS licence, they cover most of the statistics a monitoring and evaluation report needs.
jamovi
- Cost and licence. jamovi's FAQ says it is "free and open", with "nothing to pay", and free to use "for any purpose, including commercial work". Its licence file says the source code is released under the AGPL3, with some components under the GPL2+.
- Version. As of 6 October 2026 the release notes list jamovi 28.7, released 3 October 2026, as the latest release. The older 2.7 series also received an update (2.7.39) on 1 October 2026. jamovi ships small, frequent updates, so expect a higher number by the time you read this.
- Two ways to run it. jamovi Desktop for Windows, macOS and Linux, which works offline and keeps your data on your computer; and jamovi Cloud in a web browser, which has a free Guest plan and paid subscriptions. The FAQ says Cloud data are processed on jamovi's servers during your session and removed afterwards.
JASP
- Cost and licence. JASP's download page says it is "Entirely for free, no strings attached" and released under a GNU Affero GPL v3 licence. It is an open-source project supported by the University of Amsterdam.
- Version. As of 6 October 2026 the download page offers JASP 0.98.1, released 7 July 2026.
- What sets it apart. Most of its analyses come in a classical form and a Bayesian form, side by side. Module 6 covers the Bayesian ones.
Install, open a CSV and set variable types
Install
- jamovi: download from jamovi.org/download. On Windows, run the installer; jamovi's installation guide says a
.zipversion exists for computers where IT policy blocks installers. On macOS, open the.dmgand drag jamovi to Applications. On Linux and Chromebooks it comes from Flathub. To skip installing, use jamovi Cloud in a browser. - JASP: download from jasp-stats.org/download. Windows users can choose the Microsoft Store (which updates itself) or an installer; macOS has separate downloads for Apple Silicon and Intel; Linux and ChromeOS use Flatpak. No internet connection is needed to run JASP once it is installed.
Open the course file
Download households.csv (240 households, 13 columns). Illustrative data, invented for teaching The district names are real places; every number is made up.
- jamovi: click the file menu (☰) at the top left, choose Open, then This PC, and pick
households.csv. The data appear as a spreadsheet on the left; results will appear on the right. - JASP: click the main menu (the three blue stripes), choose File, then Open, and browse to the file. JASP needs a header row naming each column, which this file has.
Check the variable types
Both programs guess a type for each column, and a wrong guess changes which analyses accept it. JASP's getting-started page lists three types (Nominal, Ordinal, Scale) and its rules: a numeric column with 3 to 10 distinct whole numbers becomes Ordinal. In our file hh_size runs from 1 to 8, so check whether it arrived as Ordinal and set it to Scale if you want its mean. In jamovi, double-click a column header (or press F3) to open the variable editor and set the measure type.
district,caste,areaand the Yes/No columns should be Nominal.monthly_pc_exp,land_acresandhead_edu_yearsshould be continuous (Scale).hh_idis an identifier. Leave it out of analyses.
caste. You should see General, OBC, SC and ST. Change the order so General is first; jamovi uses the first level as the reference group in regression.Descriptives, split by group
- jamovi: Analyses > Exploration > Descriptives. Drag
monthly_pc_expinto Variables andareainto Split by. Open the Statistics section for more statistics and Plots for box plots and histograms. - JASP: choose Descriptives on the ribbon, move
monthly_pc_expinto the variables box andareainto the split box.
The table should give N, mean, median, standard deviation, minimum and maximum for rural and urban households separately, with the two N values adding to 240. The R cell computes the same numbers:
In both groups the mean is above the median, which is the usual sign of a few large values pulling the mean up. A box plot from the Plots section will show them as points above the whisker.
caste in jamovi or JASP. In the R cell, change hh$area to hh$caste and run again. Which group has the lowest median?Compare means: t-tests and one-way ANOVA
Independent samples t-test
- jamovi: Analyses > T-Tests > Independent Samples T-Test. Put
monthly_pc_expin Dependent Variables andareain Grouping Variable. The grouping variable must have exactly two levels. - JASP: T-Tests on the ribbon, then the classical Independent Samples T-Test, with the same two variables.
Read the t statistic, its degrees of freedom and the p-value. Tick Welch's as well: it does not assume the two groups have equal variances, and urban and rural expenditure rarely do. The R cell runs both:
On this file R gives t = −9.84 on 238 degrees of freedom for Student's test. jamovi should show the same size of t; its sign depends on which group jamovi lists first.
One-way ANOVA
- jamovi: Analyses > ANOVA > One-way ANOVA. Put
monthly_pc_expin Dependent Variable andcastein the grouping box, then choose equal or unequal variances. Tick Equality of variances for Levene's test. - JASP: ANOVA on the ribbon, then the classical ANOVA.
R gives Welch's F = 7.84 (3 and 89.2 degrees of freedom) and Fisher's F = 4.63 (3 and 236). Check that jamovi's One-Way ANOVA table matches the version you chose.
The ANOVA asks whether mean expenditure differs across the four caste groups at all. It does not say which groups differ; for that, ask for post-hoc tests in the same dialog.
has_toilet as the grouping variable. In the R cell, change ~ area to ~ has_toilet in both lines and compare.Contingency tables, correlation and regression
Contingency tables
- jamovi: Analyses > Frequencies > Independent Samples (χ² test of association). Put
castein Rows andhas_toiletin Columns. Under Cells, tick row percentages. - JASP: Frequencies > Contingency Tables, with the same rows and columns.
Correlation
- jamovi: Analyses > Regression > Correlation Matrix. Move
monthly_pc_exp,head_edu_years,hh_sizeandland_acresinto the box. jamovi shows each coefficient once, below the diagonal, with stars for significance. - JASP: Regression > Correlation.
Linear regression
- jamovi: Analyses > Regression > Linear Regression. Put
monthly_pc_expin Dependent Variable,head_edu_yearsin Covariates (continuous) andcasteandareain Factors (categorical). jamovi makes the dummy variables for you. - JASP: Regression > Linear Regression.
In the Model Coefficients table, each caste row is the difference from the reference level (General, if you set it first in module 2) for households with the same schooling and area. The R cell fits the same model; your estimates should match its Estimate column, and R² should match too.
land_acres as a second covariate. In the R cell, add + land_acres to the formula. Does the schooling coefficient move much once land is in the model?jamovi syntax mode, Rj, and JASP's R button
Both programs run R to produce their tables, and both will show you the R. This is the bridge from clicking to coding.
jamovi syntax mode
- Click the application menu (⋮) at the top right of jamovi and tick Syntax mode.
- Every analysis now shows the R call that produces it, using the
jmvR package. Right-click the syntax to copy it. - Untick it to leave syntax mode.
The calls look like the lines below, which follow the examples in jamovi's jmv reference. They are code to read, written for our households file; the exact options jamovi writes depend on what you ticked.
jmv::descriptives(data = data, vars = vars(monthly_pc_exp), splitBy = "area")
jmv::ttestIS(formula = monthly_pc_exp ~ area, data = data)
jmv::anovaOneW(formula = monthly_pc_exp ~ caste, data = data)
jmv::contTables(data = data, rows = "caste", cols = "has_toilet", pcRow = TRUE)
jmv::corrMatrix(data = data, vars = vars(monthly_pc_exp, head_edu_years, hh_size))
jmv::linReg(data = data, dep = monthly_pc_exp, covs = vars(head_edu_years),
factors = vars(caste, area),
blocks = list(list("head_edu_years", "caste", "area")))
The syntax does not include the step that reads the data. In R you would read the CSV first, install jmv with install.packages("jmv"), and the same calls give the same tables.
Rj: write R inside jamovi
- Click Modules at the top right, choose jamovi library and install Rj.
- Choose Rj Editor from the new R icon in the Analyses ribbon.
- Your open dataset is available as a data frame called
data. Type R code and run it with the green triangle, or Ctrl+Shift+Enter (⌘+Shift+Enter on a Mac). The results appear in the results panel like any other analysis.
JASP's R button
From JASP 0.17, core analyses carry an R button. Click it after setting your options and JASP shows the R function call behind the analysis, with its settings. You can paste that code into another JASP to reproduce the analysis, or send it to a colleague so they can see exactly which options you used.
jmv::ttestIS line above: what did jamovi add?JASP's Bayesian analyses
JASP's features page lists Bayesian versions of the t-tests, ANOVA (including repeated measures and ANCOVA), correlation, linear and logistic regression, binomial and multinomial tests, contingency tables and log-linear regression. In each ribbon menu the Bayesian analyses sit beside the classical ones.
What a Bayes factor says
A p-value asks how surprising the data would be if there were no difference. A Bayes factor compares two hypotheses directly: BF10 is how many times better the data are predicted by the alternative (a difference) than by the null (no difference). BF10 = 5 means the data are five times as likely under the alternative; BF10 = 0.2 means five times as likely under the null. That second reading is something a p-value cannot give you: evidence for no difference, which matters when a programme report needs to say two districts did not differ.
- In JASP, open T-Tests and choose the Bayesian Independent Samples T-Test.
- Put
monthly_pc_expin the variable box andareaas the grouping variable. - Read BF10 in the results table, and note the prior shown in the options panel; the Bayes factor depends on it.
- Repeat with
head_genderas the grouping variable and compare the two Bayes factors.
caste by has_toilet, and the classical one from module 5. Write two sentences for a programme manager: what each result says about caste and toilet access in this (invented) sample.Save, export, and when to move to R
Save and share
- jamovi saves data, analyses and results together in one
.omvfile that a colleague can reopen. Right-click any table or plot to copy it, APA-formatted, into Word or an email. Each analysis has an annotation space for your interpretation, so the output can double as a draft write-up. jamovi's release notes record export to Excel (.xlsx) in 2.7.12, LibreOffice (.ods) in 2.7.13, LaTeX in 2.7.14, and Word (.docx) and .odt in 28.4. - JASP saves a
.jaspfile holding the data, the analyses and your notes. Its How to use JASP page shows how to export results to HTML, copy tables straight into a word processor, and copy tables as LaTeX. - Templates for routine data. jamovi can import a new data file into an existing
.omv(from the ☰ menu): the old rows are replaced, columns are matched by name, and every filter, computed variable and analysis updates. For a monthly monitoring dataset with the same columns each month, that turns your analysis into a reusable template.
When to move to R
jamovi and JASP are enough for a lot of evaluation work. Move to R (or Stata) when you meet one of these:
- Joining files. jamovi's documentation says that "at present, there is no way to combine files horizontally": you cannot merge a household file with a district file. R does it in one line.
- Survey designs. NFHS, PLFS and most large household surveys need weights, strata and clusters for correct standard errors. R's
surveypackage, Stata'ssvyand SPSS Complex Samples handle that. - Repeating the same work across many files or rounds, where a script beats clicking.
- Analyses with no menu, such as difference-in-differences with fixed effects or small-area estimation. Rj can run some of these inside jamovi, but at that point you are writing R anyway.
households.omv, close jamovi, reopen the file and check that every table is still there. Then copy one table into a Word or LibreOffice document.Where next
R & Python for Development
The next step after jamovi: the same analyses as code, live in your browser.
SPSS Syntax for Development Data
If your organisation uses SPSS, the syntax behind its menus.
Stata Syntax for Development Data
Do-files, merges and svyset for NFHS-style surveys.
Statistics Without Code 101
The ideas behind t-tests, ANOVA and regression, without software.
Bivariate Analysis 101
Crosstabs, correlation and comparing means, explained.