Follow one estimate all the way through
The vault is organized by study stage. Each number in the draft should still have a route back through the output, decision, plan, variable, and question that produced it.
Define the question and variables
Pin the population, exposure, outcome, time horizon, roles, definitions, and allowed values.
Point to the data and name the estimand
Keep row-level data outside the vault. Record its fingerprint, then declare the quantity, model, and adjustment set.
Record choices and challenge them
Log decisions and deviations, then test the interpretation under plausible alternative assumptions.
Link outputs to claims
Build tables and figures from the declared analysis. Keep manuscript wording linked to current outputs.
Read the trail
Run 16 deterministic checks, inspect every flag, and export the reporting and provenance record.
A useful check can say “not checkable”
StudyVahti does not turn missing documentation into a green tick. Each check returns ok, flag, or not checkable.
A flag points to a concrete mismatch. Not checkable means the notes needed to judge it do not exist yet. Neither status decides whether the science is good.
The demo study reaches 16 ok after the question, dictionary, estimand, plan, decisions, data fingerprint, outputs, and claims have been reconciled.
Question alignmentExposure and outcome match the dictionary roles.
Estimand firstAn estimand is on record for the locked plan.
DAG adjustmentConfounders are included; no mediator or collider is adjusted for.
Claim to resultEvery claim points to a current output with a matching number.
The decision remains human
The demo does not hide model involvement. It records what was suggested, what changed, and who made the consequential choice.
The local assistant proposed dropping every record with any missing field. The researcher rejected that broad rule, excluded 19 records with unknown stage for a stated reason, and handled pack-years through a planned imputation analysis.
Too broad for the declared estimand and missing-data plan.
Stage was a prespecified confounder and could not be credibly imputed from available fields.
The deviation and sensitivity analysis remain linked to the final claim.
What the scripts can do. What stays yours.
Scripts and models can
Compare question, dictionary, plan, decisions, outputs, and claims.
Risk ratio, odds ratio, hazard ratio, or mean difference from your plan.
Participant flow, missingness maps, DAGs, tables, and sensitivity forests.
Methods, results, STROBE gaps, and sensitivity-analysis suggestions for review.
You remain responsible for
The software cannot decide which scientific question matters or whether the design identifies it.
Definitions, measurement validity, confounding assumptions, and statistical adequacy remain research judgments.
You approve exclusions, transformations, imputation choices, and departures from the plan.
You decide what the result means, how uncertainty is stated, and what belongs in the paper.
Inside the vault
The folders arrive in working order: structure, scripts, and a complete fabricated study.
00_Start_Here/Study dashboards, demo tour, script guides, glossary, and explicit limits.
01_Protocol/ - 07_Sensitivity_Analyses/The path from research question and variable dictionary through estimand, plan, decisions, deviations, and sensitivity analyses.
08_Outputs/ - 11_Exports/Output records, linked claims, STROBE coverage, methods and results scaffolds, check report, audit trail, and exports.
_templates/Question, protocol, variable, data pointer, estimand, DAG, plan, decision, deviation, sensitivity, claim, reporting, and memo templates.
_scripts/Readable Python and R scripts plus local-model prompts. The scripts are also licensed under Apache-2.0.
quickstart.pdfA visual first-hour guide to the workflow, three-way checks, setup, and product boundaries.
What you need
Mac, Windows, or Linux. Obsidian is enough for the study record. Python 3 and R run the checks, analysis, and figures. Ollama or Claude Code is optional.
After setup, the included workflow can run without an internet connection. No StudyVahti account is required.
| Level | Software |
|---|---|
| Document | Obsidian |
| Check and calculate | Python 3 and R |
| Local assistant | Ollama and a local model |
| Data location | Outside the vault; pointer and SHA-256 fingerprint only |
Technical details
The exact formats, scripts, and dependencies, for the researcher, the IT review, or the AI agent evaluating the vault.
formatAn Obsidian vault of plain Markdown files. Row-level data never enters it: the Data Room holds a path and a SHA-256 fingerprint. Any text editor opens the record.
deliveryZip download through Polar checkout. Version 1.1, 176 files. One personal licence; 1.x updates included.
checks16 deterministic checks, each returning ok, flag, or not checkable: question alignment, estimand-first, lock integrity, DAG adjustment, cohort reconciliation, data fingerprint, claim-to-output, causal language, and more. _scripts/DEFENSIBILITY.md in the box documents every check and the roadmap.
scripts9 Python and 7 R scripts plus the studyvahti.py command-line entry point for locking and checking. fit_model.R fits the declared risk ratio, odds ratio, hazard ratio, or mean difference with sensitivity variants, including multiple imputation pooled by Rubin's rules. Script runs append to a hash-chained audit trail you can check.
dependenciesPython: requests and auditlite, nothing else. R: dplyr, tidyr, readr, ggplot2. The optional local assistant talks to Ollama on localhost.
prompts5 local-model prompt files, editable Markdown: draft methods from vault notes, check dictionary against plan, propose sensitivity analyses, STROBE gap check, second-opinion chat.
agent-readyThe vault ships a Claude Code skill (.claude/skills/studyvahti/): a buyer's AI agent reads it and works inside the vault under the same rules, drafting from notes and running checks while the consequential decisions stay recorded as yours.
Where StudyVahti stops
Consistency is not causal identification, measurement validity, or freedom from bias.
The included engine covers common models. Complex designs and consequential analyses still need appropriate expertise.
Your ethics approval, data-management plan, paths, backups, and operating-system sync settings still govern the work.
The workspace makes the path inspectable. It does not make the scientific claim for you.
The method is free to read
The vault runs on working habits these free guides teach: dictionary first, clean data, a changelog, citable code. Read them before you decide.
Prepare the data
Keep the estimate close to the decisions that made it.
One personal licence, the complete local vault, and all 1.x updates. Built by Heidi Andersén, MD, PhD.
Questions
Does research data enter the vault?
No row-level data is needed in the vault. The Data Room records the dataset path, metadata, and SHA-256 fingerprint. You remain responsible for where that path points, operating-system services, backups, and access controls.
Do I need to know R or Python?
You can use the study record and templates in Obsidian without coding. Python and R are needed for the deterministic checks, included analysis engine, and figures. The setup guide uses copyable commands, but the vault does not replace statistical understanding.
Is this a replacement for Stata, SAS, or my statistics team?
No. It is the workspace that keeps the question, analysis decisions, outputs, and claims coherent and traceable. You can use its included common models or link outputs from another analysis environment.
How is this different from QualiVahti Local?
QualiVahti Local is for qualitative interview studies. StudyVahti Vault is for quantitative observational studies, where the unit of work is the variable, estimand, analytic decision, output, and claim.
Can a lab or doctoral school use it?
The EUR 49 licence is personal. Lab, teaching, and doctoral-school licences are available from hello@vahtian.com.