Cost Tree: Azure Spend Breakdown and Deltas
Overview
Spotto Cost Tree (cost decomposition tree) shows a hierarchical Azure cost breakdown so you can quickly answer: “Where is the spend going, and what changed?” It’s built for investigation, not spreadsheet archaeology.
You’ll also see this described as a billing tree: the idea is the same—take total spend and decompose it into the parts that explain it.

Feature overview
Cost Tree lets you:
- Break down total spend by subscription → resource group → service → resource (and alternate groupings).
- Compare the current period to a previous period (or a specific month/billing period) and focus on deltas.
- Drill into a specific node and see a cost summary, tags, and (when available) why the cost changed.
Why use this? (Jobs, pains, gains)
Jobs to be done
- When the bill jumps, I want to find the exact service/resource driving the change, so I can fix it or explain it.
- When last month was an outlier, I want to compare this month to two months ago, so I get a sane baseline.
- When I’m working with many teams or environments, I want to filter spend by tags, so I can investigate only the scope I care about.
Common pains
- Azure billing data is correct, but it’s not always fast to answer “why did this change?” without a lot of clicking and context switching.
- Month-over-month analysis gets messy when you’re trying to compare non-adjacent periods (because last month was weird).
- Large subscriptions have too much detail to browse line-by-line.
What you gain
- A visual “map” of spend that makes it easy to spot cost increases (↑) and decreases (↓).
- The ability to switch between total cost and delta-first investigation.
- A drill-down workflow that stays readable (top-N per level + “View More” paging), even for noisy subscriptions.
Key capabilities
Where to find it
In the Spotto Portal, open your company and navigate to Investigate → Cost Tree.
Select one or more subscriptions
Use the subscription selector at the top of the page:
- Single subscription: best for deep investigation and clean totals.
- Multiple subscriptions: useful for “what changed across the whole org?” views.
When multiple subscriptions are selected, Spotto only offers periods that exist across all selected subscriptions (so comparisons remain valid).
Choose the time period you want to inspect
Cost Tree supports multiple “period types”:
- Rolling periods (for example Last 30 Days): great for fast operational checks.
- Calendar months: best for month-to-month comparisons.
- Billing periods: best when you want to match invoice windows.
Compare periods (previous vs custom)
Cost Tree supports two comparison modes:
- Previous period: compare the selected period to its immediate predecessor.
- Custom comparison: compare two specific calendar months or billing periods (for example, compare January vs November).
Custom comparisons automatically switch the display into delta mode, because you’re explicitly asking “what changed?”.
Rolling periods (like “Last 30 Days”) are designed for quick checks and don’t support custom comparisons.
Switch between Total and Delta views
- Total: show where the money is going right now (good for top spenders).
- Delta: show where spend changed (good for investigations and “why did this move?” questions).
Filter the tree (to keep it readable)
The controls row is designed to turn a “10,000 line items” problem into a “3 clicks” problem:
- Top N per level: show only the largest items at each hierarchy level.
- Minimum cost threshold: hide low-value noise.
- Changes filter: show All, Increases only, or Decreases only.
- Tag filter: search + multi-select tags to isolate spend (supports both cloud tags and Spotto tags). See Tagging.
- Grouping toggle: switch between resource-group-first and service-first groupings.
Export a snapshot
Use Download to export the current Cost Tree view as an image (useful for tickets, incident notes, and “can you explain this?” threads).
Drill into a node and review the change
Click a node to open the investigation panel. Depending on what you selected, you can see:
- Current cost, previous cost, and change (value + percent).
- Amortized cost (when it differs from actual cost).
- % of total (how much this node contributes to the current view).
- Tags for that resource/service grouping (with Spotto tags highlighted).
- Change analysis (when available): a short summary plus top reasons/drivers (for example: new resource, SKU change, rate change, increased usage like bandwidth/storage growth).
If the node maps to a specific Azure resource, you can jump to the resource details view for more context.
Understand node cost source (Billed vs Estimated)
When you expand a node and review its cost details, Spotto also shows where that spend came from:

