{
  "slug": "usage-based-revenue-forecast",
  "title": "Usage-Based Revenue Forecast Calculator",
  "heading": "Usage-Based Pricing Revenue Forecast Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/usage-based-revenue-forecast",
  "summary": "Forecast consumption revenue from usage volume, growth rate, and unit pricing.",
  "description": "Usage-based pricing ties revenue directly to consumption (API calls, compute, data processed, messages sent), which means revenue forecasting looks more like a supply-chain or infrastructure model than a traditional seat-based SaaS forecast. This calculator projects revenue from current usage volume, an assumed usage growth rate, and price per unit, and layers in a simple churn-adjustment for accounts that stop using the product entirely versus those that keep growing consumption. Usage-based models tend to have higher revenue volatility than seat-based or flat-fee models because consumption can spike or drop with a customer's own business cycle, independent of any relationship health signal — a customer can be perfectly happy and still use less of your product in a slow month. This is why usage-based SaaS companies increasingly report both NRR and a 'net revenue retention excluding usage variance' metric internally, to separate genuine account health from short-term consumption noise.",
  "formula": "Forecast Revenue = Current Usage Volume × (1 + Growth Rate) × Price per Unit × Retention Adjustment",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=usage-based-revenue-forecast",
  "inputs": [
    {
      "id": "currentUsage",
      "label": "Current monthly usage volume (units)",
      "kind": "number",
      "hint": null,
      "default": 50000000,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "pricePerUnit",
      "label": "Price per 1,000 units",
      "kind": "number",
      "hint": null,
      "default": 0.8,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "monthlyGrowthRate",
      "label": "Monthly usage growth rate",
      "kind": "number",
      "hint": null,
      "default": 6,
      "unit": "%",
      "min": -50,
      "max": 100
    },
    {
      "id": "accountChurn",
      "label": "Monthly account churn rate (fully stopped usage)",
      "kind": "number",
      "hint": null,
      "default": 2,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "months",
      "label": "Forecast horizon",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "months",
      "min": 1,
      "max": 60
    }
  ],
  "outputs": [
    {
      "id": "totalRevenue",
      "label": "Cumulative forecast revenue",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "currentMrr",
      "label": "Current monthly revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "endingMrr",
      "label": "Projected ending monthly revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "endingVolume",
      "label": "Projected ending usage volume",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Current monthly usage volume (units): 50000000",
      "Price per 1,000 units: 0.8 $",
      "Monthly usage growth rate: 6 %",
      "Monthly account churn rate (fully stopped usage): 2 %",
      "Forecast horizon: 12 months"
    ],
    "outputs": [
      "Cumulative forecast revenue: $620,072",
      "Current monthly revenue: $40,000",
      "Projected ending monthly revenue: $63,160",
      "Projected ending usage volume: 78,950,211"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter current monthly usage volume (units).",
      "Enter price per 1,000 units ($).",
      "Enter monthly usage growth rate (%).",
      "Enter monthly account churn rate (fully stopped usage) (%).",
      "Enter forecast horizon (months).",
      "Read your cumulative forecast revenue on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "currentUsage": 30000000,
        "pricePerUnit": 0.48,
        "monthlyGrowthRate": 3.5999999999999996,
        "accountChurn": 1.2,
        "months": 7
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "currentUsage": 50000000,
        "pricePerUnit": 0.8,
        "monthlyGrowthRate": 6,
        "accountChurn": 2,
        "months": 12
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "currentUsage": 80000000,
        "pricePerUnit": 1.2800000000000002,
        "monthlyGrowthRate": 9.600000000000001,
        "accountChurn": 3.2,
        "months": 19
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why apply account churn to a usage forecast?",
      "a": "Even in a usage-based model, some accounts stop entirely (contract ends, project shuts down, they migrate to a competitor), and that's different from an active account simply using less this month. Modeling churn separately from organic usage growth avoids over- or under-stating your baseline retention."
    },
    {
      "q": "How volatile is usage-based revenue compared to seat-based?",
      "a": "Meaningfully more volatile month to month, since usage tracks a customer's own business activity (seasonality, project timelines, one-time migrations) rather than a relatively sticky headcount number. Forecast usage-based revenue with wider confidence bands and shorter re-forecast cycles than you would a seat-based model."
    },
    {
      "q": "What pricing lever matters most for usage-based revenue growth?",
      "a": "Usually it's driving deeper product adoption within existing accounts (more use cases, more integrations) rather than raising per-unit price, since usage-based customers are price-sensitive to marginal cost by design and steep price hikes push them to optimize usage down rather than pay more."
    },
    {
      "q": "Should I report ARR for a usage-based business the same way?",
      "a": "Many usage-based companies report ARR as annualized run-rate (current month times 12) rather than contracted ARR, since there may be no fixed contract minimum. Be explicit about which definition you're using — 'run-rate ARR' versus 'committed ARR' — because they can diverge significantly and investors will ask."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/seat-expansion-revenue",
    "https://www.revenuelab.fyi/toolbox/expansion-revenue-rate",
    "https://www.revenuelab.fyi/toolbox/saas-gross-margin"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Usage-Based Revenue Forecast Calculator (https://www.revenuelab.fyi/toolbox/usage-based-revenue-forecast)"
}