Skip to content
DoctorDO

Costs · Azure list prices on 18 October 2026

What DoctorDO costs to run, in your own subscription.

DoctorDO is free to use; you pay only for the Azure resources it runs on. Microsoft bills them to your subscription. At the size of the ContosoAI demo, 46,000 devices, at 41 sites in 16 countries and working remotely, that is about $316 a month.

The demo’s size, a month

$316.02

46,000 devices, daily reports, PostgreSQL D2ds_v5

Per device per month
$0.0069
The largest line, PostgreSQL compute
$144.54
Reports a month
1.6 million

Estimate from Azure list prices on 18 October 2026, North Europe (the Static Web App in West Europe); your bill depends on your usage, agreements, and region. In US dollars; the calculator also shows pounds and euros.

Estimate

Your estate, your estimate.

Change the number of devices, how often they report, the database size, and the AI briefing. The sums are worked out in this page, from the prices it carries, and nothing you enter is sent anywhere.

Four estates, each with daily reports, the suggested database, and no AI briefing

The demo’s size, worked through. The choices below work once the page has loaded.

The ContosoAI demo has 46,000. Type any number up to 500,000; the slider runs to 150,000.

How often devices report

The Intune remediation’s documented schedule. Each device sends one telemetry report a day, and an inventory weekly and when it changes.

The template’s four sizes. B1ms is its default; it suggests General Purpose for production.

AI briefing

Currency

GBP and EUR are the Retail Prices API’s own prices, which Microsoft converts from US dollars each month.

A month, 46,000 devices

$316.02

$0.0069 per device per month

In US dollars, with daily reports, PostgreSQL D2ds_v5, and the AI briefing off.

The biggest costs

  1. PostgreSQL flexible server46 %
  2. Function Apps (ingest and processor)25 %
  3. PostgreSQL storage and backup10 %

Estimate from Azure list prices on 18 October 2026, North Europe (the Static Web App in West Europe); your bill depends on your usage, agreements, and region. Price it in the Azure pricing calculator (opens in a new tab)

What each resource costs

Every resource one deployment creates, with the template’s defaults. Prices in US dollars, before tax.

  • Static Web App (the portal)$9.00

    Standard, West Europe

    A fixed charge per app. The first 100 GB of bandwidth a month in the subscription is included.

    1 app

  • Ingest Function App$37.93

    Flex Consumption, 2,048 MB

    Time spent handling reports, billed at least one second each time an instance starts work, and executions. Free grant: 100,000 GB-s and 250,000 executions a month, shared with the processor.

    1.6 million executions, 1.5 million GB-s

  • Processor Function App$39.80

    Flex Consumption, 2,048 MB

    Time for each report it takes off the queue and for the hourly Intune device index, and executions.

    1.6 million executions, 1.6 million GB-s

  • Portal API Function App$0.00

    Consumption (Y1), Windows

    Executions and GB-seconds while administrators use the portal, after a free grant of 400,000 GB-s and 1 million executions a month.

    20,000 calls, 5,000 GB-s

  • Service Bus namespace$9.81

    Standard

    A base charge per hour, which includes 13 million operations a month; 3 operations per report.

    5 million operations

  • PostgreSQL flexible server$144.54

    D2ds_v5 (General Purpose, 2 vCores, 8 GiB)

    Compute per hour, running all month, whatever the load.

    730 hours

  • PostgreSQL storage and backup$32.38

    256 GiB Premium SSD, autogrow

    Provisioned storage, which doubles when free space runs low and never shrinks; backup beyond the provisioned size.

    167 GiB after 12 months of reports

  • Storage account (raw reports)$8.32

    Standard LRS, Hot

    One write per report; each report kept 30 days, then 7 days of soft delete.

    1.6 million writes, 4.3 GB stored

  • Host storage (3 accounts)$3.76

    Standard LRS, Hot

    One account per Function App: its package, and the host’s leases and state while it runs.

    750,000 operations

  • Azure Monitor alert rules$5.50

    Log search and metric alerts

    Per rule a month, by how often it runs: the failures that otherwise leave only a log line. Notifications past Azure Monitor’s free monthly allowance are billed on top.

    7 log search rules, 1 metric rule

  • Log Analytics and Application Insights$24.98

    Pay-as-you-go, 30-day retention

    GB ingested after the first 5 GB a month: request and trace records for each report, and the hosts’ own telemetry. 30 days’ retention is included.

    14 GB a month

  • Managed identities (4)$0.00

    User-assigned

    No charge: one identity each for ingest, the processor, the portal API and the Static Web App.

    4 identities

  • Azure OpenAI (optional, your own account)Off

    Not connected

    Tokens per briefing: about 10,000 in and 6,000 out, 30 briefings a month.

    Not counted in the total

  • Total a month$316.02
  • Per device per month$0.0069

