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.

Metadata

Release files for az-scout-plugin-compare-cost-between-regions 2026.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for az-scout-plugin-compare-cost-between-regions 2026.8.0
File Size Uploaded Provenance Actions
az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz 144.8 kB With provenance Details for az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for az-scout-plugin-compare-cost-between-regions 2026.8.0
File Interpreter ABI Platform Actions
az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl Python 3 none any Details for az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl

Total release size: 174.0 kB

Release files / az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz

Download URL az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz
Size 144.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a07dc401bb21fefb842d8db0c30f04c80d4421ec90dd7d820974980e7d720432
BLAKE2b-256 checksum
How to use checksums
f0db7d0992982cf8d06ad592d72858b567b8514916b85a85a6502b96f975b0fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl

Download URL az_scout_plugin_compare_cost_between_regions-2026.8.0-py3-none-any.whl
Size 29.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58310f453bf3a68e38aedd67956991e0317e7f330553a908185f4a49e79ded90
BLAKE2b-256 checksum
How to use checksums
dbe6572a640b9671ac58e46bb51ff075ba542cfc22a45226c9ce9da030196a54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Security for az-scout-plugin-compare-cost-between-regions 2026.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for az_scout_plugin_compare_cost_between_regions-2026.8.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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