Recommendation insights: is the workspace keeping up?
The Recommendation insights page counts the recommendations CostGuard stores for your workspace, for all subscriptions or one: how many are open, dismissed or resolved, how severe and how old the open ones are, which checks and subscriptions they come from, which closed findings are open again, how many are savings opportunities, and when CostGuard last detected one. It shows counts and dates only, never an amount.
What this page is for
The Recommendation insights page answers one question: is this workspace keeping up with what CostGuard flags? It counts how many recommendations are open and of which kind, severity and age, where they sit, how many were dismissed or resolved, and which findings came back after they were closed.
It is for the FinOps practitioner or engineering lead who runs the recommendation practice and decides where the next review goes: the owners of one subscription, the open recommendations of high severity, the old ones or those no longer detected, or a kind of check that is dismissed so often that it deserves feedback. “Open recommendations” is the work queue and “All recommendations” the register of every status; this page lists no recommendation and offers no action on one: it counts them and links to the pages where you act.
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, choose “Advanced” in the sidebar, then select “Recommendation insights” under “Recommendations”. In “Simple” mode the entry is hidden, but the page still opens from the “Recommendation insights” link at the bottom of “All recommendations”, “Open recommendations”, “Dismissed recommendations” and “Savings opportunities”.

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.
The page counts only what CostGuard's checks have raised. The two growth checks compare the recent period with the period before it, so they raise nothing until cost is recorded in both; the concentration check needs the recent period only.
What the figures count
The line at the top of the page says how many recommendations every figure below describes: all those CostGuard stores for the workspace or, with one subscription chosen, for that subscription. Every share on the page is taken of that number.
The page reads that population whole: every recommendation of the scope in every status - open, dismissed and resolved - in one read, with no limit and no pages. Every figure on the page is counted from that one read, so the counts by status add up to the population, and the open recommendations panel describes the same recommendations as the open count.
Every figure counts recommendations, not findings. A finding is a pattern a check keeps finding for one service, subscription and currency. When CostGuard detects a closed finding again, it opens a new recommendation for it, so one finding can be counted once as dismissed or resolved and once as open. The first note at the bottom of the page says the same.
Note
The figures describe what is stored now. A recommendation keeps only its current status: reopening a dismissed or resolved recommendation clears that decision and keeps its first detection, so the page cannot tell when a status changed.
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 recommendation. 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: every figure then describes that subscription only, and the “By subscription” table is left out, because it would have a single row. “Refresh” reads the recommendations and the subscription names again.
There is no date range and no currency to choose: the page counts every recommendation of the scope, whenever it was raised, and it shows no amount, so it needs no currency.
Counts by status
The first row counts the recommendations of the scope by status. Under each count, its share of the population is written in words, such as “3 of 18”, never as a percentage:
- “Open recommendations”: waiting for a decision. CostGuard never closes an open recommendation on its own: someone dismisses or resolves it.
- “Dismissed recommendations”: someone decided the signal was expected or not relevant.
- “Resolved recommendations”: someone recorded that the cause was dealt with.
- “Other statuses”: shown only when a recommendation carries a status the page does not know. Such a recommendation is counted here, never as open.

A large share of dismissed recommendations can mean that a check keeps flagging something your workspace expects; the table by kind shows which check it is.
Open recommendations by severity and age
The “Open recommendations” panel describes the open recommendations of the scope only, in three groups:
- “By severity”: how many are “High”, “Medium” and “Low”.
- “By first detection”: how long ago CostGuard first detected them: “In the last 7 days”, “8 to 30 days ago” or “More than 30 days ago”.
- “Not detected in the last 7 days”: the open recommendations no check has found for a week, with the link “View open recommendations”.

Severity
For the two growth checks, the severity follows the growth between the two periods: “High” from 75%, “Medium” from 50%, “Low” below that. For the concentration check, it follows the service's share of the subscription's cost: “High” from 70%, “Medium” from 60%, “Low” from 50%. An open recommendation is updated at every check that still finds it, so its severity can move.
A severity says how large the change or the share is, nothing more. It is not a priority: CostGuard does not know how hard or risky a change would be.
Age and recommendations no longer detected
The age counts calendar days in UTC from a recommendation's first detection to the day the page was read: up to 7 days, 8 to 30 days, or more than 30 days. A reopened recommendation keeps its first detection, so its age counts from then, not from the reopen.
“Not detected in the last 7 days” counts the open recommendations whose last detection is seven days or more before the page was read. They stay open until someone dismisses or resolves them: the link “View open recommendations” leads to the work queue, where each one can be reviewed and decided.
Limits to know
This count 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.
Recommendations by kind of check
The “By kind” table has one row for each kind of check that raised a recommendation in the scope, the kind with the most recommendations first. “Recommendations” counts all its recommendations, with a bar for its share of the population, and “Open”, “Dismissed” and “Resolved” split them by status. The kinds are:
- “Sudden service cost growth”: a service whose cost grew at least 30% from the earlier period to the recent one.
- “Storage cost growth”: the same comparison for a storage service, from 25%.
- “Service cost concentration”: one service carrying at least half of a subscription's cost in the recent period.
- “Unrecognized recommendation type”: a kind the page cannot name. It keeps a row of its own and is never added to another kind.
How each check decides what it reports

