Why
The recommendation engine currently surfaces static cost_at_scale columns (100 / 1K / 10K / 100K users) per tool. These are useful but bucketed — they can't answer "what does this stack cost for my specific traffic + email + AI usage?"
An interactive cost calculator would replace the static columns with a user-input form that recomputes per-tool spend from pricing formulas. This is the genuinely differentiating feature; every other "SaaS stack comparison" article ships static buckets.
The blocker is that tool YAMLs don't currently store the pricing formula, only the bucketed outputs. This issue tracks adding the schema.
Proposed schema
Add an optional pricing_formula block to tool YAMLs:
pricing_formula:
type: "flat" | "per_unit" | "tiered" | "percentage"
base_monthly: 25 # required for flat/tiered
free_tier_unit: "events" # what the metric is
free_tier_amount: 1_000_000 # included for free
paid_overage_per_unit: 0.00005 # cost per unit above free_tier_amount
tier_breakpoints: # optional for tiered pricing
- { up_to: 2_000_000, rate: 0.00005 }
- { up_to: 10_000_000, rate: 0.00003 }
- { up_to: 100_000_000, rate: 0.00002 }
per_user_seat: 20 # for per-seat tools (Vercel Pro, Cursor)
transaction_pct: 0.029 # for payment processors (Stripe = 0.029)
transaction_flat: 0.30 # Stripe = $0.30/tx
Not every tool needs all fields. Keep it sparse; the calculator can degrade gracefully when fields are missing.
Tools that need formulas (rough scope, ~15)
Payments (formula = transaction-based):
- Stripe, Lemon Squeezy, Paddle
Hosting (flat + bandwidth overage):
- Vercel, Railway, Hetzner/Coolify
Database (tiered + overage):
- Supabase, Neon, PocketBase
Auth (MAU-tiered or per-MAU):
- Supabase Auth, Clerk, Better-Auth
Email (volume-tiered):
Analytics (event-volume-tiered):
- PostHog, Plausible, Umami
AI APIs (per-token):
- OpenAI API, Anthropic API
Out of scope for this issue
- Building the calculator UI itself (separate issue once the schema is in)
- Adding a new
shared/cost-projection.js module (same)
- Migrating existing
cost_at_scale buckets (can keep both for now; calculator phases out the static columns over time)
Context
Originally queued in session 2 (2026-05-19) and re-flagged in session 3 (2026-06-04) as the blocker for the interactive calculator. Estimated ~2-3 hours to design the schema thoroughly and add formulas to all ~15 priority tools.
Why
The recommendation engine currently surfaces static
cost_at_scalecolumns (100 / 1K / 10K / 100K users) per tool. These are useful but bucketed — they can't answer "what does this stack cost for my specific traffic + email + AI usage?"An interactive cost calculator would replace the static columns with a user-input form that recomputes per-tool spend from pricing formulas. This is the genuinely differentiating feature; every other "SaaS stack comparison" article ships static buckets.
The blocker is that tool YAMLs don't currently store the pricing formula, only the bucketed outputs. This issue tracks adding the schema.
Proposed schema
Add an optional
pricing_formulablock to tool YAMLs:Not every tool needs all fields. Keep it sparse; the calculator can degrade gracefully when fields are missing.
Tools that need formulas (rough scope, ~15)
Payments (formula = transaction-based):
Hosting (flat + bandwidth overage):
Database (tiered + overage):
Auth (MAU-tiered or per-MAU):
Email (volume-tiered):
Analytics (event-volume-tiered):
AI APIs (per-token):
Out of scope for this issue
shared/cost-projection.jsmodule (same)cost_at_scalebuckets (can keep both for now; calculator phases out the static columns over time)Context
Originally queued in session 2 (2026-05-19) and re-flagged in session 3 (2026-06-04) as the blocker for the interactive calculator. Estimated ~2-3 hours to design the schema thoroughly and add formulas to all ~15 priority tools.