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

Pricing Methodology

How the prices on this site are sourced, verified, and what they don't cover.

cloud_download1. Where the prices come from

Every night at 02:00 UTC I run a fetch against the Microsoft Azure Retail Prices API. The exact query is:

https://prices.azure.com/api/retail/prices
  ?api-version=2023-01-01-preview
  &$filter=armRegionName eq 'uksouth'
           and currencyCode eq 'GBP'

The response is stored in a Cloudflare D1 database (SQLite). The calculators query this local cache — not the Azure API in real time — so every estimate reflects the prices from the last nightly refresh.

Current cache status

currency_pound2. How GBP pricing actually works

The Azure Retail Prices API returns GBP natively — it is not a USD figure converted by this site. Microsoft determines the GBP price directly.

Specifically: Microsoft locks the GBP/USD exchange rate monthly, using London closing spot rates from the final business days of the prior month. This means your January invoice is priced using the rate Microsoft locked in December. The GBP rate can shift meaningfully between months if sterling moves — and it has.

This is why the prices shown here can differ slightly from what you see if you manually use the official Azure Pricing Calculator in USD and apply a current spot rate. The official GBP price is the authoritative figure; the USD equivalent is the approximation.

verified3. How prices are verified

The nightly refresh compares incoming prices against what was cached from the previous run. Any changed prices are logged with a timestamp. You can see recent movements on the price history page.

I also spot-check prices against the official Azure pricing pages for the services I use most (Log Analytics, Blob Storage, Virtual Machines) whenever Microsoft announces a pricing update.

If you find a discrepancy, email gravitycontextdev@gmail.com — I aim to investigate and correct within 24 hours.

warning4. What these estimates don't include

These are retail / pay-as-you-go prices. The following are not reflected unless explicitly noted:

  • Enterprise Agreement discounts — EA customers typically get 15–30% off list
  • Reserved Instance pricing — 1-year saves ~40%, 3-year saves ~60% vs PAYG for VMs
  • Azure Hybrid Benefit — if you have on-prem Windows Server / SQL licences
  • Savings Plans — compute savings plans applied at subscription scope
  • Custom / CSP negotiated pricing
  • Dev/Test pricing — Visual Studio subscribers get discounted rates on some services

Always verify through the official Azure Pricing Calculator ↗ before committing to a spending plan.

schedule5. Data freshness

The price cache refreshes every night at 02:00 UTC. If the nightly job fails (Azure API timeout, etc.), the previous night's prices remain live and a stale warning appears on the calculators. Failures are rare — the Azure Retail Prices API has been reliable in my experience — but they happen.

If prices look wrong or outdated, check the price history page for the last successful refresh timestamp, or email me directly.

calculate6. Rounding, precision, and display conventions

Azure prices are stored in the API to many decimal places (e.g., £0.000004567/GB). For readability, the calculators round results to two decimal places in the totals view, and show full precision in formula breakdowns where relevant. This means a calculated total might be off by a penny, but the driving logic is transparent.

When you save or share an estimate via URL, the inputs are encoded but precision may vary depending on the browser and network. For critical cost decisions, regenerate the estimate on a fresh load to confirm.

All monthly estimates assume 730 hours in a month (365 days ÷ 12). Actual months are 28–31 days, so actual costs may vary slightly. For precision, default to calendar-month actuals from your Azure invoice.

public7. Region scope: UK South only

AzureCalc.uk is scoped to UK South exclusively. Prices for other regions (North Europe, West Europe, etc.) are not included. UK South is used as the example region, but pricing for other regions can be looked up via the official Azure Pricing Calculator.

Why UK South specifically? It's where most UK enterprise workloads land, and it's a good baseline for European pricing. If your workload runs across multiple regions, multi-region costs (peering, replication, egress between regions) are shown in the Bandwidth and Networking calculators.

Services may not be available in UK South; if a service is unavailable, the calculator will display a note. Check the official Azure Products by Region to find an alternative.

