4 Ways to Calculate Annual Cost for Microsoft 365

Explore four practical methods to estimate your Microsoft 365 annual cost, helping you budget and plan subscriptions accurately
The author of the article Chris Shuptrine
Aug 2025
4 Ways to Calculate Annual Cost for Microsoft 365

Predicting what Microsoft 365 will really cost at renewal can feel like guessing a moving target. Licenses change, add-ons creep in, and headcount never sits still. Many admins end up surprised when the invoice lands.

This guide walks through four concrete ways to pin down your yearly spend before it sneaks up on you, so you can align budgets, justify subscriptions, and avoid last-minute cuts.

Table of Contents

Use Microsoft 365’s UI

Use the Microsoft 365 admin center to find out what your organization spends on its subscriptions each year.

1. Sign in to the admin center

  • Open admin.microsoft.com and sign in with a global or billing admin account.

2. Open the Billing section

  • In the left-hand menu, pick Billing.
  • From the fly-out, choose Your products. This shows every active subscription.

3. Check each subscription’s annual price

  • On the **Your products page, locate a subscription card and click it.**

You’ll see:

  • Number of licenses
  • Price per license
  • Billing frequency (Monthly or Annual)
  • Total price for that billing cycle
  • If the card shows Billed monthly, multiply the monthly total by 12 for the yearly cost.

Example: $250 per month × 12 = $3,000 per year.

4. Confirm past charges (optional but handy)

  • Still under **Billing, click Bills & payments.**

Every invoice appears in date order. Open the most recent invoice PDF to see:

  • Subtotal
  • Tax
  • Amount paid
  • Add the subtotals from all twelve monthly invoices if you need an exact figure for the last year.

5. Export totals for your records

  • In Bills & payments, select the checkboxes next to the invoices you want.
  • Hit Download, and Microsoft 365 bundles the PDFs and a CSV summary in a zip file.

The CSV lists each invoice’s total, making it easy to sum in Excel.

That’s it. With these screens, you can spot each subscription’s yearly price and confirm what you’ve spent.

Use Torii

Instead of exporting spreadsheets from Microsoft 365, use Torii, a SaaS management platform, to see your annual spend. The tool gathers every subscription in one place so finance and IT can track each license without hunting through emails.

To check your yearly Microsoft 365 cost from inside Torii, follow these steps:

1. Sign up for Torii

Contact Torii and request a free, two-week proof of concept.

2. Connect your expense systems & contracts to Torii

Once your account is live, connect Torii to finance tools such as Coupa, QuickBooks, or any other expense platform. This link streams Microsoft 365 spending data directly into Torii.

You can also upload contracts, and Torii will pull the subscription price automatically.

See these instructions for the Microsoft 365 integration.

3. Search for Microsoft 365 within Torii

In the Torii dashboard, type Microsoft 365 into the search bar. The app page then shows license counts, total spend, renewal dates, and related details.

torii and microsoft 365

Or, chat with Eko

Open Torii and chat with its AI assistant, Eko, to surface Microsoft 365 details in seconds. Click the icon on the dashboard’s lower right, request the data, and it lands in the chat window right away.

using eko to find annual cost in microsoft 365

Use Microsoft 365’s API

Here you’ll pull live license counts through Microsoft Graph, then turn them into a yearly dollar figure.

1. Grab an access token

POST https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
client_id={client_id}
&scope=https://graph.microsoft.com/.default
&client_secret={client_secret}
&grant_type=client_credentials

Permissions to include on the app: Organization.Read.All and Directory.Read.All. The response returns access_token.

2. List every subscription SKU in the tenant

GET https://graph.microsoft.com/v1.0/subscribedSkus
Authorization: Bearer {access_token}

Your response will contain one JSON object for each SKU in the tenant. Key fields:

  • skuPartNumber: friendly name like ENTERPRISEPACK
  • consumedUnits: seats in use
  • prepaidUnits.enabled: seats you’re paying for

3. Isolate billable seats

Grab the larger value between consumedUnits and prepaidUnits.enabled for every SKU you find. That figure is what accounting will match to the invoice at the end of each month.

4. Translate SKUs to annual price

Microsoft Graph returns seat counts but no pricing details, so you need a reference table of list rates. Keep a local map such as:

