Interactive calculator · the counted bill, not the sticker
SaaS Counted-Bill Calculator: What a Seat-or-Usage Tool Actually Costs for a Year
Nine fields, one formula: billable seats with plan minimums, flat platform fee, included units and overage, annual-prepay discount. Every rate is yours, dated from the vendor's own pricing page — no vendor price is baked into the tool.
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.
-
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 -
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 -
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?
What if my vendor has two meters — seats and usage?
Why does the minimum-seat floor matter?
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"
}
]
}
}