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.