An interactive statistical test advisor. A researcher answers up to four short questions about goal, design, data, and measurement, and receives a recommended test with its assumptions, runnable R code, JASP steps, and an APA reporting sentence.
StatChooser is the companion front end to the surveyframe R package. Every recommendation carries a surveyframe method ID that runs directly inside run_analysis_plan(), so the move from "which test" to a reproducible result is one paste, not a fresh lookup.
This folder is already a plain directory, not yet a git repository. From inside it:
git init
git add .
git commit -m "Initial commit"
git branch -M mainCreate an empty repository on GitHub named statchooser (no README, no licence, no .gitignore, since this folder already has them), then:
git remote add origin https://github.com/YOUR-USERNAME/statchooser.git
git push -u origin mainTo publish it as a live site, open the repository's Settings, then Pages, and set Source to GitHub Actions. The included workflow at .github/workflows/deploy.yml then deploys on every push to main, with no further setup. The site will be live at https://YOUR-USERNAME.github.io/statchooser/.
Before pushing publicly, replace the placeholder URLs in data/meta.citation inside build/build_data.js with the real Pages URL, then run node build/build_data.js to regenerate the data files with the corrected citation.
The site is static. Any local server works:
cd statchooser
python3 -m http.server 8000
# open http://localhost:8000A file:// open also works, except the JSON endpoints will not fetch under that scheme. Serve over HTTP to exercise the full feature set.
The decision tree and the per-test endpoints are generated from one source file, so the logic never drifts between them:
node build/build_data.jsThis writes data/decisions.json (the full question and result graph) and api/tests/{surveyframe_id}.json (one file per test). Edit build/build_data.js, never the generated files.
Each result ends with a "Part of the surveyframe ecosystem" block that cross-links the three companion projects: the surveyframe R package that runs the tests, the open textbook Quantitative Analysis with Small Samples, and StatChooser itself. The block is free of any commercial offer. Its sole purpose is visibility and mutual discovery across the three projects.
Configuration lives in one place, the RELATED array at the top of js/app.js. Each entry has a name, a short tag, a blurb, a url, and a cta. The textbook card is accented because the small-sample method is the shared anchor of the trio.
The two projects cite each other on purpose.
StatChooser to surveyframe: each result names a surveyframe method ID, ships a ready analysis plan entry, and points to assumption_report() and run_analysis_plan(). The Copy as prompt and Copy R plan buttons both embed the surveyframe citation, so the reference travels into any script a user generates.
surveyframe to StatChooser: the package README links here as the interactive companion, and a planned suggest_technique() helper will walk the same decisions.json offline inside R.
Both carry their own DOI through CITATION.cff, so each is independently citable and each reference list points at the other.
statchooser/
index.html masthead, JSON-LD, font loading
css/style.css STIX Two Text and IBM Plex Mono
js/app.js tree walking, permalinks, exports, cross-reference config
data/decisions.json generated: questions and results
api/tests/*.json generated: one endpoint per test
build/build_data.js single source of truth
llms.txt manifest for AI crawlers and agents
CITATION.cff citation metadata
CLAUDE.md project context for Claude Code
LICENSE MIT
.gitignore
.github/workflows/deploy.yml GitHub Pages auto-deploy
StatChooser covers the techniques surveyframe 0.3.2 runs, from chi-square through factorial ANOVA, regression, mediation and moderation, reliability, EFA and CFA, to CB-SEM and PLS-SEM syntax. Every recommendation also carries a plain-language example for beginners, a small-sample note covering exact tests, resampling, effect sizes, and reporting under a small n, and a ready-to-adopt sample survey skeleton (a runnable surveyframe instrument with a standard Section A demographic block and Section B onward for the study measures, whose item and scale ids already match the analysis plan), shown both as R code and as an HTML questionnaire preview that ends with a one-pipeline call to action back to surveyframe. It supports method choice. It does not replace methodological judgement or supervision, and every assumption must be verified on the researcher's own data before reporting.
MIT.