Savings opportunities: cost increases in each currency
The Savings opportunities page lists the open recommendations where one of CostGuard's growth checks found a cost increase, for all subscriptions or one - a place to look for savings, not an estimate of them. It counts them in each currency with the largest single increase, lists them by increase within each currency, and lets you dismiss or resolve one, or give feedback on it.
What this page is for
The Savings opportunities page answers one question: of the cost increases CostGuard is still flagging, where could you look for a saving, how large is each increase in its own currency, and which should you look at first?
It is for the engineer or FinOps practitioner choosing what to act on first. “Open recommendations” is the work queue of every open recommendation and “All recommendations” the register of every status; this page lists only the open recommendations where a growth check found a cost increase, the largest increase first within each currency, with the two decisions and the feedback at hand on each row.
A recommendation is a cost signal from one of CostGuard's three checks over your imported Azure cost. It is not rightsizing or reservation advice, and it does not come from Azure Advisor. CostGuard only reads your Azure data: no button on this page changes anything in Azure.
To open it, select “Savings opportunities” under “Recommendations” in the sidebar. The entry is there in both “Simple” and “Advanced” mode. The “Savings opportunities” link at the bottom of “All recommendations”, “Open recommendations” and “Dismissed recommendations” opens it too.

Before you start
Recommendations are raised from the Azure cost CostGuard imports. Until a connection has imported cost, the page shows “No cost data yet” with the button “Open Getting started”, which leads to the steps for connecting Azure and the first import.
Read the Getting started guide
Recommendations are part of the Growth, Pro and Enterprise plans. On Free and Starter, CostGuard raises none, and the page shows a labelled sample instead of your data.
Only the two growth checks record a cost increase. They compare the recent period with the period before it, so the page lists nothing until cost is recorded in both periods and a service's cost has grown enough to be reported.
Which recommendations appear here
A recommendation is listed here when all of the following hold. CostGuard applies this rule on the server, so a recommendation that does not meet it never reaches the page:
- It is open: no one has dismissed or resolved it.
- One of the two growth checks raised it: “Sudden service cost growth” or “Storage cost growth”.
- Its cost increase is above zero and is recorded in a three-letter currency code.
The two growth checks report a service whose cost rose between the two periods:
- “Sudden service cost growth”: a service whose cost in the recent period is at least 30% above the earlier period and at least 10.00 higher in its currency. The evidence shows “Earlier period” and “Recent period”.
- “Storage cost growth”: the same comparison for a service whose name contains storage, disk, blob or file, from 25% and at least 10.00 higher.
A service that had no cost in the earlier period is never reported as growth, because there is nothing to grow from. A storage service whose cost grew at least 30% is found by both growth checks, so the same increase can appear on two rows with the same figures.
The three kinds of recommendation, on All recommendations
Limits to know
“Service cost concentration” never appears here. The amount that check records is the service's whole cost in the recent period, not a cost increase. “Open recommendations” lists it with the other open findings.
A recommendation you dismiss or resolve leaves this list at once. It is listed again only if it is reopened, or if a later check raises the same finding again as a new open recommendation.
Choose the scope: all subscriptions or one
The “Subscription” list at the top of the page sets which recommendations the page reads: “All subscriptions”, which the page opens with, or one subscription. It is offered when there is more than one subscription to choose from.
It lists the subscriptions with recorded cost, by the name Azure records with the cost, and every other subscription that holds a savings opportunity. Two subscriptions with the same name are told apart by the last characters of their identifier in brackets; a subscription without a name reads “Unnamed subscription”, and one with no recorded cost reads “Subscription” followed by the end of its identifier. The page never shows a full subscription identifier.