Read the split of each kind. Many dismissed recommendations of one kind can mean that the check keeps flagging something your workspace expects: give feedback on such recommendations on “Open recommendations”, or stop a known pattern with a suppression rule, which “Recommendation feedback” lists.
Many open recommendations of one kind show where the next review is most needed.
Note
A storage service whose cost grew at least 30% is found by both growth checks, so one increase can be counted once in each growth row.
Recommendations by subscription
With “All subscriptions” chosen, the “By subscription” table has one row for each subscription that holds a recommendation, the one with the most first, and the same columns as the table by kind. With one subscription chosen, the table is left out.

Each subscription is named as in the subscription list at the top of the page; the page never shows a full subscription identifier.
The table shows where the open work sits and whose owners to ask. Choose that subscription at the top of the page to read every figure for it alone.
Findings open again
The last row of the page holds three figures. The first, “Findings open again”, counts the dismissed and resolved recommendations of the scope whose finding has an open recommendation again: a later check found the same pattern for the same service, subscription and currency, and CostGuard opened a new recommendation for it. The two lines under the count split it by how the closed recommendation was closed: as dismissed or as resolved.
Only one recommendation per finding is open at a time. The closed recommendation stays as it was, and the open one is the one to work on; it is already counted with the open recommendations.

A finding that comes back after it was resolved can mean the change did not hold; one that comes back after it was dismissed is a pattern your workspace still has. The link “View dismissed recommendations” leads to the record of dismissals, where such a recommendation is marked “Finding open again”.
To stop a known pattern from coming back, use a suppression rule.
Savings opportunities: a count, not an amount
The second figure, “Savings opportunities”, counts the open recommendations of the scope where a growth check found a cost increase, with their share of the population in words. A recommendation counts when it is open, was raised by one of the two growth checks, and carries a cost increase above zero in a three-letter currency code.
It follows the same rule as “Savings opportunities”, which lists them. This page shows no amount: the link “View savings opportunities” leads to the cost increases, each in its own currency.
How Savings opportunities lists the cost increases
Limits to know
“Service cost concentration” is never counted here. The amount that check records is the service's whole cost in the recent period, not a cost increase.
Most recently detected
The third figure, “Most recently detected”, is the UTC date of the latest detection of any recommendation of the scope, whatever its status. It shows whether CostGuard is still finding anything: it moves on when a check finds a pattern again or raises a new recommendation.
It does not move when an analysis finds nothing, and dismissing, resolving or reopening a recommendation does not change it. A date that stays old means that no check has found anything in the scope since: the cost may have settled, a connection may no longer be active, or a suppression rule may cover what was found.
Note
The date is a calendar date in UTC, so near midnight it can differ by one day from your local date.
Why there are no amounts, percentages or comparisons
The page shows counts and dates only. The notes at the bottom of the page say why:
- No amount: each cost increase belongs to its own recommendation and its own currency, and CostGuard holds no exchange rate, so the page adds none up and shows none. “Savings opportunities” lists the cost increases, each in its currency.
- No percentage: a share is written in words, such as “3 of 18”, and a bar beside a count only pictures it.
- No comparison over time: a recommendation keeps only its current status and no history of status changes is kept, so the page compares nothing with an earlier period.
Each time the page is read, it describes what is stored at that moment. “Refresh” reads it again.
Go further
The links at the bottom of the page lead on:
- “Open recommendations”: the open recommendations only, as a work queue, with feedback on each one.
- “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.
- “Savings opportunities”: the open growth recommendations that carry a cost increase, ranked within each currency.
- “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 figures
While the page reads, grey bars stand where the figures 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.
- “Nothing to summarize yet”, with “View all recommendations”: CostGuard stores no recommendation for the workspace yet. This says nothing about how efficient your cost is.
- “No recommendations for this subscription”: the chosen subscription holds none. Choose “All subscriptions” to see the whole workspace.
- “Unable to load recommendations. Please try again.”, with “Retry”: the recommendations could not be read. The page then shows no figure, because a failed read does not mean there are none.
- 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, and the figures are still counted. “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 the figures of seven recommendations of three Contoso subscriptions, read on 18 June 2026: four open, one dismissed and two resolved, with their severity, age and kind, the three subscriptions, one finding open again and three savings opportunities. The figures are the same for everyone and never your data, and the sample has no subscription list, no notes and no links to other pages.

“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 insights of your workspace's recommendations, for all subscriptions or one | Not included | Not included | Included | Included | Included |
Growth, Pro and Enterprise include recommendations: CostGuard's checks run for the workspace, and the page counts 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.
The open count differs from “Open recommendations”
Check the scope first: each page reads the subscription chosen on it. Each page also counts what is stored when it reads, so a recommendation decided in between moves from one count to another; “Refresh” reads the page again.
One finding seems to be counted twice
Every figure counts recommendations, not findings. When a closed finding is detected again, CostGuard opens a new recommendation, so the finding is counted once as dismissed or resolved and once as open; “Findings open again” counts these closed recommendations.
“Most recently detected” is days old
No check has found anything in the scope since that date. The growth checks need cost in both periods, the checks run only for active Azure connections, and a suppression rule stops what it covers. Azure also reports cost a day or two late, so a growth can be found a little after it began.
The page is missing from the sidebar
The “Recommendation insights” entry is shown in “Advanced” mode only. Choose that mode in the sidebar, or open the page from the “Recommendation insights” link at the bottom of the other recommendation pages.
The table by subscription is missing
It is shown only with “All subscriptions” chosen, because one subscription would be its only row. Choose all subscriptions at the top of the page.
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.
