TURF Analysis

How to Run a TURF Analysis: Step by Step

8 min read

A practical walkthrough for running TURF analysis. Covers data collection, setting acceptance thresholds, running the algorithm, and interpreting reach curves.

How to Run a TURF Analysis: Step by Step

Before You Start

TURF analysis requires individual-level preference data. You can't run it on aggregated popularity percentages or average ratings. You need to know, for each respondent, which items they find acceptable. This section walks through every step from data collection to final output.

The process takes 1-3 weeks depending on sample recruitment speed. The analysis itself runs in seconds once the data is ready.

Step 1: Define Your Items and Constraints

List Your Items

Identify the full set of items you're evaluating. These could be product flavors, features, menu items, advertising messages, media channels, or anything else where you're selecting a subset.

Practical range: 8-40 items. Below 8, the combinatorics are simple enough to evaluate manually. Above 40, computation time increases significantly (though heuristic algorithms can handle it).

Set Your Portfolio Constraint

How many items can you offer? This is driven by business realities:

  • Shelf facings allocated by the retailer
  • Manufacturing line capacity
  • Engineering sprints available this quarter
  • Menu board space

If you don't have a fixed constraint, TURF will show you optimal combinations at every portfolio size (1, 2, 3... up to N), and you can find the inflection point where adding another item yields diminishing returns.

Identify Lock-Ins and Lock-Outs

Some items must stay regardless of TURF results (your flagship product, a contractually required option). Others can't be included (discontinued, out of stock, regulatory issues). Flag these before running the analysis. Most TURF tools support "must include" and "must exclude" constraints.

Step 2: Collect Preference Data

You need to know, per respondent, which items they'd accept. Three approaches:

Option A: Binary Acceptance Survey (Simplest)

Show each item and ask: "Would you buy/choose/use this?" Yes / Maybe / No.

For TURF, define your acceptance threshold:

  • Strict: Only "Yes" counts as accepted
  • Moderate: "Yes" + "Maybe" count
  • Broad: Everything except "No" counts

The strict threshold produces more conservative reach estimates. The broad threshold inflates reach and reduces differentiation between combinations. Most practitioners use "Yes" only or "Yes + Maybe" depending on how high the stakes are.

Survey structure: Show all items in randomized order. Each item gets its own screen or row. Include a brief description and, for physical products, an image.

Sample size: 200-400 respondents from your target audience.

Option B: MaxDiff + Threshold (Richer Data)

Run a MaxDiff study to get utility scores for each item, then convert to binary acceptance.

Conversion method: For each respondent, mark their top X items (by individual-level utility score) as "accepted." Common thresholds: top 30%, top 5 items, or above-average utility.

Advantage: MaxDiff produces more nuanced preference data than binary Yes/No, which can reveal subtle differences in overlap patterns. Also, you get a rank order for free alongside the TURF data.

Disadvantage: Requires larger samples (300-400) and MaxDiff-capable software. The threshold choice introduces a judgment call.

Option C: Purchase/Behavioral Data (Most Valid)

Use transaction records, usage logs, or clickstream data to identify which items each customer has engaged with.

How: For each customer, mark items they've purchased (or used, or clicked) in the past N months as "accepted."

Advantage: Based on actual behavior, not stated preference. Eliminates the gap between "I would buy this" and "I actually bought this."

Disadvantage: Only works for existing items. New products or concepts that haven't launched can't appear in the data.

Step 3: Prepare the Data Matrix

Your data should look like this:

Respondent Item A Item B Item C Item D ...
R001 1 0 1 0 ...
R002 0 1 1 1 ...
R003 1 1 0 0 ...

Each row is a respondent. Each column is an item. 1 = accepted, 0 = not accepted.

If you used MaxDiff + threshold, convert utility scores to 1/0 using your chosen threshold before creating this matrix.

Step 4: Run the Analysis

Using Survey Platform Tools

