NEWS


contentvalidR 0.10.1

A documentation release. The README now documents the handoff to nomologR in its own section, matching the one the nomologR README carries for the handoff from contentvalidR, so either front page explains how the two packages connect. Released on GitHub and R-universe; CRAN keeps 0.4.0 until the joint 1.0.

No computed value changes. Across 25 analyses spanning every workflow, every value 0.10.0 returns is identical in 0.10.1, and no function, argument, or handoff field changed.

contentvalidR 0.10.0

Tenth public release, and the last planned before the joint 1.0 release candidate on 2026-10-17. v0.10.0 adds figures for papers, posters, and teaching: the item flow diagram and the item evidence profile of content_evidence(), and the full distribution of a panel's ratings, each in APA gray or in color. It also states the handoff contract nomologR reads, makes this package's walkthrough the joint one, and separates the Delphi printout's caveats from its teaching.

contentvalidR is on CRAN: 0.4.0 was published there on 2026-09-28. CRAN asks for updates no more often than every one to two months, so 0.10.0 is released on GitHub and R-universe, and the next CRAN submission is the joint 1.0.

The package continues to declare Imports: stats only.

No computed value changes. Across 25 analyses spanning every workflow, every value 0.9.0 returns is identical in 0.10.0. Relevance fits gain details$ratings. Some printed wording changes: the Delphi printout's method paragraphs move into its key, anova_content() prints within 80 columns, the printed handoff advises passing the whole handoff to nomologR, and the citation a handoff carries for stability = "percent_change" reads "Scheibe et al. (1975/2002)".

No breaking changes. The plot methods gain arguments after their existing ones: type, apa, and labels for expert-panel fits, and which = "distribution", apa, and labels for Delphi fits. agreement_summary() remains deprecated and is removed in 1.0.0.

Figures for papers, posters, and teaching

Each new figure draws what the fits and handoffs already decided, and says whether it follows a published form or is this package's own design.

On CRAN

Finishing touches before 1.0

The handoff contract, stated for readers

Asked for by nomologR before handoff schema 1 becomes a 1.0 promise. The schema and every handoff are unchanged.

The joint walkthrough lives here

contentvalidR 0.9.0

Ninth public release. v0.9.0 is about how the package presents itself before 1.0. Every reference list is in APA 7 form; printed output is shorter and says what it means; the component functions and report tables print in APA style; the figures show the criterion and the uncertainty; and the README is a front page rather than a manual.

The package continues to declare Imports: stats only.

No computed value changes. Across 25 analyses spanning every workflow, every value 0.8.0 returns is identical in 0.9.0. Some wording changes: the scale-level summaries of the item-sort and construct-rating workflows name the Colquitt band of the weaker index, counts read "1 item" or "3 items", and the note when judge severity cannot be estimated no longer blames near-total agreement when one dissenting judge causes it.

Breaking changes.

Deprecated. agreement_summary() warns and will be removed in 1.0.0; use panel_agreement(), which takes raters in rows like every other ratings function.

New: content_report(format = "apa"), and csv_binom_test() returns its inputs (n_target, N, p0, alpha) beside its result.

Published on GitHub and R-universe. 0.4.0 is still in CRAN's review queue, and CRAN policy asks that no further version be submitted while one is pending.

A README that is a front page

Plots show the criterion and the uncertainty

No computed value changes; this is about what the figures draw.

Shorter keys, formatted components, and APA report tables

No computed value changes; this is about what is printed.

agreement_summary() is deprecated

References follow APA 7 everywhere

Printed output says what it means

No computed value changes.

contentvalidR 0.8.0

Eighth public release. v0.8.0 is about reading the output and the literature correctly. Every printed result now reads as a report in APA style, every source is cited where its method is used, and the earlier published rules can be shown beside each decision for teaching, each with its shortcomings stated. One criterion now matches its source, and the last deprecation is completed, so nothing deprecated is carried into 1.0.

The package continues to declare Imports: stats only.

Results that change. Values computed by 0.7.0 and 0.8.0 were compared on 25 analyses spanning every workflow. The only differences are these:

One display default changes. Print methods now default to digits = 2, as APA reports statistics; print(x, digits = 3) restores the previous precision. Stored values are unaffected.

New arguments: sort_validity(legacy = , n_constructs = ), expert_validity(legacy = ), and legacy in their print() methods.

Published on GitHub and R-universe. 0.4.0 is still in CRAN's review queue, and CRAN policy asks that no further version be submitted while one is pending.

The last deprecation is completed before 1.0

Earlier methods, for comparison

For teaching, the way a methods text reports eta-squared beside omega-squared, sort_validity() and expert_validity() now compute the earlier published rules beside their own. legacy = TRUE prints them under "Earlier methods, for comparison (not used for the decision)", and print(fit, legacy = TRUE) shows them for any fit. They are stored in details$earlier_methods and never change a decision. Each follows its source as published, and the tests check each against the numbers its source prints.

Every vignette lists what it cites

Printed output reads as a report, in APA style

No statistic changes. Only printed output changes, and results still holds every value at full precision.

Two labels now say what they mean

The I-CVI criterion now matches Lynn's table

Attribution

contentvalidR 0.7.0

Seventh public release. v0.7.0 is about being safe to depend on. It says in writing what code can rely on from one version to the next, freezes the handoff object that another package reads, and settles the one deprecation that a 1.0 release would otherwise lock in. It also adds a worked example that carries a single item set from an expert panel into response data, and it corrects the stated basis of the Delphi kappa interval.

The package continues to declare Imports: stats only.

