1. Scope
Derives a monthly price floor from gross-margin and CAC-payback constraints. It is not a willingness-to-pay estimator and does not run Van Westendorp or conjoint analysis.
2. Inputs and outputs
Inputs
- costPerUserPerMonth number (currency)
- targetGrossMargin percent default: 75
- targetCacPaybackMonths number default: 12
- cac number (currency)
Outputs
- marginFloor
cost / (1 − targetMargin).
- paybackFloor
cac / (targetPaybackMonths × targetMargin).
- priceFloor
Maximum of marginFloor and paybackFloor.
Engine source: src/lib/saas-pricing-strategy-calculator/engine.ts
3. Formula / scoring logic
margin_floor = cost / (1 - target_gross_margin)
payback_floor = cac / (target_payback_months * target_gross_margin)
price_floor = max(margin_floor, payback_floor) 4. Assumptions
- Price floor is a minimum, not a market-clearing price. Discovery (user interviews, A/B pricing) sets the ceiling.
- CAC is blended, not channel-specific. The payback floor tightens for paid-heavy acquisition.
- No tiered-pricing logic — one user, one price.
5. Data sources
6. Known limitations
- Willingness-to-pay is context-dependent and cannot be inferred from costs alone. A price floor says "do not go below", not "this is the right price".
- No value-based pricing logic. For that, pair the output with customer interviews and competitive benchmarking.
7. Reproducibility
Input
cost = $2, targetMargin = 80%, targetPayback = 12, cac = $100.
Expected output
margin_floor = $10, payback_floor ≈ $10.42, price_floor ≈ $10.42.
8. Change log
- 2026-04-24 methodology page first published.
Worked example
Run live against the same engine this site ships
(/engines/saas-pricing-strategy-calculator.js).
The inputs and outputs below are recomputed on every build and
independently re-verified in CI — they are never hand-authored.
Input
- tool
- saas_pricing_strategy
- cogs_per_user
- 28
- target_gross_margin_percent
- 80
- target_payback_months
- 8
- cac
- 450
- competitor_price
- 89
Output
- primaryLabel
- Recommended monthly price
- primaryValue
- 140
- primaryFormat
- currency
- summary
- Price floor takes the higher of margin requirement and CAC payback requirement.
- metrics[0].label
- Margin floor
- metrics[0].value
- 140
- metrics[0].format
- currency
- metrics[1].label
- Payback floor
- metrics[1].value
- 84.25
- metrics[1].format
- currency
- metrics[2].label
- Gap vs competitor
- metrics[2].value
- 51
- metrics[2].format
- currency
- metrics[3].label
- Competitor gross margin
- metrics[3].value
- 68.54
- metrics[3].format
- percent
- warnings[0]
- Competitor price is below your target margin floor under current COGS.
- assumptionsEcho.cogs_per_user
- 28
- assumptionsEcho.target_gross_margin_percent
- 80
- assumptionsEcho.target_payback_months
- 8
- assumptionsEcho.cac
- 450
- assumptionsEcho.competitor_price
- 89
Frequently asked questions
- What does the SaaS Pricing Strategy Calculator calculate?
- Derives a monthly price floor from gross-margin and CAC-payback constraints. It is not a willingness-to-pay estimator and does not run Van Westendorp or conjoint analysis.
- What inputs does the SaaS Pricing Strategy Calculator need?
- It takes 4 inputs: costPerUserPerMonth, targetGrossMargin (default 75), targetCacPaybackMonths (default 12), cac. Outputs returned: marginFloor, paybackFloor, priceFloor.
- What formula does the SaaS Pricing Strategy Calculator use?
- The exact computation is: margin_floor = cost / (1 - target_gross_margin); payback_floor = cac / (target_payback_months * target_gross_margin); price_floor = max(margin_floor, payback_floor)
- Can I verify the SaaS Pricing Strategy Calculator with a worked example?
- Yes. With cost = $2, targetMargin = 80%, targetPayback = 12, cac = $100. the tool returns margin_floor = $10, payback_floor ≈ $10.42, price_floor ≈ $10.42.
- Where does the SaaS Pricing Strategy Calculator get its benchmark data?
- Reference data is sourced from: OpenView SaaS Benchmarks 2024 (CAC payback percentiles) (as of 2024).
- What can the SaaS Pricing Strategy Calculator not tell me?
- Known limitations: Willingness-to-pay is context-dependent and cannot be inferred from costs alone. A price floor says "do not go below", not "this is the right price". No value-based pricing logic. For that, pair the output with customer interviews and competitive benchmarking.