Documentation / Optimisation Insights

Optimisation Insights

Cirrova continuously analyses your Azure estate for waste and surfaces specific, cost-quantified recommendations — so optimisation work has a defensible ROI before anyone touches a resource.

Anomaly Detection tells you something has changed. Insights tells you something is wasteful. Cirrova continuously scans every resource it collects against a set of optimisation rules — orphaned, idle, oversized, mis-licensed, or simply forgotten — and surfaces each finding with a concrete monthly saving estimate. The result is a working list of cost-reduction opportunities, ordered by impact, that you can triage like a backlog.

Overview

Insights are generated automatically. There's nothing to configure to start receiving them — as soon as Cirrova has run a collection across your tenants, the Insights page begins populating with findings. Each finding is:

  • Specific — attached to a single Azure resource, not a generic suggestion.
  • Actionable — describes what's wrong in plain language so a technical reviewer can decide what to do without opening a separate dashboard.
  • Quantified — comes with an estimated monthly saving, calculated from the resource's actual SKU, region pricing, and observed usage where relevant.

Findings are also persistent: an open finding stays open until either the underlying problem is fixed (Cirrova re-checks on every collection run), the finding is dismissed with a reason, or it's snoozed for a chosen period.

The Insights page

Open Insights from the left navigation. The page leads with a row of category summary cards — one per category that currently has findings — each showing the number of findings and the total estimated monthly saving across them. The cards are colour-coded the same way the row icons are, so the eye learns which colour means which category quickly.

Below the cards sits the filter bar (see Filters) and a sortable table with one row per finding:

  • Resource — the resource name, with its resource group and subscription as a small subtitle. Click the name to drill into the resource detail page.
  • Severity — High, Medium, or Low (see Severity).
  • Category — which kind of waste was detected.
  • Finding — a plain-language description of what was observed and what the suggested action is.
  • Est. Saving — the estimated reduction in monthly spend if the recommendation is implemented.

The table is sortable by Severity, Category, or Estimated Saving. Default sort is by saving, descending — so the rows that move the needle most are at the top.

Recommendation categories

Cirrova ships with eight categories of finding. Each scans a different cost-waste pattern and produces its own kind of recommendation.

Orphaned Resource

Resources that aren't attached to anything but are still being billed for. Typical examples: a managed disk in Unattached or Reserved state with no owning VM, a public IP not bound to a NIC or load balancer, a network interface with no parent, or an App Service Plan with no hosted apps or function apps — the plan continues to incur the SKU charge even with no workloads on it. Saving = the full monthly cost of the orphan, because the right action is almost always to delete it (or, for an empty App Service Plan, deploy something to it).

Stopped VMs

