← Back to all sparks
C

cbcTools

INFRA · APIS
Velocity0.0

Design and Analyze Choice-Based Conjoint Experiments

Two years quiet, then a release that makes its greedy design methods practical

conjoint-analysisexperimental-designchoice-modelingperformancecran
Current state
cbcTools generates and evaluates designs for choice-based conjoint experiments, gathering several strategies behind one method argument in cbc_design(): random, orthogonal via DoE.base, D-optimal, Bayesian D-efficient and greedy. That structure was set during 2023 across 0.4.0 and 0.5.0, which introduced the method argument, added strategies and documented in a table which options each one supports. The only release since, in August 2025, removes efficiency limitations from the greedy methods.
Where it's heading
The package was explicitly built for extension — the 0.4.0 notes say the function is now better set up to add methods in future — and the pattern since has been adding or repairing one method at a time behind a stable interface. After a two-year gap the recent work is performance rather than coverage, which suggests the greedy methods were slow enough to be impractical at realistic design sizes. Restrictions have been added deliberately too, such as blocking the label argument for orthogonal designs because it would destroy orthogonality.
Prediction
On the extension pattern the maintainer set up, the next release most likely adds another design method or continues tuning existing ones for speed; the entries do not indicate which.

Recent moves

  1. 11mo ago

    Improvements to greedy methods

    Removes efficiency limitations in the greedy design methods, described only as making them much more efficient. After two years of silence it is a performance release, which points at the greedy methods having been too slow to use at realistic design sizes rather than at any gap in coverage.

    View source ↗
  2. 3y ago

    random and dopt design methods; orthogonality restrictions enforced

    Adds the random and D-optimal methods and stops orthogonal designs from accepting the label argument or restricted profile sets, since either would break orthogonality. The documentation table added here is the clearest statement of what each design strategy supports.

    View source ↗
  3. 3y ago

    method argument reworked; orthogonal designs via DoE.base

    Reworks how the method argument selects a design strategy and adds orthogonal designs by drawing on DoE.base. The notes state the intent plainly: the function is now set up to take further methods, which is what the following two years delivered.

    View source ↗
  4. 3y ago

    Bayesian D-efficient designs with restricted profile sets

    Allows Bayesian D-efficient designs to use restricted profile sets, prevents duplicate choice sets being shown to the same respondent in random designs, and adds input checks that stop or warn when the requested design is impossible. The last of these matters most in practice, since impossible design requests previously ran on.

    View source ↗
  5. 3y ago

    First CRAN release

    ⚡ SPARK

    A single-sentence release marking the package's arrival on CRAN. Everything the changelog records afterwards — the method argument, the added design strategies, the deliberate restrictions — was built behind an interface that from this point had to stay stable for installed users.

    View source ↗