Cost by service: one service's cost and where it runs

Updated

Cost by service shows one service at a time in the selected scope: what it cost, its rank and share, how its cost changed against the period just before, its day-by-day line, and the subscriptions and resource groups it was billed in. This article explains every part of the page, how each figure is calculated and what it leaves out.

What this page is for

Cost by service answers one question about one service: what did it cost in this scope, how did that cost move against the period before, and where in your estate does it sit? Choose a service, and the figures, the chart and both tables below are about that service alone.

Open it when you already know which service is large, from the Dashboard or the ranking on the Cost overview, and need to decide whether to look into it and where. A rise shows in the change and the daily line; the two tables name the subscriptions and resource groups to start with.

Every figure is in one currency and covers the same scope and date range. The page never adds two currencies together and converts nothing.

The top of the Cost by service page for Virtual Machines: the scope bar, the service list, five figures for the last 30 days and the daily chart of the service. The top of the Cost by service page for Virtual Machines: the scope bar, the service list, five figures for the last 30 days and the daily chart of the service.
The scope bar sets the range, the list chooses the service, and everything below follows the choice.

Before you start

The page shows figures once an Azure connection has imported its cost data. Until then it shows “No cost data yet” and a link to Getting started, which walks you through connecting Azure and the first import.

Read the Getting started guide

Cost analytics is part of the Starter plan and every plan above it. On the Free plan the page shows a labelled sample instead of your data.

See what each plan includes

Choose the scope: subscription, currency and dates

The bar at the top of the page sets the scope. Every figure, table and list below it is calculated again for what you select.

  • “Subscription”: “All subscriptions” or one subscription. The list holds the subscriptions that have recorded cost.
  • “Currency”: shown only when the scope is billed in more than one currency. CostGuard holds no exchange rate, so it never adds two currencies. Every figure is in the one currency you select.
  • The date range: “Last 7 days”, “Last 30 days” (the page opens with it), “Month to date”, “Previous month”, “Last 90 days”, “Last 12 months” or “Custom range”. The last two presets are offered on this page because the movement of one service is often clearer over a longer view.
  • “Refresh” reads everything again for the same scope.
The scope bar with the subscription list set to all subscriptions, the currency list, the date range list set to the last 30 days, the refresh button and the date the cost data reaches. The scope bar with the subscription list set to all subscriptions, the currency list, the date range list set to the last 30 days, the refresh button and the date the cost data reaches.
The scope bar. Whatever you select here applies to the whole page below it.

When you have not chosen a currency, the page uses the same one as the Dashboard and the Cost overview for the same scope, so one scope reads in one currency on every cost page. “Last 12 months” runs from the day after the same date a year ago through today.

Set a custom range

  1. Open the date range list and choose “Custom range”.
  2. Enter a date under “From” and a date under “To”. Both days are included.
  3. Select “Apply”. “Cancel” closes the fields and keeps the range you had.

Limits to know

A custom range covers at most 366 days, starts on or before its end date and cannot end after today. When a date does not fit, a message beside the fields says what to correct, and nothing is reloaded until you do.

How far the cost data reaches

“Cost data through” shows the latest day CostGuard holds cost for. Azure reports cost with a delay of a day or two, so the latest days can still change, and a range that ends today is not final yet.

Choose a service

The “Service” list holds the services the scope was billed for in its currency, largest first, each with its cost in the range. The page opens on the largest, and the sentence beside the list says how many services it holds.

The service list set to Virtual Machines with its cost, beside the sentence that says how many services were billed in US dollars in the range. The service list set to Virtual Machines with its cost, beside the sentence that says how many services were billed in US dollars in the range.
Each entry carries the service's cost in the range, so the list also reads as a ranking.

Choose another service, and its figures, its daily chart and both tables are read again; the list and the scope stay as they are. The service you chose stays chosen when you change the scope, as long as the new scope has a cost for it in that currency. Otherwise the page shows the largest service of the new scope.

Tip

A service billed in another currency appears in the list once you choose that currency in the scope bar.

The five figures of the service

The five figures describe the chosen service in the selected range, all in one currency:

  • “Service cost”: what the service cost in the range, with its rank among the services of the scope under it, largest first.
  • “Share of the scope”: the service's part of what every service of the scope cost, with that total under it. The total adds up the same records as the service's own cost, so the share cannot disagree with it.
  • “Change”: the service's cost minus its cost in the same number of days just before the range, with the change as a percentage of that earlier cost. “New” means the service had no cost in the days before; “Not available” means those days could not be read. A change wears no colour: a rise can be planned growth, and a fall can be a workload that stopped.
  • “Highest day”: the day on which the service cost most, with its date. When two days cost the same, the earlier one is shown.
  • “Days with cost”: on how many days of the range the service had a cost. A service that runs every day reads the full count; a scheduled job, or a service that started or stopped during the range, reads fewer. A day without cost is not counted.
The five figures of Virtual Machines for the last 30 days: its cost and rank, its share of the scope, the change against the 30 days before, its highest day and its days with cost. The five figures of Virtual Machines for the last 30 days: its cost and rank, its share of the scope, the change against the 30 days before, its highest day and its days with cost.
The change compares the same number of days; the share compares the service with every service in the same currency.

Note

When the scope is also billed in another currency, a sentence under the figures names it. Those costs are in no figure: choose that currency in the scope bar to see them.

Read the daily cost of the service

“Daily cost” draws the service's cost on each day of the range as a line, and the same number of days just before it as a second line on the same value axis, so the two periods compare day by day. The value axis starts at zero. Point at a day to read its value, or open “View the daily figures as a table” to read every value.