How it adds up

More than half is the database. The rest follows the reports.

The demo’s $316.02 a month, by what makes it move.

$173

Billed whatever the load

The Static Web App, the PostgreSQL server’s compute, the Service Bus base charge, the alert rules, and the host storage accounts. They run all month, so a quiet estate still pays for them.

55 % of the demo’s estimate

$111

Grows with reports

Functions time for ingest and the processor, Service Bus operations, the raw-report blobs, and the logs. Twice the devices, or twice as many reports, roughly doubles these.

35 % of the demo’s estimate

$32

Grows with history

PostgreSQL storage. Nothing in the database is deleted yet, so it grows every month, and autogrow doubles the disk when free space runs low.

10 % of the demo’s estimate

The template sets the database size. Its default, Burstable B1ms, is “fine for dev and test”, and it suggests General Purpose for production, which is what the demo’s figure uses. On B1ms the demo’s estimate would be $184.62, but no load test has yet shown that one burstable vCore keeps up with 46,000 devices.

Assumptions

Every number, and where it comes from.

Each figure says whether it comes from the template, a measurement, or Microsoft. DoctorDO’s own assumptions are marked too. The time each report takes in Azure, the database’s size per device, and the log volume haven’t been measured on a real estate yet, so your first bill is what will correct them.

Reports

Telemetry reports per deviceFrom the template
1 a day, or 8 a day hourlyThe Intune remediation’s documented schedule is daily (collector/intune/README.md); hourly is Intune’s shortest interval, over an assumed 8-hour day
Inventory reports per deviceDoctorDO’s assumption
5.35 a monthA keyframe every 7 days (docs/08), plus one change a month, assumed: the cumulative update changes the OS build
Telemetry report sizeMeasured
1,758 B compressedA routine report, as the data page measured it on 19 October 2026 (scripts/payload-sizes.ts). A bad day is 4,462 B
Inventory report sizeMeasured
5,322 B compressedAs the data page measured it on 19 October 2026, for a device without Autopilot provisioning history
When reports arriveDoctorDO’s assumption
Spread over 8 hours a dayDevices report as they come online. A fleet reporting in one burst costs less Functions time; one spread over 24 hours costs more

Functions

Instance memory (ingest, processor)From the template
2,048 MBinfra/modules/function-flex.bicep, instanceMemoryMB
Always-ready instancesFrom the template
NoneThe template sets none, so both apps scale to zero and use the on-demand meters
Shortest billed periodMicrosoft
1,000 ms, then 100 ms stepsFlex Consumption billing. Executions that overlap on one instance share a period
Ingest time per reportDoctorDO’s assumption
0.3 sSignature check, Entra device lookup, Service Bus send. Not yet measured in Azure
Processor time per reportDoctorDO’s assumption
0.5 sGunzip, validation, Intune check, blob write, database transaction. Not yet measured in Azure
Concurrency per instanceFrom the template
Ingest 16, processor 4Flex’s HTTP default for 2,048 MB (Microsoft); maxConcurrentCalls in apps/processor/host.json
Intune device indexDoctorDO’s assumption
Hourly, 5 s plus 1 s per 1,000 devicesThe schedule is the template’s (INTUNE_INDEX_SCHEDULE); the duration is assumed
Portal API useDoctorDO’s assumption
20,000 calls a month, 1 s and 0.25 GB eachA few administrators, about 1,000 calls on each working day

