Whether you consider yourself a FinOps practitioner, someone who’s enthusiastic about driving cloud efficiency and maximizing the value you get from the cloud or were just asked to look at ways to reduce cost, the FinOps toolkit has something for you. This month, you’ll find support for FOCUS 1.2, autostart in FinOps hubs which can reduce your hub costs, a new page in the Cost summary Power BI report, and various small fixes, improvements, and documentation updates across the board. Read on for details.
New to the FinOps toolkit?
In case you haven’t heard, the FinOps toolkit is an open-source collection of tools and resources that help you learn, adopt, and implement FinOps in the Microsoft Cloud. The foundation of the toolkit is the Implementing FinOps guide that helps you get started with FinOps whether you’re using native tools in the Azure portal, looking for ways to automate and extend those tools, or if you’re looking to build your own FinOps tools and reports. To learn more about the toolkit, how to provide feedback, or how to contribute, see FinOps toolkit documentation.
FinOps Open Cost and Usage Specification (FOCUS) version 1.2
As you may have seen, Microsoft Cost Management released support for FOCUS 1.2 last month. This month, you’ll find updated FOCUS documentation, Power BI reports, FinOps hubs data ingestion, and a new FOCUS 1.2 metadata file.
The FOCUS documentation provides a high-level overview and summary of what FOCUS is, why it’s important, how to transition to it, and any conformance gaps between the Cost Management dataset and the official specification. These updates cover:
- New columns, like ServiceSubcategory.
- Renamed columns, like InvoiceId, PricingCurrency, and SkuMeter.
- Future columns that are not yet populated, like CapacityReservationId, CapacityReservationStatus, CommitmentDiscountQuantity, CommitmentDiscountUnit, and SkuPriceDetails.
If you’re migrating reports from native Cost Management schemas to FOCUS, converting your own data, or comparing FOCUS data to native schemas, you can learn more with the following articles:
Power BI reports were also updated to account for the new and renamed columns. Storage reports include both new and old names with values copied to/from both, so no matter what you use, you’ll continue to get the right values whether you’re using FOCUS 1.0 or FOCUS 1.2 data. This includes:
- InvoiceId and x_InvoiceId
- PricingCurrency and x_PricingCurrency
- SkuMeter and x_SkuMeterName
KQL reports go a step further and provide some of the additional columns that are not yet provided in Cost Management FOCUS exports. This includes CapacityReservationId, CapacityReservationStatus, CommitmentDiscountQuantity, CommitmentDiscountUnit, SkuPriceDetails, and more. I’ll cover this more in the next section.
Lastly, FOCUS defines a metadata file that identifies and describes the columns included in a FOCUS dataset. You can download a JSON version of these metadata files or learn more in Details about the FOCUS dataset.
Note the documentation updates have not been published yet, so you won’t see them on Microsoft Learn. While Microsoft works on publishing the updates, refer to the FOCUS documentation in the FinOps toolkit repository.
New FinOps hubs v1_2 schema
Data is at the heart of every FinOps practice. Whether you’re a hobbyist or part of a large team, you can’t “FinOps” without data. And when you start to “FinOps” at scale, you realize you need a lot of different data from a lot of different data sources. And these data sources often have different characteristics and change over time. Luckily, FinOps hubs were designed to handle ever-evolving datasets through it’s “schema version” concept.
FinOps hubs schema versions are contracts you can rely on to always present a consistent version of the data. Today, FinOps hubs use a “v1_0” schema version that aligns with FOCUS 1.0 (hence the name). As of FinOps hubs 12, you will see a new “v1_2” schema version, which aligns with FOCUS 1.2. And you’ll notice that your data is populated in the FOCUS 1.2 format regardless of what dataset version you exported from Cost Management. And the best part is, this optimization won’t impact you at all as long as your reports and integrations are setup to use the versioned functions (e.g., Costs_v1_0). If you find you have code using non-versioned functions (e.g., Costs), simply switch to the versioned function to get all data – old and new – using the previous v1_0 schema version.
To learn more, see Introducing non-breaking “breaking” changes in FinOps hubs 12.
Unlocking broader compatibility with flexible CIDR support
When setting up private endpoints in FinOps hubs, defining the right virtual network (VNet) configuration is essential to ensure secure and scalable connectivity. A key part of this setup involves specifying a CIDR (Classless Inter-Domain Routing) block, which determines the size and structure of the IP address space within the VNet. Based on community feedback, FinOps hubs expanded CIDR validation to support any subnet size ranging from /8 to /26 for maximum flexibility. (/26 is the minimum required to support native FinOps hubs functionality.)
This update reflects a more flexible and inclusive approach to network planning. By allowing a wider range of CIDR sizes, FinOps hubs better accommodate diverse deployment scenarios, such as those involving Power BI VNet data gateways that require larger address spaces. This change not only resolves upgrade blockers but also empowers you to tailor your deployments to meet your unique needs and without unnecessary constraints.
Balance cost and freshness with Data Explorer auto-start
One of the most effective ways to reduce cloud spend is by scheduling workloads to run only when needed, and Azure Data Explorer clusters are a prime candidate for this strategy. Data Explorer powers ingestion and analysis, but usage is billed hourly, which means you’re being charged for it even when not actively querying or ingesting data. To optimize this, you can configure Data Explorer to shut down automatically after a period of inactivity, but historically, this has introduced a problem because the cluster was shut down when new data needs to be ingested. With FinOps hubs 12, the ingestion pipeline automatically checks the status of the Data Explorer cluster and starts it if it’s stopped when new data arrives. When initiating the Data Explorer cluster, the startup process typically takes approximately 10 minutes. While this delay incurs pipeline execution costs, it remains significantly more cost-effective than maintaining a continuously running cluster (24x7). During this startup phase, data ingestion tasks are paused until the cluster is successfully provisioned. Depending on the timing of the ingestion trigger, there may be instances where the cluster's provisioning state is not yet terminal. This can occur, for example, when the Data Explorer is concurrently executing a stop or start operation while the pipeline attempts to initiate the cluster. In such cases, the pipeline waits for 10 minutes before reattempting the cluster start activity. As expected, detailed outputs—including cluster status, the result of the start operation, and any encountered errors—are available in the Azure Data Factory (ADF) monitoring interface for review and troubleshooting.
To summarize, this ensures ingestion continues seamlessly without manual intervention, allowing users to optimize for both cost and continuity. It’s a smart enhancement that supports workload scheduling best practices—keeping your data fresh while ensuring you only pay for what you use.
To get started with scheduling Data Explorer, see Automatic stop of inactive Azure Data Explorer clusters.
Strengthened security with flexible export permissions
FinOps hubs leverage Cost Management exports, which run on a predetermined schedule that can’t be set or changed. But some organizations are looking for more control over when exports run and data gets ingested into FinOps hubs. This is where managed exports come in. Managed exports automate the delivery of Cost Management data, enabling seamless and timely integration with analytics pipelines and reporting tools. Managed exports work by granting your FinOps hub instance access to create and run exports on your behalf. The challenge here is that Cost Management requires the User Access Administrator role to create exports, which is an elevated permission that some organizations restrict due to security policies. To increase the default security posture of FinOps hubs, managed exports are now disabled by default in FinOps hubs 12. If you’d like to use managed exports, simply check the Enable managed exports checkbox on the Advanced tab (or the set the enableManagedExports template parameter to true).
By leaving this option disabled or explicitly setting the parameter to false, you can now deploy FinOps hubs without requiring elevated permissions for role assignments. This makes it easier to deploy in secure or restricted environments while still maintaining core functionality. It’s a small but powerful change that simplifies onboarding and aligns with enterprise-grade security practices.
New executive summary in the Cost summary report
Understanding where your cloud spend is coming from is critical – not just for FinOps practitioners, but for executive stakeholders as well. That’s why the FinOps toolkit 12 release introduces a new Summary page in the Cost summary report, designed specifically to provide a high-level, executive-friendly view of cost drivers across your environment.
This new page highlights the top 10 subscriptions, resource groups, and service categories by spend for the selected period, making it easy to identify where costs are concentrated. It also includes a breakdown of monthly usage by pricing category and a daily spend trend for the last 30 days to facilitate quick pattern recognition and anomaly detection at a glance. To make room for this new executive summary, the original summary page has been renamed to Running total, which continues to provide a cumulative view of costs over time. Together, these updates offer a more complete and accessible picture of your cloud financials for both technical and non-technical audiences.
PowerShell updates for Cost Management exports
To ensure compatibility with the latest features and improvements in Microsoft Cost Management, the FinOps toolkit PowerShell commands for Cost Management exports were all updated to default to the latest GA API version, 2025-03-01. This keeps the toolkit aligned with the most recent capabilities and ensures long-term support for evolving services.
In addition, the default export version for FOCUS exports has been updated to 1.2-preview in the New-FinOpsCostExport command. This version includes the latest industry and data quality improvements, helping teams get more value from their exported cost data. These updates make it easier to stay aligned with the latest standards while reducing the need for manual configuration. If you need an older dataset version, simply set the -DatasetVersion parameter to the desired version.
New versioning strategy for a growing toolkit
What started as a modest effort to simplify FinOps operations with a single tool has grown into a suite of nine tools, each addressing a different aspect of FinOps. While we’ve been driving towards a “1.0” release of FinOps hubs, the FinOps toolkit scope has grown, but our approach to versioning hasn’t. With this release, we’re shifting to a versioning strategy that better represents the ever-growing nature of the toolkit as a collection of tools. Instead of “0.12” which only represents the state of a single tool, we’re dropping the “0.” to reflect the collective progress as version “12” of the toolkit as a whole.
Other new and noteworthy updates
Many small improvements and bug fixes go into each release, so covering everything in detail can be a lot to take in. But I do want to call out a few other small things that you may be interested in.
In FinOps hubs:
- Document how savings are calculated and how to troubleshoot negative savings.
- Updated the Data Explorer dashboard to use the v1_2 schema.
In Power BI reports:
- Added an invoice ID filter to the Microsoft Customer Agreement (MCA) invoice recon page in the Invoicing and chargeback report.
- Updated KQL reports to use the FinOps hubs v1_2 schema.
- Correctly detect the hub version in the Data ingestion report.
- Link to recommendations Power BI report in MS Learn documentation (#1614).
- Aka.ms links to point to the latest version of documentation articles in MS Learn.
In open data:
- Added 20 new and updated 7 existing resource types.
- Added 2 new service mappings.
What’s next
Despite many changes in Microsoft, I’m more excited than ever about what’s coming. The FinOps toolkit has grown into a vibrant community of contributors and users, all passionate about making FinOps more accessible, scalable, and impactful. And we’re just getting started.
Looking ahead, you can expect continued innovation across the toolkit:
- FinOps hubs will add recommendations, a new extensibility model, and continued data quality improvements.
- Power BI and FinOps workbooks will continue to expand with recurring updates and deeper FinOps insights.
- Azure Optimization Engine will evolve as its capabilities are integrated into FinOps hubs.
To support this momentum, I’m also working on a set of premium services designed to help organizations deploy, customize, and scale the FinOps toolkit with confidence. Whether you need help getting started, tailoring the tools to your environment, or ensuring long-term success, these services are built to meet you where you are – strategic, secure, and ready to deliver value from day one. Connect with me directly on LinkedIn or Slack to learn more.