Choicery Tutorial Series

Sensitivity Analysis

How to measure the impact of attribute changes on market share, a practical guide for Choicery with methodological background.

Choicery Methodology Reference | July 2026

Contents

Part I, Practical Guide
  1. What Is Sensitivity Analysis?
  2. Prerequisites
  3. Running Sensitivity Analysis
    • Controls & Options
    • Starting the Calculation
  4. Interpreting Results
    • The Chart
    • Crossover Points
    • Segment Comparison
    • Data Table
    • Downloads
  5. Demand Curves (Price Sensitivity)
  6. Best Practices & Common Pitfalls
Part II, Theoretical Background
  1. Key Definitions
  2. The Algorithm
    • Step-by-Step Procedure
    • Worked Example
  3. Crossover Points
    • Linear Interpolation
    • Numeric vs. Categorical Attributes
  4. Why Sensitivity Beats Raw Importance
  5. References
Part I

Practical Guide

How to run and interpret sensitivity analysis in Choicery.

1. What Is Sensitivity Analysis?

Sensitivity analysis systematically varies one attribute level-by-level while holding everything else constant. For each level of the chosen attribute, Choicery runs a full market simulation with the focal product set to that level and records that product's resulting share. In Own-Price mode this sweep is repeated separately for every plotted product; in Joint Pricing mode a single simulation per level moves all plotted products together. The result is a clear picture of how each attribute level shift affects competitive outcomes.

The central question it answers:

Core Question
"If we change body type from SUV to Sedan, while keeping price, engine, and all competitor products identical, how does our market share change?"

Sensitivity analysis is superior to raw attribute importance scores because it accounts for competitive context. Importance scores tell you which attributes matter most in general, but sensitivity shows you the concrete share impact of a specific change given the products actually in the market. The results are on a ratio scale: a product with 40% share genuinely captures twice the preference of one with 20% share.

2. Prerequisites

Before running sensitivity analysis, ensure the following are in place:

1

A completed analysis run. Individual-level part-worth utilities must be available. Run a Preference Analysis (HB) or an AI-Driven Profile Analysis for the conjoint task first. Without a completed run the Sensitivity tab is disabled and reports "Sensitivity Analysis Not Available".

2

Products defined. Open the Products panel on the left of the Market Simulator and define your product profiles. Each product is a specific combination of attribute levels. One product is technically enough, but two or more are needed for competitive comparisons and crossover points.

3

Navigate to the Sensitivity tab. Go to Project, Analysis, Market Simulation, then switch to the Sensitivity tab in the results panel on the right. This is where you configure and run the analysis.

Market Simulation with the Products panel on the left and the Sensitivity tab active on the right
Figure 1. Market Simulation with the Products panel on the left and the tab bar on the right, Sensitivity tab active.

3. Running Sensitivity Analysis

3.1 Controls & Options

The Sensitivity tab provides the following controls:

Sensitivity Analysis Controls
Vary Attribute Select attribute to vary... (dropdown, Price is preselected when present)
Simulation Method Share of Pref. | RFC | First Choice (pill toggle)
Focal Products to Plot (select up to 5) Product A, Product B (clickable pills, first two preselected)
Include "None" On (toggle switch, on by default)
Action Calculate

The Sensitivity tab reads the products from the Products panel and uses at most the first 10 of them. If you have more, a note above the configuration says how many products you have, that only the first 10 are shown, and that you can select up to 5. With six to ten products the note only states the five-product cap.

Respondent filters are set outside the tab, through the Filters button above the Products panel. Any filter you apply there is sent along with the run and produces an extra result per filter group next to the full sample.

When the varied attribute is the price attribute from Price Setup, respondents who prefer higher prices or barely react to price are left out, as in WTP, Reservation Price and Price Elasticity: their share rises with price and would make the curves climb again at high prices. Include unusual price responses in price analyses in Analysis Settings keeps them. Other attributes always use all respondents, like Choice Share.

The Sensitivity configuration block with Vary Attribute, the Simulation Method pills, the focal-product pills, the Include None toggle and the Calculate button
Figure 2. The Sensitivity configuration block: Vary Attribute, the Share of Pref. / RFC / First Choice pills, the Focal Products to Plot pills (two selected), Include None and Calculate.

