ChakataStat is a desktop app for statistical data analysis — a
fast, spreadsheet-style editor backed by a native Rust engine, with a
broad Analyze menu, an in-app AI assistant, and full
reproducibility built in.
The statistics that matter, checked against independent implementations.
A statistics package is only worth as much as its numbers. For every
procedure, the statistics a reader acts on — the test statistic, the
p-value, the parameter estimates, the effect sizes — are checked, end
to end through the real engine, against values computed independently
by established reference packages, and against certified values
published by a national metrology institute. Every release, before it
ships.
267
statistics pinned to independently computed reference values,
across 52 procedure
families — each with its own recorded tolerance.
58
NIST Statistical
Reference Datasets — every one NIST publishes, across all
four StRD suites — run end to end and scored by digits of
agreement against their certified values.
2,912
automated tests across the engine and the application, run green
on Windows, macOS and Linux before a release ships.
Reference values are computed with SciPy, statsmodels, scikit-learn,
lifelines and pingouin, and stored with the tolerance and provenance
of each one. Where a statistic has more than one valid definition —
a quantile method, a continuity correction, a contrast type — the
engine's convention is documented rather than hidden behind a loose
tolerance.
The suite is published, not summarised: every pinned statistic with
its reference value, its tolerance and the package that produced it;
the NIST datasets scored by digits of agreement; and the convention
recorded behind each number where more than one is defensible.
One application, five ways to reach the same catalog: the GUI, an
editable syntax console, the AI assistant, an MCP server for
external agents, and a headless batch runner.
A broad Analyze menu
Descriptives, regression, GLM and mixed models, survival and time series with VAR and Granger causality, complex survey designs, multivariate methods, latent class analysis and item response theory, confirmatory factor analysis with multi-group invariance testing, equivalence tests, Bland-Altman method comparison, meta-analysis, propensity-score analysis, Bayesian and permutation tests — 108 analysis tools in one catalog, each reporting the conventional effect sizes beside the test they describe.
Data editor
A spreadsheet-style sheet with a Variable View for metadata, value labels, missing-value handling, and self-documenting column tooltips.
Your files open directly
SPSS (.sav), Stata (.dta) and SAS (.sas7bdat, with value labels from a .sas7bcat catalog beside it, and transport .xpt) files import natively — no detour through CSV — and bring their metadata with them: variable labels from all of them, value labels from SPSS, Stata and a SAS catalog, and SPSS measure levels and missing-value rules. Plus CSV/TSV (plain or gzipped), Excel (.xlsx, .xls, .ods), Parquet, Arrow/Feather, JSON and NDJSON. Where a detail cannot be carried across, the import says so rather than staying silent.
Graphs
Histograms, scatterplots and scatterplot matrices, boxplots, violin plots, ECDF, Cleveland dot, bubble, line, bar (clustered, stacked or 100%-stacked), error-bar and Q-Q charts in a unified Chart Builder — plus a correlation heatmap, regression diagnostics for linear and GLM models alike, scree plots, dendrograms, forest, funnel and propensity balance plots beside their analyses. Every multi-series chart uses a fixed palette validated for colour-vision safety, in light and dark — with a colour-blind-safe Okabe–Ito alternative in Settings. A finished chart can be restyled in place — title, legend, colours, line width, stacking — and every edit is written back into the chart’s own syntax command, so a styled chart re-runs styled.
AI assistant
A provider-neutral agent — Claude, or any OpenAI-compatible backend, including a local Ollama that never leaves your machine — that runs real analyses on your open dataset in plain language, and renders the resulting tables and charts inline in the reply.
Reproducibility
Every action emits an editable, re-runnable command. Export to HTML, Markdown, LaTeX — or a Python script for the client on PyPI: pip install chakatastat.
Native performance
A native Rust engine — an in-house columnar store with Parquet I/O over Apache Arrow — does the heavy lifting on a worker thread, so the interface stays responsive while a long fit runs.
One command stream
Five ways in. The same analysis underneath.
The menus, the syntax console, the AI assistant, the MCP server and
the headless batch runner are not five integrations — they are
five front doors onto one command layer. Whichever you use, the same
engine runs the same call, so a result you got by clicking is a
result you can re-run in a script.
Menus & dialogs
Syntax console
AI assistant
MCP server
Batch runner
// Recorded automatically as you click, and editable in place.
descriptives variables=[Age, BMI, SystolicBP]
independent_ttest variables=[SystolicBP], grouping=Hypertensive
// Plain language. The reply carries the real tables and charts.
Compare systolic blood pressure between the hypertensive
and non-hypertensive groups, and show me the effect size.
# The dataset stays in the native engine; nothing runs in Python.
import chakatastat as ig
with ig.open("health_study.ckd") as ds:
print(ds.descriptives(variables=["Age", "BMI", "SystolicBP"]))
ds.independent_ttest(variables=["SystolicBP"], grouping="Hypertensive")
df = ds.to_polars() # one hop to the wider ecosystem
# No window. CI-friendly exit code, report written to disk.
ChakataStat --run analysis.cks health_study.csv --out report.html
# Or serve the same tools to an external agent over MCP:
ChakataStat --mcp health_study.csv
See it in action
A real dataset, in the real application — not a mock-up. Pick a
view; click the shot to enlarge it.
A fast, spreadsheet-style view of your dataset — one case per row, one variable per column.
Variable View — type, label, value labels, missing values and measure for every column.
Every procedure is a dialog away, and every run is journaled as a re-runnable command.
Results render straight into the output log, ready to export as HTML, Markdown or LaTeX.
Forest and funnel plots, pooled by fixed-effect, DerSimonian–Laird or REML random effects.
Propensity-score matching and weighting — the balance plot shows each covariate's standardized mean difference before and after adjustment.
Moderated mediation — the interaction plot draws the simple slopes at each probe value of the moderator, so “for whom?” is a picture rather than a coefficient.
The scatterplot matrix — every numeric pair in one grid of square panels, the first look at a multivariate dataset.
The chart editor — restyle a finished chart on a live preview; every edit is written back into the chart’s own syntax command, so a styled chart re-runs styled.
Bland-Altman method comparison, added in 0.19.0 — bias and limits of agreement drawn over the mean-difference cloud, with the statistics table beside it.
The syntax editor, added in 0.20.0 — line numbers, syntax colouring, as-you-type checking with a “did you mean” hint, completion over the catalog and your variables, and a gutter that shows which commands have run this session.
Johnson–Neyman regions, added in 0.21.0 — the conditional effect of a moderated path drawn across the observed moderator range with its confidence band, and the moderator values where it turns significant marked on the plot.
108
analysis tools, one catalog
What is in the Analyze menu
Descriptive Statistics, Compare Means and Correlate; Regression
(linear, logistic, Poisson, regularized, robust, nonlinear,
instrumental variables, panel data with fixed and random effects,
moderated mediation); General Linear Model, Linear Mixed
Models and GLMM; Factor / PCA and confirmatory factor analysis,
Cluster and Discriminant
analysis; Survival (Kaplan-Meier, Cox, parametric); Time Series
(ARIMA, seasonal decomposition); Meta-Analysis (fixed effects,
DerSimonian–Laird or REML random effects, with forest and funnel
plots); Bayesian tests; and
Nonparametric methods — with the conventional effect sizes
reported by default beside the tests they describe.
Regression
Mixed models
Survival
Time series
Bayesian
Multivariate
Nonparametric
Get ChakataStat
Available for Windows and Linux. There is no macOS build yet.
Store installs are signed and update automatically. On Linux you
can also grab the Debian/Ubuntu .deb from the
releases
page; Windows is Microsoft Store-only.