Changes in version 0.2.3 (2026-09-27) Citation and documentation update following publication of the companion paper. Computations, exported functions, and arguments are unchanged, so results are identical to version 0.2.2 (the version archived on OSF and cited in the paper's data availability statement). - The companion paper is now published: Nakamura, D. (2026). The denominator chooses the estimand: A target-population true-score framework for standardized mean differences. Psychological Methods. Advance online publication. https://doi.org/10.1037/met0000875 - DESCRIPTION: the Description field now cites the paper as Nakamura (2026) doi:10.1037/met0000875 instead of "in press". - Added inst/CITATION, so citation("ltgsmd") returns the paper and a citation for the package itself. - Help pages, the vignette, and README.md: references to sections, equations, and supplementary materials now follow the numbering of the published article, and the outdated "submitted" and "in press" wording was removed. - The section labels in printed output and in one informational note were updated accordingly (for example, print() on a compute_ltg_smd() result now shows "Decomposition factors (Section 3)"). Changes in version 0.2.2 (2026-09-02) Tiny hotfix for a single test-suite regex. CRAN submission preparation (no functional changes) Following acceptance of the companion paper, the package metadata was updated for public release. No R code, exported function signatures, or computational behavior changed; the version number is held at 0.2.2 to match the version cited in the companion paper's Data Availability statement. - DESCRIPTION: Authors@R now identifies the real author (previously an anonymized placeholder used for masked peer review); added a URL field pointing to the OSF project; updated the companion-paper citation from "submitted" to "in press". - LICENSE: copyright holder now named explicitly. - README.md: removed the masked-review notice; updated installation instructions to reference CRAN; corrected the citation and version status. - man/*.Rd: regenerated via roxygen2::roxygenise(). These were inadvertently omitted from the tarball used for masked review. Test fix - test-bootstrap-strata.R: the expect_warning() pattern was "stratum" (singular), but the package's actual warning message uses "strata" (plural): "One or more source x group strata has fewer than 4 observations...". The pattern did not match, so the warning propagated through expect_warning as an unmatched warning and the test failed with "Expected ... to throw a warning." The pattern is now "strata". No code or API changes. Expected result on R 4.5.3: R CMD check: 0 errors | 0 warnings | 1 note (Windows time check; harmless) testthat: FAIL 0 | PASS 79 Changes in version 0.2.1 Post-build hotfix release. Addresses issues uncovered by the first full R CMD check --as-cran and testthat::test_package() run on Windows R 4.5.3. No public API changes; all changes are test-data, namespace, and roxygen-doc corrections. Test infrastructure fixes - Added tests/testthat/helper-data.R with make_factor_data(), a helper that generates two-group test data with a shared latent factor so that estimated alpha is positive and well-conditioned. The first cut of the 0.2.0 test suite used independent rnorm() items, which produced alpha near zero (often negative). The new validation check in v0.2.0 correctly rejected those, so eleven tests failed because the test data were not psychometrically realistic. All tests now use make_factor_data() and the factor-structured items yield alpha in a realistic range (0.8 to 0.95 depending on the noise level). - Fixed regex escaping in test-validation.R: the literal-paren patterns (0, 1\\] were misparsed as an unclosed regex group. They now match by a content keyword ("must lie") that is unambiguous. - Tightened the bootstrap-stratum warning test in test-bootstrap-strata.R with an explicit regexp = "stratum" pattern, so it matches the package's own warning even when boot::boot emits incidental warnings. - Fixed test-compute_ltg_smd.R::"LTG-SMD agrees with observed geometric SMD when reliability = 1" to drop the names attribute before expect_equal, which otherwise rejects the comparison on name mismatch. R CMD check NOTE fixes - multisite_ltg_smd() now uses stats::aggregate() explicitly instead of bare aggregate(), removing the "no visible global function" NOTE. - print.multisite_ltg_smd() now uses utils::head() explicitly instead of bare head(), removing the second "no visible global function" NOTE. - denominator_diagnostics() roxygen text now wraps inline math in \eqn{...} rather than passing bare (rho_1 rho_0)^{1/4} notation through to Rd. This removes the "Lost braces" NOTE. Confirmed working as designed in v0.2.0 The R CMD check pass on Windows R 4.5.3 confirms: - The vignette getting-started.Rmd builds cleanly via knitr + rmarkdown. - All 9 .Rd documentation files are generated by devtools::document(). - The package installs and loads with remotes::install_local(). - All examples in \examples blocks pass. - No errors or warnings remain from R CMD check. After v0.2.1, the expected outcome is 0 errors | 0 warnings | 0 notes (or at most the universal "New submission" note) on R CMD check, and FAIL 0 | PASS 47 on the test suite. This is a pre-submission revision addressing pre-submission code review feedback. All API-breaking changes are noted explicitly. Critical bug fixes - compute_ltg_smd()'s reliability_estimator argument is now actually used. Previously the argument was documented to accept either "alpha" or a user-supplied function but was ignored at runtime; the package always used coef_alpha(). This is now a real plug-in interface: passing reliability_estimator = function(items) psych::omega(items)$omega.tot, or any other function returning a numeric scalar in (0, 1], works as documented. - ltg_smd_ci()'s bootstrap now stratifies on the four-cell cross of source (study vs reference) and the experimental group variable, not only on source. The previous design preserved overall study and reference sample sizes but allowed the focal/reference group ratio within each source to vary across replicates, producing unstable confidence intervals when group sizes were small or unequal. The new stratification preserves all four study x group cell sizes exactly, which is the correct design for two-group SMD bootstrap. - multisite_ltg_smd() now correctly builds the composite score for the external reference data frame when score_var = NULL and reference_strategy = "external". Previously the composite was built only for the experimental data, causing the function to fail when an external reference was supplied without a precomputed composite. - Reliability estimates and rho_external values are now validated to lie in (0, 1]. Previously a negative coefficient alpha (which can occur with strongly anticorrelated items) silently produced NaN results from the LTG-SMD formula; now the function stops with an informative error. - compute_ltg_smd() now checks for zero or non-finite group variances and reports an informative error. API improvements - compute_ltg_smd() gains a se_method argument with values "fourth_moment" (new default; uses the sample fourth-moment plug-in consistent with Section 6 of the companion paper) and "normal" (the prior 2*sigma^4/(m-1) approximation, retained for explicit normal- theory comparisons). - multisite_ltg_smd() adds an se_ltg_method element to its return value documenting that site-level LTG-SMD standard errors treat the cross-site (or external) reference denominator as fixed. The print method displays this note. - All public functions now validate rho_external early via a shared helper, with named-component and range checks. DESCRIPTION changes - Removed the URL and BugReports fields, which previously contained bracketed placeholder strings unsuitable for R CMD check. These will be reintroduced after acceptance with real repository URLs. - Version bumped to 0.2.0 and Description updated to reflect the pluggable reliability estimator and the new bootstrap stratification. Tests added The test suite is substantially expanded: - tests/testthat/test-manual-calculations.R: hand-computed LTG-SMD, Hedges's g, external observed, reliability factor, and study-to- target factor on tiny deterministic datasets. - tests/testthat/test-validation.R: custom-reliability-estimator propagation, unknown estimator string error, rho_external range and naming checks, negative-alpha detection, zero-variance detection, missing-item-column error, missing group_var / score_var errors. - tests/testthat/test-bootstrap-strata.R: confirms that bootstrap records strata_design = "source x group_var", recovers the four cell sample sizes exactly, and emits a warning when any stratum has fewer than 4 observations. - tests/testthat/test-multisite-and-supplementary.R: external- reference path with score_var = NULL, se_ltg_method exposure, sensitivity_reference() direction-of-change behavior under narrower vs. wider references, export_supplementary() list structure and Markdown writing. Internal changes - helpers.R adds check_reliability(), check_rho_external(), resolve_reliability_estimator(), and var_s2_plugin() (fourth- moment based variance of s^2). - group_summary() now also records mu4 (fourth central moment) per group, enabling the "fourth_moment" analytic SE. - All public functions emit informative error messages instead of silently producing NaN or unexpected NULL output. Changes in version 0.1.0 Initial pre-submission build. - Core functions: compute_ltg_smd(), ltg_smd_ci(), denominator_diagnostics(), denominator_sensitivity(), sensitivity_reference(), multisite_ltg_smd(), coef_alpha(), export_supplementary(). - Vignette getting-started.Rmd. - Initial testthat suite covering core structural checks.