AzureCalc.uk uses Google AdSense for ads. No tracking cookies are used by AzureCalc.uk itself. Your saved estimates are stored anonymously.

Prices from Azure Retail Prices API · UK South · GBP · Not affiliated with Microsoft

arrow_backBack to calculators

Azure Billing Traps UK 2026 — Hidden Costs Explained

Seven Azure pricing traps that surprise engineers — Archive rehydration, Log Analytics 2TB minimum, NAT Gateway always-on charges, and more. UK South GBP pricing.

Prices last verified: April 2026

Seven pricing traps that have burned me or other engineers I know — with the exact cost impact and how to avoid them. All prices are UK South GBP from the Azure Retail Prices API.

Built and verified by an independent Azure engineer, frustrated with the official calculator.

Overview

I have been burned by Azure pricing traps three times. Each time, the bill was 10× what I estimated. Each time, the trap was documented — but buried in a footnote or pricing page footnote that you only find after the invoice arrives.

This guide collects every trap I have personally encountered or verified against real invoices, with the exact cost impact and how to avoid it. These are not theoretical edge cases; they are mistakes that production engineering teams make regularly because the pricing model is unintuitive.

All figures below are current UK South GBP pricing from the Azure Retail Prices API, updated nightly. If you find an error, email me and I will verify it against the API within 24 hours.

warning
Key principle: Azure pricing is correct but not intuitive. The traps below are all documented somewhere — but never where you look when estimating costs.

Trap 1: The Archive Rehydration Surprise

Archive tier storage is roughly 20× cheaper than Hot tier to store — approximately £0.001/GB/month vs £0.018/GB/month. This makes it look like the obvious choice for old data. It is not.

The trap: retrieving data from Archive tier costs £0.0157/GB plus rehydration time (hours, not seconds). If you restore 1TB of archived data once, you pay £16.07 in retrieval fees. That erases 13+ months of storage savings in a single operation.

Real example

In March 2025, I archived 500GB of old logs thinking I would save £8.50/month. I needed them 3 months later for an audit. Rehydration cost: £7.85. My "savings": £25.50 over 3 months. Retrieval cost: £7.85. Net savings after one restore: £17.65. Not worth the operational complexity.

The second restore would have made Archive tier more expensive than keeping the data in Hot tier the entire time.

error

The break-even math

Archive storage saves ~£0.017/GB/month. Archive retrieval costs £0.0157/GB. If you restore data more than once every 11 months, Archive is more expensive than Hot.

How to avoid it

check_circleOnly archive data you are legally required to keep but expect to read zero times
check_circleIf you might read it once, use Cold tier (£0.004/GB/month, no rehydration fee)
check_circleIf you might read it twice or more, keep it in Hot or Cool tier
check_circleDocument your Archive retention policy — and enforce it with lifecycle management rules

Trap 2: The 2TB Log Analytics Restore Floor

Log Analytics Restore operations have a 2,000GB minimum billing floor. Restore 1GB of archived data, you are billed for 2,000GB. At PAYG rates (£2.167/GB), that is approximately £4,334 for restoring 1GB of data.

Real example from Reddit

A user DM'd me: they restored 50MB of archived security logs for a compliance check. The invoice line item: £4,334. They thought the calculator was wrong. It was not — they triggered the 2TB minimum billing floor. The Restore operation is designed for bulk data recovery, not selective queries.

error

Critical distinction

Restore is for bringing archived data back to interactive (Analytics) tier. Search Jobs are for querying archived data in place. If you need to investigate archived logs, use Search Jobs. Never use Restore for small data pulls.

How to avoid it

check_circleUse Search Jobs to investigate archived data — no minimum billing
check_circleOnly use Restore for bulk recovery of TB-scale datasets
check_circleTrain your security team: "compliance check" does not mean Restore
check_circleSet up Azure Policy alerts if someone attempts a Restore operation

Trap 3: NAT Gateway Always-On Charges

