Nine fields, one formula, no baked rates

The counted bill, re-rendered on your numbers

Every field below is a number you copy from the vendor's own pricing page — the seat price with its as-of date, the plan minimum that floors the billable seat count, the included units and the overage rate published somewhere other than the sticker. Where the lines hide: the minimum-seat rule usually sits under the tier row or in the FAQ, and the included-units allowance usually lives in the billing docs, not on the plan card. Date-stamp what you paste; the pricing page is the spec sheet, and this box is the arithmetic that reads it. Once the fields are filled, the lines under the answer tell you which meter runs the bill — seat, platform or overage.

Annual cost = ( max(paid seats, plan minimum seats) × seat price + platform fee + max(0, usage − included units) × overage rate ) × months × (1 − discount)

  • seats — 8, seat price — $15/host/mo, months — 12 $1,440.00 a year — 8 hosts on an infra meter, no minimum, no overage (rates as dated in the monitoring article, 28 Sep 2026)
  • platform fee — $19/mo, usage over allowance — 325 − 10 = 315 units at $6.50, months — 12 $24,798.00 a year — the overage line is 99.1% of it ($2,047.50 of a $2,066.50 month)
  • seats — 10, seat price — $90/seat/mo, months — 12 $10,800.00 a year — the seat line is the whole bill; nothing else moves it

Worked before your eyes

Three bills this site already counted

The three examples are not hypotheticals. Each re-renders a counted bill already published in an AprLine article, at that article's rates and dates. Type the row into the fields above and the calculator reproduces the published figure to the cent. Price per seat is a rumor until you count the seats; these are the counts.

  1. 8 hosts, one meter: $1,440 a year

    The Datadog infrastructure line only, at the Pro annual rate of $15 per host per month (vendor page, 28 September 2026): max(8, 0) × $15 = $120.00 a month, $1,440.00 a year — the same $120.00 line the monitoring comparison counts. A pure seat meter: leave the platform fee, the units and the discount at zero, and the seat line is the whole bill.
    Monitoring for a 10-Service Stack (2026): Datadog vs Grafana Cloud — Usage-Based Pricing, and What Your Stack Actually Costs Per Month
  2. A $19 platform fee and a meter that dwarfs it: $24,798 a year

    Grafana Cloud Pro’s metrics line, in thousands-of-billable-series units, at the $19 monthly platform fee and $6.50 per 1,000 series (vendor page, 28 September 2026): platform $19.00 plus overage (325 − 10) × $6.50 = $2,047.50, so $2,066.50 a month and $24,798.00 a year. The overage line is 99.1% of the monthly bill — the dominant meter in one row, and the reason a $19 plan card is not a $19 bill.
    Monitoring for a 10-Service Stack (2026): Datadog vs Grafana Cloud — Usage-Based Pricing, and What Your Stack Actually Costs Per Month
  3. Ten CRM seats, annual billing: $10,800 a year

    HubSpot Sales Hub Professional at $90 per seat per month on annual billing (vendor page, September 2026): max(10, 0) × $90 = $900.00 a month, $10,800.00 a year — the counted line of the ten-person CRM comparison. Zero everything else; when the seat line is the only line, the renewal is a headcount conversation.
    Salesforce vs HubSpot for a 10-Person Sales Team (2026): The 3-Year TCO, Named Add-On Stack, and the Migration Wall

Questions the fields raise

Before you count

Does annual prepay always beat monthly?
It wins only when the months and the meters are predictable. The discount is one field here; the forecast is another. At 8 seats by $15 with nothing else moving, annual billing is the same twelve months you were going to buy anyway, priced at the page’s own annual rate ($15 per host per month annual against $18 monthly, 28 September 2026). Prepay a usage line that may not exist in March and you have bought a discount on units you never sent. Where the page prices the choice in type — Ahrefs prints save up to 17% on its own page, 28 September 2026 — put that fraction in the discount field and keep your usage forecast honest in the usage field.

SEO Tools (2026): Ahrefs vs Semrush vs Moz — The Dated Tier-Inclusion Matrix, and What a 10-Domain Client Actually Costs

What if my vendor has two meters — seats and usage?
Then you have two meters, and this calculator keeps them in separate lines: the seat line is max(paid seats, plan minimum) × seat price, and the overage line is max(0, usage − included) × overage rate. The monitoring comparison is that shape taken to five meters at once — its bill is decided by a different meter on each vendor. Email pricing is the cautionary version: the same 30,000-name list is an audience, a contact and a marketing contact at three vendors (checked 28 September 2026), and the number you type into the usage fields has to be the vendor’s unit, not yours.

Email Marketing for B2B (2026): Mailchimp vs Brevo vs HubSpot — The Per-Recipient Cost Curve Your List Size Puts You On

Why does the minimum-seat floor matter?
Because the billable seat count is a max(), not your headcount: a five-person team on a plan with a ten-seat minimum is billed for ten. In the 30-page pricing audit the pattern shows up as tier-fixed seat counts (QuickBooks sells 1/3/5/25 per tier, 26 September 2026) and as monthly minimums (Deputy’s $30 minimum per invoice, since 1 September 2025). Type the minimum into the second field; the first line under the answer is the floor that will appear on the invoice even if your team stays smaller.

What 30 SaaS Pricing Pages Actually Say (2026): The Seat, Usage, and Free-Tier Patterns Across the Tools Small Teams Buy

