Negotiated Discounts¶
Strawly prices every resource from the public Azure retail catalogue. It reads the Azure Retail Prices API, filtered to consumption meters, and computes each recommendation's savings as the difference between the current tier's price and the recommended tier's. There is no Azure Advisor integration and no billing export, so nothing in the product reflects an enterprise agreement rate on its own.
If your organisation buys Azure under a discount, whether an Enterprise Agreement, an EDP, or a MACC commitment, configure the percentage here and every cost and savings figure is shown net of it.
Where to set it¶
Settings > Modules > Opportunities > Azure, in the Discounts section. Setting or removing a discount requires the modules:manage permission.
Enter the percentage off list price and the month it takes effect from. The rate applies from that month onward until a later row supersedes it.
Each Azure sub-module, App Service Plan, Managed Disk, SQL Database and Virtual Machine, has its own Discounts section for a per-service override. A sub-module with no row of its own inherits the Azure-wide rate. Use an override when your agreement prices a service family differently from the rest of your spend.
What it changes¶
The discount is applied when figures are read, not when they are collected. Setting or changing it takes effect on the next page load. No collector run is required, and az_retail_prices keeps genuine list prices.
It applies to:
- Potential savings on the usage dashboard and the recommendations list
- Realized and ignored savings, including the ledgers and their monthly and per-service breakdowns
- Current and projected monthly cost on the recommendation detail page, and the tier options modal
- Initiative savings totals
- The open-savings trend chart, including past months
- CSV and email exports, which read the same converted figures
Savings shrink by the same percentage as cost¶
Savings are the difference between two retail prices. Discounting both sides scales the difference by the same factor. At 21% off, a rightsize that saves $1,000 of list price saves $790 of what you actually pay.
This is the intended behaviour, and it is the point of configuring the discount: $790 is the number that will show up on your invoice. Expect every savings figure in the product to drop by the discount percentage the day you enable it.
Priority is recalculated to match. The thresholds that separate critical, high and medium are absolute dollar amounts, so they are applied to the discounted figure. A recommendation worth $520 at list price is critical without a discount and high at 21% off. Where the engine demoted a recommendation's priority for low metric coverage, that demotion is preserved on top of the recalculated bucket.
Past months are not restated¶
Discounts are effective-dated for the same reason exchange rates are. Each recommendation resolves the rate in force at its own conversion month, using the same month resolution described in Exchange Rates: the pinned month once a recommendation has moved to In Review, otherwise the month of the engine's last check.
So a rate you add today, effective this month, does not change a recommendation implemented in March. The realized savings you reported for March stay as reported. When your agreement is renegotiated, add a new row with the new effective month rather than editing the old one, and each month keeps the rate that was actually in force.
The History list under each Discounts section shows every stored row so the dating is visible rather than implied. Removing a row makes the previous row apply again for the months it covered.
Interaction with currency conversion¶
The discount and the display-currency exchange rate are applied together, discount first. Both resolve at the same month. A 21% discount with a USD to GBP rate of 0.79 gives 0.79 x 0.79 of the list dollar figure, applied once.
Unlike exchange rates, the discount applies whether or not the display currency is USD.
What it does not model¶
The discount is a flat percentage against first-party consumption meters. It does not model:
- Reserved Instances and Savings Plans. The engine prices pay-as-you-go meters only. Spot and Low Priority rows are filtered out at collection.
- Azure Hybrid Benefit. Windows licence savings are not represented separately.
- Marketplace and third-party items. These are outside the four service types Strawly collects.
If your agreement excludes a service family from the discount, set a 0% override for that sub-module rather than lowering the Azure-wide rate.
Reconciling against the Azure portal¶
Where a discount applies, the recommendation detail page shows both figures, for example $1,135 ยท list $1,437, along with the percentage applied. The list figure is what you will find on prices.azure.com for that SKU and region. The dashboards carry a badge reading "Net of 21% Azure discount" next to the headline totals.