NAT Gateway has no pause, stop, or idle state. It bills every hour until deleted. An idle NAT Gateway costs approximately £33.12/month in UK South forever.

This is particularly painful in dev/test environments where engineers create a NAT Gateway for testing, forget about it, and leave it running for months.

My personal burn

I left a NAT Gateway running in a test environment for 4 months. Cost: £132.48. I used it for approximately 2 hours of actual testing. The rest of the time it was idle, burning £0.045/hour for no purpose.

ScenarioMonthly costAnnual cost
Idle NAT Gateway (0GB processed)£33.12£397.44
NAT Gateway + Azure Firewall idle~£290~£3,480
NAT Gateway (100GB processed)£33.12 + £3.50£439.44

How to avoid it

check_circleDelete NAT Gateways in dev/test environments when not in use
check_circleUse Azure Policy to alert on NAT Gateways older than 7 days in non-production subscriptions
check_circleFor production, set up tagging policy: CostCenter tag required, monthly review of untagged NAT Gateways
check_circleConsider Azure Firewall + NAT Gateway combination carefully — idle cost is ~£290/month

Trap 4: Blob Storage Early Deletion Penalties

Cool, Cold, and Archive tiers have minimum retention periods. Delete data early and you are charged for the full minimum period anyway.

TierMinimum retentionPenalty if deleted early
HotNoneNone
Cool30 daysCharged for 30 days regardless of actual storage time
Cold90 daysCharged for 90 days regardless of actual storage time
Archive180 daysCharged for 180 days regardless of actual storage time

Real example

Moved 2TB to Cool tier for a "temporary" archive. Deleted after 15 days because the project scope changed. Charged for 30 days anyway — extra cost of approximately £240 for data I did not actually store. The early deletion penalty for 2TB in Cool tier is significant.

How to avoid it

check_circleOnly use tiered storage for data you know you will keep for the minimum period
check_circleUse Hot tier for anything with uncertain retention
check_circleSet lifecycle management policies, but review them quarterly — they can trigger unexpected tiering
check_circleDocument tier selection criteria in your team runbook

Trap 5: Basic Logs Query Cost Trap

Basic Logs are 78% cheaper to ingest than Analytics Logs (£0.46/GB vs £2.13/GB). This makes them look attractive for verbose logs like AppServiceHTTPLogs or NetworkFlow.

The trap: Basic Logs charge £0.0046/GB per query. Query the data 100 times and you have paid £0.46/GB in query costs — the same as Analytics Logs ingestion. Plus Basic Logs have no alert rules and only 8-day retention.

error

The break-even math

Analytics Logs: £2.13/GB ingestion, free queries. Basic Logs: £0.46/GB ingestion, £0.0046/GB per query. Querying more than 363× per month (12× daily) makes Basic more expensive than Analytics for the same data volume.

How to avoid it

check_circleUse Basic only for logs queried less than weekly
check_circleIf you need alerts or frequent dashboards, Analytics tier is cheaper overall
check_circleTrack your query frequency in Log Analytics Workspace Insights — if you query Basic logs daily, switch to Analytics
check_circleConsider Auxiliary Logs (new) for compliance data — even cheaper at £0.04/GB but no direct querying

Trap 6: The Hub-Spoke Double NAT Gateway Charge

In hub-spoke architecture, if both hub VNet and spoke VNet have NAT Gateways for outbound internet, traffic from spoke → internet flows through both. 1GB egress through two NAT Gateways = 2GB of NAT Gateway processing billed.

Real example from NHS cloud architecture

Hub VNet with NAT Gateway for shared services. Each spoke also had NAT Gateway for "isolation." 10TB/month egress was billed as 20TB. Extra cost: £300+/month completely invisible in the official calculator because it depends on your routing architecture, not your data volume.

How to avoid it

