Research calculator validation: reproducible expansion checks
Reproduce numerical reference checks and input-validation cases for 82 browser-local research tools, including documented edge cases and limitations.
Verification date: 6 November 2026. Version 1. All inputs in this report are hypothetical.
What was checked
The expansion adds 82 tools with separate implementations loaded when a tool is opened. The downloadable reproduction package contains the calculation modules, independent reference scripts, expected values and automated tests. It includes 385 targeted checks covering numerical reference comparisons, input validation, finite results and adversarial boundary cases. These checks cover the new tools; they are separate from the existing website test suite.
Download the calculator validation reproduction package (ZIP). Node.js 22 or newer runs the included tests without installing JavaScript dependencies. Optional Python reference regeneration uses NumPy 2.3.0, SciPy 1.18.1 and NetworkX 3.7, the versions used for this report.
Reproduce the checks
- Extract the ZIP into a new folder and read its README.
- Run
node --test tests/*.test.mjsfrom that folder. The test runner compares unrounded calculation results with saved independent expected values and exercises invalid inputs. - To independently regenerate numerical expectations, use the documented Python environment and run all three reference scripts. Run the Node tests again after regeneration.
- Review each tool’s method reference, input limits and assumptions before applying its result to a research decision.
Worked numerical comparisons
| Task | Inputs | Expected result | Independent check |
|---|---|---|---|
| Fisher exact table | Rows (1,9) and (11,3) | Two-sided p ≈ 0.00275945618522 | SciPy probability-ordered exact test |
| Coefficient contrast | Coefficients (1,2), weights (1,−1); covariance rows (0.25,0.05), (0.05,0.36) | Estimate −1; SE √0.51 ≈ 0.714142843 | Direct covariance propagation |
| Restricted mean survival | Times/statuses (1,1),(2,0),(3,1),(4,1),(5,0), horizon 4 | 1 + 2×4/5 + 8/15 = 47/15 ≈ 3.133333333 | Exact rational step-area calculation |
| Study omission sensitivity | Estimates/SEs (1,10⁻¹²),(2,1),(3,1) | Omitting first study gives 2.5 | Exact remaining weighted mean |
Why the boundary checks matter
Review found that subtracting an extremely large study weight from a grand total could erase the small remaining weights. The omission calculation now sums the remaining studies directly. The random-effects variance calculation uses a stable pairwise expression for its weight denominator. Tiny prior shapes outside the supported numerical range are rejected rather than returning misleading credible limits.
Other cases cover constant samples, all-censored survival records, tied ranks, singular covariance matrices, impossible count margins, incorrect category levels, quoted multiline CSV, invalid calendar dates, explicit timezone offsets and DAG collider conditioning. A documented edge case is more informative than a claim that a calculator has been “fully validated.”
Methods and tolerances
References use SciPy distribution and test functions, NumPy matrix calculations, NetworkX graphical-separation checks, an independent R binomial GLM fit, exact rational arithmetic and independently worked expected outcomes. Most numerical comparisons allow 10⁻⁹ relative error with an absolute floor of 10⁻⁹; adversarial fixtures use their recorded tolerances, and the independent numerical optimizer used for Deming regression allows 10⁻⁶. Individual tolerances are visible in the fixture files. Deterministic text audits compare exact expected labels or counts.
SciPy statistical reference · NumPy linear algebra reference. Each calculator links to its method-specific source.
Scope and remaining limitations
These are automated reference comparisons and a separate scientific/editorial review of the draft implementations. They are not human expert certification, clinical validation, a regulatory qualification or proof that every possible input is correct. Some tools deliberately provide point estimates only; others use asymptotic approximations with stated small-sample limitations. No patient data were used. User entries remain in page memory and calculations do not send them to a server.
Report a discrepancy with the tool URL, synthetic inputs, expected result and reference method to support@statmedanalysis.com. Do not send patient information.
Browse free research tools · Read the review and corrections policy