Service Bus

Operations per reportMicrosoft
3A send is one operation; a receive with a lock and its complete are two (Service Bus pricing FAQ)
Other operationsDoctorDO’s assumption
100,000 a monthEmpty receives while the processor runs, and housekeeping

PostgreSQL

Suggested sizeDoctorDO’s assumption
B1ms below 5,000 devices, D2ds_v5 to 50,000, D4ds_v5 aboveThe template: Burstable for dev and test, General Purpose for production. Not load-tested yet (docs/12, T-125)
Database per deviceDoctorDO’s assumption
6 KB per report, 1.75 KB a day, 8 KB per new inventory, 12 KB onceFrom the schema (packages/store/migrations); not measured on a real estate
Space for dead rowsDoctorDO’s assumption
30 % moreThe hourly Intune index replaces every row; each report rewrites the device summary
History keptDoctorDO’s assumption
Sized for 12 monthsNothing in PostgreSQL is deleted yet (docs/10 section 7), so the database keeps growing
StorageFrom the template
32 GiB to start, autogrow onAutogrow doubles the disk when free space falls under 20 % or 64 GiB, and never shrinks it (Microsoft)
BackupsDoctorDO’s assumption
7 days, about 120 % of the dataRetention is the template’s; backup up to the provisioned size is included (Microsoft)
High availability, geo-redundant backupFrom the template
Offinfra/modules/postgres.bicep

Storage, alerts and logs

Raw reportsFrom the template
One blob each, kept 30 days plus 7 of soft deleteinfra/main.bicep `rawReportRetentionDays`; the processor writes one blob per report, and nothing reads them back in normal running
Host storageDoctorDO’s assumption
250,000 operations and 0.1 GB a month per appLease renewals and host state while the app runs, priced as writes
Alert rulesFrom the template
2 log search rules every 5 minutes, 5 every 15 or 30, and 1 metric ruleinfra/modules/alerts.bicep
Rules run every 30 minutesDoctorDO’s assumption
Priced as every 15 minutesThe price list has no meter for rules evaluated less often than every 15 minutes
Logs per reportDoctorDO’s assumption
8 KBA request record and trace lines from ingest and the processor; neither is sampled (host.json), so the alert rules see every line
Logs whatever the loadDoctorDO’s assumption
1.5 GB a monthHost metrics, the portal API, index runs and Service Bus diagnostics
Log retentionFrom the template
30 daysinfra/modules/monitoring.bicep; included in the ingestion price (Microsoft)

AI briefing (optional)

ModelDoctorDO’s assumption
gpt-5-mini, Data ZoneYou choose the model. This is the first one the console’s AI setup names, as the Data Zone deployment it prefers to Global
Tokens per briefingDoctorDO’s assumption
10,000 in, 6,000 outInput: “roughly ten thousand” (ADR-0034). Output assumed, with reasoning; capped at 16,000
BriefingsDoctorDO’s assumption
30 a monthOne a day; an administrator asks for each one

Free grants and allowances

Some of it is included, and shared.

Several meters start with an amount that costs nothing. Most of those allowances belong to the subscription or the billing account, not to DoctorDO, so other workloads draw on them too. The estimate gives DoctorDO all of them.