Platforms with built-in TURF (including Quali-Fi) accept the preference data and run the algorithm directly. You specify:

  • Target portfolio sizes to evaluate (e.g., 3 through 10)
  • Lock-in and lock-out items
  • Whether to evaluate all combinations or use a heuristic (for large item sets)

The tool returns optimal combinations, reach, and frequency at each portfolio size.

Using R

The tuRf and support.CEs packages handle TURF computation. Input your binary matrix, specify portfolio sizes, and the function evaluates combinations.

Using Excel

For small item sets (under 15), you can build TURF in Excel using combinations formulas and COUNTIF functions. This is feasible for one-off analyses but becomes unwieldy for larger sets. For 15 items choosing 5, you'd need to evaluate 3,003 combinations. For 20 choosing 6, it's 38,760.

Using Python

Libraries like itertools for combination generation plus numpy for matrix operations make TURF straightforward in Python. Calculate reach for each combination as the percentage of rows where at least one selected column equals 1.

Step 5: Interpret the Results

The Reach Curve

Plot portfolio size on the x-axis and reach on the y-axis. You'll see an S-curve that rises steeply at first and flattens as you add more items.

The key decision point is the "elbow" where incremental reach drops below a meaningful threshold. If going from 6 to 7 items adds only 1.5% reach, but going from 5 to 6 adds 4%, the natural portfolio size is 6.

Incremental Reach Table

For each portfolio size, TURF shows the optimal combination and the incremental reach each item adds:

Added Item Cumulative Reach Incremental Reach
Chocolate 62% 62%
+ Strawberry 78% +16%
+ Mint 87% +9%
+ Mango 92% +5%
+ Cucumber 94% +2%

The first item has the highest individual acceptance. Each subsequent item adds the most incremental reach given the items already selected. Notice this is a greedy algorithm: each addition is optimal given the current set, but the full combination of 5 might not be the globally optimal 5 (for small item sets, exact optimization checks all combinations; for large sets, greedy is a close approximation).

Frequency Analysis

Check the average frequency (number of accepted items per person) for your chosen portfolio. If reach is 92% but frequency is 1.1, most guests have exactly one option. If frequency is 2.8, guests have variety. The right target depends on your context:

  • One-time purchase (e.g., a phone case): Frequency of 1+ is fine
  • Repeat purchase (e.g., restaurant, subscription box): Target frequency of 2-3+
  • Variety seeking (e.g., snacks, beverages): Target frequency of 3+

Sensitivity Analysis

Run TURF with different acceptance thresholds (strict vs. moderate) and compare the optimal portfolios. If the same items appear across thresholds, you have a strong recommendation. If the portfolio changes significantly, the recommendation is sensitive to how you define "acceptable."

Step 6: Apply Business Constraints

TURF output is a starting point, not a final answer. Overlay:

  • Margin data: Is the TURF-optimal item profitable enough to produce?
  • Operational constraints: Can the kitchen/factory/engineering team support this item?
  • Brand fit: Does this item align with brand positioning?
  • Competitive response: Will this portfolio leave you vulnerable to competitor moves?

If a constraint forces you to swap out a TURF-recommended item, re-run the analysis with that item locked out to find the next-best alternative.

Frequently Asked Questions

How long does TURF analysis take to run?

The computation itself takes seconds for item sets under 30. Data collection (surveying 300-400 respondents) takes 1-2 weeks. Total project timeline is typically 2-3 weeks.

Can I run TURF on existing customer data without a new survey?

Yes, if you have individual-level purchase or usage data. Transaction logs, CRM data, or product usage analytics can serve as the input matrix. This is the fastest and most behaviorally valid approach.

What happens if two items always appear together in the optimal portfolio?

Those items serve different audiences and complement each other well. If you must choose between them (further constraint), check which one adds more incremental reach when the other is locked out.


Run TURF analysis on your survey data -- try Quali-Fi free for 14 days.

Frequently Asked Questions

Related Guides

Put it into practice

Ready to apply this in your research?

Quali-Fi makes it easy to run surveys, conjoint studies, and more, all in one platform.