---
# === IDENTITY ===
id: business/customer-validation/willingness-to-pay-validation/2026
canonical_question: "How do I validate willingness to pay — Van Westendorp, Gabor-Granger, fake doors, constraint: only count credit cards/LOIs?"
aliases:
  - "willingness to pay validation methods"
  - "Van Westendorp Price Sensitivity Meter for startups"
  - "Gabor-Granger pricing survey execution"
  - "fake door test with payment validation"
  - "smoke test pricing with credit card capture"
  - "LOI collection for B2B pricing validation"
  - "pricing research before launch"
entity_type: execution_recipe
domain: business > customer-validation > Willingness to Pay Validation
region: global
jurisdiction: global
temporal_scope: 2025-2026

# === VERIFICATION ===
last_verified: 2026-03-11
confidence: 0.87
version: 1.0
first_published: 2026-03-11

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: stable
  last_breaking_change: "Stripe Payment Links and Typeform payment questions now support Apple Pay and Google Pay — broadens fake door payment capture options (2025)"
  next_review: 2026-09-07
  change_sensitivity: medium

# === CONSTRAINTS ===
constraints:
  - "Only credit card charges, pre-order payments, or signed LOIs count as validated willingness to pay — survey responses alone are directional, not proof"
  - "Van Westendorp and Gabor-Granger require minimum 100 respondents per segment for statistically meaningful results"
  - "Fake door tests must clearly disclose that the product is not yet available — FTC and consumer protection laws prohibit deceptive pre-sales"
  - "Refund all charges promptly if the product does not ship — Stripe disputes and chargebacks damage payment processing reputation"
  - "B2B LOIs are non-binding unless explicitly stated otherwise — treat them as strong intent signals, not contracts"

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs a pricing strategy framework, not execution of validation research"
    use_instead: "business/pricing/value-based-pricing-saas/2026"
  - condition: "User needs to set final pricing tiers, not validate willingness to pay"
    use_instead: "business/pricing/saas-pricing-models-comparison/2026"
  - condition: "User already has validated pricing and needs to build a landing page"
    use_instead: "software/landing-pages/landing-page-code-generation/2026"
  - condition: "User needs conjoint analysis with 10+ attributes — requires enterprise tooling"
    use_instead: "business/pricing/enterprise-pricing-strategy/2026"

# === AGENT HINTS ===
inputs_needed:
  - key: business_model
    question: "Is this B2B or B2C?"
    type: choice
    options: ["B2B (LOI + invoice validation)", "B2C (credit card + pre-order validation)", "both (run parallel tracks)"]
  - key: pricing_method
    question: "Which pricing research method should be used?"
    type: choice
    options: ["Van Westendorp (find acceptable price range)", "Gabor-Granger (find revenue-maximizing price)", "fake door / smoke test (validate with real money)", "full sequence (survey first, then fake door)", "no preference — auto-select"]
  - key: technical_skill
    question: "What is the user's technical skill level?"
    type: choice
    options: ["non-technical (no-code only)", "semi-technical (can edit code)", "developer (can write code)"]
  - key: budget_for_tools
    question: "What's the tool/API budget?"
    type: choice
    options: ["free tier only", "up to $50/month", "up to $200/month", "no limit"]
  - key: sample_size
    question: "How many target customers can be reached?"
    type: choice
    options: ["under 50 (B2B niche)", "50-200 (early-stage)", "200-1000 (growth-stage)", "1000+ (mass market)"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Product or service description"
      source: "Founder or product team"
      format: "document"
    - name: "Target customer persona / ICP definition"
      source: "agents/startup/persona-builder or manual definition"
      format: "structured data"
    - name: "Candidate price points or range"
      source: "Competitive analysis or founder hypothesis"
      format: "structured data"
    - name: "Value proposition and key differentiators"
      source: "agents/startup/value-proposition or manual definition"
      format: "document"

  outputs:
    - name: "Price sensitivity analysis report"
      format: "document"
      description: "Van Westendorp or Gabor-Granger results with acceptable price range, optimal price point, and demand curve — segmented by persona"
    - name: "Validated willingness to pay evidence"
      format: "spreadsheet"
      description: "Credit card charges, pre-order transactions, or signed LOIs with amounts — the hard proof that people will pay"
    - name: "Pricing recommendation memo"
      format: "document"
      description: "Final pricing recommendation with confidence level, supported by both survey data and transactional validation"

  tools_required:
    - name: "Typeform"
      purpose: "Survey creation for Van Westendorp / Gabor-Granger questions with payment collection via Stripe integration"
      tier: "free/paid"
      cost: "$0 (free: 10 responses/mo) to $25/mo (Basic: 100 responses/mo)"
      alternatives: ["Google Forms (free, no payment integration)", "SurveyMonkey ($39/mo)", "Tally (free, 100 responses/mo)"]
    - name: "Stripe"
      purpose: "Payment processing for fake door tests and pre-order validation"
      tier: "paid"
      cost: "2.9% + $0.30 per transaction (refundable)"
      alternatives: ["PayPal ($0 setup, 2.99% + $0.49)", "Gumroad (10% fee)", "Lemon Squeezy (5% + $0.50)"]
    - name: "Carrd or Unbounce"
      purpose: "Landing page builder for fake door test pages"
      tier: "free/paid"
      cost: "$0 (Carrd free) to $99/mo (Unbounce)"
      alternatives: ["Webflow ($14/mo)", "Framer ($5/mo)", "raw HTML on Vercel (free)"]
    - name: "Google Sheets"
      purpose: "Data collection, analysis, and Van Westendorp plotting"
      tier: "free"
      cost: "$0"
      alternatives: ["Excel", "Airtable (free tier)"]

  credentials_needed:
    - service: "Stripe"
      type: "API key (publishable + secret)"
      where_to_get: "https://dashboard.stripe.com/register"
      free_tier_limits: "No monthly limits — pay per transaction only"
    - service: "Typeform"
      type: "Account + Stripe connection"
      where_to_get: "https://www.typeform.com/signup/"
      free_tier_limits: "10 responses per form per month on free plan"

  estimated_duration: "3-10 days (1 day survey setup, 2-7 days data collection, 1-2 days analysis)"
  estimated_cost: "$0 (free tier survey + Google Forms) to $150 (paid survey tool + Stripe transaction fees on $2K collected)"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/business/customer-validation/willingness-to-pay-validation/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-11)"

