FinOps

The FinOps app

FinOps is Solidafy's app for cloud spend: where the money goes, which owner team it belongs to, what each team spends against its budget, and where you can save. This page covers setting it up, every page of the app, its settings, and how to reach it from an AI agent.

Before you start

FinOps is one of the portal's apps. It opens from the Apps section of the sidebar, which appears once Solidafy has switched apps on for your organisation.

FinOps is for environment owners and admins: they set it up, they open it, and its alerts and notes go to them.

FinOps reads Azure. It works from Azure cost data, either from cost tables you already build or straight from Azure through the connectors below.

Setting it up

The first time you open FinOps, it shows Set up FinOps with two ways in. Whichever you pick, you can change it later in Settings.

Use your existing cost tables

Pick this when your environment already builds cost tables. FinOps finds the tables that fit by their columns, and you choose which table plays each role:

RoleWhat the table needs
Daily costA date, resource group, service and cost. Required.
Spend by dayA date and the actual and amortised spend for that day. Optional: without it, FinOps works it out from daily cost.
Commitment purchasesA date, service and amount for each savings plan or reservation bought. Optional.
Usage tablesContainer replicas and CPU, database pool eDTU, storage capacity or virtual machine CPU. Switch on each one you want read.

FinOps reads these tables as they are and never changes them or the pipelines that build them. Tables in a namespace that starts with app_, which is where apps keep their own tables, are never offered.

Start from scratch

Pick this when you have no cost tables yet. You switch on the Azure sources FinOps reads:

SourceWhat FinOps reads from it
Azure Cost ManagementActual and amortised cost. Required: cost comes from it.
Azure MonitorCPU, memory, replicas and eDTU.
Azure Resource GraphInventory and configuration, including owner and team tags on resource groups.
Log AnalyticsIngestion by table.

A source that isn't connected yet shows Connect next to it. Connecting it opens the same form as Data Sources, and the connection is saved there. If you can't manage data sources, the screen says that someone who can needs to connect it.

When you press Start, FinOps creates the pipelines for cost, usage and savings and fills in the last 90 days.

While it sets up

Either way, FinOps builds its own tables in the app_finops namespace. Until the first runs finish, the app shows Setting up FinOps with how many runs are done. You can leave the page: the app opens on its own once the numbers are in.

The pages

The rail on the left and the tabs at the top hold five pages.

PageTitleWhat it answers
OverviewCloud spendWhat did we spend, what is the month on pace for, and what needs someone?
SpendWhere the money goesWhich resource groups, services or owner teams cost the most, and what changed?
SavingsSavingsWhat can we save, and what have we decided about each saving?
InvestigateInvestigateWhich services ran above the forecast?
SettingsSettingsHow spend gets an owner team, budgets, the savings review, thresholds and data.

Every amount is in one currency. If your bill holds more than one currency, FinOps shows one at a time and never adds them up.

Filters

Overview and Spend start with a row of filters:

  • Period: last 7, 30 or 90 days, or this month.
  • Environment: all environments, or one your cost data names.
  • Owner team: any team, one team, or No owner yet for spend no rule matches.
  • Currency: shown only when your bill has more than one.

Clear filters puts them back. The filters stay in the page address, so you can share a filtered view by its link.

Overview

Overview opens with a spend update in a sentence or two: what you spent in the period, what this month is on pace for against the month before, and how much of the spend has no owner team.

Below it are the key numbers: Amortised (when your data has it), Actual bill, On pace for this month (against the team's budget when you filter to a team that has one), No owner team, Above the forecast, and Ready to save from the latest savings review.

Then:

  • Where it goes: the biggest services or owner teams, with their share of spend and the change on the period before.
  • Movers: the resource groups whose spend changed most in the last 7 days against the 7 before.
  • Worth a look: things that need someone, such as a large share of spend with no owner team, or services above the forecast. Each opens the page that explains it.

Spend

Spend lists every resource group, service or owner team, 25 at a time, with its spend, the change on the period before, and the last 8 weeks. Besides the filters, it has:

  • Search: by name or owner team.
  • Group by: resource group, service or owner team.
  • Sort by: spend or change.
  • Export all (CSV): downloads the whole list, not just the rows on screen.

Opening a row shows what is inside it (a resource group's services, or a service's or team's resource groups) and its facts, such as its owner team and how many cost rows it rolls up.

Savings

Savings is where the savings review lands. The review is a fixed set of rules over each resource's usage: the rules decide what counts as an opportunity and how much it saves, and Scout runs them and explains what they found. Nobody keeps the list by hand.

  • The key numbers: Ready to save a month, New this month, Resolved since the review before, and the Biggest saving.
  • Monthly savings review by Scout: when it last ran, when it runs next, and Run now to run it straight away.
  • Suggested Jira tickets: one ticket per fix, biggest saving first, each with a Preview of its text.
  • Opportunities: in Open, Dismissed and Resolved tabs. Each shows its area (Compute, Containers, Databases, Storage, Logging or Commitments), what was found, the action, the saving a month, what the resource costs, how sure the review is, and the owner team.

For an open opportunity you can Confirm it, or Dismiss it with a reason: the capacity is needed, already planned another way, the numbers are wrong, or something else. A dismissed opportunity stays dismissed until its numbers change materially, and then the review brings it back. An opportunity is resolved when the next review no longer finds it.

Investigate

Investigate compares each service's spend in the last 14 days with what the 28 days before it would lead you to expect.

  • Spend above the forecast: the services that ran above the expected line by at least the thresholds you set in Settings.
  • Expected against actual: every service side by side, with the ones above the forecast marked.

Settings

Settings has five sections. You change any of them as one draft: a bar at the bottom says which sections changed, Discard throws the draft away, and Review and apply shows what each change does before you Apply it. If someone else applies settings while you edit, your changes are kept on top of theirs.

SectionWhat it holdsWhen a change takes effect
OwnershipRules that give a resource group an owner team when its name contains some text. Rules apply in order and the first match wins. An owner or team tag on the resource group comes first when Azure Resource Graph is connected.Once the pipelines rebuild, which Apply starts.
BudgetsA monthly budget for each owner team.At once.
Savings reviewHow often the review runs (monthly on the 1st, or weekly on Mondays), which areas it checks, and the limits it uses, such as when a virtual machine can be one size smaller or how few replicas a production container may have. Commitments are always checked.From Scout's next review.
ThresholdsHow far above the forecast a service must be, in percent and in money, to count, and the currency your cost data is in.At once.
DataThe tables or Azure sources FinOps reads. Your own tables are never changed.Once the pipelines rebuild.

Above the settings, an Updates card shows the version of FinOps in place and what a newer one brings. Some updates apply themselves, others wait for an admin to press Apply update.

Alerts and Scout

FinOps raises alerts in your portal notifications when a service runs above the forecast by your thresholds, and when an owner team's month is on pace to go past its budget. Each alert is raised once and only raised again after it clears.

When you start FinOps, it installs an operator called Scout, which you find under Workspace > Operators. After each savings review, every environment admin gets a short savings note in their notifications: what is new, what was resolved, what is ready to save, and the one or two opportunities to act on first.

Using FinOps from an AI agent

FinOps answers four tools on the MCP server's Data Explorer address, for people who can open the app. They read the same numbers as the screens, as you:

ToolWhat it answers
get_finops_overviewSpend in the period against the period before, what the month is on pace for, the share with no owner team, services above the forecast, and the biggest services.
list_finops_spendThe 25 biggest resource groups, services or owner teams by spend, with the change on the period before.
list_finops_savingsWhat the latest savings review found that is still open.
run_finops_savings_reviewRuns the savings review if this period's hasn't run yet, and says what it found. It never runs twice in a period.

Each takes an optional period (7, 30, 90 or month) and team, and list_finops_spend also takes group (rg for resource group, service or team). See AI agents and MCP for connecting an agent.

Uninstalling

At the bottom of Settings, under Danger zone, an environment admin can choose Uninstall app. FinOps first lists everything it will remove: its operator and schedules, its pipelines and their runs, its tables, and its saved settings and records. You type FinOps to confirm. The data sources FinOps created are kept unless you tick Also remove the data sources this app created, and data sources you created yourself are never removed. Afterwards the app opens on its Start screen again.