Choosing a subscription reads the page again: the figures and the list then describe that subscription only. “Refresh” reads the savings opportunities and the subscription names again.
There is no date range and no currency to choose: the page lists every savings opportunity of the scope, however long it has been open, each in the currency Azure recorded its cost in.
The opportunities count and each currency's largest increase
The figures sum up the list: “Opportunities”, the number of savings opportunities in the scope; then one figure per currency, such as “In USD”, with the number of opportunities recorded in it and, under it, “Largest increase”; and “Not detected in the last 7 days”, the number of opportunities no check has found for a week.

“Largest increase” is the cost increase of one row - the largest in that currency - and never a sum. The currencies follow the alphabetical order of their codes, as the list below does, and no figure compares or combines two currencies.
The page reads every savings opportunity of the scope at once, so the figures are complete: they are not limited to the rows the list shows first.
Read the list
The “Opportunities by currency” panel lists the savings opportunities of the scope in groups, one per currency, each headed by its currency code. It has no filter: every savings opportunity of the scope is listed.
Each row has these columns:
- “Recommendation”: the kind of recommendation and the service, as a link to the recommendation's own page.
- “Subscription”: the subscription's name, as the scope list shows it.
- “Severity”: “High” from 75% growth, “Medium” from 50%, “Low” below that, with the growth beside it as “Growth”. It says how large the growth is, not how urgent the change is.
- “Evidence”: “Earlier period” and “Recent period”, the cost of the service in the two periods the check compared, in the currency Azure recorded them in.
- “Cost increase”: the increase between the two periods, explained below. The sudden growth row that repeats a storage growth row carries the mark “Same increase as the storage growth row”.
- “Open since”: the date CostGuard first detected the finding, and under it “Days open”, the number of calendar days in UTC from that date to the day the page was read.
- “Last detected”: the last time a check found the growth, with the mark “Not detected in the last 7 days” when that was seven days or more before the page was read.
- “Actions”: “Dismiss” and “Resolve”, and “Feedback”, which opens the feedback of the row under it.

Within each currency, the rows are ordered by cost increase, the largest first; rows with the same increase follow by severity from high to low, then the most recently detected first, then by service name. The currencies follow the alphabetical order of their codes.
The list shows its first 25 rows; “Show all” lists the rest and “Show fewer” returns to the first 25. Dates are shown as the date in UTC.
Note
The words of each row are built from the kind of check and the service, so they read in your language. Service and subscription names stay as Azure records them.
The cost increase
“Cost increase” appears only on an open recommendation from one of the two growth checks. It is how much more the service cost in the recent period than in the earlier one. It is measured over the periods the check compared, not over a calendar period, and it says where cost rose, not how much you could save.
The recent period ends on the day of the check, and the earlier period is the one just before it; by default, each is 14 days long. Each check that still finds the growth replaces the figures of the open recommendation, its cost increase included, with the newest ones.
It is a cost that rose, not money saved, and it is not shown in green: CostGuard estimates no saving anywhere. A dismissed or resolved recommendation shows no cost increase, and resolving a recommendation does not mean any amount was saved: CostGuard records your decision and does not check it.
Limits to know
A cost increase is only as current as its last detection. On a row marked “Not detected in the last 7 days”, it describes the periods of that older detection, not the cost of today.
Why there is no total
The page shows no total of cost increases, not even for one currency. A sum would be a figure the data cannot support:
- Each cost increase covers the periods of its own detection, and those periods are not recorded with the recommendation, so two increases cannot be shown to cover the same span of time.
- A row not detected lately keeps the cost increase of an older detection.
- One storage increase can be raised by both growth checks, so a sum would count it twice.
- Amounts in different currencies are never converted: CostGuard holds no exchange rate.
That is why each currency shows a count and its largest single increase instead. To judge one opportunity, read its row: its figures describe one service in one subscription, in one currency.
The same increase on two rows
A storage service whose cost grew at least 30% is found by both growth checks: “Storage cost growth”, which starts at 25% for a storage service, and “Sudden service cost growth”, which starts at 30% for any service. When the same check run finds both, they show the same earlier and recent cost and the same cost increase: they describe one increase.
The page marks the “Sudden service cost growth” row of such a pair “Same increase as the storage growth row” when the two rows have the same subscription, currency and service and show the same earlier and recent cost. Read the pair as one opportunity, and do not add their cost increases.
The two rows are two recommendations: deciding one does not decide the other, so dismiss or resolve each of them.
Not detected in the last 7 days
“Not detected in the last 7 days” appears under “Last detected” when the last detection is seven days or more before the page was read, and the figure of the same name counts these rows. CostGuard never closes an open recommendation on its own, so such a row stays listed with the cost increase of its last detection until you dismiss or resolve it.
A marked row is often one whose growth has stopped: review the service, and resolve the recommendation if the change you made worked, or dismiss it if the growth was expected. CostGuard never closes it for you.
Limits to know
The mark says only that no check has found the pattern for a week. It does not say the cost went down: a check also stops finding it when the connection is no longer active, when the plan no longer includes recommendations, or when a suppression rule covers it.
Dismiss or resolve
What you decide about a recommendation is its status. The buttons change it in CostGuard only; nothing changes in Azure.
- “Dismiss”: the recommendation is expected or not relevant. It becomes “Dismissed”, with the date.
- “Resolve”: you have acted on it, for example after reviewing the service in Azure. It becomes “Resolved”, with the date.
A decided recommendation leaves this list at once: the page says so, for example “Recommendation dismissed. It has left this list; All recommendations keeps it as dismissed.”, and reads the list again, so the figures follow. “All recommendations” keeps it with its new status, and “Dismissed recommendations” lists the dismissed ones. Each change is recorded, with who made it and when, in the recommendation's activity.
If a change cannot be made, the page says “Action failed. Please try again.” and keeps the list as it was.
How to reopen a decided recommendation, on All recommendations
Note
Resolving records your decision; it does not measure a saving. Whether the cost went down shows in the cost of the service in the days after, on “Cost by service”.
Give feedback on a recommendation
“Feedback” on a row opens “Was this helpful?” under it, and selecting it again closes it. Each answer is recorded for that recommendation:
- “Useful” or “Not useful”: whether the signal helped you.
- “Expected”: the change was planned, for example a launch or a migration.
- “False positive”: the check read the cost wrongly for your case.
- “Not now”: you are not ready to judge it yet. The answer is recorded; no reminder is sent.
- “Ignore”: asks “Ignore recommendations for” - “This recommendation type”, “This service” or “This subscription” - and records your choice.
- No answer changes the status of the recommendation: it stays in this list until you dismiss or resolve it.

After you choose what to ignore, the row offers a second, separate decision: whether to stop new recommendations for that scope from being raised. Nothing is suppressed unless you choose “Suppress these”; “No thanks” keeps only the answer.
A suppression rule applies to the whole workspace for 90 days: the checks raise no new recommendation of that kind, for that service or in that subscription until then. The row says until when, and “Manage suppression rules” opens “Recommendation feedback”, where you can see the rules and end one early.
Note
A suppression does not close anything: an open recommendation it covers stays in this list until you dismiss or resolve it. Its figures and its last detection are no longer updated, so after seven days it is marked “Not detected in the last 7 days”.
Open a recommendation
The kind and the service of each row link to the recommendation's own page. There you find “What CostGuard observed”; “Your assessment”, where you state what CostGuard cannot know, such as how hard or risky a change would be; the recommendation's “Activity”; and “Add a comment”.
A priority score appears there only once every part of your assessment is stated. CostGuard never works one out from cost alone, which is why this page shows no priority.
Go further
The links at the bottom of the page lead on:
- “Open recommendations”: the work queue of every open recommendation, those without a cost increase included.
- “All recommendations”: every recommendation in every status, the decided ones included, where a closed one can be reopened.
- “Dismissed recommendations”: the record of the dismissed recommendations, where a dismissal can be reopened.
- “Recommendation insights”: how the recommendations of the workspace break down.
- “Recommendation feedback”: how feedback works, and the suppression rules that stop a known pattern from coming back.
- “Cost by service”: the cost of each service, to see the service behind a recommendation in context.
What you may see instead of the list
While the page reads, grey bars stand where the figures and the list will appear. After that, the page may show one of these instead:
- “No cost data yet”, with “Open Getting started”: no connection has imported cost yet.
- “No savings opportunities right now”, with “Go to Open recommendations”: no open recommendation of the workspace carries a cost increase now. This says nothing about how efficient your cost is; open recommendations without a cost increase, such as a concentration of cost on one service, are on Open recommendations.
- “No savings opportunities for this subscription”: none of the open recommendations of the chosen subscription carries a cost increase. Choose “All subscriptions” to see the rest of the workspace.
- “Unable to load recommendations. Please try again.”, with “Retry”: the savings opportunities could not be read. The page then shows no list and no figure, because a failed read does not mean there is no opportunity.
- A notice that your session has expired, with a link to sign in again. The page shows no figures until you do.
- A note that subscription names could not be read: each subscription is then shown by the end of its identifier. The recommendations are still listed, and “Refresh” tries again.
Sample data when your plan has no recommendations
When your plan does not include recommendations, the page shows a fixed example under the label “Sample data”, with the sentence “Your current plan does not include this feature. The figures shown here are an example, not your data.”
The sample shows three savings opportunities of three Contoso subscriptions from June 2026 - two in US dollars and one in euros - with the figures of each currency, their cost increases and their age. The rows are the same for everyone and never your data, and the sample offers no link and no action.

“Compare plans” opens the pricing page in a new tab. CostGuard decides what your plan includes on the server; the sample is only how the page shows it.
What each plan includes
The table shows the first plan that includes each part of the page. Every plan above it includes it too.
| Feature | Free | Starter | Growth | Pro | Enterprise |
|---|---|---|---|---|---|
| A labelled sample of the page | Included | Included | Included | Included | Included |
| The open cost increases of your workspace, by currency, with dismiss, resolve and feedback | Not included | Not included | Included | Included | Included |
Growth, Pro and Enterprise include recommendations: CostGuard's checks run for the workspace, and the page lists what they raise. Free and Starter show the labelled sample, and no recommendation is raised for them. The plan is checked on the server, and the page never shows a price.
Troubleshooting
The page says “No cost data yet”
No connection has imported cost yet, or its first import has not finished. Open Getting started and follow the steps; the checks run once cost is recorded.
An open recommendation is missing from this list
Only the two growth checks record a cost increase, so a concentration of cost on one service is never listed here. “Open recommendations” lists every open recommendation.
The page says “No savings opportunities right now”
No open growth recommendation carries a cost increase now: each one has been decided, or the checks have found no growth. The growth checks need cost in both periods, and a rise below 30% (25% for storage) or smaller than 10.00 in its currency is not reported.
A cost increase looks old
A row shows the cost increase of its last detection. When it is marked “Not detected in the last 7 days”, no check has found the growth for a week, so the increase describes the periods of that older detection. Review the service, then resolve or dismiss the recommendation.
The same increase shows on two rows
A storage service that grew at least 30% is found by both growth checks. The two rows describe one increase; do not add their cost increases.
A currency is missing from the figures
The figures list only the currencies the savings opportunities of the scope are recorded in. A subscription billed in another currency appears there once one of its services is raised by a growth check with a cost increase.
A recommendation I dismissed or resolved is back
A later check found the same pattern and raised a new open recommendation, with a new “Open since” date. To stop the pattern from coming back, choose “Ignore” in its feedback and confirm the suppression.
A growth shows later than it happened
Azure reports cost with a delay of a day or two, so the last days of the recent period hold less cost than they will. A growth can therefore be found a little after it began.
The page shows sample data
Your plan does not include recommendations. The table above shows which plan does, and the link under it opens the pricing page.