flag8. Known limitations and edge cases

  • Spot instances and variable capacity: Spot VM pricing fluctuates based on capacity and demand. The calculator shows current list price; actual costs may be lower or higher on any given day. Budget using sustained list price, not spot.
  • Throttling and burst pricing: Some services (e.g., Cosmos DB, Storage) have burst capacity and throttling penalties that charge extra. The calculator shows base rate only, not penalty surges.
  • Bandwidth minimum billing: Some services (e.g., Archive storage) bill a minimum quantity if you retrieve less than that minimum. These are baked into the calculator. Check the service-specific guide for details.
  • Free tier and free allowances: Many services have free monthly grants (e.g., Functions: 1M executions free). These are factored into the calculators. Verify the grant still applies to your subscription tier.
  • Multi-tenant and dedicated capacity: Some services offer both shared (multi-tenant) and dedicated (single-tenant) options with different pricing. The calculator shows shared pricing by default; dedicated pricing is not included.

arrow_forward9. How to use these estimates

The estimates on AzureCalc.uk are a starting point for team discussions and capacity planning, not procurement quotes. Use them to:

  • Compare architectures (e.g., does VMs or Functions make more sense for this workload?)
  • Brief non-technical stakeholders on order-of-magnitude costs in GBP
  • Spot-check whether your invoice seems reasonable (£10/month Function app, or £100/month?)
  • Alert to pricing movements before you commit to a service

For formal quotes or enterprise agreements, always use the official Azure Pricing Calculator or contact sales.

table_chart10. Price sources by calculator

Each calculator reads prices from D1 using the service name stored by the nightly price refresh. The table below is the authoritative reference for independent audits — it documents the exact service name queried, region filter applied, and which prices are auto-refreshed vs hardcoded.

CalculatorD1 service_name(s)RegionRefreshedHardcoded
Blob StorageStorageuksouth✅ NightlyNone
Logic AppsLogic Appsuksouth✅ NightlyNone
Azure FunctionsFunctionsuksouth✅ NightlyNone
App ServiceAzure App Serviceuksouth✅ NightlyNone
BandwidthBandwidthuksouth✅ NightlyNone
Log AnalyticsLog Analytics, Azure Monitoruksouth✅ NightlyNone
SentinelSentineluksouth✅ NightlyNone
Virtual MachinesVirtual Machinesuksouth✅ Filtered (5 SKUs)None
NetworkingVirtual Network, Azure DDOS Protectionuksouth✅ NightlyNAT Gateway £0.0449/hr
Data FactoryAzure Data Factoryuksouth✅ NightlyData Flow GP/MO/CO rates
Virtual DesktopAzure Files, Virtual Machinesuksouth✅ NightlyExternal user access fees (USD)
Front DoorAzure Front Door, Azure Front Door ServiceZone 1✅ NightlyNone
SQL DatabaseSQL Databaseuksouth✅ NightlyNone
Azure FirewallAzure Firewalluksouth✅ Nightly (fallback active)Fallback rates if D1 empty
Azure OpenAIFoundry Modelsuksouth✅ Nightly (Sprint 10)Model rates (API returns £0 for uksouth)
Managed DisksAzure Managed Disks (via productName)uksouth✅ Nightly (Sprint 11)Pv2/Ultra IOPS+throughput (API returns £0)

edit_note11. Hardcoded prices — manual verification required

These prices are not returned by the Azure Retail Prices API and are hardcoded in the worker. They must be manually verified before each sprint release.

NAT Gateway hourly      £0.0449/hr        Verified Apr 2026
  Source: azure.microsoft.com/en-gb/pricing/details/azure-nat-gateway/

ADF Data Flow GP        £0.216/vCore-hr   Verified Apr 2026
ADF Data Flow MO        £0.270/vCore-hr   Verified Apr 2026
ADF Data Flow CO        £0.172/vCore-hr   Verified Apr 2026
  Source: azure.microsoft.com/en-gb/pricing/details/data-factory/

