Skip to content

Commit 5b83399

Browse files
authored
Merge pull request #312689 from pri-mittal/copilot/20260305-112356
Add reservations ISF concept doc and navigation links
2 parents c540ac5 + e066ab0 commit 5b83399

3 files changed

Lines changed: 206 additions & 3 deletions

File tree

articles/cost-management-billing/reservations/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ landingContent:
2727
- text: Reservation purchase recommendations
2828
url: reserved-instance-purchase-recommendations.md
2929
- text: Instance size flexibility
30+
url: instance-size-flexibility.md
31+
- text: VM instance size flexibility (Virtual Machines)
3032
url: /azure/virtual-machines/reserved-vm-instance-size-flexibility?toc=/azure/cost-management-billing/reservations/toc.json
3133
- text: Windows and SQL software cost charged separately
3234
url: reserved-instance-windows-software-costs.md
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
---
2+
title: Instance size flexibility for Azure Reservations
3+
description: Learn how instance size flexibility works for reservations and how discount matching is calculated.
4+
author: pri-mittal
5+
ms.author: primittal
6+
ms.reviewer: primittal
7+
ms.service: cost-management-billing
8+
ms.subservice: reservations
9+
ms.topic: conceptual
10+
ms.date: 03/05/2026
11+
---
12+
13+
# Instance size flexibility (ISF)
14+
15+
Instance Size Flexibility (ISF) is an Azure Reservations capability that allows a single reservation purchase to automatically apply across multiple SKUs, rather than being locked to one exact size. Instead of requiring customers to predict and reserve a specific SKU, ISF applies reservation benefits dynamically based on usage, as long as the resources belong to the same flexibility group. This ensures customers continue to receive reserved pricing even when workloads scale up, scale down, or shift across compatible sizes, reducing operational overhead and improving reservation utilization.
16+
17+
## How instance size flexibility works
18+
19+
Each reservation-enabled service defines instance size flexibility groups where ISF is supported. Only SKUs in the same flexibility group can share a reservation benefit. For example, multiple VM sizes in the same VM family can be in one group, while sizes in a different family aren't.
20+
21+
Within a flexibility group, each SKU has a relative ratio:
22+
- Smaller sizes have lower ratios.
23+
- Larger sizes have higher ratios.
24+
25+
When you purchase a reservation, you commit to fixed quantity. Microsoft applies reservation benefit to running eligible usage until it's consumed. Ratios are relative units, not prices.
26+
27+
Microsoft continuously evaluates running usage and applies reservation discounts to eligible resources on a first-come, first-served basis within the reservation scope. If usage exceeds the purchased quantity, the remaining usage is billed at pay-as-you-go rates. No manual assignment is required.
28+
29+
## Examples
30+
31+
### Virtual Machine example
32+
33+
With a reserved virtual machine instance that's optimized for instance size flexibility, the reservation you buy can apply to the virtual machines (VMs) sizes in the same instance size flexibility group. In other words, when you buy a reserved VM instance of any size within an instance flexibility group, the instance applies to all sizes within the group. For example, if you buy a reservation for a VM size that's listed in the DSv2 Series, like Standard_DS3_v2, the reservation discount can apply to the other sizes that are listed in that same instance size flexibility group:
34+
35+
Standard_DS1_v2
36+
Standard_DS2_v2
37+
Standard_DS3_v2
38+
Standard_DS4_v2
39+
But that reservation discount doesn't apply to VMs sizes that are listed in different instance size flexibility groups, like SKUs in DSv2 Series High Memory: Standard_DS11_v2, Standard_DS12_v2, and so on.
40+
41+
Within the instance size flexibility group, the number of VMs the reservation discount applies to depends on the VM size you pick when you buy a reservation. It also depends on the sizes of the VMs that you have running. The ratio column compares the relative footprint for each VM size in that instance size flexibility group. Use the ratio value to calculate how the reservation discount applies to the VMs you have running.
42+
43+
### Microsoft Foundry example
44+
45+
Assume you buy a 300-PTU Global reservation for Microsoft Foundry Provisioned Throughput.
46+
47+
- If you deploy 250 Global PTUs for Azure OpenAI Service, and 50 Global PTUs for DeepSeek in same region, all 300 PTUs are covered by the reservation.
48+
49+
Global, Data Zone, and Regional reservations aren't interchangeable, so each deployment type needs its own matching reservation.
50+
51+
## Other services
52+
53+
Reservation benefit matching isn't limited to VM reservations. Similar service-specific reservation behavior also exists for other services, and you can find details on individual documents for each reservation type.
54+
55+
## Extract Instance Size Flexibility ratios using Azure Catalogs API
56+
57+
This section describes how to use the Azure Reservations Catalogs API to extract Instance Size Flexibility (ISF) ratios for Azure Reservations. ISF allows you to apply reservation benefits flexibly across different sizes within the same resource family and region. This applies to various Azure reservation types including Virtual Machines, Azure Redis Cache and other supported services.
58+
59+
## What you'll learn
60+
61+
How to use the Azure Catalogs API via PowerShell to extract Instance Size Flexibility ratios for various Azure reservation types, construct ISF CSV files, and handle different resource types that support ISF.
62+
63+
## Prerequisites
64+
65+
- Azure subscription with appropriate permissions
66+
- Access to Azure Resource Management APIs
67+
- PowerShell with Az.Reservations module (for PowerShell examples)
68+
- Understanding of the Azure resource types you want to generate ISF ratios for
69+
70+
## ISF CSV file structure
71+
72+
The resulting CSV file contains three columns:
73+
74+
| Column | Description |
75+
| -------- | ----------- |
76+
| `InstanceSizeFlexibilityGroup` | The flexibility group name (e.g., "Av2 Series", "General Purpose Gen5") |
77+
| `ArmSkuName` | The Azure Resource Manager SKU name (e.g., "Standard_A1_v2", "GP_Gen5_2") |
78+
| `Ratio` | The flexibility ratio for the SKU within its group |
79+
80+
## API Documentation Reference
81+
82+
For developers who prefer to use the REST API directly, refer to the [Azure Reservations Catalog REST API documentation](/rest/api/reserved-vm-instances/get-catalog/get-catalog?tabs=HTTP).
83+
84+
The ISF ratio information is found in the API response within each catalog item's `skuProperties` array. Look for properties with the following names:
85+
- `ReservationsAutofitGroup` - Contains the flexibility group name
86+
- `ReservationsAutofitRatio` - Contains the ratio value for that SKU
87+
88+
## Using PowerShell
89+
90+
### Install required module
91+
92+
```powershell
93+
# Install the Az.Reservations module if not already installed
94+
Install-Module -Name Az.Reservations -Force -AllowClobber
95+
96+
# Connect to Azure
97+
Connect-AzAccount
98+
```
99+
100+
### Get catalog data with PowerShell
101+
102+
```powershell
103+
# Set parameters
104+
$SubscriptionId = "your-subscription-id"
105+
$Location = "eastus"
106+
$ResourceType = "VirtualMachines" # Change for different resource types
107+
108+
# Set subscription context
109+
Set-AzContext -SubscriptionId $SubscriptionId
110+
111+
# Get catalog data
112+
$CatalogData = Get-AzReservationCatalog -SubscriptionId $SubscriptionId -Location $Location -ReservedResourceType $ResourceType
113+
114+
# Display results
115+
$CatalogData | Select-Object Name, ResourceType | Format-Table
116+
```
117+
118+
## Extract ISF ratios from PowerShell response
119+
120+
The Catalogs API response contains ISF ratio information in the `skuProperties` array. Look for properties with names "InstanceSizeFlexibilityRatio" and "InstanceSizeFlexibilityGroup".
121+
122+
### PowerShell parsing example
123+
124+
```powershell
125+
# Function to extract ISF data from catalog response
126+
function Get-ISFRatios {
127+
param(
128+
[Parameter(Mandatory=$true)]
129+
$CatalogData
130+
)
131+
132+
$ISFData = @()
133+
134+
foreach ($item in $CatalogData) {
135+
$flexGroup = ""
136+
$ratio = ""
137+
138+
# Extract ISF properties
139+
foreach ($property in $item.SkuProperties) {
140+
if ($property.Name -eq "ReservationsAutofitGroup") {
141+
$flexGroup = $property.Value
142+
}
143+
elseif ($property.Name -eq "ReservationsAutofitRatio") {
144+
$ratio = $property.Value
145+
}
146+
}
147+
148+
# Only include items with both group and ratio
149+
if ($flexGroup -and $ratio) {
150+
$ISFData += [PSCustomObject]@{
151+
InstanceSizeFlexibilityGroup = $flexGroup
152+
ArmSkuName = $item.Name
153+
Ratio = $ratio
154+
}
155+
}
156+
}
157+
158+
return $ISFData
159+
}
160+
161+
# Extract ISF data
162+
$ISFRatios = Get-ISFRatios -CatalogData $CatalogData
163+
164+
# Export to CSV
165+
$ISFRatios | Export-Csv -Path "isf-ratios.csv" -NoTypeInformation
166+
167+
# Display sample results
168+
$ISFRatios | Select-Object -First 10 | Format-Table
169+
```
170+
171+
## Important considerations
172+
173+
- **Pagination**: The API returns paginated results. Use the `nextLink` property to retrieve all data.
174+
- **Region-specific data**: ISF ratios can vary by Azure region. Generate separate files for each target region.
175+
- **Resource type support**: Not all Azure services support ISF. Check the API response for InstanceSizeFlexibilityGroup properties.
176+
- **Regular updates**: ISF ratios may change when new resource sizes are introduced. Update your files regularly.
177+
- **Service-specific ratios**: Different services may have different ISF calculation methods and ratio scales.
178+
179+
## Troubleshooting
180+
181+
### Common issues and solutions
182+
183+
| Issue | Solution |
184+
| ------- | ---------- |
185+
| Authentication errors | Ensure you have `Microsoft.Capacity/catalogs/read` permission |
186+
| Empty results | Verify the location parameter matches an Azure region name and the resource type supports ISF |
187+
| Missing ISF properties | Some resource families may not support ISF - this is expected behavior |
188+
| Invalid resource type | Check the supported reservedResourceType values for your target service |
189+
190+
## Next steps
191+
192+
- [Learn more about Azure Reservations](save-compute-costs-reservations.md)
193+
- [Understanding Instance Size Flexibility for different services](reservation-discount-application.md#discount-applies-to-different-sizes)
194+
- [Azure Resource Manager REST API reference](/rest/api/resources/)
195+
196+
## Related articles
197+
198+
- [Azure Reservations documentation](save-compute-costs-reservations.md)
199+
- [Manage Azure Reservations](manage-reserved-vm-instance.md)
200+
- [Azure PowerShell documentation](/powershell/azure/)

articles/cost-management-billing/reservations/toc.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
href: save-compute-costs-reservations.md
88
- name: Concepts
99
items:
10-
- name: VM instance size flexibility
11-
href: /azure/virtual-machines/reserved-vm-instance-size-flexibility
12-
maintainContext: true
10+
- name: Instance size flexibility
11+
href: instance-size-flexibility.md
12+
- name: VM instance size flexibility (Virtual Machines)
13+
href: instance-size-flexibility.md#virtual-machine-example
1314
- name: Reservation recommendations
1415
href: reserved-instance-purchase-recommendations.md
1516
- name: How discount is applied

0 commit comments

Comments
 (0)