Skip to content

Add pricing_formula YAML schema (prereq for interactive cost calculator) #10

Description

@Surfrrosa

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):

  • Resend, Postmark

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions