v0.5.0 — Egress + Multi-AZ + realistic snapshots
The TCO depth release
v0.2-v0.4 modeled on-demand list pricing well. Real-world TCO needs egress (often the actual hidden killer), Multi-AZ (production usually doubles compute), and snapshots that don't blow up to upper-bound estimates. v0.5 lands all three.
10 MCP tools. 77/77 tests passing.
NEW: `compare_egress` — internet + inter-region transfer
Tiered pricing with free-tier credits across all 4 clouds.
| Cloud | Free tier | Beyond free |
|---|---|---|
| AWS | 100 GB/mo | $0.05–$0.09/GB tiered |
| Azure | 100 GB/mo | $0.05–$0.087/GB tiered |
| GCP | 0 | $0.08–$0.12/GB tiered |
| OCI | 10 TB/mo ⭐ | $0.0085/GB |
At 50 TB/month internet egress, OCI is ~12× cheaper than the hyperscalers ($340 vs $4,181-$4,310). At 200 TB/mo, it's still ~10× cheaper. Real moat for content/CDN workloads.
Inter-region transfer also modeled: hyperscalers ~$0.02/GB, OCI $0.0085/GB.
NEW: `multi_az` flag on `compare_workload`
Set to `true` to model Multi-AZ / HA deployments with sync replicas across two zones. Compute totals × 2 on every cloud. Storage stays at 1× (cross-AZ at base price already).
Combines correctly with `commitment`: e.g. `multi_az=true` + `3yr_partial_upfront` ≈ on-demand single-AZ totals (2× × 0.5 = 1.0×).
NEW: `snapshot_incremental_factor` on storage + OS-disk snapshots
Per-row field that scales the snapshot upper-bound estimate.
| Factor | Meaning |
|---|---|
| `1.0` (default) | Upper-bound — each snapshot is full capacity (backward compat with v0.2-0.4) |
| `0.3` | Typical real-world incremental dedup |
| `0.0` | Exclude snapshots from the total |
Smoke test on 50 TB SSD with 7 daily snapshots:
- Upper-bound: AWS $21,500/mo
- Realistic (0.3): AWS $9,250/mo (-57%)
Lint cleanup
- Extracted `DATA_PACKAGE` constant in `pricing.py` (deduplicated 3 string literals)
- Refactored `call_tool` from a 13-branch if-chain into a clean dispatch table
- Cognitive complexity in `call_tool` dropped from 16 to 3
- Float-equality checks in tests converted to tolerance pattern
Backward compatibility
- All v0.4 tools unchanged
- All schemas additive (new fields default to backward-compatible values)
- `cloudprice-mcp setup` and `cloudprice-mcp doctor` work identically
Roadmap (deferred to v0.5.1 / v0.6)
- us-west-2 / eu-west-1 multi-region SKUs (data-entry heavy, deserves its own release)
- Reserved Instance SKU detail beyond flat tier
- IOPS-based storage matching
- Backup storage charges
- VPC peering / interconnect costs
Install / upgrade
```bash
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup --yes
```
(The `setup` command from v0.4 picks up the new version automatically.)
Tests
77/77 passing (was 66 in v0.4).
- 13 new egress tests covering free-tier behavior, tiered pricing, OCI 10 TB dominance at 50 TB/mo, inter-region rates
- 8 new multi-AZ + snapshot factor tests covering compute multiplier, storage stays 1×, flag propagation, combine-with-commitment math, factor at 1.0/0.3/0.0