The daily cost chart of Virtual Machines for the last 30 days: one day stands far above the rest, beside the line of the previous period, on a value axis from zero. The daily cost chart of Virtual Machines for the last 30 days: one day stands far above the rest, beside the line of the previous period, on a value axis from zero.
One tall day stands out; the tables below show where the service ran.

A single tall day is usually a batch job, a load test or another one-off event; a step that stays up is new or larger infrastructure; a line that drops to nothing means the service stopped. The most recent days can still change while Azure completes its cost data.

When the days before could not be read, the chart says “The previous period could not be loaded, so only the selected period is drawn.” When the daily cost of the service could not be read, the panel says “The daily cost of this service could not be loaded. Try again in a moment.” instead of drawing a line, and “Highest day” and “Days with cost” read “Not available”.

Where it runs: by subscription

“By subscription” lists the subscriptions the service was billed in, largest first, with the service's cost in each and that cost's share of the service. A bar draws each share; on a phone the page shows the percentage alone.

The subscriptions Virtual Machines was billed in: Northwind Shared Platform, Northwind SaaS Production and Northwind SaaS Staging, each with its cost and its share of the service. The subscriptions Virtual Machines was billed in: Northwind Shared Platform, Northwind SaaS Production and Northwind SaaS Staging, each with its cost and its share of the service.
One service in three subscriptions: the shares say where most of its cost sits.

A subscription is known by its ID, not by its name, so two subscriptions that share a name stay two rows. When you choose one subscription in the scope bar, this table is left out, because it would hold that one row.

Where it runs: by resource group

“By resource group” lists the resource groups the service was billed in, largest first, with the service's cost and its share of the service in each. With all subscriptions in scope, each group names its subscription under it, and two groups with the same name in two subscriptions stay two rows.

The resource groups Virtual Machines was billed in: rg-shared-build, rg-prod-legacy and rg-stg-test, each with its subscription under it, its cost and its share of the service. The resource groups Virtual Machines was billed in: rg-shared-build, rg-prod-legacy and rg-stg-test, each with its subscription under it, its cost and its share of the service.
Each group names its subscription, because the scope covers every subscription.

Note

“No resource group” is cost that Azure recorded against no resource group, such as a reservation, a support plan or a Marketplace purchase, which belongs to a subscription as a whole. It is shown rather than dropped, so no cost of the service goes missing from the table.

The eight largest groups are listed one by one. When two or more remain, they are added into one last row that says how many groups it holds.

Go further

Three links at the bottom of the page lead on. Each page opens with its own settings, not the scope chosen here. “See every service ranked” opens the Cost overview, which ranks every service with its change. “See how all costs moved day by day” opens Cost trend, which shows how the whole scope moved day by day. “Group the cost your way” opens Cost Explorer, which lists the cost by service, resource group, resource, meter or subscription, each item against the period before.

What you may see instead of figures

While the figures load, grey placeholder bars stand where they will appear. After that, the page shows one of these instead of figures when there is nothing to show:

  • “No cost data yet”, with “Open Getting started”: no connection has imported cost yet.
  • “No cost in this range”: the workspace has cost data, but none of it falls in the selected range and scope.
  • “Not available” under “Change”, with “The previous period could not be compared.”: the days before could not be read. The rest of the page still shows its figures; “Refresh” in the scope bar tries again.
  • “The daily cost of this service could not be loaded. Try again in a moment.” in the daily cost panel, or “Where this service runs could not be loaded. Try again in a moment.” in both tables: that part could not be read, and the rest of the page stands. “Refresh” in the scope bar tries again.
  • “The service costs could not be loaded.”, with “Try again”: the services of the scope could not be read. Nothing was changed.
  • A notice that your session has expired, with a link to sign in again. The page shows no figures until you do.

Sample data when your plan has no cost analytics

When your plan does not include cost analytics, 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 Cost by service sample under a visible sample data label: an example service with its five figures, its daily chart and both tables, with a sentence saying the plan does not include the feature and a link to compare plans. The Cost by service sample under a visible sample data label: an example service with its five figures, its daily chart and both tables, with a sentence saying the plan does not include the feature and a link to compare plans.
A sample is always labelled, and always an example.

The sample shows one service, Virtual Machines, with its five figures, its daily chart and both tables for a fixed period, with figures that are the same for everyone. They are never your data, there is no scope bar and no service list, and nothing in the sample changes.

What each plan includes

The table shows the first plan that includes each part of the page. Every plan above it includes it too.

What each plan includes
FeatureFreeStarterGrowthProEnterprise
A labelled sample of the page Included Included Included Included Included
Cost by service with your own cost data Not included Included Included Included Included

Plans and pricing

Troubleshooting

The page says “No cost data yet”

You have no connection yet, or its first import has not finished. Open Getting started and follow the steps; the figures appear when the first import completes.

The last days look too low

Azure reports cost with a delay of a day or two. Check the date beside “Cost data through” in the scope bar. Days after it hold no cost yet, so a range that ends today reads lower than it will be.

A service is missing from the list

The list holds the services with cost in the selected range, subscription and currency. A service billed in another currency appears when you choose that currency in the scope bar; a service with no cost in the range appears when you choose a range in which it had one.

The page says “No cost in this range”

The selected subscription has no recorded cost on the selected dates, or the range starts before your cost history does. Choose a wider range or all subscriptions.

“No resource group” appears in the table

Azure recorded that cost against the subscription as a whole, not against a resource group: typically a reservation, a support plan or a Marketplace purchase. It is part of the service's cost, so the table keeps it.

The change reads “New”

The service had no cost in the same number of days just before the range. It started during the range, or those days lie before your cost history begins; with “Last 12 months” they are the twelve months before, which your history may not reach.

The page shows sample data

Your plan does not include cost analytics. The table above shows which plan does, and the link under it opens the pricing page.