# === RELATED UNITS ===
related_kos:
  depends_on:
    - id: "business/pricing/value-based-pricing-saas/2026"
      label: "Value-based pricing strategy that defines what to validate"
    - id: "business/gtm/product-market-fit/2026"
      label: "Product-market fit context for pricing validation"
  feeds_into:
    - id: "business/pricing/saas-pricing-models-comparison/2026"
      label: "Final pricing tier design using validated WTP data"
    - id: "software/landing-pages/landing-page-code-generation/2026"
      label: "Generating landing page code — HTML/CSS/JS or React templates by industry, incl. no-code vs hand-coded vs AI builders"
  related_to:
    - id: "business/pricing/dynamic-pricing/2026"
      label: "Dynamic pricing strategies informed by WTP research"
    - id: "business/pricing/freemium-decision-framework/2026"
      label: "Freemium vs paid decision using WTP thresholds"
  alternative_to:
    - id: "business/pricing/enterprise-pricing-strategy/2026"
      label: "Enterprise pricing with full conjoint analysis — higher complexity"

# === SOURCES ===
sources:
  - id: src1
    title: "How To Use The Van Westendorp Price Sensitivity Meter"
    author: SurveyMonkey
    url: https://www.surveymonkey.com/market-research/resources/van-westendorp-price-sensitivity-meter/
    type: industry_guide
    published: 2024-06-15
    reliability: authoritative
  - id: src2
    title: "Gabor Granger Method for Pricing Surveys"
    author: OpinionX
    url: https://www.opinionx.co/blog/gabor-granger-method
    type: industry_guide
    published: 2024-08-20
    reliability: authoritative
  - id: src3
    title: "Gabor-Granger vs Van Westendorp"
    author: SurveyMonkey
    url: https://www.surveymonkey.com/market-research/resources/gabor-granger-vs-van-westendorp/
    type: industry_guide
    published: 2024-05-10
    reliability: authoritative
  - id: src4
    title: "Fake Door Testing: What It Is and How to Run One"
    author: Learning Loop
    url: https://learningloop.io/plays/fake-door-testing
    type: industry_guide
    published: 2024-03-15
    reliability: established
  - id: src5
    title: "Smoke Testing: 4 Steps to Validate Purchase Intent"
    author: Bundl
    url: https://www.bundl.com/articles/techniques-validating-purchase-intention-in-4-easy-steps-the-smoke-test
    type: industry_guide
    published: 2024-07-01
    reliability: established
  - id: src6
    title: "Patrick Campbell's ProfitWell Playbook: Value Metric Pricing"
    author: LTSE
    url: https://ltse.com/insights/product-pricing-for-startups-value-metrics
    type: expert_interview
    published: 2023-11-15
    reliability: authoritative
  - id: src7
    title: "Payment question - Stripe integration"
    author: Typeform
    url: https://help.typeform.com/hc/en-us/articles/360052321991-Payment-question-Stripe-integration
    type: official_docs
    published: 2025-01-10
    reliability: authoritative
  - id: src8
    title: "Value-Based Pricing: Definition, Strategies, and Success Factors"
    author: Simon-Kucher
    url: https://www.simon-kucher.com/en/insights/value-based-pricing-definition-strategies-and-success-factors
    type: expert_analysis
    published: 2024-09-01
    reliability: authoritative
---

# Willingness to Pay Validation: Van Westendorp, Gabor-Granger, and Fake Door Execution

## Purpose

This recipe produces validated willingness-to-pay evidence through a structured sequence: survey-based price sensitivity research (Van Westendorp or Gabor-Granger) followed by transactional validation (fake door tests with real credit card captures or B2B LOI collection). The output is a pricing recommendation memo backed by both stated preference data and real-money proof — the only evidence investors and pricing committees should trust. [src6]

## Prerequisites
<!-- Agents: verify ALL prerequisites before executing. Missing prerequisites = failed execution. -->

- [ ] **Product or service description** — clear enough for a survey respondent to evaluate (1-paragraph description + 3-5 key features)
- [ ] **Target customer persona / ICP** — who to survey and where to find them
- [ ] **Candidate price range** — at least a rough hypothesis (e.g., "$29-$149/mo" or "$500-$5,000 one-time")
- [ ] **Value proposition** — what makes this worth paying for vs. alternatives
- [ ] **Stripe account** — API key from [Stripe](https://dashboard.stripe.com/register) (free — pay per transaction only)
- [ ] **Survey tool account** — [Typeform](https://www.typeform.com/signup/) (free: 10 responses/mo), [Google Forms](https://forms.google.com) (free, unlimited), or [Tally](https://tally.so) (free: 100 responses/mo)
- [ ] **Landing page tool** (for fake door path) — [Carrd](https://carrd.co) (free), [Unbounce](https://unbounce.com) ($99/mo), or custom HTML

## Constraints
<!-- Hard rules. Agents: enforce throughout execution. Violating these = broken output or legal risk. -->

- Survey-stated willingness to pay inflates actual purchase rates by 3-5x — never use raw survey numbers as pricing proof. Only credit cards or LOIs count. [src5]
- Van Westendorp requires minimum 100 respondents per segment; Gabor-Granger requires minimum 100 per segment. Below this threshold, confidence intervals are too wide to act on. [src1]
- Fake door pages must include clear disclosure: "This product is not yet available. You will be charged $X as a pre-order and refunded if we do not launch by [date]." FTC compliance requires this. [src4]
- Refund all fake door payments within 30 days if product does not launch — Stripe chargeback rate above 1% triggers account review.
- B2B LOIs must specify: product description, price, quantity/seats, timeline, and buyer signature. A verbal "we'd pay that" is not an LOI. [src5]
- Do not survey your own team, friends, or family — they systematically overstate willingness to pay.

## Tool Selection Decision

<!-- Agent selects the right tool path based on user inputs.
     Each path leads to a different execution flow below. -->

```
Which path?
├── B2C + want price range discovery
│   └── PATH A: Van Westendorp Survey — Google Forms/Typeform + Sheets analysis
├── B2C + want revenue-maximizing price
│   └── PATH B: Gabor-Granger Survey — Typeform/SurveyMonkey + demand curve
├── B2C + want real-money proof
│   └── PATH C: Fake Door Test — Carrd/Unbounce + Stripe payment capture
├── B2B + want commitment evidence
│   └── PATH D: LOI Collection — Outreach + LOI template + signature
└── Full validation (recommended)
    └── PATH E: Survey (A or B) → then Fake Door (C) or LOI (D)
```

| Path | Tools | Cost | Speed | Output Quality |
|------|-------|------|-------|---------------|
| A: Van Westendorp | Google Forms + Sheets | $0 | 3-5 days | Directional — shows acceptable range, not purchase proof |
| B: Gabor-Granger | Typeform + Sheets | $0-$25/mo | 3-5 days | Directional — shows demand curve, not purchase proof |
| C: Fake Door | Carrd + Stripe | $0 + 2.9% per txn | 5-10 days | Strong — real credit card = real intent |
| D: LOI Collection | Email + DocuSign/PandaDoc | $0-$25/mo | 7-21 days | Strong — signed commitment with price and terms |
| E: Full Sequence | A/B + C/D | $0-$50 | 7-14 days | Highest — survey data calibrated by real-money validation |

## Execution Flow

### Step 1: Select Method and Define Price Points

**Duration**: 30 minutes
**Tool**: Spreadsheet

Define 5-7 candidate price points based on competitive analysis and founder hypothesis. These price points anchor all subsequent research.

```
Candidate Price Points Worksheet:
1. Cost floor:           $____ (minimum viable price covering COGS + margin)
2. Competitor low:       $____ (cheapest comparable alternative)
3. Competitor median:    $____ (most common price in market)
4. Competitor high:      $____ (premium alternative)
5. Value ceiling:        $____ (maximum justifiable by ROI or value delivered)
6. Aspirational:         $____ (what you wish you could charge)
7. Anchor:               $____ (highest price shown to make others seem reasonable)

For Gabor-Granger: select 5 evenly spaced points between #1 and #5
For Van Westendorp: no pre-set points needed (open-ended responses)
For Fake Door: select 2-3 points from the middle range for A/B testing
```

**Verify**: All 5-7 price points defined, competitor data sourced from at least 3 competitors.
**If failed**: If no competitors exist, use cost-plus 3x as floor and 10x as ceiling.

### Step 2: Build the Survey (Path A or B)

**Duration**: 1-2 hours
**Tool**: Typeform, Google Forms, or Tally

**Path A — Van Westendorp (4 questions):**

Present the product description (2-3 sentences + feature list), then ask these four open-ended price questions in order: [src1]

```
Question 1: "At what price would [product] be so expensive that you
            would not consider buying it?" [open numeric field]

Question 2: "At what price would [product] start to seem expensive,
            but you would still consider buying it?" [open numeric field]

Question 3: "At what price would [product] seem like a bargain —
            a great buy for the money?" [open numeric field]

Question 4: "At what price would [product] be so cheap that you
            would question its quality?" [open numeric field]
```

Add demographic/firmographic questions: role, company size (B2B), current spend on alternatives, urgency of need.

**Path B — Gabor-Granger (sequential price presentation):**

Present the product description, then show a randomly selected price point and ask: [src2]

```
"Would you purchase [product] at [$X]?"
  → Yes: show next higher price point
  → No: show next lower price point
  → Repeat until ceiling/floor reached or 5 iterations complete

Record: highest price at which respondent said "Yes"
```

In Typeform: use Logic Jumps to route respondents to higher/lower price questions based on their Yes/No answer at each step.

**Verify**: Test the survey yourself — complete it in under 5 minutes. Ensure all logic jumps work correctly and price questions accept only numeric input.
**If failed**: If logic jumps break, simplify to showing all 5 prices and asking "Would you buy at this price? Yes/No" for each (monadic sequential design).

### Step 3: Distribute the Survey and Collect Responses

**Duration**: 2-7 days
**Tool**: Email, social media, paid panels, or customer outreach

Target: minimum 100 completed responses per customer segment.

```
Distribution Channels (ranked by response quality):
1. Existing waitlist/email list    — highest quality, already interested
2. LinkedIn outreach (B2B)         — targeted by title/industry
3. Reddit/community posts          — high engagement if relevant sub
4. Twitter/X posts                 — broad reach, lower completion
5. Paid panel (Prolific, Cint)     — $1-3/response, fast, lower quality
6. Facebook/Instagram ads          — $2-8/response via lead form ads

Incentive guidance:
- B2C: $5-10 Amazon gift card raffle (1 in 20 odds)
- B2B: share the pricing research results with respondents
- Paid panel: $1.50-3.00 per complete response
```

**Expected output**: CSV/spreadsheet with 100-500 responses, each row containing the 4 Van Westendorp prices or the Gabor-Granger maximum WTP, plus demographics.
**Verify**: Response count >= 100 per segment. Check for straight-liners (identical answers across all questions) and remove them.
**If failed**: If under 50 responses after 5 days, switch to a paid panel (Prolific) and budget $150-$300 for 100-200 responses.

### Step 4: Analyze Survey Results

**Duration**: 1-2 hours
**Tool**: Google Sheets or Excel

**Path A — Van Westendorp Analysis:**

```
Van Westendorp Analysis Steps:
1. Sort all responses for each question (too cheap, bargain,
   expensive, too expensive) in ascending order
2. Calculate cumulative frequency for each price point:
   - "Too cheap" → cumulative % from low to high (ascending)
   - "Bargain" → cumulative % from low to high (ascending)
   - "Expensive" → cumulative % from HIGH to LOW (descending =
     "not expensive")
   - "Too expensive" → cumulative % from HIGH to LOW (descending =
     "not too expensive")
3. Plot all 4 curves on one chart (X = price, Y = cumulative %)
4. Find intersections:
   - OPP (Optimal Price Point) = "too cheap" crosses "too expensive"
   - IDP (Indifference Price Point) = "bargain" crosses "expensive"
   - PMC (Point of Marginal Cheapness) = "too cheap" crosses
     "not expensive"
   - PME (Point of Marginal Expensiveness) = "not too expensive"
     crosses "expensive"
5. Acceptable price range = PMC to PME
```

**Path B — Gabor-Granger Analysis:**

```
Gabor-Granger Analysis Steps:
1. For each price point tested, calculate:
   - Purchase probability = (respondents who said Yes) / (total shown
     that price)
2. Plot demand curve: X = price, Y = purchase probability
3. Calculate revenue curve: Revenue = Price x Purchase Probability
4. Revenue-maximizing price = peak of revenue curve
5. Price elasticity = % change in demand / % change in price
   (calculate between each adjacent pair of price points)
```

**Verify**: OPP/IDP (Van Westendorp) or revenue-maximizing price (Gabor-Granger) falls within the competitive range identified in Step 1. If the optimal price is 2x+ higher than competitors, either the sample is biased or the value proposition is genuinely differentiated. [src3]
**If failed**: If curves do not intersect cleanly (Van Westendorp) or demand curve is flat (Gabor-Granger), the product description was likely too vague — respondents could not evaluate value. Rewrite product description and re-survey a smaller sample (30-50).

### Step 5: Build Fake Door Test (Path C) or LOI Outreach (Path D)

**Duration**: 2-4 hours
**Tool**: Carrd/Unbounce + Stripe (B2C) or Email + DocuSign (B2B)

**Path C — Fake Door with Credit Card Capture (B2C):** [src4]

```
Landing Page Structure:
1. Headline: clear value proposition
2. 3-5 bullet points: key benefits/features
3. Social proof: testimonials, logos, or "Join X others"
4. Pricing: 1-3 tiers (use survey-validated price range)
5. CTA button: "Pre-order Now" or "Reserve Your Spot"
6. Stripe Checkout: collect real credit card payment
7. Confirmation page: "Thank you! You will be charged when we
   launch. Expected: [date]. Full refund if we don't ship by [date]."

Stripe Payment Link setup:
- Create product in Stripe Dashboard → Products → Add Product
- Set price to validated price point from Step 4
- Create Payment Link → copy URL → embed in landing page CTA
- Enable "Allow customers to adjust quantity" if testing volume
```

**Path D — LOI Collection (B2B):** [src5]

```
LOI Template (email or document):
Subject: Letter of Intent — [Product Name]

This letter confirms that [Company Name] intends to purchase:
- Product: [name and description]
- Quantity/Seats: [number]
- Price: $[amount] per [unit/month/year]
- Timeline: Purchase upon [GA launch / feature X completion /
  date]
- Conditions: [any conditions — e.g., "SOC 2 compliance",
  "SSO support"]

This letter is non-binding but represents genuine purchase intent.

Signed: _______________
Name: _______________
Title: _______________
Company: _______________
Date: _______________
```

Target: 3-5 LOIs (B2B) or 20-50 pre-order transactions (B2C) as minimum viable validation.

**Verify**: Stripe dashboard shows successful charges (not just checkout starts). For LOIs, verify signer has purchasing authority (Director+ title).
**If failed**: If conversion rate is below 1% on landing page after 500+ visitors, the price is likely too high or the value proposition is unclear. Reduce price by 20% and retest, or improve the landing page copy.

### Step 6: Synthesize Results and Produce Pricing Recommendation

**Duration**: 2-3 hours
**Tool**: Google Sheets + document editor

```
Pricing Recommendation Memo Structure:

1. EXECUTIVE SUMMARY
   - Recommended price: $X [range: $Y - $Z]
   - Confidence level: high/medium/low
   - Evidence strength: [N] survey responses + [M] paid transactions/LOIs

2. SURVEY FINDINGS
   - Method used: Van Westendorp / Gabor-Granger
   - Sample: [N] respondents, [segments]
   - Acceptable price range: $[PMC] - $[PME]
   - Optimal price point: $[OPP] or revenue-maximizing: $[RMP]

3. TRANSACTIONAL VALIDATION
   - Method: Fake door / pre-order / LOI
   - Results: [M] transactions at $[price], conversion rate [X%]
   - Total revenue collected: $[amount]
   - OR: [M] LOIs signed, total committed value: $[amount]

4. CALIBRATION
   - Survey-to-actual ratio: stated WTP was [X]% higher than
     actual payment behavior (typical: 3-5x overstatement)
   - Adjusted recommended price: $[final price]

5. RISKS AND CAVEATS
   - Sample bias: [description]
   - Market timing: [description]
   - Competitive response: [description]

6. NEXT STEPS
   - A/B test [2-3 prices] in-market
   - Review pricing quarterly using [method]
```

**Verify**: Final recommendation is supported by both survey data AND transactional evidence. If only survey data exists, explicitly flag that pricing is unvalidated.
**If failed**: If survey and transactional results contradict each other (survey says $99, but nobody pays above $49), trust the transactional data — it reflects real behavior.

## Output Schema

<!-- Exact format of the deliverable. Downstream agents and dashboard cards
     reference this schema to consume the output. -->

```json
{
  "output_type": "pricing_validation_report",
  "format": "JSON",
  "columns": [
    {"name": "recommended_price", "type": "number", "description": "Final recommended price point in USD", "required": true},
    {"name": "price_range_low", "type": "number", "description": "Lower bound of acceptable price range (PMC or minimum viable)", "required": true},
    {"name": "price_range_high", "type": "number", "description": "Upper bound of acceptable price range (PME or maximum tested)", "required": true},
    {"name": "survey_method", "type": "string", "description": "van_westendorp or gabor_granger", "required": true},
    {"name": "survey_sample_size", "type": "number", "description": "Total completed survey responses", "required": true},
    {"name": "transaction_count", "type": "number", "description": "Number of real payments or signed LOIs collected", "required": true},
    {"name": "transaction_total_usd", "type": "number", "description": "Total USD collected via pre-orders or committed via LOIs", "required": true},
    {"name": "conversion_rate", "type": "number", "description": "Fake door conversion rate (transactions / unique visitors)", "required": false},
    {"name": "confidence_level", "type": "string", "description": "high (survey + transactions), medium (survey only), low (insufficient data)", "required": true},
    {"name": "segments_tested", "type": "number", "description": "Number of distinct customer segments validated", "required": true}
  ],
  "expected_row_count": "1 (single recommendation per product/tier)",
  "sort_order": "N/A — single record",
  "deduplication_key": "product_id + segment"
}
```

## Quality Benchmarks

<!-- How to evaluate if the output is good enough.
     Links to benchmark cards where applicable. -->

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| Survey sample size (per segment) | >= 50 | >= 100 | >= 300 |
| Survey completion rate | > 40% | > 60% | > 80% |
| Fake door conversion rate (B2C) | > 1% | > 3% | > 5% |
| LOI count (B2B) | >= 2 | >= 5 | >= 10 |
| Price range confidence interval | +/- 30% | +/- 15% | +/- 10% |
| Survey-to-transaction calibration | Available | Calculated | Validated with A/B test |

**If below minimum**: If survey responses are under 50, extend collection period or switch to a paid panel. If fake door conversion is under 1% with 500+ visitors, retest at a lower price point or improve landing page copy and value proposition. [src5]

## Error Handling

<!-- Common failures and recovery actions. Agents need this to handle
     execution errors without human intervention. -->

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| Van Westendorp curves don't intersect | Product description too vague — respondents guessed randomly | Rewrite product description with specific features and benefits; re-survey 30-50 respondents as pilot |
| Gabor-Granger shows flat demand curve | Price range too narrow or product perceived as commodity | Widen price range by 2x in both directions; add differentiation messaging |
| Fake door conversion rate is 0% | Price too high, wrong audience, or landing page fails to convey value | Test 50% lower price; verify traffic source matches ICP; A/B test headline |
| Stripe payment failures (card declined) | Test cards used accidentally, or international cards blocked | Verify Stripe is in live mode (not test mode); enable international payments in Stripe dashboard |
| Survey respondents all say "too expensive" at every price | Sample does not match ICP, or product solves a nice-to-have problem | Verify survey distribution targeted actual buyers; consider whether the problem is painful enough to warrant a paid solution |
| LOI signers don't have purchasing authority | Outreach targeted individual contributors, not decision-makers | Re-target outreach to Director+ or VP-level contacts; verify title before sending LOI |
| Survey results vary wildly across segments | Segments have fundamentally different willingness to pay | This is a feature, not a bug — build segment-specific pricing tiers |

## Cost Breakdown

<!-- Real cost analysis so agents can warn users before execution. -->

| Component | Free Tier | Paid Tier | At Scale |
|-----------|-----------|-----------|----------|
| Survey tool (Typeform/Tally) | 10-100 responses/mo free | $25-39/mo (500+ responses) | $83/mo (10K responses) |
| Landing page (Carrd/Unbounce) | 1 site free (Carrd) | $19/yr Carrd Pro, $99/mo Unbounce | $99-200/mo (multiple variants) |
| Payment processing (Stripe) | 2.9% + $0.30/txn | Same | Volume discounts at $80K+/mo |
| Survey panel (Prolific/Cint) | N/A | $1.50-3/response | $1-2/response at 500+ |
| E-signature (DocuSign/PandaDoc) | Free tier available | $10-25/mo | $25-65/mo |
| **Total for 200 surveys + 50 transactions at $50** | **$0** | **$25-75** | **$150-300** |

## Anti-Patterns

### Wrong: Treating survey responses as validated pricing
Founders who price based solely on Van Westendorp or Gabor-Granger results overprice by 30-50%. Survey respondents systematically overstate willingness to pay because there is no real cost to saying "yes, I'd pay that." Patrick Campbell of ProfitWell documented that stated willingness to pay runs 3-5x higher than actual purchase behavior across hundreds of SaaS companies. [src6]

### Correct: Always follow survey research with transactional validation
Run the survey first to identify the acceptable range, then validate 2-3 price points within that range using real money (credit card charges, pre-orders, or LOIs). The survey narrows the search space; the transaction proves the price.

### Wrong: Running a fake door test without clear refund disclosure
Collecting credit card payments for a product that doesn't exist yet without disclosing the pre-order nature and refund policy violates FTC guidelines and consumer protection laws. It also triggers Stripe chargebacks that can freeze your payment processing account. [src4]

### Correct: Transparent pre-order with explicit terms
State clearly: "This is a pre-order. You will be charged $X today. If we do not launch by [date], you will receive a full refund." Include a refund link in the confirmation email. This builds trust and is legally defensible.

### Wrong: Surveying fewer than 50 respondents and calling it validated
Small samples produce price ranges so wide they're useless. With 30 respondents, a Van Westendorp analysis might show an "acceptable range" of $10-$200 — which tells you nothing actionable. [src1]

### Correct: Minimum 100 respondents per segment
If budget or reach constrains sample size, focus on one segment (your best-fit ICP) and get 100+ responses from that group rather than spreading 50 responses across 3 segments.

## When This Matters

Use when an agent needs to produce real evidence that target customers will pay a specific price — not a pricing strategy document, but actual survey data and transaction receipts. This recipe is required before finalizing pricing tiers, launching pre-sales, or presenting pricing evidence to investors. The output feeds directly into pricing tier design and landing page construction.

## Related Units

- [Value-Based Pricing for SaaS](/business/pricing/value-based-pricing-saas/2026) — pricing strategy framework that defines what to validate
- [SaaS Pricing Models Comparison](/business/pricing/saas-pricing-models-comparison/2026) — final tier design using validated WTP data
- [Product-Market Fit Framework](/business/gtm/product-market-fit/2026) — PMF context for pricing validation
- [Freemium Decision Framework](/business/pricing/freemium-decision-framework/2026) — freemium vs paid decision using WTP thresholds
- [Enterprise Pricing Strategy](/business/pricing/enterprise-pricing-strategy/2026) — alternative with full conjoint analysis for complex products