3.2 Starting the Calculation

Click Calculate. Choicery iterates through every level of the chosen attribute, swaps it into each focal product one at a time, runs the simulation, and collects the share results. The button shows "Analyzing..." while the run is in progress. The chart, the crossover list and the data table appear once all levels have been evaluated.

If no attribute is selected, or no product pill is active, Choicery refuses to start and says so. The size of a request is the number of plotted products times the number of tested levels times the number of filter groups (at least 1). Above 500 combinations the run is rejected with "Sensitivity combinations is above the synchronous safety threshold (N requested, maximum 500). Reduce the request size."; reduce the number of levels, products or filter groups in that case. RFC runs are also rejected when the requested number of draws exceeds the synchronous cap.

4. Interpreting Results

4.1 The Chart

The primary output is a line chart with attribute levels on the X-axis and the simulated preference share (%) on the Y-axis (axis title "Simulated Preference Share (%)"). Each focal product is shown in its own color and every point carries its share as a label. Reading left to right, you can see exactly how share rises or falls as the attribute level changes.

Whether the points are connected depends on how the attribute was estimated. A linear-coded attribute (typically a numeric price) gets a connected, slightly smoothed line, because the values lie on a continuum. A categorical attribute gets markers only, with the share label beside each marker: its level utilities are estimated independently, and a connecting line would suggest a continuum that does not exist.

The results header carries a pricing mode toggle with two buttons. Switching it re-runs the analysis immediately.

Above the chart a Show: row appears with filter pills, one group for samples (Overall plus each active filter group) and one group for products, whenever there is more than one of them. These pills only show or hide curves, they do not change the simulation.

Reading Tip
The highest point for a given product shows its best-performing level. The gap between the highest and the lowest point is the total share swing that attribute can produce, a direct measure of that attribute's practical importance for that specific product. Choicery reports exactly this gap as the share range in the comparison table.
The Sensitivity Results block with the Own-Price and Joint Pricing toggle, the CSV and PNG buttons, the mode hint, the Show pills, the share curves with point labels and the data table
Figure 3. The Sensitivity Results block in Own-Price mode: the Own-Price / Joint Pricing toggle, CSV and PNG, the mode hint, the Show pills, the curves with point labels and the data table.

4.2 Crossover Points

A crossover point is where two products' share curves intersect, the level at which the competitive ranking reverses. Choicery detects these automatically for every pair of plotted products and lists them in a Crossover Points block below the chart. The block is hidden when no crossing was found.

Each entry reads "Product A & Product B cross at <level> (share: XX.X%)". When each of the two adjacent levels has a stored value in the run, or its label contains exactly one unambiguous number (for example "25000", "EUR 25000.50" or "0,325 €", but not "25,000" or "1.500", which could be a decimal or a thousands separator), the crossing level is linearly interpolated and printed with a tilde, for example ~27500. Otherwise the entry names the two levels the crossing falls between. A note in the same block states that crossover points are linearly interpolated between tested levels.

Crossover Example

Product A leads Product B at the 25000 level (35% vs. 28%) but trails at the 30000 level (24% vs. 31%). The gap is +7 pp at 25000 and -7 pp at 30000, so the crossing lies halfway between the two levels. Choicery interpolates:

Product A & Product B cross at ~27500 (share: 29.5%)

Below that point Product A wins. Above it Product B takes the lead.

4.3 Segment Comparison

If you applied respondent filters through the Filters button, an extra block appears under the chart, titled Sensitivity: Overall vs followed by the name of the active group (or "Segments" when several are active). It is a compact table with one row per product and these columns:

Groups that produced no result are listed underneath as errors, for example when no respondent matches the filter. Without active filters this block stays hidden.

4.4 Data Table

The full numeric results are presented in a table below the chart. The first column is named after the varied attribute, and each plotted product contributes two columns, its share and its delta versus base:

Body Type Product A Share Product A Delta vs Base Product B Share Product B Delta vs Base
Sedan 28.40% −6.10 pp 31.20% +2.80 pp
SUV 34.50% base 0.00 pp 28.40% base 0.00 pp
Hatchback 22.10% −12.40 pp 33.70% +5.30 pp
Wagon 26.80% −7.70 pp 30.50% +2.10 pp