Engine spec (machine-readable mirror of the formula above)
{
  "engine": "calculator",
  "spec_version": 1,
  "locale": "en",
  "title": "SaaS counted-bill calculator",
  "inputs": [
    {
      "id": "seats",
      "label": "Paid seats (people on the plan)",
      "unit": "seats",
      "min": 0,
      "max": 10000,
      "number": true
    },
    {
      "id": "minseats",
      "label": "Plan minimum billable seats (0 if none)",
      "unit": "seats",
      "min": 0,
      "max": 10000,
      "number": true
    },
    {
      "id": "seatprice",
      "label": "Seat price per month (USD, as dated on the vendor page)",
      "unit": "USD/seat/mo",
      "min": 0,
      "max": 100000,
      "number": true
    },
    {
      "id": "platformfee",
      "label": "Flat platform/account fee per month (0 if none)",
      "unit": "USD/mo",
      "min": 0,
      "max": 1000000,
      "number": true
    },
    {
      "id": "includedunits",
      "label": "Usage units included per month (0 if pure per-seat)",
      "unit": "units/mo",
      "min": 0,
      "max": 100000000,
      "number": true
    },
    {
      "id": "usageunits",
      "label": "Expected usage per month, same units",
      "unit": "units/mo",
      "min": 0,
      "max": 100000000,
      "number": true
    },
    {
      "id": "unitrate",
      "label": "Overage rate per unit above the allowance",
      "unit": "USD/unit",
      "min": 0,
      "max": 100000,
      "number": true
    },
    {
      "id": "months",
      "label": "Billing months paid per year",
      "unit": "months",
      "min": 1,
      "max": 12,
      "default": 12,
      "number": true
    },
    {
      "id": "discount",
      "label": "Annual-prepay discount as a fraction of price (0.1667 = two months free)",
      "unit": "fraction",
      "min": 0,
      "max": 1,
      "number": true
    }
  ],
  "formula": "(max(seats, minseats) * seatprice + platformfee + max(0, usageunits - includedunits) * unitrate) * months * (1 - discount)",
  "formula_text": "Annual cost = ( max(paid seats, plan minimum seats) × seat price + platform fee + max(0, usage − included units) × overage rate ) × months × (1 − discount)",
  "outputs": [
    {
      "id": "annual",
      "format": "number",
      "decimals": 2
    }
  ],
  "steps": [
    {
      "label": "Seats actually billed (minimum-seat floor)",
      "expression": "max(seats, minseats)"
    },
    {
      "label": "Seat line per month",
      "expression": "max(seats, minseats) * seatprice"
    },
    {
      "label": "Platform line per month",
      "expression": "platformfee"
    },
    {
      "label": "Overage line per month",
      "expression": "max(0, usageunits - includedunits) * unitrate"
    },
    {
      "label": "Monthly total before any discount",
      "expression": "max(seats, minseats) * seatprice + platformfee + max(0, usageunits - includedunits) * unitrate"
    }
  ],
  "worked_examples": [
    {
      "inputs": {
        "seats": 8,
        "minseats": 0,
        "seatprice": 15,
        "platformfee": 0,
        "includedunits": 0,
        "usageunits": 0,
        "unitrate": 0,
        "months": 12,
        "discount": 0
      },
      "expected_output": 1440,
      "source_ref": "monitoring-usage-based-pricing__tobias-wren"
    },
    {
      "inputs": {
        "seats": 0,
        "minseats": 0,
        "seatprice": 0,
        "platformfee": 19,
        "includedunits": 10,
        "usageunits": 325,
        "unitrate": 6.5,
        "months": 12,
        "discount": 0
      },
      "expected_output": 24798,
      "source_ref": "monitoring-usage-based-pricing__tobias-wren"
    },
    {
      "inputs": {
        "seats": 10,
        "minseats": 0,
        "seatprice": 90,
        "platformfee": 0,
        "includedunits": 0,
        "usageunits": 0,
        "unitrate": 0,
        "months": 12,
        "discount": 0
      },
      "expected_output": 10800,
      "source_ref": "salesforce-vs-hubspot-ten-person-sales-team__wesley-brant"
    }
  ],
  "no_js_fallback": {
    "formula_text": "Annual cost = ( max(paid seats, plan minimum seats) × seat price + platform fee + max(0, usage − included units) × overage rate ) × months × (1 − discount)",
    "examples": [
      {
        "inputs": [
          {
            "label": "seats",
            "value": "8"
          },
          {
            "label": "seat price",
            "value": "$15/host/mo"
          },
          {
            "label": "months",
            "value": "12"
          }
        ],
        "output": "$1,440.00 a year — 8 hosts on an infra meter, no minimum, no overage (rates as dated in the monitoring article, 28 Sep 2026)"
      },
      {
        "inputs": [
          {
            "label": "platform fee",
            "value": "$19/mo"
          },
          {
            "label": "usage over allowance",
            "value": "325 − 10 = 315 units at $6.50"
          },
          {
            "label": "months",
            "value": "12"
          }
        ],
        "output": "$24,798.00 a year — the overage line is 99.1% of it ($2,047.50 of a $2,066.50 month)"
      },
      {
        "inputs": [
          {
            "label": "seats",
            "value": "10"
          },
          {
            "label": "seat price",
            "value": "$90/seat/mo"
          },
          {
            "label": "months",
            "value": "12"
          }
        ],
        "output": "$10,800.00 a year — the seat line is the whole bill; nothing else moves it"
      }
    ]
  }
}