Functions, Flex Consumption
100,000 GB-s and 250,000 executions a month
Per subscription, across every Flex Consumption app in it, on pay-as-you-go subscriptions. Ingest and the processor share it.
Functions, Consumption plan
400,000 GB-s and 1 million executions a month
Per subscription, across every Consumption app in it. The portal API stays inside it at the use assumed here.
Service Bus Standard
13 million operations a month, with the base charge
The base charge is billed once a month per subscription, however many Standard namespaces it has. If you already pay it, DoctorDO’s namespace adds none.
Log Analytics
The first 5 GB a month
Per billing account, across every workspace in it. 30 days of retention is included (90 for Application Insights tables).
Static Web Apps Standard
100 GB of bandwidth a month
Per subscription.
PostgreSQL backup storage
Up to the provisioned storage
Per server, so not shared.

If other workloads have already used the shared allowances, the demo’s estimate rises from $316.02 to $336.73 a month.

Not included

What the estimate leaves out.

The figures are the resources one deployment creates, at list price, before anything below.

  • Tax. VAT or sales tax is added to the bill.
  • Data transfer out of Azure beyond the monthly allowance. Reports flow into Azure, which is not charged, and the portal’s pages are small.
  • Support plans.
  • Microsoft Connected Cache servers: their hardware or virtual machines, and their own bandwidth.
  • Your devices’ own bandwidth. A report is a few kilobytes; the updates and apps Delivery Optimization downloads are not DoctorDO’s traffic.
  • Reserved capacity, savings plans, and agreement prices (Enterprise Agreement, CSP, MCA). They lower the bill; this is pay-as-you-go list price.
  • Licences for Intune, Windows, and Microsoft Entra ID, including the Windows Enterprise E3 or E5, Windows Education A3 or A5, or Windows VDA licence that Intune Remediations need, since the collector runs from a remediation.
  • A second copy, such as a test deployment: each is a full set of these resources.
  • Options the template leaves off: high availability, geo-redundant backup, always-ready instances, and private networking.

Sources

Prices were read from the Azure Retail Prices API (opens in a new tab) on 18 October 2026: pay-as-you-go, North Europe (the Static Web App in West Europe), in US dollars, pounds, and euros. The API’s pounds and euros are rounded to four decimal places, so where a price is smaller than that (Functions, per GB-second and per execution) they are worked out from the dollar price at the rate the API’s own prices imply. To check a figure for your agreement and region, use the Azure pricing calculator (opens in a new tab).

Every meter priced (26), as the API names it

Read from https://prices.azure.com/api/retail/prices on 18 October 2026. A tier starts at a quantity in the meter’s own unit; a tier at $0 is a free grant or an included allowance. * Pounds and euros worked out from dollars.

