{
  "slug": "reserved-vs-on-demand-savings",
  "title": "Reserved vs On-Demand Cloud Savings Calculator",
  "heading": "Reserved Instance vs On-Demand Savings Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/reserved-vs-on-demand-savings",
  "summary": "See the break-even point and total savings from committing to reserved capacity.",
  "description": "Reserved instances, savings plans, and committed-use discounts trade a usage commitment for a lower hourly rate, but they only pay off if your usage stays above the committed level for the full term. This calculator compares total on-demand cost against total reserved cost (including any upfront payment) over the commitment term, and reports the break-even utilization — the minimum percentage of time the instance needs to run for the reservation to beat paying on-demand. It also flags the total dollar savings at your entered utilization rate. The number that trips people up is the break-even utilization: a 1-year no-upfront reservation typically breaks even around 55-65% utilization, meaning you come out ahead even if the instance sits idle over a third of the time, which is why reservations make sense for baseline production load even with some slack for variability.",
  "formula": "On-demand total = hourly × 8760 × term years × utilization%; reserved total = upfront + (reserved hourly × 8760 × term years × utilization%).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=reserved-vs-on-demand-savings",
  "inputs": [
    {
      "id": "onDemandRate",
      "label": "On-demand hourly rate",
      "kind": "number",
      "hint": null,
      "default": 0.192,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "reservedRate",
      "label": "Reserved hourly rate",
      "kind": "number",
      "hint": null,
      "default": 0.116,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "upfront",
      "label": "Upfront payment",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "termYears",
      "label": "Commitment term",
      "kind": "number",
      "hint": null,
      "default": 1,
      "unit": "years",
      "min": 1,
      "max": 3
    },
    {
      "id": "utilization",
      "label": "Expected utilization",
      "kind": "number",
      "hint": null,
      "default": 90,
      "unit": "%",
      "min": 1,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "savings",
      "label": "Total savings over term",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "savingsPct",
      "label": "Savings percentage",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "onDemandTotal",
      "label": "On-demand total cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "reservedTotal",
      "label": "Reserved total cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "breakEvenUtil",
      "label": "Break-even utilization needed",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "On-demand hourly rate: 0.192 $",
      "Reserved hourly rate: 0.116 $",
      "Upfront payment: 0 $",
      "Commitment term: 1 years",
      "Expected utilization: 90 %"
    ],
    "outputs": [
      "Total savings over term: $599.18",
      "Savings percentage: 39.6%",
      "On-demand total cost: $1,513.73",
      "Reserved total cost: $914.54",
      "Break-even utilization needed: 0.0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter on-demand hourly rate ($).",
      "Enter reserved hourly rate ($).",
      "Enter upfront payment ($).",
      "Enter commitment term (years).",
      "Enter expected utilization (%).",
      "Read your total savings over term 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": {
        "onDemandRate": 0.1152,
        "reservedRate": 0.0696,
        "upfront": 0,
        "termYears": 1,
        "utilization": 54
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "onDemandRate": 0.192,
        "reservedRate": 0.116,
        "upfront": 0,
        "termYears": 1,
        "utilization": 90
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "onDemandRate": 0.30720000000000003,
        "reservedRate": 0.18560000000000001,
        "upfront": 0,
        "termYears": 2,
        "utilization": 100
      }
    }
  ],
  "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": "What utilization number should I actually enter?",
      "a": "Use the minimum sustained usage you're confident about, not your peak or average — pull 90 days of CloudWatch/Monitoring data on the specific instance family and region you're committing to. Committing based on peak-season traffic that doesn't hold up the rest of the year is the most common way reservations end up costing more than on-demand."
    },
    {
      "q": "Are savings plans better than standard reserved instances?",
      "a": "Compute savings plans apply the discount automatically across any instance family, size, OS, or region in exchange for committing to a dollar-per-hour spend rather than a specific instance, offering similar discounts (typically within a few percentage points) with much more flexibility. Standard RIs are only worth choosing over savings plans when you get an instance-size-flexibility or capacity-reservation guarantee that a savings plan doesn't provide."
    },
    {
      "q": "Why is the 3-year discount so much bigger than 1-year?",
      "a": "The provider is pricing in the time value of your commitment and locking in demand further out, so a 3-year all-upfront term often prices near 60-72% off on-demand versus 30-40% for 1-year no-upfront. Only take the 3-year term for genuinely stable baseline workloads — architecture and instance-family needs change more than teams expect over three years."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/cloud-vm-monthly-cost",
    "https://www.revenuelab.fyi/toolbox/cloud-vs-colo-tco",
    "https://www.revenuelab.fyi/toolbox/kubernetes-node-bin-packing"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Reserved vs On-Demand Cloud Savings Calculator (https://www.revenuelab.fyi/toolbox/reserved-vs-on-demand-savings)"
}