Azure Service Bus pricing depends on the tier: operations per million in Basic, an hourly base charge plus tiered operations and brokered connections in Standard, messaging units per hour in Premium; Event Hubs bills throughput units or processing units per hour plus ingress events per million, and capacity units per hour in the Dedicated tier; Event Grid bills operations per million and, for namespaces, throughput units per hour on top. What usually dominates the bill is the capacity that runs by the hour: messaging units, throughput units, processing units and capacity units are billed on the highest number allocated in each hour, whether or not messages flow.
Pricing dimensions
The three services share one pattern: a tier billed purely on operations or events, and above it tiers with capacity bought in advance by the hour. The table lists, per dimension, what Microsoft meters, the unit, what drives consumption and where the dimension is optional.
| Service and tier | What is metered | Unit | What drives it | Optional |
|---|---|---|---|---|
| Service Bus Basic | Messaging operations | per 1 million operations | Every API call; a send, receive or delete of a message up to 64 KB is one operation, larger messages count per started 64 KB | Queues only, messages up to 256 KB |
| Service Bus Standard | Base charge | per hour, once per subscription that holds a Standard namespace | Runs as long as a Standard namespace exists; includes 13 million operations per month | No |
| Service Bus Standard | Operations beyond 13 million | per 1 million, tiered at 13 million, 100 million and 2,500 million per month | Messages, deliveries per topic subscription (fan-out counts once per subscription), lock renewals | No |
| Service Bus Standard | Brokered connections | per connection and month, the first 1,000 included, tiered at 100,000 and 500,000 | Concurrent AMQP connections; HTTP calls open no connection | Yes, through the protocol |
| Service Bus Premium | Messaging units | per MU and hour on the highest count in the hour; 1, 2, 4, 8 or 16 MUs, with partitioning MUs times partitions | Throughput and isolation; no operation and no connection charge up to the purchased capacity, messages up to 100 MB | Geo-replication: MUs per replica plus GB per zone |
| Event Hubs Basic and Standard | Throughput units | per TU and hour on the highest count in the hour; 1 MB/s or 1,000 events/s ingress and 2 MB/s or 4,096 events/s egress per TU, 84 GB of storage per TU | Peak load of the namespace; auto-inflate only scales up and is free | Up to 40 TUs per namespace |
| Event Hubs Basic and Standard | Ingress events | per 1 million, one event per started 64 KB | Events sent; consumption, checkpoints and management calls are free but count against TU capacity | No |
| Event Hubs Standard | Capture | per purchased TU and hour | On as soon as one event hub in the namespace uses Capture; the destination storage account pays its own transactions and GB | Yes |
| Event Hubs Premium | Processing units | per PU and hour; 1, 2, 4, 6, 8, 10, 12 or 16 PUs | Isolated CPU and memory; 1 TB of storage per PU and up to 90 days of retention included, ingress events not metered separately | Extended retention per GB and month |
| Event Hubs Dedicated | Capacity units | per CU and hour, at least four hours per cluster; 1 to 10 CUs self-service | A single-tenant cluster; ingress and Capture included, 10 TB per CU | Extended retention per GB and month |
| Event Grid Basic | Operations | per 1 million, the first 100,000 per month free, one operation per started 64 KB | Published events, delivery attempts and advanced filters on the payload; event type matching and subject-begins-with are free, one day of retention included | No |
| Event Grid Standard (namespaces) | Throughput units | per TU and hour | Ingress and egress capacity of the namespace for HTTP and MQTT; autoscale between a minimum and a maximum | No |
| Event Grid Standard (namespaces) | Event operations and MQTT operations | per 1 million, the first million per month free for each kind | HTTP events on namespace topics, MQTT messages; retention up to seven days included | No |
| Purchase options | No reservations and no savings plans for these three services; EA and MCA discounts apply to the list prices | On-demand pricing |
Two rules hold across all three services. First, the billing unit for a message or event is a 64 KB block, so a 96 KB message counts as two operations or two ingress events. Second, data transfer within the region and inbound is free; data leaving the region runs on the bandwidth meters, and geo-replication on Service Bus Premium and Event Hubs carries its own GB charge per zone.
How it appears in your billing data
In the cost export the lines carry the MeterCategory values Service Bus, Event Hubs and Event Grid; ConsumedService is Microsoft.ServiceBus, Microsoft.EventHub or Microsoft.EventGrid, and the ResourceId ends in the namespace, the topic, the system topic or the domain. The meters are named as in the price list: for Service Bus Basic Messaging Operations, Standard Base Unit, Standard Messaging Operations, Standard Brokered Connection and Premium Messaging Unit, plus Hybrid Connections Listener Unit, Hybrid Connections Data Transfer, WCF Relay and WCF Relay Message for the relay features and Geo Replication Zone 1 Data Transfer for replication. Event Hubs uses Basic Throughput Unit, Standard Throughput Unit, Basic Ingress Events, Standard Ingress Events, Standard Capture, Standard Kafka Endpoint, Premium Processing Unit, Premium Extended Retention, Dedicated Capacity Unit and Dedicated Extended Retention. Event Grid carries Standard Operations per 100,000 (the first 100,000 free, which identifies the Basic tier), Standard Event Operations and Standard MQTT Operations per million with the first million free, and Standard Throughput Unit per hour for namespaces.
One line needs explaining, and the Service Bus FAQ does so: the Standard base charge is not a resource charge but a charge per subscription. It therefore appears under the resource group $system with the resource /subscriptions/…/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system, not on the namespace a team runs. Anyone allocating cost by resource group or tag has to spread that line across the subscription's Standard namespaces by rule; the page on Azure cost exports describes the fields that make this possible.
Billed on other meters are outbound data transfer from the region (MeterCategory Bandwidth), the storage account that Event Hubs Capture writes to (the account's storage meters), private endpoints for Premium namespaces (Private Link meters) and the diagnostic logs a namespace sends to a Log Analytics workspace. In the FOCUS export ServiceName carries the meter's service name, x_SkuMeterName the meter name, and ChargeCategory is Usage for every line named here, because none of the three services has an upfront purchase; the columns are explained under FOCUS columns.
Levers
Configuration:
- Tier by load profile. Standard bills operations, Premium bills capacity. At a steady high volume or with large messages Premium undercuts the operation tiers; at a few million operations a month Standard with its base charge stays the smaller bill. The example below shows the ratio; how to decide from measurement is the subject of rightsizing.
- Capacity by the hour's peak. MUs, TUs, PUs and CUs are billed on the highest count in each hour; scaling up for ten minutes costs the full hour. Automatic scaling of messaging units and auto-inflate of throughput units with a ceiling belong to scheduling and auto-scaling.
- Message size and filters. Messages just under 64 KB count once, just over it twice. On Event Grid advanced filters on the payload cost an operation per evaluation, filters on event type and subject prefix do not.
- Capture only where it is used. Capture is billed per purchased TU and hour for the whole namespace as soon as one event hub uses it; a namespace with one Capture hub and many others pays for all its TUs.
Purchase option:
- No commitments. Service Bus, Event Hubs and Event Grid have neither reservations nor savings plans. The price falls only through contract discounts on list prices (on-demand pricing) or through smaller capacity.
Architecture:
- Consolidate namespaces. TUs and PUs apply per namespace and are shared by every event hub in it; the Service Bus Standard base charge applies per subscription. Many small namespaces across many subscriptions each pay their base capacity. The trade-off belongs to architecture choices and cost.
- Region of the consumers. A consumer in another region pulls every message across the bandwidth meters; the page on bandwidth and networking pricing has the tiers.
- Remove empty capacity. A Premium namespace with one MU or a Dedicated cluster left after a project keeps billing by the hour; both belong in the search for idle and orphaned resources.
Where it goes wrong
- A line with no resource. Symptom: a Service Bus charge under
$systemthat no team recognises. Cause: the Standard base charge is booked per subscription, not per namespace; check which subscriptions hold Standard namespaces and spread the line by allocation rule. - Operations counted twice. Symptom: operations far exceed the number of messages sent. Cause: every delivery to a topic subscription counts separately, every lock renewal counts, and messages over 64 KB count more than once; measure message size and subscriptions per topic.
- A full hour for a short peak. Symptom: MU or TU hours above what the average load explains. Cause: billing takes the highest count in the hour; an autoscaler that briefly scales up often pays each of those hours in full.
- Capture for the whole namespace. Symptom: a Capture line higher than the TU hours themselves. Cause: Capture is billed per purchased TU as soon as one event hub in the namespace enables it; move Capture hubs into their own namespace or check whether the export to the storage account is still needed.
- A Dedicated cluster with no load. Symptom: constant CU hours on an empty cluster. Cause: a Dedicated cluster is billed from creation, for at least four hours, regardless of namespaces and events.
- Event Grid delivery attempts. Symptom: operations grow while the number of events stays flat. Cause: an unreachable endpoint makes Event Grid retry with backoff for up to 24 hours, and every attempt is an operation; check dead-lettering and the handler's availability.
Example
List prices from the Azure Retail Prices API in EUR for Germany West Central, read on 2026-10-21: an Event Hubs Standard throughput unit costs EUR 0.026399 per hour, ingress events EUR 0.024639 per million, Capture EUR 0.087997 per TU and hour; Service Bus Standard costs EUR 0.011828 per hour as base charge and EUR 0.703977 per million operations in the 13 to 100 million tier, a Premium messaging unit EUR 0.816174 per hour; Event Grid bills EUR 0.052798 per 100,000 operations after the first 100,000 of the month. A namespace with two TUs over 730 hours costs EUR 38.54, 500 million ingress events EUR 12.32, and Capture on the same two TUs EUR 128.48; a Service Bus Standard namespace with 50 million operations costs EUR 8.63 base charge plus EUR 26.05 for the 37 million above the included amount, while a single Premium MU for the month costs EUR 595.81. The figures show that on Event Hubs it is Capture rather than the stream that drives the line, and that Service Bus Premium only undercuts the operation tiers at volumes far above the example.
Sources
Read on 2026-10-21. Microsoft: Service Bus pricing, Service Bus FAQ, Service Bus premium messaging, Event Hubs pricing, Event Hubs FAQ, Event Hubs scalability, Event Hubs Dedicated, Event Grid pricing, Event Grid tiers, Event Grid namespaces, Cost details fields, FOCUS cost export schema. Prices: Azure Retail Prices API, EUR, Germany West Central, queries for Service Bus, Event Hubs and Event Grid.