aibizhub
Hand-written methodology As of 2026-04-24

How Micro-SaaS Pricing Engine works

What the tool assumes, what data it pulls from, and what it cannot tell you.

1. Scope

The Micro-SaaS Pricing Engine produces three numbers — a price floor, a suggested price, and a price ceiling — from per-user cost, target gross margin, CAC-payback constraints, and a competitor anchor. It is a cost-and-anchor model. It does not survey willingness to pay, does not run Van Westendorp or Gabor-Granger, and does not estimate demand elasticity from your actual traffic.

2. Inputs and outputs

Inputs: per-user monthly cost (AI inference + hosting + auth + email, typically from the AI Stack Cost Calculator), target gross margin (default 75%), target CAC-payback months (default 12), blended CAC, average competitor price, and a positioning hint (value-priced / mid-market / premium).

Outputs: priceFloor (never charge less), suggestedPrice (based on the positioning mode), and priceCeiling (a premium-anchored bound).

Engine source: src/lib/micro-saas-pricing-engine/engine.ts.

3. Formula / scoring logic

# Price floor — two constraints, take the binding one
margin_floor  = cost_per_user / (1 - target_gross_margin)
payback_floor = cac / (target_payback_months * target_gross_margin)
price_floor   = max(margin_floor, payback_floor)

# Suggested price — competitor-anchored when the competitor data is real;
# otherwise fall back to margin-anchored.
if competitor_avg_price is set:
  suggested_price = competitor_avg_price * positioning_multiplier
  #   value-priced   -> 0.6 to 0.8
  #   mid-market     -> 0.9 to 1.1
  #   premium        -> 1.5 to 2.0
else:
  suggested_price = cost_per_user * (1 / (1 - target_gross_margin)) * 1.5
  # 1.5x margin floor as a default headroom

suggested_price = max(suggested_price, price_floor)
price_ceiling   = max(competitor_avg_price * 2.5, suggested_price * 1.5)

4. Assumptions

  • Two-constraint floor. Price must clear both the gross-margin constraint (cost coverage) and the CAC-payback constraint (recover acquisition in the target window). Whichever binds more tightly is the floor.
  • Competitor-anchored preferred over margin-anchored when a real competitor set exists — buyers compare to a reference price before they compare to your cost structure.
  • Positioning multiplier is editorial. Value (0.6–0.8×), mid-market (0.9–1.1×), premium (1.5–2.0×) reflect the pattern of published micro-SaaS pricing across Indie Hackers, MicroAcquire listings, and the OpenView 2024 sample. They are not statistically calibrated.
  • Ceiling is a fence, not a forecast. A 2.5× competitor multiple rarely survives contact with buyers; the ceiling exists to flag experiments, not to encourage them.
  • Per-user pricing model. Tiered or usage-metered products need to be sliced by tier and run through the engine once per tier.

5. Data sources

6. Known limitations

  • No willingness-to-pay model. Cost structure tells you the floor; buyer psychology sets the ceiling. Pair the suggested price with 5–10 customer interviews and an A/B pricing test before committing.
  • Competitor anchor quality depends on the user. A bad competitor set (wrong segment, outdated pricing, anchor-priced loss leaders) produces a bad suggested price.
  • No psychological pricing. The engine does not round to .95 / .99 thresholds or model anchoring effects.
  • No multi-seat or per-feature modelling. Enterprise products with negotiated contracts need custom scaffolding on top of the output.

7. Reproducibility

Input
costPerUser = $2, targetMargin = 80%, targetPayback = 12, cac = $80, competitorAvg = $29, positioning = mid-market.

Expected output
margin_floor = $10, payback_floor ≈ $8.33, price_floor = $10. Competitor-anchored mid-market suggestion ≈ $29 × 1.0 = $29. Ceiling ≈ max($29 × 2.5, $29 × 1.5) = $72.50.

8. Change log

  • 2026-04-24methodology page first published. Two-constraint floor and positioning-multiplier logic documented.
Business planning estimates — not legal, tax, or accounting advice.