Shares and deltas are printed with two decimals. The base badge sits directly below the share of the level that the product is currently configured to in the Products panel; that share is the reference for the deltas, which are expressed in percentage points (pp). In Joint Pricing mode the first tested level serves as the base instead. Positive and negative deltas are colored.

When filters are active the table is split into labeled blocks: first "Overall (full sample)", then one block per filter group with its respondent count.

4.5 Downloads

Two buttons sit in the results header, next to the pricing-mode toggle:

The PDF button in the tab bar produces a "Sensitivity Analysis" report from the currently displayed result.

The data table below the chart with the base badge and the delta columns
Figure 4. The data table below the chart: one row per tested level with each product's share and delta versus base; the base level carries a base badge.

5. Demand Curves (Price Sensitivity)

When you select the price attribute as the varied attribute, the resulting chart is a demand curve: price on the X-axis, market share on the Y-axis. This is one of the most valuable outputs of conjoint-based market simulation. Keep in mind that the X-axis carries the price levels of your design, in design order, and that the points are connected into a line only if price was estimated as a linear attribute.

What Makes Demand Curves Special

An important subtlety: even when using a main-effects HB model (no explicit interaction terms), the simulation reveals brand-by-price interactions implicitly. This happens because each respondent has individual-level utilities, and the logit share calculation is nonlinear. As Orme (2020, Ch. 17) notes, this is one of the key advantages of individual-level HB estimation over aggregate models.

Practical Tip
To build a complete demand curve, ensure your conjoint design includes enough price levels (at least 4-5). Fewer levels produce a coarser curve with less interpolation precision at crossover points.
A price sweep in Joint Pricing mode with two product curves falling as price rises and the data table below
Figure 5. A price sweep in Joint Pricing mode: both plotted products move to the same price level at each point, the curves fall as price rises, and the data table lists the shares and deltas.

6. Best Practices & Common Pitfalls

Do

Don't

Common Mistake
Reporting sensitivity deltas as "if we do X, share will change by Y pp" without the caveat that competitors are held fixed. Always qualify results: "Holding all competitor products constant, changing body type from SUV to Sedan would reduce our share by approximately 6 percentage points."
Part II

Theoretical Background

The methodology behind sensitivity analysis in conjoint-based market simulation.

7. Key Definitions

Glossary

Sensitivity Analysis
A systematic procedure that varies one attribute at a time across all its levels, holding everything else constant, to measure the resulting change in simulated market share.
One-at-a-Time (OAT)
The experimental strategy of changing only one factor while fixing all others. Sensitivity analysis in conjoint uses OAT by design: one attribute is swept while competitor products and all other attributes of the focal product remain at their base levels.
Crossover Point
The attribute level (or interpolated value between two levels) at which two products' share curves intersect, indicating a reversal in competitive ranking.
Demand Curve
A plot of price vs. market share for a given product. In conjoint simulation, this emerges naturally when the price attribute is selected for sensitivity analysis.
Base Case
The product configuration as currently defined in the Products panel. All share deltas are measured relative to this baseline. In Joint Pricing mode the first tested level takes that role.
Delta (pp)
The change in market share expressed in percentage points. A delta of +5 pp means share increased from, e.g., 30% to 35%.
Competitive Context
The full set of products (including competitors) present in the simulation. Unlike raw importance scores, sensitivity results depend on which products are in the market and how they are configured.

8. The Algorithm

8.1 Step-by-Step Procedure

The sensitivity analysis algorithm proceeds as follows:

1

Define the base case. Record the current level of every attribute for every product in the simulation. This is the starting point.

2

Determine the base share. Each focal product's base share is its simulated share at the level it currently has in the Products panel. Choicery reads it from the same sweep as the other levels and simulates the configured level additionally if it is not among the tested levels. In Joint Pricing mode the first tested level is the base.

3

Iterate through levels. For each level l of the chosen attribute:

4

Compute deltas. For each level, calculate the difference from the base share: Delta = Share(level l) − Share(base)

