Azure Native Application

Cost & Usage Continuity Through Azure CSP Transitions

Preserve your tenant-wide cost reporting, Power BI dashboards, historical data, and API access through CSP transitions — without rebuilding anything.

  • Maintain consolidated cost visibility across all subscriptions
  • Restore tenant-wide cost API functionality — query across all subscriptions, not one at a time
  • Restore your Power BI data source — same column names, same DAX measures, no rebuilding dashboards
  • Preserve historical cost data that otherwise doesn't survive billing transitions
  • Runs entirely within your Azure tenant — no data leaves your environment
Deploy in Azure Marketplace View Architecture

Starting at $225/month after a 30-day free trial

Built for the CSP model

CSP provides flexibility and enhanced support — and changes how cost data is structured.

What changes with cost visibility under CSP

  • Consolidated cost visibility moves to subscription scope. Azure Cost Management does not support management group scope for CSP, so the tenant-wide view is no longer available in the Azure portal.
  • The built-in Power BI Azure Cost Management connector only supports EA and direct MCA agreements. Under CSP, it stops returning data.
  • Cost APIs move to subscription scope only. Under EA/MCA, you can query at billing account, department, or management group scope. Under CSP, every API call must target a single subscription.
  • Historical cost data in the Azure portal resets with the billing transfer. Trend data, baselines, and compares from your previous agreement don't carry over.
  • Reservation amortization shows $0 at subscription scope — you can't see which resources consumed the benefit or how much unused capacity you're paying for.

How CSP Continuity helps

  • Restores consolidated cost visibility across your entire tenant — every subscription, in one place.
  • Replaces the broken Power BI connector with three connection paths — SQL DirectQuery, Parquet import, and a REST API. Same column names as your EA/MCA reports.
  • Provides a cross-subscription query API — collects from every subscription and unifies the results into a single endpoint that matches Microsoft's response format.
  • Preserves historical cost data by collecting and storing it independently within your tenant — your record stays intact regardless of billing changes.
  • Rebuilds reservation amortization — matching reservations to resources by SKU, region, and scope so you see true cost-per-resource.

What's different under CSP

CSP changes how cost data is structured. These are differences in Microsoft's billing architecture that affect how you access and report on costs.

Consolidated view moves to subscription scope

Azure Cost Management does not support management group scope for CSP subscriptions. Cost visibility is scoped to individual subscriptions — there is no tenant-wide view in the Azure portal.

Power BI Cost Management connector stops working

The built-in Azure Cost Management connector in Power BI only supports EA and direct MCA agreements. Under CSP, it stops returning data — reports built on that connector need a new data source.

Cost APIs move to subscription scope only

Under EA/MCA, you can query at billing account, department, or management group scope. Under CSP, billing scopes live in the partner's tenant and management group scope is unsupported. Every API call must target a single subscription.

Historical cost data resets

Billing transfers reset cost history in the Azure portal. Trend data, baselines, and budgets from your previous agreement don't carry over.

Reservation amortization shows $0

At subscription scope, reservation costs appear as zero for both actual and amortized views. You can't see which resources consumed the benefit or how much unused capacity you're paying for.

CSP Continuity addresses every one of these changes — designed to minimize rework and keep your existing reporting intact.

Maintain what matters

A managed application you deploy from the Azure Marketplace.
It runs entirely within your Azure tenant — fully air-gapped from the publisher with no external data transfer.

  • Collects cost data from every subscription on a daily cadence
  • Consolidates into a unified SQL database and Parquet files — replacing the Cost Management connector that doesn't support CSP
  • Amortizes reservation costs — distributes reservation spend to the resources that consumed the benefit
  • Exposes a Microsoft-compatible query API at /api/costmanagement/query — returns consolidated cross-subscription data in Microsoft's exact format, so most existing scripts work with a URL change
  • Provides an in-portal dashboard with daily cost trends, subscription health, and self-service troubleshooting
  • Preserves historical cost data independently — configurable retention from 13 to 36 months, intact through billing transfers and CSP transitions
  • Detects cost anomalies by comparing daily costs against trailing 30-day averages — anomaly data available via REST API for integration with alerting tools and automation

Core capabilities

Consolidated Cost Visibility

View and query cost and usage data across your full Azure environment — not just one subscription at a time.

Historical Cost Continuity

Retain cost history across billing transitions.

Azure Portal–Aligned Reporting

Maintain tenant-wide visibility with an in-portal dashboard for daily cost trends, subscription health, and self-service troubleshooting.

Existing Integrations

Drop-in API replacement — Power BI reports, scripts, and dashboards are designed to work with a URL swap. Parquet files are also available in blob storage for direct Power BI consumption.

Reservation Amortization

Rebuilds reservation amortization that Microsoft shows as $0 at subscription scope — matching reservations to resources by SKU, region, and scope, distributing daily amortized cost proportionally.

Three ways to access your data

All three from a single deployment — no additional tools or licenses required.

Power BI

The built-in Azure Cost Management connector only supports EA and direct MCA — it doesn't work under CSP. CSP Continuity provides two connection paths designed to replace it:

  • SQL DirectQuery — connect to the CostManagement_Usage view using the read-only PowerBIReader account. Column names match EA/MCA exports.
  • Parquet Import — import from Azure Blob Storage, partitioned by year/month/subscription. Works with Power BI and Microsoft Fabric.
  • REST API — connect via Power BI's Web connector using the same query API described below. Same request/response format as Microsoft's Cost Management API.

Same column names, same DAX measures — designed to work without rebuilding dashboards.

Column-level compatibility

The SQL views use column names that match EA and MCA exports: CostInBillingCurrency, PreTaxCost, UsageDate, SubscriptionGuid, InstanceId. Existing DAX measures should bind without changes in most cases.

Query API

Under CSP, every Cost Management API call must target a single subscription. CSP Continuity collects from every subscription and exposes a unified endpoint:

  • POST to /api/costmanagement/query with the same request body format as Microsoft's API
  • Returns data in Microsoft's exact {id, name, type, properties: {columns, rows}} format
  • Consolidated across all subscriptions — not one at a time
  • Unlimited grouping dimensions — Microsoft's API limits grouping to 2

Same request format, same response schema — most existing scripts and tools work with a URL change.

Endpoint swap
// Before — Microsoft Cost Management API
POST https://management.azure.com/
     .../query

// After — CSP Continuity
POST https://<your-app>.azurewebsites.net/
     api/query

Azure Portal Dashboard

An Azure Monitor Workbook deployed directly in the portal — tenant-wide cost visibility right where your team already works:

  • Daily cost trends across all subscriptions
  • Subscription health and permission status at a glance
  • Self-service troubleshooting and remediation guidance
  • No additional tools or licenses — it's part of the Azure portal
12 subscriptions healthy
1 subscription pending permissions

Last collection: 2 hours ago

13 months of data · 847,231 records

How it works

1

Deploy

5 minutes

Deploy from the Azure Marketplace into your tenant.

2

Configure

2 minutes

Run a single PowerShell script to grant read-only permissions.

3

Collect

Automatic

Data collection begins automatically — up to 13 months of history, typically available within hours depending on tenant size.

4

Access

Immediately

Access via API, Parquet files for Power BI, or the in-portal dashboard.

Runs entirely within your Azure tenant

Deployed as an Azure Managed Application — your data never leaves your environment.

Azure Marketplace

Your Azure Tenant

Function App

SQL Database

Storage

Log Analytics

API Layer

management.azure.com graph.microsoft.com *.monitor.azure.com

Deploys like any Azure resource

This isn't a SaaS app. It's an Azure Managed Application built entirely on native Azure services — Function App, SQL Database, Storage Account — running in your tenant, using your identity provider, and following your governance policies.

Deploys into your Azure subscription

Just like any other resource you'd deploy from the Azure portal. It lives in your tenant, managed by you.

Nothing leaves your tenant

No external endpoints, no telemetry, no callbacks. The application communicates only with management.azure.com, graph.microsoft.com, *.monitor.azure.com (for the in-portal dashboard), and marketplaceapi.microsoft.com (metered billing — subscription count only, no cost data).

Uses Azure RBAC and Entra ID

Your existing access policies apply. Authentication and authorization work exactly the way they do for every other Azure resource.

Read-only access to cost data

The application cannot modify resources, subscriptions, or spending. It reads cost and reservation data — nothing more.

Secrets encrypted at rest

All secrets encrypted at rest by the Azure platform. Managed identity authentication — no credentials in code. Azure AD authentication (EasyAuth) on all endpoints. Publisher access configurable as JIT (just-in-time) only.

Try it free for 30 days

Deploy the full solution into your Azure tenant today. No credit card surprises — the base price is $0 and no charges are emitted during the trial. Billing starts on the 1st of the month after your trial ends.

Small

1–5 subscriptions

$225 /month

after your 30-day trial

  • All capabilities included
  • Cancel anytime
  • Deploys entirely within your Azure tenant
Start Free 30-Day Trial

Medium

6–15 subscriptions

$495 /month

after your 30-day trial

  • All capabilities included
  • Cancel anytime
  • Deploys entirely within your Azure tenant
Start Free 30-Day Trial

Enterprise

16+ subscriptions

$1,495 /month

after your 30-day trial

  • All capabilities included
  • Cancel anytime
  • Deploys entirely within your Azure tenant
Start Free 30-Day Trial

Automatic tier selection. You don't pick a tier. The app counts your active subscriptions each month and applies the matching rate.

Predictable flat fees. Every tier is a fixed monthly amount — no per-subscription charges, no usage metering, no surprises.

Infrastructure cost is separate. Azure resources (App Service B1 plan, Storage Account, SQL Database Standard S0) run in your tenant at ~$28–35/month, paid directly to Microsoft.

Available in Azure Marketplace. Cancellation takes effect at the end of your billing period.

Frequently asked questions

Does any data leave my Azure tenant?
No. All data is collected, stored, and served within your tenant. The application makes no outbound calls except to Azure's own management APIs (management.azure.com, graph.microsoft.com, and *.monitor.azure.com for the in-portal dashboard). There are no telemetry endpoints, no analytics, and no callbacks to the publisher.
How is this different from Azure Cost Management?
Azure Cost Management has four structural limitations for CSP customers that this application addresses: (1) No consolidated view — Cost Management does not support management group scope for CSP subscriptions; we consolidate all subscriptions into a single database, dashboard, and API. (2) No reservation amortization — at subscription scope, reservation usage shows $0; we build our own amortization by matching reservations to resources. (3) No billing scope access — CSP billing scopes live in the partner's tenant; we collect from subscription scope and provide the consolidated views that billing scope would have given you. (4) No management group API support — even the Cost Details API doesn't support management group scope for any agreement type; we call it per-subscription and unify the results.
Will my existing Power BI reports work?
The application provides three connection methods designed to be compatible with existing reports: (1) SQL DirectQuery to the CostManagement_Usage view — column names match EA and MCA exports (CostInBillingCurrency, PreTaxCost, UsageDate, SubscriptionGuid, InstanceId, ConsumedQuantity, Currency, ServiceName), so existing DAX measures should bind without changes. (2) Parquet import from Azure Blob Storage — partitioned by year/month for efficient loading into Power BI or Microsoft Fabric. (3) REST API — same request/response format as Microsoft's Cost Management Query API. If you have an existing Cost Management connector report, changing the data source to the SQL DirectQuery connection should work without rebuilding your visualizations in most cases.
How does the free trial work?
Deploy CSP Continuity from the Azure Marketplace. Your first 30 days are completely free — no charges at all. Billing starts on the 1st of the month after your trial ends. There's nothing to cancel if you decide it's not for you.
How is my tier determined?
The app counts all Azure subscriptions visible to its managed identity, minus any you manually exclude. Your tier is based on this count: 1–5 subscriptions is Small ($225/month), 6–15 is Medium ($495/month), and 16 or more is Enterprise ($1,495/month). You never have to pick a plan.
When does billing start?
After your 30-day trial, billing starts on the 1st of the following month. For example, if you deploy on May 15th, your trial runs through June 14th, and your first charge appears on your July invoice.
What happens if I add subscriptions mid-month?
Nothing changes until the next 1st. Your tier is reassessed monthly, not in real time. No mid-month billing adjustments.
Can I exclude subscriptions to lower my tier?
Yes, but excluded subscriptions don't get cost data collected. You lose visibility into those subscriptions' spending. The tier is based on the count of non-excluded subscriptions visible to the managed identity.
Why can't I just use management groups with CSP?
Microsoft's Cost Management explicitly does not support management group scope for CSP subscriptions. If you try, you get: "Management group does not have any valid subscriptions." There is no workaround, no alternative scope, and no announced timeline for support. This application is the workaround.
We're planning a CSP migration. Should we deploy before or after?
We recommend deploying before. If you deploy while still on EA or MCA, the application collects up to 13 months of historical data at your current negotiated rates. When you migrate to CSP, that historical data stays in your tenant — even though it disappears from the Azure portal. After the migration, the application continues collecting at the new rates. Under normal operating conditions, you get a continuous timeline showing the transition and the historical comparison that no other tool provides.
What happens during the CSP billing transfer?
The application is designed to keep running. CSP transfer is a billing-only change — subscription IDs, resources, RBAC role assignments, and managed identity are all preserved. The Cost Management APIs may be briefly unavailable (typically 24-48 hours) while Microsoft reconfigures the billing scope. During that window, the application marks affected subscriptions as temporarily errored and retries on the next daily collection run. Historical data is untouched throughout.
What happens if I cancel?
Billing stops at the end of the current period. Your data remains in your tenant until you delete the managed application resource. Cancelling means you lose the consolidated view and return to subscription-by-subscription visibility. If you deployed before a CSP migration, cancelling also means losing access to the pre-migration historical data that no longer exists in the Azure portal.
What Azure resources does it deploy?
A Function App (B1 App Service plan, ~$13/month), a Storage Account (Standard LRS), an Azure SQL Database (Standard S0, ~$15/month), a Log Analytics workspace, and an Azure Monitor Workbook. Total infrastructure cost is approximately $28–35/month.
Deployment failed — what should I check?
The most common deployment failures are: (1) the microsoft.operationalinsights resource provider is not registered on your subscription — see the Deployment Prerequisites section on our Support page; (2) no App Service quota in the selected region — request a quota increase under "App Service" in your subscription's Usage + quotas blade; (3) SQL provisioning restricted in the selected region — try a different region. Most enterprise subscriptions will not encounter these issues.
What permissions does it need?
Cost Management Reader (read-only cost data) and Reservations Reader (read-only reservation data). Both are read-only — the application cannot modify any Azure resources. Permissions are granted by running a single PowerShell script in Azure Cloud Shell.
How does reservation amortization work without billing scope?
Microsoft only provides reservation attribution at billing scope, which CSP customers can't access. The application collects reservation orders and daily utilization summaries via the Reservations API, then matches them to usage records by SKU flexibility group, region, and scope. The daily amortized cost is distributed proportionally across matched resources. Unused capacity appears as synthetic records so you can see how much reservation spend is going to waste.

CSP Continuity is designed to work across a wide range of Azure environments. Results may vary based on tenant configuration, Microsoft API availability, and CSP partner setup. See our Terms of Use for details.