TURF analysis (total unduplicated reach and frequency) greedily picks the k items from 0/1 columns that together reach the most distinct respondents.
TURF answers 'which N flavours / SKUs / features should we offer to reach the largest fraction of customers, each finding at least one they want?' Greedy selection: pick the single item with highest individual reach, then iteratively add the item that adds the most unique reach beyond what's already covered.
Greedy is optimal when items are independent and submodular (each item's contribution doesn't depend on which others are already picked beyond what's already covered) — close to true for most appeal-to-customers settings. The 1 − 1/e ≈ 63% approximation guarantee bounds worst case.
Compared to running it manually: TURF reports the marginal contribution per pick, which often reveals diminishing returns — the 4th and 5th picks contribute much less than the 1st and 2nd. That informs the portfolio-size decision.
Item columns (0/1) + target k.
Pick order + marginal reach per pick + cumulative reach + final % covered.
Plot cumulative reach vs k — the elbow indicates the practical portfolio size beyond which additions don't pay off.