AVD external (apps)     $5.50/user/month  Verified Apr 2026
AVD external (full)     $10.00/user/month Verified Apr 2026
  Source: azure.microsoft.com/en-gb/pricing/details/virtual-desktop/
  Note: USD-denominated, converted at approximate rate for GBP display

OpenAI gpt-4o input     £0.0019/1K tokens Verified Apr 2026
OpenAI gpt-4o output    £0.0075/1K tokens Verified Apr 2026
OpenAI gpt-4o-mini in   £0.0001/1K tokens Verified Apr 2026
OpenAI gpt-4o-mini out  £0.0005/1K tokens Verified Apr 2026
OpenAI o3-mini input    £0.0008/1K tokens Verified Apr 2026
OpenAI o3-mini output   £0.0033/1K tokens Verified Apr 2026
OpenAI gpt-4 input      £0.0226/1K tokens Verified Apr 2026
OpenAI gpt-4 output     £0.0451/1K tokens Verified Apr 2026
  Source: Azure Retail Prices API direct (Foundry Models service, GBP endpoint)
  Note: Changes frequently — verify every sprint

Premium SSD v2 IOPS     £0.00657/IOPS/month   Verified Apr 2026
Premium SSD v2 throughput £0.2197/MBps/month  Verified Apr 2026
Ultra Disk IOPS         £0.0550/IOPS/month    Verified Apr 2026
  Source: Microsoft Azure documentation (API returns £0 for these meters)
  Note: Re-verify each sprint — API may start returning these

code12. D1 verification queries

Run these queries against the D1 database to verify stored prices match the live API. Services marked ⚠️ require an additional source check beyond the D1 query alone.

