Skip to content

Cost Explorer

Cost Explorer is where you filter, break down, and chart your account’s cost data. This page covers the controls on that page: filtering, breakdown dimensions, the Billed/Amortized toggle, tag breakdowns, saved views, the stat strip, and display currency.

Filtering and breaking down are two separate questions, and they don’t interfere with each other: Filters decides which cost is on screen, Group by decides how it’s grouped. Switching what you group by never resets a filter, and picking a filter never changes the grouping — filter to AWS, break the chart down by service, then switch to breaking it down by resource, all without re-filtering.

There’s no required order. Filtering first (“I want to look at AWS”) and then breaking down is the most common flow, but the two stay independent either way, so breaking down first and filtering afterward works identically.

A few ways to narrow what’s shown:

  • The Filters panel — a source filter (one or more cost sources), plus a value filter for whatever dimension you’re currently viewing once you’ve narrowed to a single source (for example, specific services once you’re filtered to AWS). The button shows a count, like “Filters (2)”, so it’s obvious at a glance that something is narrowed even when the panel itself is collapsed.
  • Clicking directly on the data — a chart legend entry, a row in the breakdown table, or an anomaly popover’s “Show me” link all narrow the chart the same way picking that value in the Filters panel would. There’s one narrowing mechanism underneath, however you trigger it.
  • The breadcrumb trail beneath the chart lists every active filter as a removable chip. Click one chip to remove just that filter, or use “All spend” to clear everything at once.

The Group by control picks the dimension the breakdown table groups cost by — service, region, account, usage type, individual resource (on plans and sources that support per-resource detail — see FOCUS cost export and each cloud provider’s own page under Sources & integrations), or a virtual tag. This is a grain: the same spend is stored once per dimension, so switching dimensions changes what a row represents rather than filtering the same rows.

Only the dimensions a filtered source actually reports are offered — filtering to a source with no per-resource data removes “Resource” from the list rather than showing an empty breakdown for it.

For example, switching from Service to Region for the same account and date range doesn’t add or remove any total spend — it re-groups the identical dollars by a different column.

Some dimension pairs support a secondary breakdown, which adds a second grouping column inside the primary one (for example, service broken down further by region, where both are tracked together). Not every pair of dimensions is supported — an unsupported combination is rejected rather than silently returning an empty or incorrect breakdown.

A toggle above the chart switches between Billed (what the provider charged that period) and Amortized (the same charges with prepaid commitments — AWS Reserved Instances, Savings Plans, Azure reservations — spread across the term they cover, rather than posted as a lump sum on the day they were bought). Only AWS, Azure, and any FOCUS-formatted source publish a distinct amortized figure; every other source reports amortized equal to billed, since there’s nothing to spread for a plain subscription or API charge.

Amortized data only exists from the date this feature shipped — it isn’t retroactively calculated for older charges, so cost from before that date is shown as billed-as-amortized. See Billed vs. amortized cost for the full mechanics, including why budgets and alerts don’t use this toggle.

Most cost figures come straight from a provider’s billing API. A smaller set are estimated — computed from usage data against a rate card, because the provider has no billing API at all, or (for a source that’s otherwise invoiced) no billing API for that specific breakdown. Estimated figures carry a visible “Estimated” badge next to the number in the breakdown table. See Estimated vs. invoiced cost for which sources and breakdowns this applies to.

Selecting a tag key as the breakdown dimension groups cost by the tag values you’ve defined for it — for example, breaking spend down by team after mapping AWS accounts or GCP projects to team names. Tag breakdowns respect the same conservation rule as the underlying grain: the sum across all tag values for a day equals the sum for the grain that tag key is built on. See Virtual tagging for how rules, splits, and redistribution combine to produce that total.

Clicking a segment of the main chart opens a popover explaining that one bucket. It works on any point, not just a day Plutus flagged as an anomaly — you don’t have to wait for an alert to ask “why was Tuesday high?”

The popover shows:

  • That bucket’s total against the period immediately before it, with the percentage change. A day compares against the previous day, a month against the previous month.
  • Biggest movers — up to ten dimension values ranked by how much they changed, each with its dollar delta and its share. With no prior period to compare against, the same list ranks biggest contributors instead.
  • Around this time — timeline events (deploys, incidents, releases) near that bucket, so a spike and the deploy that may explain it are in one place.

Two behaviours worth knowing:

  • If that exact bucket was already flagged as an anomaly, the popover shows the explanation recorded with that alert rather than computing a fresh one, and says so on screen. The popover and the alert someone was paged with never tell different stories about the same day.
  • The first bucket in an account’s history reads “not enough history to compare” rather than showing a 100% increase. A genuine $0 previous day is a real comparison; no previous day at all isn’t, and the two aren’t collapsed into the same misleading number.

This is investigative only — there’s nothing to act on from the popover, no suppress or acknowledge. A click opens the popover rather than zooming the chart; to zoom, click and drag across a range, or click a timeline row label. The popover is Cost Explorer only, and it explains exactly the bucket you clicked rather than widening to a nearby range.

Below the chart, a row of numbers gives context without a second request to the server — it’s computed from the same data already fetched for the chart:

  • Total — summed cost for the selected date range and filters.
  • Period-over-period delta — the percentage change against the immediately preceding period of the same length. A 30-day range compares against the prior 30 days, not the same days last month.
  • One additional contextual number, specific to the current breakdown (for example, the top-costing dimension value).

The breakdown table’s Trend column uses the same period-over-period comparison, so a value you see there matches the stat strip’s delta calculation.

A view is a saved combination of date range, breakdown dimension, secondary breakdown, filters, and cost metric (billed or amortized). Save one with the Save view control above the chart, and give it a name. Saved views are stored per account, so any member of the account can reload one — they aren’t private to the user who created them.

To reload a saved view, open the view list and select it; every control on the page updates to match what was saved.

Cost Explorer shows figures in a display currency you choose, independent of the currency each provider actually billed in. Changing the display currency converts every number on the page immediately, using the latest available exchange rate — no new sync or fetch is needed.

The order of precedence, most specific first:

  1. A currency override set on the current chart.
  2. Your own saved preference for this account.
  3. The account’s default display currency.
  4. The underlying USD base value, if none of the above is set.

Budgets, savings/commitment quotes shown in their native currency, plan pricing, and billing tier limits do not follow this setting — they’re pinned to their original currency or to USD.

To pull a longer span of aggregated cost history out of Plutus as a CSV — for a BI import or a spreadsheet model — see FOCUS cost export. It’s a paid-plan API endpoint, separate from the controls on this page.