> **Important:** This skill provides guidance and recommended instructions to assist the AI system. Outputs are not guaranteed to be complete, correct, secure, or applicable to every scenario. Results should be reviewed and validated by a human before being applied. The AI model may choose not to follow all instructions exactly, and additional verification may be required. # Subagent Template — Cost Estimation (Step 6) Estimate monthly costs for planned Azure services using Azure Retail Prices API. ## References to Read Internally Read BOTH before making any pricing calls: - [pricing-guide.md](pricing-guide.md) — methodology, free-grant handling, API patterns, troubleshooting - [pricing-guide-services.md](pricing-guide-services.md) — per-service filter strings, meter names, formulas ## Input (provided by caller) | Field | Required | |-------|----------| | `services[]` with service type and selected SKU per service | YES | | `region` — deployment region | YES | | Budget tier (free / balanced / performance) | YES | ## Output Return JSON (≤500 tokens): ```json { "costEstimate": { "monthlyTotal": 42.50, "currency": "USD", "breakdown": [ { "service": "App Service", "sku": "B1", "monthlyUsd": 13.14, "formula": "retailPrice × 730" }, { "service": "PostgreSQL Flexible Server", "sku": "Standard_B1ms", "monthlyUsd": 24.82, "formula": "compute + storage" } ], "freeGrants": [ { "service": "Container Apps", "grant": "180K vCPU-sec + 360K GiB-sec", "monthlySavings": 0 } ], "assumptions": [], "disclaimer": "Estimate based on Azure Retail Prices API. Verify at azure.com/pricing." } } ``` ## Rules - ⛔ **Do NOT invoke any other agents or hand off** — no external agent calls of any kind. You are a pricing subagent only. Use direct HTTP to `https://prices.azure.com/api/retail/prices` for price queries (MCP pricing was already attempted inline by the caller). - ⛔ **No $0 shortcut — compute always has cost** (App Service B1 / SWA Standard / Functions Flex Consumption floor). Price every compute app via live API; note free **grants** (Cosmos free-tier account, Container Apps/Functions grants) but still price paid meters. Do NOT return $0 for a compute app. - ⛔ `armSkuName` is case-sensitive — use `B1` not `b1` - ⛔ For services with empty `armSkuName` (Container Apps, Functions Flex Consumption, ACR, Storage, Cosmos): use `filter`/`meterName` matching — a `sku` filter returns `[]` - ⛔ **Monthly multiplier = each meter's `unitOfMeasure`** (`1 Hour`→×730, `1/Day`→×30 [ACR/registry, SQL DTU], `1 GB/Month`→×GB, `1 Second`→usage) — NEVER blanket ×730; applying ×730 to a `1/Day` meter overstates ~24× - ⛔ Use direct HTTP to `https://prices.azure.com/api/retail/prices` for all price lookups. Do NOT use `mcp_azure_mcp_pricing` — it was already tried inline and failed. - ⛔ Never hardcode dollar amounts — always query live prices - ⛔ If pricing API returns 400: verify `--sku` included in the query ## Token Budget ≤500 tokens for cost estimate report.