{
    "ENTERPRISEPACK": 22.00, // USD monthly list price for M365 E3
    "BUSINESS_BASIC": 6.00
}

If your organization secured discounted rates, replace the list prices with the negotiated numbers before running any calculations.

5. Crunch the yearly total

Pseudo-code:

annual_cost = 0
for sku in graph_response['value']:
    seats = max(sku['consumedUnits'],
    sku['prepaidUnits']['enabled'])
    monthly_price = price_table[sku['skuPartNumber']]
    annual_cost += seats * monthly_price * 12
    print(f"Estimated annual cost: ${annual_cost:,.2f}")

Run the script whenever you need an updated figure or schedule it to post to finance every month.

6. Keep it fresh

  • Rerun Step 2 after adding or removing licenses.
  • Update the local price map when Microsoft announces new rates or when your renewal comes up.

Use Claude (via MCP)

Fetch the same data inside Claude with the Model Context Protocol (MCP). Claude, Anthropic’s AI assistant, works much like ChatGPT and understands MCP calls.

To check your Microsoft 365 yearly spend in Claude, follow these steps.

1. Set up Torii

Follow the earlier Torii instructions to connect your Microsoft 365 tenant.

Once connected, open Settings and generate a new API key.

2. Set up MCP in Claude

Browse the official Torii MCP instructions and this blog post for background.

Install the Claude Desktop app, then add the snippet below to claude_desktop_config.json:

{
    "mcpServers": {
        "Torii MCP": {
            "command": "env",
            "args": [
                "TORII_API_KEY=YOUR_API_KEY",
                "npx",
                "@toriihq/torii-mcp"
            ]
        }
    }
}

Create the key in Torii’s Settings tab and replace YOUR_API_KEY before saving.

3. Chat with Claude

With the config in place, Claude now recognizes your Torii workspace. Ask it to inspect Microsoft 365 licenses, total spend, renewal dates, and other SaaS details.

torii mcp with microsoft 365

Torii for SaaS Management

Trying to bring order to an expanding stack of SaaS subscriptions? From finding rogue apps to catching renewal deadlines, Torii’s SaaS Management Platform gives every team the clarity to act:

  • Uncover shadow IT: Ongoing scans flag unapproved apps the moment they appear in your environment, so nothing slips through the cracks.
  • Reduce spend: Stop paying for idle licenses and duplicate tools you don’t need, and redirect that budget to real growth initiatives.
  • Automate onboarding/offboarding: Put repetitive IT tasks on autopilot, cutting manual work and errors while freeing your team for higher-impact projects.
  • Stay ahead of renewals: Get alerts in time to renegotiate or cancel before contracts roll over, giving you room to choose the best path forward.

Torii is the first unified SaaS Management Platform, delivering a single source of truth for Finance, IT, and Security teams alike.

See how Torii can simplify your SaaS ecosystem at Torii.

Frequently Asked Questions

Start by checking Microsoft 365 admin center totals, then compare them to Torii dashboards, pull live counts with Microsoft Graph, and even query Claude via MCP. Cross-referenced figures remove surprises and let finance lock budgets early.

Sign in as a billing admin, open Billing → Your products, click each subscription card, note license count, price, and billing frequency, then multiply any monthly total by twelve. Optionally download Bills & payments CSVs to confirm last year’s charges.

Torii centralizes SaaS data by linking finance tools and contracts. Its dashboard shows Microsoft 365 seat numbers, total spend, and renewal dates, while the Eko chat bot retrieves the same figures instantly, eliminating manual spreadsheets and scattered invoices.

With Microsoft Graph you request subscribedSkus, capture consumed versus prepaid units, map each SKU to a known list or discounted price, multiply by 12, and output an annual total. Automating the script delivers always-current estimates for finance teams.

After connecting Torii and generating an API key, add the Torii MCP server to claude_desktop_config.json, then ask Claude to list Microsoft 365 licenses, spend, and renewal timelines. The AI returns the data in chat without opening any portals.

Unchecked license growth inflates renewal bills, forcing sudden budget cuts. By tracking seat counts, dormant accounts, and add-ons all year, IT can right-size subscriptions in advance, negotiate better rates, and forecast cash needs with fewer surprises.