A virtual machine in the VM stopped state — stopped from inside the OS rather than deallocated through Azure — continues to incur compute charges. Cirrova flags these so you can either restart them (if they're in use) or deallocate them through the portal/CLI to actually pause the bill.

Over-Provisioned

VMs, SQL Databases, and App Service Plans whose observed utilisation is well below the SKU they're paying for — for example a Standard_D8s_v3 averaging 4% CPU over 30 days, or a Premium P2 SQL DB averaging 3% DTU. The estimated saving is the difference between the current SKU and the next reasonable size down, calculated against the resource's actual region pricing.

Schedule Opportunity

Resources that run continuously but follow a usage pattern suggesting they could be scheduled — Dev/Test VMs that sit idle on weekends and overnight, App Service Plans serving non-production workloads on a 24/7 SKU. The saving estimates a sensible schedule (typically business hours, weekdays) against the current always-on cost.

Reserved Instance

Resources running steadily enough that a Reserved Instance or Savings Plan commitment would be cheaper than pay-as-you-go. Cirrova compares the resource's last 90 days of usage against published 1-year and 3-year RI rates and reports the saving on whichever option fits best.

Unused Resource

Resources that are attached but doing nothing useful. The classic case is a storage account with zero read/write/delete transactions over a 7- or 30-day window, or an App Service Plan whose hosted apps have recorded zero network data transfer (in or out) over the same window. Distinct from Orphaned in that the resource still has an owning thing — but the owning thing isn't working it. Often these can be archived to cheaper storage tiers or deleted outright.

Hybrid Benefit

Windows Server and SQL Server VMs that are eligible for Azure Hybrid Benefit licensing but aren't taking advantage of it. The saving is the licence portion of the VM's cost — applying Hybrid Benefit doesn't change the resource itself, just the way it's billed.

Expired Resource

Resources whose configured expiry tag holds a date in the past. The tag key is yours to choose — pick whatever your team already uses (e.g. expires-on, tear-down, cirrova-expires) and set it per tenant under Organisation SettingsTenantstenantResource expiry tags. Cirrova then reads the tag on every collection run and flags any resource whose value (in yyyy-MM-dd format) has passed. Useful for time-bound experiments, PR environments, demos, and proof-of-concept estates that should have been cleaned up but weren't. You can find more detail in Resource Lifecycle → Give every ephemeral resource a planned end of life.

Severity

Each finding carries a severity — High, Medium, or Low — reflecting the size of the saving relative to your overall spend and the confidence Cirrova has in the recommendation. High-severity findings are the obvious wins: large absolute amounts, low ambiguity (an orphaned disk in Unattached state is a clear delete). Lower-severity findings are smaller in absolute terms, or carry a touch more nuance — an over-provisioned VM at 8% CPU might still be doing useful work that doesn't show on a CPU graph.

The Severity filter is the fastest way to focus a triage session: filter to High first, work through that list, then come back for Medium and Low when there's bandwidth.

Estimated savings

The estimate next to each finding is what you'd save in monthly spend if the recommendation were implemented. The calculation method varies by category:

  • Delete-this-resource findings (Orphaned, Unused, Expired) use the resource's full current monthly cost.
  • Right-sizing findings (Over-Provisioned) use the price difference between the current SKU and the recommended smaller SKU at the resource's region.
  • Scheduling findings calculate the cost of running on a sensible schedule (e.g. 12 hours × 5 days) versus 24/7.
  • Reserved Instance findings use the saving against published 1-year or 3-year RI / Savings Plan rates compared with on-demand.
  • Hybrid Benefit findings use the licence-cost portion of the VM's price.

Numbers are estimates — they reflect Azure list prices, the resource's current configuration, and observed usage. Negotiated discounts (EA agreements, MCA-E discounts, etc.) aren't applied. Treat the figures as relative guides for prioritisation rather than precise budget commitments.

The Dashboard's Potential 30-day savings tile aggregates the estimated savings across every open finding, so the headline number on your home page reflects the total opportunity sitting on the Insights page right now.

Acting on a recommendation

Each row's menu offers two ways to act on a finding without leaving Cirrova:

Dismiss

Permanently close the finding with one of four reasons. Dismissed findings disappear from the active list (they reappear with the Show dismissed toggle).

  • Implemented — you've made the change. Use this when the recommendation is genuinely done; if Cirrova later detects the waste pattern again on the same resource, a new finding will be raised.
  • Not relevant — the recommendation doesn't apply for reasons Cirrova can't see. Common case: a "stopped VM" that's deliberately kept stopped as a warm spare.
  • Accepted risk — you understand the cost but choose to keep paying it. The classic for over-provisioned production databases where the safety margin is intentional.
  • False positive — Cirrova got it wrong. Useful feedback for us; please tell us if you're seeing a category misfire repeatedly.

Snooze

Hide the finding for a set period — 7 days, 30 days, or 90 days — then surface it again automatically. Use snooze for findings that are real but blocked: a right-sizing recommendation waiting for a maintenance window, an RI commitment waiting for the next budget cycle, an expired-resource flag where the owner is on leave.

Snoozed findings reappear when their snooze period elapses, with the same severity and saving estimate (re-calculated against current pricing). Continued waste during the snooze period is included in the running savings total.

Filters

The filter bar narrows the table without losing the summary cards above (those always reflect the whole organisation, so you can drill in without losing sight of the totals).

  • Tenant — scope to a single Azure tenant, or leave at All.
  • Subscription — scope to a single Azure subscription within the chosen tenant.
  • Category — filter to one of the eight recommendation categories.
  • Severity — High, Medium, or Low.
  • Show dismissed — toggle to bring previously-dismissed findings back into view, with their dismissal reason shown alongside.

Plan availability

Optimisation Insights is included on every plan, starting at Core. See pricing for the full feature comparison.