chore: publish from staged

This commit is contained in:
github-actions[bot]
2026-03-12 04:48:17 +00:00
parent cf0820a01c
commit 060ddd5b83
294 changed files with 47332 additions and 217 deletions

View File

@@ -0,0 +1,135 @@
# Copilot Studio — Billing Rates & Estimation
> Source: [Billing rates and management](https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-management)
> Estimator: [Microsoft agent usage estimator](https://microsoft.github.io/copilot-studio-estimator/)
> Licensing Guide: [Copilot Studio Licensing Guide](https://go.microsoft.com/fwlink/?linkid=2320995)
## Copilot Credit Rate
**1 Copilot Credit = $0.01 USD**
## Billing Rates (cached snapshot — last updated March 2026)
**IMPORTANT: Always prefer fetching live rates from the source URLs below. Use this table only as a fallback if web fetch is unavailable.**
| Feature | Rate | Unit |
|---|---|---|
| Classic answer | 1 | per response |
| Generative answer | 2 | per response |
| Agent action | 5 | per action (triggers, deep reasoning, topic transitions, computer use) |
| Tenant graph grounding | 10 | per message |
| Agent flow actions | 13 | per 100 flow actions |
| Text & gen AI tools (basic) | 1 | per 10 responses |
| Text & gen AI tools (standard) | 15 | per 10 responses |
| Text & gen AI tools (premium) | 100 | per 10 responses |
| Content processing tools | 8 | per page |
### Notes
- **Classic answers**: Predefined, manually authored responses. Static — don't change unless updated by the maker.
- **Generative answers**: Dynamically generated using AI models (GPTs). Adapt based on context and knowledge sources.
- **Tenant graph grounding**: RAG over tenant-wide Microsoft Graph, including external data via connectors. Optional per agent.
- **Agent actions**: Steps like triggers, deep reasoning, topic transitions visible in the activity map. Includes Computer-Using Agents.
- **Text & gen AI tools**: Prompt tools embedded in agents. Three tiers (basic/standard/premium) based on the underlying language model.
- **Agent flow actions**: Predefined flow action sequences executed without agent reasoning/orchestration at each step.
### Reasoning Model Billing
When using a reasoning-capable model:
```
Total cost = feature rate for operation + text & gen AI tools (premium) per 10 responses
```
Example: A generative answer using a reasoning model costs **2 credits** (generative answer) **+ 10 credits** (premium per response, prorated from 100/10).
## Estimation Formula
### Inputs
| Parameter | Description |
|---|---|
| `users` | Number of end users |
| `interactions_per_month` | Average interactions per user per month |
| `knowledge_pct` | % of responses from knowledge sources (0-100) |
| `tenant_graph_pct` | Of knowledge responses, % using tenant graph grounding (0-100) |
| `tool_prompt` | Average Prompt tool calls per session |
| `tool_agent_flow` | Average Agent flow calls per session |
| `tool_computer_use` | Average Computer use calls per session |
| `tool_custom_connector` | Average Custom connector calls per session |
| `tool_mcp` | Average MCP (Model Context Protocol) calls per session |
| `tool_rest_api` | Average REST API calls per session |
| `prompts_basic` | Average basic AI prompt uses per session |
| `prompts_standard` | Average standard AI prompt uses per session |
| `prompts_premium` | Average premium AI prompt uses per session |
### Calculation
```
total_sessions = users × interactions_per_month
── Knowledge Credits ──
tenant_graph_credits = total_sessions × (knowledge_pct/100) × (tenant_graph_pct/100) × 10
generative_answer_credits = total_sessions × (knowledge_pct/100) × (1 - tenant_graph_pct/100) × 2
classic_answer_credits = total_sessions × (1 - knowledge_pct/100) × 1
── Agent Tools Credits ──
tool_calls = total_sessions × (prompt + computer_use + custom_connector + mcp + rest_api)
tool_credits = tool_calls × 5
── Agent Flow Credits ──
flow_calls = total_sessions × tool_agent_flow
flow_credits = ceil(flow_calls / 100) × 13
── Prompt Modifier Credits ──
basic_credits = ceil(total_sessions × prompts_basic / 10) × 1
standard_credits = ceil(total_sessions × prompts_standard / 10) × 15
premium_credits = ceil(total_sessions × prompts_premium / 10) × 100
── Total ──
total_credits = knowledge + tools + flows + prompts
cost_usd = total_credits × 0.01
```
## Billing Examples (from Microsoft Docs)
### Customer Support Agent
- 4 classic answers + 2 generative answers per session
- 900 customers/day
- **Daily**: `[(4×1) + (2×2)] × 900 = 7,200 credits`
- **Monthly (30d)**: ~216,000 credits = **~$2,160**
### Sales Performance Agent (Tenant Graph Grounded)
- 4 generative answers + 4 tenant graph grounded responses per session
- 100 unlicensed users
- **Daily**: `[(4×2) + (4×10)] × 100 = 4,800 credits`
- **Monthly (30d)**: ~144,000 credits = **~$1,440**
### Order Processing Agent
- 4 action calls per trigger (autonomous)
- **Per trigger**: `4 × 5 = 20 credits`
## Employee vs Customer Agent Types
| Agent Type | Included with M365 Copilot? |
|---|---|
| Employee-facing (BtoE) | Classic answers, generative answers, and tenant graph grounding are included at zero cost when the user has a Microsoft 365 Copilot license |
| Customer/partner-facing | All usage is billed normally |
## Overage Enforcement
- Triggered at **125%** of prepaid capacity
- Custom agents are disabled (ongoing conversations continue)
- Email notification sent to tenant admin
- Resolution: reallocate capacity, purchase more, or enable pay-as-you-go
## Live Source URLs
For the latest rates, fetch content from these pages:
- [Billing rates and management](https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-management)
- [Copilot Studio licensing](https://learn.microsoft.com/en-us/microsoft-copilot-studio/billing-licensing)
- [Copilot Studio Licensing Guide (PDF)](https://go.microsoft.com/fwlink/?linkid=2320995)

View File

@@ -0,0 +1,142 @@
# Cost Estimator Reference
Formulas and patterns for converting Azure unit prices into monthly and annual cost estimates.
## Standard Time-Based Calculations
### Hours per Month
Azure uses **730 hours/month** as the standard billing period (365 days × 24 hours / 12 months).
```
Monthly Cost = Unit Price per Hour × 730
Annual Cost = Monthly Cost × 12
```
### Common Multipliers
| Period | Hours | Calculation |
|--------|-------|-------------|
| 1 Hour | 1 | Unit price |
| 1 Day | 24 | Unit price × 24 |
| 1 Week | 168 | Unit price × 168 |
| 1 Month | 730 | Unit price × 730 |
| 1 Year | 8,760 | Unit price × 8,760 |
## Service-Specific Formulas
### Virtual Machines (Compute)
```
Monthly Cost = hourly price × 730
```
For VMs that run only business hours (8h/day, 22 days/month):
```
Monthly Cost = hourly price × 176
```
### Azure Functions
```
Execution Cost = price per execution × number of executions
Compute Cost = price per GB-s × (memory in GB × execution time in seconds × number of executions)
Total Monthly = Execution Cost + Compute Cost
```
Free grant: 1M executions and 400,000 GB-s per month.
### Azure Blob Storage
```
Storage Cost = price per GB × storage in GB
Transaction Cost = price per 10,000 ops × (operations / 10,000)
Egress Cost = price per GB × egress in GB
Total Monthly = Storage Cost + Transaction Cost + Egress Cost
```
### Azure Cosmos DB
#### Provisioned Throughput
```
Monthly Cost = (RU/s / 100) × price per 100 RU/s × 730
```
#### Serverless
```
Monthly Cost = (total RUs consumed / 1,000,000) × price per 1M RUs
```
### Azure SQL Database
#### DTU Model
```
Monthly Cost = price per DTU × DTUs × 730
```
#### vCore Model
```
Monthly Cost = vCore price × vCores × 730 + storage price per GB × storage GB
```
### Azure Kubernetes Service (AKS)
```
Monthly Cost = node VM price × 730 × number of nodes
```
Control plane is free for standard tier.
### Azure App Service
```
Monthly Cost = plan price × 730 (for hourly-priced plans)
```
Or flat monthly price for fixed-tier plans.
### Azure OpenAI
```
Monthly Cost = (input tokens / 1000) × input price per 1K tokens
+ (output tokens / 1000) × output price per 1K tokens
```
## Reservation vs. Pay-As-You-Go Comparison
When presenting pricing options, always show the comparison:
```
| Pricing Model | Monthly Cost | Annual Cost | Savings vs. PAYG |
|---------------|-------------|-------------|------------------|
| Pay-As-You-Go | $X | $Y | — |
| 1-Year Reserved | $A | $B | Z% |
| 3-Year Reserved | $C | $D | W% |
| Savings Plan (1yr) | $E | $F | V% |
| Savings Plan (3yr) | $G | $H | U% |
| Spot (if available) | $I | N/A | T% |
```
Savings percentage formula:
```
Savings % = ((PAYG Price - Reserved Price) / PAYG Price) × 100
```
## Cost Summary Table Template
Always present results in this format:
```markdown
| Service | SKU | Region | Unit Price | Unit | Monthly Est. | Annual Est. |
|---------|-----|--------|-----------|------|-------------|-------------|
| Virtual Machines | Standard_D4s_v5 | East US | $0.192/hr | 1 Hour | $140.16 | $1,681.92 |
```
## Tips
- Always clarify the **usage pattern** before estimating (24/7 vs. business hours vs. sporadic).
- For **storage**, ask about expected data volume and access patterns.
- For **databases**, ask about throughput requirements (RU/s, DTUs, or vCores).
- For **serverless** services, ask about expected invocation count and duration.
- Round to 2 decimal places for display.
- Note that prices are in **USD** unless otherwise specified.

View File

@@ -0,0 +1,84 @@
# Azure Region Names Reference
The Azure Retail Prices API requires `armRegionName` values in lowercase with no spaces. Use this table to map common region names to their API values.
## Region Mapping
| Display Name | armRegionName |
|-------------|---------------|
| East US | `eastus` |
| East US 2 | `eastus2` |
| Central US | `centralus` |
| North Central US | `northcentralus` |
| South Central US | `southcentralus` |
| West Central US | `westcentralus` |
| West US | `westus` |
| West US 2 | `westus2` |
| West US 3 | `westus3` |
| Canada Central | `canadacentral` |
| Canada East | `canadaeast` |
| Brazil South | `brazilsouth` |
| North Europe | `northeurope` |
| West Europe | `westeurope` |
| UK South | `uksouth` |
| UK West | `ukwest` |
| France Central | `francecentral` |
| France South | `francesouth` |
| Germany West Central | `germanywestcentral` |
| Germany North | `germanynorth` |
| Switzerland North | `switzerlandnorth` |
| Switzerland West | `switzerlandwest` |
| Norway East | `norwayeast` |
| Norway West | `norwaywest` |
| Sweden Central | `swedencentral` |
| Italy North | `italynorth` |
| Poland Central | `polandcentral` |
| Spain Central | `spaincentral` |
| East Asia | `eastasia` |
| Southeast Asia | `southeastasia` |
| Japan East | `japaneast` |
| Japan West | `japanwest` |
| Australia East | `australiaeast` |
| Australia Southeast | `australiasoutheast` |
| Australia Central | `australiacentral` |
| Korea Central | `koreacentral` |
| Korea South | `koreasouth` |
| Central India | `centralindia` |
| South India | `southindia` |
| West India | `westindia` |
| UAE North | `uaenorth` |
| UAE Central | `uaecentral` |
| South Africa North | `southafricanorth` |
| South Africa West | `southafricawest` |
| Qatar Central | `qatarcentral` |
## Conversion Rules
1. Remove all spaces
2. Convert to lowercase
3. Examples:
- "East US" → `eastus`
- "West Europe" → `westeurope`
- "Southeast Asia" → `southeastasia`
- "South Central US" → `southcentralus`
## Common Aliases
Users may refer to regions informally. Map these to the correct `armRegionName`:
| User Says | Maps To |
|-----------|---------|
| "US East", "Virginia" | `eastus` |
| "US West", "California" | `westus` |
| "Europe", "EU" | `westeurope` (default) |
| "UK", "London" | `uksouth` |
| "Asia", "Singapore" | `southeastasia` |
| "Japan", "Tokyo" | `japaneast` |
| "Australia", "Sydney" | `australiaeast` |
| "India", "Mumbai" | `centralindia` |
| "Korea", "Seoul" | `koreacentral` |
| "Brazil", "São Paulo" | `brazilsouth` |
| "Canada", "Toronto" | `canadacentral` |
| "Germany", "Frankfurt" | `germanywestcentral` |
| "France", "Paris" | `francecentral` |
| "Sweden", "Stockholm" | `swedencentral` |

View File

@@ -0,0 +1,106 @@
# Azure Service Names Reference
The `serviceName` field in the Azure Retail Prices API is **case-sensitive**. Use this reference to find the exact service name to use in filters.
## Compute
| Service | `serviceName` Value |
|---------|-------------------|
| Virtual Machines | `Virtual Machines` |
| Azure Functions | `Functions` |
| Azure App Service | `Azure App Service` |
| Azure Container Apps | `Azure Container Apps` |
| Azure Container Instances | `Container Instances` |
| Azure Kubernetes Service | `Azure Kubernetes Service` |
| Azure Batch | `Azure Batch` |
| Azure Spring Apps | `Azure Spring Apps` |
| Azure VMware Solution | `Azure VMware Solution` |
## Storage
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Storage (Blob, Files, Queues, Tables) | `Storage` |
| Azure NetApp Files | `Azure NetApp Files` |
| Azure Backup | `Backup` |
| Azure Data Box | `Data Box` |
> **Note**: Blob Storage, Files, Disk Storage, and Data Lake Storage are all under the single `Storage` service name. Use `meterName` or `productName` to distinguish between them (e.g., `contains(meterName, 'Blob')`).
## Databases
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Cosmos DB | `Azure Cosmos DB` |
| Azure SQL Database | `SQL Database` |
| Azure SQL Managed Instance | `SQL Managed Instance` |
| Azure Database for PostgreSQL | `Azure Database for PostgreSQL` |
| Azure Database for MySQL | `Azure Database for MySQL` |
| Azure Cache for Redis | `Redis Cache` |
## AI + Machine Learning
| Service | `serviceName` Value |
|---------|-------------------|
| Azure AI Foundry Models (incl. OpenAI) | `Foundry Models` |
| Azure AI Foundry Tools | `Foundry Tools` |
| Azure Machine Learning | `Azure Machine Learning` |
| Azure Cognitive Search (AI Search) | `Azure Cognitive Search` |
| Azure Bot Service | `Azure Bot Service` |
> **Note**: Azure OpenAI pricing is now under `Foundry Models`. Use `contains(productName, 'OpenAI')` or `contains(meterName, 'GPT')` to filter for OpenAI-specific models.
## Networking
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Load Balancer | `Load Balancer` |
| Azure Application Gateway | `Application Gateway` |
| Azure Front Door | `Azure Front Door Service` |
| Azure CDN | `Azure CDN` |
| Azure DNS | `Azure DNS` |
| Azure Virtual Network | `Virtual Network` |
| Azure VPN Gateway | `VPN Gateway` |
| Azure ExpressRoute | `ExpressRoute` |
| Azure Firewall | `Azure Firewall` |
## Analytics
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Synapse Analytics | `Azure Synapse Analytics` |
| Azure Data Factory | `Azure Data Factory v2` |
| Azure Stream Analytics | `Azure Stream Analytics` |
| Azure Databricks | `Azure Databricks` |
| Azure Event Hubs | `Event Hubs` |
## Integration
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Service Bus | `Service Bus` |
| Azure Logic Apps | `Logic Apps` |
| Azure API Management | `API Management` |
| Azure Event Grid | `Event Grid` |
## Management & Monitoring
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Monitor | `Azure Monitor` |
| Azure Log Analytics | `Log Analytics` |
| Azure Key Vault | `Key Vault` |
| Azure Backup | `Backup` |
## Web
| Service | `serviceName` Value |
|---------|-------------------|
| Azure Static Web Apps | `Azure Static Web Apps` |
| Azure SignalR | `Azure SignalR Service` |
## Tips
- If you're unsure about a service name, **filter by `serviceFamily` first** to discover valid `serviceName` values in the response.
- Example: `serviceFamily eq 'Databases' and armRegionName eq 'eastus'` will return all database service names.
- Some services have multiple `serviceName` entries for different tiers or generations.