Δj,l = Sj(l) − Sj(base)
where Sj(l) is the simulated share of product j when the varied attribute is set to level l

Step 3 is where the two pricing modes differ. In Own-Price mode the loop runs once per focal product, so product j's curve comes from simulations in which only product j moved. In Joint Pricing mode there is a single loop over levels in which all focal products are set to level l simultaneously, so one simulation per level feeds all curves at once. Non-focal products keep their base configuration in both modes.

The per-product summary statistic Choicery reports is the share range, the plain difference between the highest and the lowest simulated share across the tested levels:

Rj = maxl Sj(l) − minl Sj(l)
share range of product j in percentage points, the figure shown in the Overall vs Segment table

8.2 Worked Example

Example: TV Market (adapted from Orme, 2020)

Consider a TV conjoint with attributes: Brand, Screen Size, Sound, and Price. A Sony TV has base share of 33%. Sensitivity on key attribute changes reveals:

Attribute Change Share Delta ---------------------------------------------- Base (current config) 33.0% -- + Channel blockout feature 48.0% +15.0 pp Price $400 → $350 45.0% +12.0 pp Screen 25" → 26" 39.0% +6.0 pp Sound: Surround → Mono 13.0% -20.0 pp

The results immediately highlight that dropping surround sound would be devastating (−20 pp), while adding channel blockout provides the largest positive lift (+15 pp). This kind of product-specific, competitively-contextualized insight is what makes sensitivity analysis invaluable for product design decisions.

9. Crossover Points

9.1 Linear Interpolation

When two products' share curves cross between adjacent tested levels, Choicery estimates the exact crossover using linear interpolation:

xcross = xk + (xk+1 − xk) × (SA(xk) − SB(xk)) / ((SA(xk) − SB(xk)) − (SA(xk+1) − SB(xk+1)))
Linear interpolation of crossover point between levels xk and xk+1

This formula finds the point where the share difference between Product A and Product B passes through zero, assuming a linear relationship between the two tested levels.

9.2 Numeric vs. Categorical Attributes

Attribute Type Crossover Reporting Example
Numeric labels (e.g., Price) Both adjacent levels have a stored value or a label with exactly one unambiguous number, so the value is interpolated and printed with a tilde "Product A & Product B cross at ~28000"
Non-numeric labels (e.g., Body Type) No value can be interpolated, so the two bracketing levels are named "Product A & Product B cross at between Sedan and SUV"
Why Crossover Points Matter
Crossover points identify thresholds for competitive advantage. For pricing, the crossover tells you the exact price at which your product loses its lead. For features, it tells you which level upgrade tips the balance in your favor. These are directly actionable decision points.

10. Why Sensitivity Beats Raw Importance

Attribute importance scores (derived from the range of part-worth utilities) are a useful summary of how much each attribute could matter. But they have significant limitations that sensitivity analysis overcomes:

Dimension Raw Importance Scores Sensitivity Analysis
Scope Attribute-level (averaged across all products) Product-specific (accounts for each product's position)
Competitive context None, ignores what competitors offer Full, all products compete simultaneously
Interaction effects Not captured (attribute-level aggregation) Implicitly captured via individual-level HB utilities in nonlinear logit simulation
Output metric Abstract percentage (0 to 100% importance) Actionable share percentages and pp deltas
Decision support "Price is the most important attribute" "Dropping price from €30k to €25k gains 8 pp share against Product B"

The key insight is that importance scores are context-free while sensitivity results are context-dependent. The same attribute may have high importance but low sensitivity if all products in the market already offer similar levels. Conversely, a low-importance attribute can produce large share swings if it is the key differentiator between two closely matched products.

When to Use Each
Use importance scores for early-stage exploration ("which attributes should we focus on?"). Use sensitivity analysis for specific product decisions ("what happens if we change this level?"). They are complementary, not competing, tools.

11. References

Orme, B. K. (2020). Getting started with conjoint analysis: Strategies for product design and pricing research (4th ed.). Manhattan Beach, CA: Research Publishers LLC.

Orme, B. K., & Chrzan, K. (2017). Becoming an expert in conjoint analysis: Choice modeling for pros. Orem, UT: Commercial conjoint software publisher