Skip to main content

az-scout-plugin-compare-cost-between-regions

An az-scout plugin for comparing Azure costs between regions using Enterprise Agreement billing exports.

What it does

Upload your Detail Enrollment CSV (usage details) and optionally your PriceSheet ZIP to:

  1. Analyse usage — Aggregate monthly costs per SKU for a selected MeterRegion, with a billing summary breakdown by service category
  2. Compare regions — Upload your EA PriceSheet ZIP and select a target region to estimate what the same workload would cost in a different Azure region

3-step workflow

Step Name Description
1 Prerequisites Select billing account type (EA or MCA) and follow download instructions for the required files
2 Usage Analysis Upload the Detail Enrollment CSV, select a source MeterRegion, view aggregated SKU costs and billing summary
3 Region Comparison Upload the PriceSheet ZIP, select a target region, compare costs side-by-side

Key features

  • 2-step SKU matching — MeterId → source PriceSheet row → region-agnostic product key → target region lookup
  • UoM normalization — Handles different UnitOfMeasure formats across regions (e.g. 1 TB/Month vs 100 GB/Month)
  • BasePrice disambiguation — Correctly matches pricing tiers when the same product has multiple SkuIDs
  • ARM ↔ MeterRegion mapping — 65+ region mappings between ARM slugs and PriceSheet abbreviations
  • Sortable tables — via simpleDatatables with numeric column sorting
  • CSV export — Download usage analysis and comparison results
  • EA/MCA documentation — Step-by-step download instructions aligned with Microsoft documentation

Supported billing account types

  • Enterprise Agreement (EA) — fully supported
  • MCA / MPA — download instructions shown, but analysis not yet validated

Setup

# Install the plugin (editable mode for development)
cd az-scout-plugin-compare-cost-between-regions
uv sync --group dev
uv pip install -e .

# Start az-scout — the plugin is auto-discovered
az-scout

Structure

src/az_scout_compare_cost_between_regions/
├── __init__.py      # Plugin class + module-level instance
├── _log.py          # Logger helper
├── pricing.py       # PriceSheet matching, UoM normalization, cost comparison engine
├── routes.py        # FastAPI routes: /compare-pricesheet, /region-mapping
├── tools.py         # MCP tool: compare_cost_between_regions
└── static/
    ├── css/         # Plugin styles (dark/light theme support)
    ├── html/        # HTML fragment (3-step wizard)
    └── js/          # Tab UI logic, CSV parsing, aggregation

API routes

Method Path Description
POST /compare-pricesheet Upload PriceSheet ZIP + items JSON, returns comparison results
GET /region-mapping Returns ARM ↔ MeterRegion mapping dictionaries

MCP tool

  • compare_cost_between_regions(file_path, meter_region, source_arm_region, target_arm_region) — Analyse a Detail Enrollment CSV and return a comparison structure

Quality checks

uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run mypy src/
uv run pytest

CI/CD

  • CI (.github/workflows/ci.yml): Runs lint and tests on push/PR to main
  • Publish (.github/workflows/publish.yml): Triggered on version tags (v*), builds package, creates GitHub Release, publishes to PyPI via trusted publishing (OIDC)

Versioning

Version is derived from git tags via hatch-vcs. Tags follow CalVer: v2026.4.0, v2026.4.1, etc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz.

File metadata

File hashes

Hashes for az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz
Algorithm Hash digest
SHA256 a07dc401bb21fefb842d8db0c30f04c80d4421ec90dd7d820974980e7d720432
MD5 234725b9de504fdefcf448393ed932e4
BLAKE2b-256 f0db7d0992982cf8d06ad592d72858b567b8514916b85a85a6502b96f975b0fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz:

Publisher: publish.yml on az-scout/az-scout-plugin-compare-cost-between-regions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58310f453bf3a68e38aedd67956991e0317e7f330553a908185f4a49e79ded90
MD5 ba56322042e6fa1ad9302f9723dd62c8
BLAKE2b-256 dbe6572a640b9671ac58e46bb51ff075ba542cfc22a45226c9ce9da030196a54

See more details on using hashes here.

Provenance

The following attestation bundles were made for az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl:

Publisher: publish.yml on az-scout/az-scout-plugin-compare-cost-between-regions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2026.8.0 This release

2 files

2026.6.0

2 files

2026.5.0

2 files

2026.4.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page