check_circleCentralize NAT Gateway in hub VNet only
check_circleSpokes use hub's NAT Gateway for internet egress via VNet peering
check_circleDocument this in your architecture review — NAT Gateway placement is a cost decision
check_circleUse Azure Firewall for hub-spoke if you need advanced outbound filtering — single egress point

Trap 7: Inter-Region Bandwidth Charges

Data transferred between UK South and UK West is charged at approximately £0.016/GB. Same country, different Azure region = billed from the first byte. Many engineers assume "same geo = free." It is not.

Real example

DR setup: primary in UK South, replica in UK West. 500GB/day replication. Expected cost: storage only. Actual cost: storage + £43.50/day bandwidth = £1,305/month surprise. The team assumed intra-UK transfer was free.

info
What is free: Availability Zones within UK South (intra-zone transfer). What costs money: UK South ↔ UK West, UK South ↔ West Europe, any inter-region combination.

How to avoid it

check_circleUse Availability Zones within UK South for HA — intra-zone transfer is free
check_circleOnly use multi-region for true DR requirements, and budget for bandwidth explicitly
check_circleIf you must replicate inter-region, use compression — Azure charges for bytes transferred, not logical data
check_circleDocument bandwidth costs in your DR runbook — they are predictable but never zero

Trap 8: ADF "Auto" DIU Defaults to 4

Azure Data Factory Copy activities default to Auto DIU selection, which means ADF picks the Data Integration Unit count at runtime. In practice, Auto almost always resolves to 4 DIUs — even for simple, small-data pipelines that would run fine on 2.

The billing impact: 4 DIUs × duration × rate vs 2 DIUs × duration × rate. Dev and test pipelines running hundreds of small copies per day accumulate 2× the expected cost.

Real example from a reader

A reader emailed after their ADF estimate came out 2× what they expected. Their dev pipeline ran 500 Copy activities per day, each lasting ~30 seconds. Auto DIU = 4. Manual DIU = 2. The difference: £18/day vs £9/day — £270/month on a dev pipeline. Production pipelines genuinely benefit from Auto, but dev/test pipelines almost never do.

How to avoid it

check_circleSet DIU = 2 explicitly on all dev and test Copy activities
check_circleOnly use Auto DIU on production pipelines moving TB-scale data
check_circleUse the ADF monitoring view to check actual DIU usage — most small copies use 4 but could use 2
check_circleAdd a pipeline parameter for DIU count so dev/prod environments can differ without code changes

Trap 9: FSLogix Standard Tier Transaction Costs

Azure Files Standard tier for FSLogix profile storage looks attractive at approximately £0.056/GB/month — much cheaper than Premium at £0.192/GB/month provisioned. For a 50-user deployment with 20GB profiles, that is £56/month vs £192/month. An obvious choice.

The trap: Standard tier charges per transaction. An active VDI workload generates tens of thousands of read and write transactions per user login — profile loading, registry reads, folder redirects. The transaction cost can easily exceed the storage savings within the first month.

error

The break-even math

Premium is provisioned capacity, no transactions. Standard is per-GB plus £0.0113/10,000 write ops and £0.00113/10,000 read ops. An active desktop generating 500K write ops/day crosses the Premium equivalent cost within 3–5 days of the month. After that, every additional transaction makes Standard more expensive than Premium.

How to avoid it

check_circleUse Premium for any deployment with daily active users — the provisioned model is predictable
check_circleReserve Standard for test/dev environments with infrequent logins
check_circleUse the AVD calculator to model Standard vs Premium including transaction estimates
check_circleMonitor Azure Files metrics (Transactions by response type) before committing to Standard in production

Trap 10: Sentinel Data Lake Free Retention Cliff

Microsoft Sentinel's Data Lake tier (formerly called Auxiliary Logs) offers 3 months of free retention. This sounds generous — and it is, until month 4, when the retention billing clock starts. The billing model is different from Analytics Logs, so teams that have estimated costs using the Analytics Logs retention rate will be surprised.