-- Blob Storage: Hot LRS per GB/month (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Storage'
  AND sku_name = 'Hot LRS Data Stored'
  AND arm_region_name = 'uksouth';

-- Log Analytics: PAYG ingestion per GB (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Log Analytics'
  AND sku_name = 'Analytics Logs'
  AND unit_of_measure = '1 GB'
  AND arm_region_name = 'uksouth';

-- Sentinel: PAYG per GB (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Sentinel'
  AND sku_name = 'Security Insights'
  AND unit_of_measure = '1 GB'
  AND arm_region_name = 'uksouth';

-- Virtual Machines: D2s v3 Linux (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Virtual Machines'
  AND sku_name = 'D2s v3'
  AND arm_region_name = 'uksouth';

-- Networking: VNet peering per GB (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Virtual Network'
  AND arm_region_name = 'uksouth'
ORDER BY sku_name;

-- ⚠️ Networking: NAT Gateway — NOT IN D1
-- Hardcoded at £0.0449/hr. Verify manually:
-- https://azure.microsoft.com/en-gb/pricing/details/azure-nat-gateway/

-- Networking: Public IP (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Virtual Network'
  AND sku_name LIKE '%Public IP%'
  AND arm_region_name = 'uksouth';

-- Data Factory: Copy Activity DIU-hour (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Azure Data Factory'
  AND sku_name LIKE '%Data Movement%'
  AND arm_region_name = 'uksouth';

-- ⚠️ Data Factory: Data Flow rates — NOT IN D1
-- GP £0.216, MO £0.270, CO £0.172/vCore-hr
-- Verify: https://azure.microsoft.com/en-gb/pricing/details/data-factory/

-- Azure Files: Premium provisioned storage (Virtual Desktop FSLogix)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Storage'
  AND sku_name LIKE '%Premium Files%'
  AND arm_region_name = 'uksouth'
ORDER BY sku_name;

-- ⚠️ Front Door: Zone 1 (NOT uksouth — zone-based pricing)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Azure Front Door'
  AND arm_region_name = 'Zone 1'
ORDER BY sku_name;

-- SQL Database: General Purpose vCore (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'SQL Database'
  AND sku_name LIKE '%General Purpose%'
  AND arm_region_name = 'uksouth'
ORDER BY sku_name LIMIT 10;

-- Azure Firewall: Standard deployment (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Azure Firewall'
  AND arm_region_name = 'uksouth'
ORDER BY sku_name;

-- ⚠️ Azure OpenAI: GPT-4o (Foundry Models — changes frequently)
-- If 0 rows returned, hardcoded values are in use — verify via API directly.
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Foundry Models'
  AND sku_name LIKE '%gpt-4o%'
ORDER BY sku_name;

-- Managed Disks: Standard HDD S10 (UK South)
SELECT sku_name, retail_price, unit_of_measure
FROM azure_prices
WHERE service_name = 'Azure Managed Disks'
  AND sku_name LIKE '%S10%'
  AND arm_region_name = 'uksouth';

science13. Formula-level test cases

For calculators where rate verification alone is insufficient, these expected outputs verify the calculation logic. These are the test cases for the independent accuracy audit after Sprint 14.

Log Analytics

Test 1 — PAYG, no Sentinel, 30-day retention
  Input:  15 GB/day, PAYG tier, 30-day retention, no Sentinel
  Expected: 15 × 30 × £2.167 = £975.15/month ingestion
            Retention: £0 (≤31 days free)
            Total: ~£975/month

Test 2 — Commitment tier break-even
  Input:  95 GB/day, 100 GB/day commitment tier
  Expected: 100 × 30 × £1.937 = £5,811/month commitment
            vs PAYG: 95 × 30 × £2.167 = £6,175.65/month
            Saving: ~£365/month — commitment tier recommended

Test 3 — Sentinel overlay
  Input:  10 GB/day, PAYG, Sentinel enabled
  Expected: 10 × 30 × (£2.167 + £2.297) = £1,339.20/month

SQL Database

Test 1 — DTU Standard S3
  Input:  Standard S3 (100 DTUs), single database
  Expected: flat monthly rate from D1 for S3 uksouth
            No transaction charges (DTU bundles IO)

Test 2 — vCore GP with AHB + 1-year RI
  Input:  GP, 4 vCores, provisioned, AHB enabled, 1-year RI
  Expected: base compute × (1 - AHB discount) × (1 - RI 1yr ~33%)
            Storage charged separately per GB
            AHB removes Windows licence component (~30% of compute)

Test 3 — Savings Plan (March 2026)
  Input:  GP, 4 vCores, provisioned, Savings Plan 1-year
  Expected: up to 35% saving vs PAYG compute
            Note: Savings Plan and RI are mutually exclusive

Azure OpenAI

Test 1 — Standard mode, moderate usage
  Input:  GPT-4o, 1M input tokens/day, 200K output tokens/day
  Expected daily: (1000 × £0.0019) + (200 × £0.0075) = £1.90 + £1.50 = £3.40
  Expected monthly: £3.40 × 30 = £102/month

Test 2 — PTU break-even
  Input:  100 PTUs, 1-month commitment, 22 active days/month
  PTU monthly = 100 × £0.7524 × 730 × (1 - 0.05) = £521.79/month
  Break-even = £521.79 ÷ £3.40 = ~153 days (recommendation: Standard)

Test 3 — Image requests in break-even
  Input:  GPT-4o, 500K tokens/day, 1,000 image requests/day
  Standard daily = (500 × £0.0019) + 0 + (1000 × £0.0577) = £0.95 + £57.70 = £58.65
  Verify: break-even denominator includes image cost

Virtual Desktop

Test 1 — 50 internal users, eligible M365
  Input:  50 internal users, M365 eligible, 5× D2s v3 session hosts,
          FSLogix Premium 500GB
  Expected: VM cost = 5 × D2s_v3_rate × 730
            Storage: Premium Files rate × 500GB
            Licensing: £0 (M365 eligible)
            Per-user = total ÷ 50

Test 2 — FSLogix Standard vs Premium comparison
  Input:  500 GB provisioned, 1M transactions/month
  Expected: Standard = base_fee + (1000 × transaction_rate)
            Premium = base_fee_premium (no transactions)
            Calculator flags if Standard total > Premium total
AzureCalc.uk is independently operated. Not affiliated with Microsoft Corporation. Pricing data sourced from the Microsoft Azure Retail Prices API.