Design and evaluate choice-based conjoint survey experiments. Generate a variety of survey designs, including random designs, frequency-based designs, and D-optimal designs, as well as "labeled" designs (also known as "alternative-specific designs"), designs with "no choice" options, and designs with dominant alternatives removed. Conveniently inspect and compare designs using a variety of metrics, including design balance, overlap, and D-error, and simulate choice data for a survey design either randomly or according to a utility model defined by user-provided prior parameters. Conduct a power analysis for a given survey design by estimating the same model on different subsets of the data to simulate different sample sizes. Bayesian D-efficient designs using the 'cea' and 'modfed' methods are obtained using the 'idefix' package by Traets et al (2020)

This package provides functions for generating and inspecting survey
designs for choice-based conjoint (CBC) survey experiments in R.
Each function in the package begins with cbc_ and supports a step in
the following process for designing and analyzing survey experiments:
Workflow diagram showing the six-step
cbcTools process: Generate Profiles (cbc_profiles) -> Create Priors
(cbc_priors) -> Generate Design (cbc_design) -> Inspect Design
(cbc_inspect) -> Simulate Choices (cbc_choices) -> Assess Power
(cbc_power)
After installing the package, got to the Getting Started page to learn how to use the package.
You can install the latest version of {cbcTools} from CRAN:
install.packages("cbcTools")
or you can install the development version of {cbcTools} from GitHub:
# install.packages("pak")
pak::pak("jhelvy/cbcTools")
Load the package with:
library(cbcTools)
The cbcTools package is an open-source alternative to commercial design software such as Ngene and Sawtooth Software. Other open-source conjoint experiment design packages include idefix and spdesign.
If you use this package for in a publication, I would greatly appreciate
it if you cited it - you can get the citation by typing
citation("cbcTools") into R:
citation("cbcTools")
#> To cite cbcTools in publications use:
#>
#> Helveston JP (2025). _cbcTools: Design and Analyze Choice-Based
#> Conjoint Experiments_. R package,
#> <https://jhelvy.github.io/cbcTools/>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {{cbcTools}: Design and Analyze Choice-Based Conjoint Experiments},
#> author = {John Paul Helveston},
#> year = {2025},
#> note = {R package},
#> url = {https://jhelvy.github.io/cbcTools/},
#> }