All notable changes to ChoiceSignal are documented here.
- Excel and CSV exports now neutralize formula-like column headers (including the per-respondent part-worth export whose headers come from attribute and level names) and de-duplicate scrubbed sheet names.
- The Docker image keeps application code root-owned and read-only, and defusedxml hardens workbook XML parsing.
New: single-concept purchase-intent testing (page 4 · Concept test):
- The classic five-point definitely/probably/might/probably-not/definitely-not scale, read from standard labels or the numbers 1–5 (reversed numeric convention supported); unrecognized answers and duplicate respondents are excluded with visible counts.
- Top-box and top-two-box shares with Wilson 95% score intervals.
- A weighted stated-trial estimate with user-editable discount weights (illustrative defaults 0.80/0.30/0.10, clearly labeled as assumptions to calibrate per category), always carrying the unadjusted top-two-box ceiling.
- Reasons for rejection among respondents below the top two boxes, multi-mention aware (
;or|separators). - Optional descriptive segment comparison with per-segment Wilson intervals and small-segment warnings — no significance theater.
- A trial-intention JSON export (
signal.trial-intention.v1) designed as the trial input of an awareness × trial × availability × repeat volume plan, carrying every assumption with the number. - New fictional demo (
examples/demo_concept_test.csv, 260 respondents) and template (examples/concept_template.csv).
Full conjoint remains the multi-concept method, and willingness-to-pay conversions remain deliberately excluded.
Statistical corrections following an external methods audit:
- The pooled reference model now uses respondent fixed effects (within transformation), so differences in rating style can no longer masquerade as attribute effects.
- Saturated individual models (exactly as many ratings as parameters) are no longer treated as estimable; a respondent needs strictly more ratings than parameters.
- Share of preference is now anchored at the study's lowest observed rating, making it invariant to shifting the rating scale (the naive utility-proportional rule depends on the scale's arbitrary origin).
- Rows with missing or unrecognized attribute levels are excluded with a visible count instead of being silently treated as an average level.
- Awareness/availability-adjusted shares are now included in the exports.
- The "optimal product" search is renamed to what it is: the highest stated-preference design search.
- Corrected the parameter-count example in the data guide.
- First stable release. No functional changes since 0.2.0; the version now signals that the workflow, methods, exports, and file formats are stable.
- Simulator now reports three classic choice rules: first choice, utility-proportional share of preference, and logit.
- Added awareness × availability share adjustment with per-product managerial estimates.
- Added a cannibalization view: incumbent shares with vs without a chosen new entrant.
- Added an exhaustive optimal-product search over all tested level combinations, ranked against the simulated competitive set or by predicted rating.
- Page 2 shows the most common per-respondent ideal combinations.
- New per-respondent part-worth export (wide CSV) ready for preference segmentation in SegmentSignal.
- New car-buyers demo (350 respondents, two hidden taste segments); coffee demo grown to 300 respondents.
- First release.
- Ratings-based (full-profile) conjoint with effects coding and per-respondent OLS, plus a pooled fallback.
- Part-worth utilities, attribute importance, respondent-level fit, and heterogeneity spread.
- Design health checks: level exposure, imbalance, confounded attributes, and estimability warnings.
- Preference-share simulator with first-choice and share-of-preference rules.
- Excel, CSV, and JSON exports with a reproducibility manifest.
- Local-first Streamlit UI, fictional demo studies, methods documentation, and automated tests.