Statistical Consistency Checker for Published Research Results
Overview
A conservative, assumption-aware statistical consistency checker for already-extracted research-results text. Parses test statistics, effect sizes, and confidence intervals across multiple citation styles including American Psychological Association (APA), Harvard, Frontiers, PLOS ONE, Scientific Reports, Nature Human Behaviour, PeerJ, eLife, PNAS, and others. Recomputes effect sizes using all plausible variants when design is ambiguous, and validates internal consistency. Supports t-tests, F-tests/ANOVA, correlations, chi-square, z-tests, regression, and nonparametric tests. Explicitly tracks all assumptions and uncertainty in output. Detects decision errors (significance reversals) similar to 'statcheck'. From v0.4.0 file extraction is no longer part of the package — pair with an external extractor (e.g., 'docpluck' at https://docpluck.app) and pass the resulting text to check_text(). Note: this package is under active development and results should be independently verified. Use is at the sole responsibility of the user. Contributions and verification reports are welcome.
Welch t-test effect sizes (changes verdicts on Welch rows with a stated N far above df + 2 only)
- **A stated sample size that already reproduces the reported d is no longer replaced.** A Welch df only bounds N from below (N >= df + 2), so a stated N far above df + 2 is legitimate when variances and group sizes are unequal. The Welch branch treated any scraped N above 1.5 x (df + 2) as "likely from a different study" and replaced it with a value chosen from the reported d itself. Measured at 0.7.16 on "N = 300 participants ... Welch t(150.2) = 0.24, p = .81, d = X": the correct d = 0.03 (2 x 0.24 / sqrt(300) = 0.028) read NOTE with N back-solved to 256, while d = 0.04 read PASS at a swapped N = 152, so the correct value graded worse than a wrong one and the N a row was checked against depended on the value being checked. The override now fires only when the equal-n d at the stated N misses the reported d by more than the effect-size tolerance and its rounding (the cases it was built for, a global N of 794 or 827 contradicting the reported d, still take it). A kept N is named in
assumptions_used. Test:tests/testthat/test-v0717-welch-stated-n-kept.R(watched failing first).
Show all changes in 0.7.17Hide the rest of the changes in 0.7.17
- **The d tolerance was audited for tiny effects and left unchanged.** d = 0.04 against an equal-n 0.028 still grades PASS, through the same absolute tolerance (0.02) any row with N in its own clause gets. Welch versus pooled-SD conventions and two-decimal rounding spread legitimate printed values over roughly 0.017-0.039 at this t, so a tolerance tight enough to flag 0.04 would flag correct values. At very small d a PASS means "not contradicted", not "verified to two decimals". Cross-checked by a second model (Sonnet, tier 2), which agreed on both points and found three gaps fixed here (no note for a kept N, the g path used the d tolerance, a missing t could error).
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK12 OK2026-04-25
- NOTE10 OK, 1 NOTE2026-03-28
- OK7 OK2026-03-26
Documentation
- Help pages
- 114 (81 internal)includes a package overview page
- Examples that run
- 77%24 run in a plain check · 7 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 71%
- Documented parameters
- 97%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 91%
- Median days to close, 50 most recently updated closed issues
- not measured
- Median days to close, 50 most recently updated closed PRs
- not measured
Issues over time
PRs over time
6 development-tooling and community-health practices detected across 4 families in the upstream repository
Checks run against github.com/giladfeldman/escicheck on 2026-10-18.
The R CMD check workflow runs on Linux
This repository shows signs of AI coding tools.
- Claude Codefirst seen on or before 2026-03-14Named in .Rbuildignore: .claudeCommits: at least 56 crediting it in the message
- Claude Opus 4.656 commits · Mar to Apr 2026
Dependencies
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 0.7.17Latest2026-10-08 · current release · diff ↗ ··
removed 1 export
extract_pdf_comprehensivelisted once in CRAN's queue
Seen in one reading of CRAN's incoming queue, at 2026-10-08 14:16 UTC, so it stayed less than the time between readings. - RR 4.6.0 released · 2026-04-24
- 0.2.32026-03-25
- RR 4.5.0 released · 2025-04-11
Package metadata
- First published
- 2026-03-25
- Total releases
- 2 / 1 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 712 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("effectcheck")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
The repository also keeps a CITATION.cff.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-22, which the citation names so these numbers can be found later. More on citing and the projects behind them.