- Billed: spend from provider billing data.
- Estimated: spend estimated for periods where billed detail is delayed or incomplete.
- Mixed: a combination of billed and estimated spend in the same period.
When estimated spend is present, the node details show the estimated share so you can see how much of the number is estimated (for example, Estimated 40% ($120 of $300)).
Use this source indicator as a confidence guide during investigation: act early with the current signal, then validate final totals once billed data is fully available.
Technical reference
| Component | Details |
|---|---|
| Inputs | Precomputed billing tree snapshots (rolling periods, calendar months, and billing periods), plus resource metadata (IDs, tags) and change-analysis signals where available. |
| Outputs | An interactive hierarchical cost view (total or delta), per-node cost summary (current/previous/amortized), and change analysis drill-down for supported nodes. |
| Defaults | Defaults to Last 30 Days when available; shows Top 10 items per level with a small minimum cost threshold to reduce noise. |
How it differs from Azure-native cost views
Azure Cost Management is the source of truth for billing data and reporting. Cost Tree is tuned for fast investigation:
- It makes deltas first-class (so “what changed?” is the default question).
- It supports comparing specific months/billing periods, not just “this vs last”.
- It pairs the hierarchy with a drill-down panel that keeps cost, tags, and change reasons in one place.
How it works (high level)
- Spotto generates billing tree snapshots and serves them per subscription and period.
- For comparisons, Spotto builds a merged structure so each node can show current vs comparison cost and a delta.
- The UI shows top-N per level and groups the remainder under View More to keep deep trees navigable without hiding meaningful changes.
- In Total mode, nodes are sorted by highest spend; in Delta mode, nodes are sorted by the largest change magnitude so the biggest movers surface first.
Limitations (honest, boring, useful)
- Not real-time: costs update after the provider billing data syncs; billing data can lag.
- Multi-subscription comparisons are intersection-based: if one subscription is missing a period, that period won’t be offered for the group view.
- Mobile isn’t supported: the Cost Tree view is designed for desktop screens.
Troubleshooting
“No data” or an empty Cost Tree
What you're seeing: the page shows a no-data state or an empty chart.
Likely causes:
- The subscription hasn’t completed billing sync yet.
- The selected subscriptions have no common period snapshots. How to fix:
- Confirm the subscription is marked as ready/synced in Spotto.
- Try a different period (for example, Last 30 Days or a recent calendar month).
- If multiple subscriptions are selected, temporarily switch to a single subscription to confirm data exists.
“Failed to Load Data”
What you're seeing: an error state titled Failed to Load Data, or messages like “Unable to load billing tree data for the selected period.”
Likely causes:
- The selected period snapshot isn’t available yet (or the provider billing export is delayed).
- One or more subscriptions failed to load the selected snapshot. How to fix:
- Try a different period (for example, switch from a month to Last 30 Days, or pick a more recent month).
- If multiple subscriptions are selected, reduce to a single subscription to identify which one is failing.
- Refresh after the next billing sync window; if it persists, capture the subscription ID(s) and contact support.
“No matching tags”
What you're seeing: a message indicating there are no matches for the selected tags.
Likely causes:
- The selected tags don’t exist in the current period’s data.
- The tag keys/values differ across subscriptions (for example,
Env: prodvsEnvironment: Production). How to fix:
- Clear the tag filter and reapply one tag at a time.
- Consider using Spotto tags to normalize key/value naming for investigation and reporting.
Custom comparison keeps resetting back to “previous”
What you're seeing: your comparison selection switches back to “previous”.
Likely causes:
- You changed to a period type that doesn’t support custom comparisons (rolling periods).
- The chosen comparison period isn’t available for the current subscription selection. How to fix:
- Select a calendar month or billing period to enable custom comparisons.
- If multiple subscriptions are selected, pick a comparison period that exists for all of them.
Looking to enhance your cloud setup for cost efficiency, performance, reliability, or security?
Talk to a cloud expert! Email us or schedule a 30-minute consultation and let's optimize your cloud environment together.
Book a Free Consultation