One breaking change. anova_content() no longer accepts posthoc, and passing it is an error. The argument has had no effect on any result in any release, and it has warned in every one since 0.1.0. See below.

No default changes, and no computed value changes. Across all six workflows, every Delphi stability method, and the bootstrap intervals, every value 0.6.0 returns is identical in 0.7.0. Handoff objects gain four columns (note, keying, response_min, response_max), all appended within schema version 1, so a reader written for 0.6.0 still reads them.

New arguments: content_handoff(reverse_keyed = , response_scale = ). New vignette: vignette("one-item-set-both-stages"). New example data: three walkthrough_*.csv files in inst/extdata.

Published on GitHub and R-universe. 0.4.0 remains in CRAN's review queue, and CRAN policy asks that no further version be submitted while one is pending.

The one deprecation in flight is resolved

One item set carried through both stages

Handoff schema version 1 is frozen

The kappa interval in a Delphi is a published procedure

A written stability policy

Saying what NA means

contentvalidR 0.6.0

Sixth public release. v0.6.0 finishes the Delphi workflow: a Delphi study can now be handed off to empirical validation, carrying for each item the round it settled in, and plot() shows the two trends a Delphi is about. It also adds a test layer that checks the package's printed claims against what the code actually computes.

The package continues to declare Imports: stats only.

No default changes. Existing calls return the same values as in 0.5.0.

New method: plot() for delphi_validity(). content_handoff() accepts a Delphi fit.

Published on GitHub and R-universe. 0.4.0 remains in CRAN's review queue, and CRAN policy asks that no further version be submitted while one is pending.

Seeing a Delphi's trends

Printed claims are tested against what the code computes

A Delphi study can hand off

contentvalidR 0.5.0

Fifth public release. v0.5.0 adds a workflow for Delphi studies, where the same expert panel rates items over successive rounds. It reports consensus and stability as separate questions, and every published stability method is available with its limits printed. The handoff to empirical validation now carries each statistic's interval, so a downstream analysis can see how much panel evidence stands behind a number.

The package continues to declare Imports: stats only.

No default changes. Existing calls return the same values as in 0.4.0. content_handoff() objects gain four interval columns in item_statistics and a panel_statistics table, within schema version 1.

New function: delphi_validity(). New article: vignette("delphi-rounds").

This release is published on GitHub and R-universe. 0.4.0 is still in CRAN's review queue, and CRAN policy asks that no further version be submitted while one is pending, so 0.5.0 will be submitted to CRAN later as an update.

Delphi consensus and stability

Interval bounds in the handoff

contentvalidR 0.4.0 (2026-09-28)

Fourth public release. v0.4.0 connects content validation to what comes after it: a documented handoff carries the items that survived content review, and the evidence behind each decision, into empirical scale development. It also adds a stricter, selectable criterion for parallel analysis, and fixes the two packaging problems that returned the 0.3.x CRAN submissions.

The package continues to declare Imports: stats only.

No default changes. Existing calls return the same values as in 0.3.1; qfactor_content() results gain two fields recording the parallel analysis criterion that ran.

New function: content_handoff().

Handoff to empirical validation

Selectable parallel analysis criterion

Packaging

contentvalidR 0.3.1

Patch release for the CRAN submission. Package code, documentation of methods, and results are unchanged from 0.3.0.

contentvalidR 0.3.0

Third public release, and the first prepared for CRAN. Every addition rests on published, verifiable methodology, and one design rule runs through the release: where more than one published method exists, researchers choose through an argument whose default is the best-supported option. Methods with published evidence against them stay available for reproducing earlier work, but they are never the default, and selecting one prints the critique.

The package continues to declare Imports: stats only.

Two defaults change results for existing code. qfactor_content() now chooses the number of factors by parallel analysis, and expert_validity() relevance mode now bootstraps an interval for panel agreement, so set seed when printed output must be reproducible. Other existing results are unchanged; the new interval and agreement columns are additions.

New function: panel_agreement().

Panel-level agreement for expert panels

Evidence-based factor retention for qfactor_content()

Packaging

Selectable intervals for proportion indices

contentvalidR 0.2.0

Second public release. v0.1.0 established three item-level workflows; v0.2.0 adds the two questions those workflows could not answer — whether conclusions depend on the particular judges used, and whether the item set covers its intended domain — together with multi-round comparison, expert-panel planning, reporting helpers, and a substantial rework of how results explain themselves.

The package continues to declare Imports: stats only. Every method here is implemented in base R, so the package installs without a compiler toolchain.

New flagship workflows: judge_validity() and domain_validity(). New supporting functions: gtheory_content(), content_structure(), similarity_from_sort(), compare_rounds(), expert_power(), content_report(), contentvalid_glossary(), and an as.data.frame() method for workflow objects.

Multi-round comparison, planning, and reporting

Interpretable output

Domain coverage and content structure

Judge and rater heterogeneity

Licensing and project infrastructure

contentvalidR 0.1.0

First public release

contentvalidR 0.0.8.9000

CRAN and release hardening

contentvalidR 0.0.7.9000

Documentation and reproducibility

contentvalidR 0.0.6.9000

Stable user-facing workflow API

contentvalidR 0.0.5.9000

Release hardening

contentvalidR 0.0.4.9000

Final visualization polish

Visualization polish

Visualization and roadmap closure

Expert-panel workflow and repository hygiene

contentvalidR 0.0.3.9000

Modern construct-rating workflow

contentvalidR 0.0.2.9000

Modern item-sort workflow

contentvalidR 0.0.1.9000

Methodological foundation