← Back to all sparks
P

projoint

INFRA · APIS
Velocity2.5

Conjoint Analysis with Reliability Correction and Visualization

projoint spent a year on CRAN paperwork, then shipped a correctness fix it flagged itself.

conjoint-analysissurvey-researchqualtricscrandata-validationr-package
Current state
projoint is an R package for analysing conjoint survey experiments, covering Qualtrics import, reshaping, and quantity-of-interest estimation with inter-rater reliability correction. Most of its release history is CRAN admission work — citation formats, DESCRIPTION fields, \value{} tags, vignette cleanups — with four tags backfilled within ninety seconds of each other on 15 July in non-monotonic version order, so neither tag order nor timestamps in this feed track the real sequence. The substantive releases are the ones fixing data-preparation bugs that silently corrupt estimates.
Where it's heading
The maintainer is hardening the path from raw Qualtrics export to estimate, which is where conjoint analysis quietly goes wrong. Three separate releases fix that path: dropped respondent-level weights in organize_data(), repeated-task reshaping in reshape_projoint(), and choice-to-profile mapping in 1.1.3. Each fix now arrives with regression tests and stricter validation rather than just a patch, and 1.1.3 adds an explicit .choice_map so the mapping is auditable instead of inferred.
Prediction
Expect the validation-and-regression-test pattern to keep extending across the import path, with releases continuing to arrive in bursts around CRAN submission rather than on a cadence.

Recent moves

  1. 17d ago

    Explicit .choice_map guards choice-to-profile mapping

    The most consequential release in the window, and the notes say so: it addresses a correctness issue in mapping exported choice labels to profile positions. The fix is an explicit .choice_map argument plus fail-fast validation for ambiguous, case-mismatched, whitespace-altered and missing choices, turning an inferred mapping into a declared one.

    View source ↗
  2. 1mo ago

    CRAN submission housekeeping for DESCRIPTION and examples

    CRAN submission housekeeping: DESCRIPTION expanded, \value{} added to exported methods, examples cleaned, CITATION and NEWS updated. One of four tags stamped within ninety seconds on 15 July, so its position in this feed says nothing about when the work happened.

    View source ↗
  3. 1mo ago

    CRAN formatting pass; minor make_projoint_data() fix

    Another CRAN formatting pass — DESCRIPTION references, commented-out examples removed, a cross-reference warning fixed — carrying one minor error fix in make_projoint_data(). Its body is dated 2026-10-24, months after the tag's own timestamp, so the metadata in this feed is unreliable.

    View source ↗
  4. 1mo ago

    reshape_projoint() repeated-task bug fixed; validation tightened

    Fixes repeated-task reshaping in reshape_projoint() and tightens validation, with no API change. Repeated tasks are how conjoint designs measure consistency, so getting their reshape wrong propagates into every downstream estimate.

    View source ↗
  5. 1mo ago

    Citation metadata updated with the CRAN DOI

    Citation and website metadata only — the CRAN DOI, a stable BibTeX key, ORCID links — with the notes stating explicitly that there are no API changes.

    View source ↗
  6. 5mo ago

    organize_data() no longer drops respondent-level weights

    Fixes an organize_data() bug where profile-varying columns entered pivot_wider(id_cols) and dropped respondent-level covariates, breaking weighted choice-level estimation. Regression tests for both weight columns were added alongside it — the same fix-plus-tests shape the later releases follow.

    View source ↗