The practical trap: Sentinel deployments that were architected around "3 months free" as a long-term retention strategy discover in month 4 that they need to either pay for extended retention or export and delete the data — which creates its own operational overhead.

The retention model explained

Analytics Logs: 31 days free, then £0.114/GB/month retention. Data Lake (Auxiliary): 3 months (90 days) free, then retention billing starts — at a different rate from Analytics. The two models are not interchangeable for cost planning.

A 12-month retention requirement on 100GB/day ingestion means 9 months of paid retention on Data Lake vs 11 months on Analytics. Calculate both before choosing a tier.

How to avoid it

check_circleModel the full 12-month retention cost, not just ingestion, before choosing a tier
check_circleSet a calendar reminder for month 3 to review Data Lake retention and decide: extend, export, or delete
check_circleUse Azure Log Analytics Workspace Insights to track data volume before it exceeds your free tier
check_circleFor compliance data requiring 2+ year retention, evaluate Azure Blob Storage Archive vs Data Lake retention cost

Trap 11: Standard HDD vs Standard SSD Transaction Cap Inversion

Standard HDD managed disks are cheaper per-GB than Standard SSD. For data disks storing cold, infrequently accessed data, HDD looks like the obvious choice. The trap is in the transaction billing.

Standard HDD charges £0.000494 per 10,000 transactions. Standard SSD charges £0.000198 per 10,000 transactions. On a disk with moderate I/O — a database log, a file server, a VM with frequent small writes — the Standard HDD transaction cost can overtake the SSD storage savings within a single month.

error

The inversion

At identical storage capacity and IOPS, HDD can be more expensive than SSD once transaction costs are included. This is the opposite of what most engineers expect. The safe default is Standard SSD for any disk with regular read/write patterns — even if storage capacity alone would favour HDD.

How to avoid it

check_circleUse Standard SSD as the default for all non-archival data disks
check_circleReserve Standard HDD for disks that are written once and read rarely (backups, cold exports)
check_circleCheck Azure Cost Management disk transaction metrics before assuming HDD is cheaper
check_circleFor high-IOPS workloads, Premium SSD is often cheaper than Standard SSD with high transactions

How to Avoid These Traps

Before provisioning any Azure resource that has a metered cost, run through this checklist. It takes 2 minutes and has saved me thousands of pounds.

help

Will I ever need to restore Archive data?

If yes, use Cold tier instead (addresses Trap 1)

help

Am I querying Basic Logs more than weekly?

If yes, switch to Analytics tier (addresses Trap 5)

help

Is this NAT Gateway in a dev/test environment?

If yes, set calendar reminder to delete it (addresses Trap 3)

help

Am I tiering data with uncertain retention?

If yes, keep in Hot tier until retention is certain (addresses Trap 4)

help

Do I have NAT Gateways in both hub and spoke?

If yes, remove spoke NAT Gateway immediately (addresses Trap 6)

help

Is my DR strategy multi-region?

If yes, add bandwidth costs to the budget explicitly (addresses Trap 7)

help

Is my ADF Copy activity using Auto DIU in dev/test?

If yes, set DIU = 2 explicitly to halve compute costs (addresses Trap 8)

help

Are my FSLogix profiles on Azure Files Standard tier?

If users log in daily, compare transaction costs against Premium provisioned (addresses Trap 9)

help

Am I using Sentinel Data Lake tier beyond 3 months?

If yes, model the full retention cost at month 4+ before committing (addresses Trap 10)

help

Did I choose Standard HDD to save on storage?

If the disk has regular I/O, check transaction costs — SSD may be cheaper (addresses Trap 11)

The Methodology page explains how I verify every price on this site against the Azure Retail Prices API. The Invoice Reconciliation guide shows how to verify the calculator against your actual Azure bill.

Official Resources

ADMeasureUpCovers cost management

AZ-104 Microsoft Azure Administrator

From £99

View courseopen_in_new

AD: We earn a commission on qualifying purchases at no extra cost to you.

Related calculators