Help Commercial, Product Marketing, and CMO functions answer three questions at the pricing-design moment:
The skill recommends a model and a range. The human picks the number, owns the trade-offs, and runs the GTM.
Do not use for:
deal-desk
c-level-advisor/cmo-advisor
c-level-advisor/cro-advisor
business-growth/sales-engineer
Fill assets/pricing_brief_template.md (≈ 20 min). Capture: industry, deal size avg, customer count, value drivers, adoption curve, consumption pattern (seat / usage / value / hybrid), competitor models.
Run scripts/pricing_model_picker.py --input brief.json --profile saas --output markdown. Output ranks 5 models by fit-score 0-100 with trade-offs. Decision logic is deterministic: low usage variance + high seat-attach → subscription wins; power-law usage + variable customer value → usage-based wins.
If you have survey data (≥ 4 questions per respondent: too cheap / bargain / getting expensive / too expensive), run scripts/wtp_analyzer.py --input survey.json --output markdown. Output: 4 intersection points (OPP, IDP, PMC, PME) and the Range of Acceptable Prices.
PSM gives a range, not the price. See references/van_westendorp_methodology.md for common misinterpretations.
Run scripts/packaging_designer.py --input features.json --profile saas --output markdown. Output: 3-tier Good/Better/Best assignment with anti-pattern flags (decoy tier, feature dump, no upgrade trigger, Bronze loss leader, Enterprise no-anchor).
Take model + range + packaging into the pricing committee. Skill does not commit the number — you do.
scripts/pricing_model_picker.py — 5-model fit scorer (subscription / usage / value / freemium / hybrid)scripts/wtp_analyzer.py — Van Westendorp PSM implementationscripts/packaging_designer.py — Good/Better/Best tier designer with anti-pattern detectionAll scripts: stdlib only. --help and --sample work on all three.
references/saas_pricing_canon.md — Skok, Tunguz, Campbell, Ramanujam, BVP, Shevlin, Stanford GSBreferences/van_westendorp_methodology.md — original 1976 paper, NMS refinement, Conjoint.ly, Sawtooth, ESOMAR, Lipovetsky, Decision Analystreferences/packaging_anti_patterns.md — ProfitWell, OpenView, BVP vertical SaaS, Ramanujam, Poyar, SaaS Capitalpackaging_anti_patterns.md.Walked one at a time by /cs:grill-commercial or the orchestrator. Recommended answer + canon citation per question. Never bundled.
"Is your customer paying for outcomes, seats, or usage?" Recommended: outcomes (value-based) if you can measure them; usage if marginal cost is variable; seats only if usage is roughly flat per user. Canon: Ramanujam 2016 (Monetizing Innovation) — Mistake #1 of 9: seat-based pricing on a usage-variable product caps TAM at ~20% of WTP.
"Do you have a measurable value metric, or are you guessing?" Recommended: instrument the value metric BEFORE going to market with value-based pricing. Canon: Patrick Campbell / ProfitWell research — value-based without instrumentation collapses into bad usage-based pricing.
"What's the variance in customer usage across your top decile vs. median?" Recommended: variance > 10x → usage-based wins; variance < 3x → subscription wins; in between → hybrid with usage overage. Canon: Kyle Poyar (Growth Unhinged) — high-variance products lose 60%+ of revenue on flat-rate plans.
"What's your competitor's pricing model, and why are you choosing the same or different?" Recommended: surface the differentiation hypothesis explicitly. Identical pricing = identical value claim. Canon: David Skok (For Entrepreneurs) — pricing is a positioning signal.
"What sample size do you have for WTP analysis, and is it segmented?" Recommended: N≥30 per segment for PSM, N≥100 for conjoint. Canon: van Westendorp 1976 / Sawtooth Software methodology — sub-30 PSM is statistical noise.
"What's the ONE feature that forces a tier upgrade?" Recommended: every Better and Best tier needs a single non-negotiable upgrade trigger. Canon: Ramanujam (Monetizing Innovation) — Mistake #4: tiers with no clear differentiator make 70% of customers pick the cheapest.
Walk depth-first. Lock 1-3 before opening 4-6. After all 6 are answered, invoke pricing_model_picker.py → wtp_analyzer.py → packaging_designer.py in sequence.