Every Azure meter the estimate uses, as the Azure Retail Prices API returned it on 18 October 2026
Used formeterNameproductName · skuNamearmRegionNameunitPrice (USD)unitOfMeasureRead on
Static Web Apps Standard, per appStandard AppStatic Web Apps · Standardwesteurope$91/Month2026-10-18
Static Web Apps Standard bandwidthStandard Bandwidth UsageStatic Web Apps · Standardwesteurope0+: $0 · 100+: $0.21 GB2026-10-18
Flex Consumption on-demand execution time *On Demand Execution TimeFlex Consumption · On Demandnortheurope0+: $0 · 100,000+: $0.0000261 GB Second2026-10-18
Flex Consumption on-demand executions *On Demand Total ExecutionsFlex Consumption · On Demandnortheurope0+: $0 · 25,000+: $0.000004102026-10-18
Consumption plan execution time *Standard Execution TimeFunctions · Standardnortheurope0+: $0 · 400,000+: $0.0000161 GB Second2026-10-18
Consumption plan executions *Standard Total ExecutionsFunctions · Standardnortheurope0+: $0 · 100,000+: $0.000002102026-10-18
Service Bus Standard base chargeStandard Base UnitService Bus · Standardnortheurope$0.0134411/Hour2026-10-18
Service Bus Standard messaging operationsStandard Messaging OperationsService Bus · Standardnortheurope0+: $0 · 13+: $0.8 · 100+: $0.5 · 2,500+: $0.21M2026-10-18
PostgreSQL flexible server, Burstable B1msB1MSAzure Database for PostgreSQL Flexible Server Burstable BS Series Compute · B1MSnortheurope$0.0181 Hour2026-10-18
PostgreSQL flexible server, Burstable B2sB2SAzure Database for PostgreSQL Flexible Server Burstable BS Series Compute · B2Snortheurope$0.0721 Hour2026-10-18
PostgreSQL flexible server, General Purpose D2ds_v5 (2 vCores)vCoreAzure Database for PostgreSQL Flexible Server General Purpose Ddsv5 Series Compute · 2 vCorenortheurope$0.1981 Hour2026-10-18
PostgreSQL flexible server, General Purpose D4ds_v5 (4 vCores)vCoreAzure Database for PostgreSQL Flexible Server General Purpose Ddsv5 Series Compute · 4 vCorenortheurope$0.3961 Hour2026-10-18
PostgreSQL flexible server storage (Premium SSD)Storage Data StoredAzure Database for PostgreSQL Flex Server Storage · Storagenortheurope$0.12651 GB/Month2026-10-18
PostgreSQL flexible server backup storage (LRS)Backup Storage LRS Data StoredAzure Database for PostgreSQL Flexible Server Backup Storage · Backup Storage LRSnortheurope$0.0951 GB/Month2026-10-18
Blob storage, Hot LRS, data storedHot LRS Data StoredGeneral Block Blob v2 · Hot LRSnortheurope0+: $0.022 · 51,200+: $0.02112 · 512,000+: $0.020241 GB/Month2026-10-18
Blob storage, Hot LRS, write operationsHot LRS Write OperationsGeneral Block Blob v2 · Hot LRSnortheurope$0.0510K2026-10-18
Blob storage, Hot LRS, read operationsHot Read OperationsGeneral Block Blob v2 · Hot LRSnortheurope$0.00410K2026-10-18
Blob storage, Hot LRS, other operationsAll Other OperationsGeneral Block Blob v2 · Hot LRSnortheurope$0.00410K2026-10-18
Log search alert rule, every 5 minutesAlerts System Log Monitored at 5 Minute FrequencyAzure Monitor · Alertsnortheurope$1.51/Month2026-10-19
Log search alert rule, every 15 minutesAlerts System Log Monitored at 15 Minute FrequencyAzure Monitor · Alertsnortheurope$0.51/Month2026-10-19
Metric alert, per time series monitoredAlerts Metric MonitoredAzure Monitor · Alertsnortheurope0+: $0 · 10+: $0.11/Month2026-10-19
Log Analytics, Analytics Logs ingestionAnalytics Logs Data IngestionLog Analytics · Analytics Logsnortheurope0+: $0 · 5+: $2.761 GB2026-10-18
Azure OpenAI gpt-5-mini, Data Zone, input tokensGPT 5 Mini Inpt DZone 1M TokensAzure OpenAI GPT5 · GPT 5 Mini Inpt DZonenortheurope$0.2751M2026-10-18
Azure OpenAI gpt-5-mini, Data Zone, output tokensGPT 5 Mini outpt DZone 1M TokensAzure OpenAI GPT5 · GPT 5 Mini outpt DZonenortheurope$2.21M2026-10-18
Azure OpenAI gpt-4.1-mini, Data Zone, input tokens *gpt 4.1 mini Inp Data Zone TokensAzure OpenAI · gpt 4.1 mini Inp Data Zonenortheurope$0.000441K2026-10-18
Azure OpenAI gpt-4.1-mini, Data Zone, output tokens *gpt 4.1 mini Outp Data Zone TokensAzure OpenAI · gpt 4.1 mini Outp Data Zonenortheurope$0.001761K2026-10-18

See what it shows before you deploy it.

Open the portal for ContosoAI, a fictitious company with 46,000 devices, at 41 sites in 16 countries and working remotely. Its figures are modelled, not computed from collector reports.