Blog Post

FinOps Blog
7 MIN READ

FOCUS: An open specification for cloud cost transparency

flanakin's avatar
flanakin
Icon for Microsoft rankMicrosoft
Jul 25, 2024

When it comes to FinOps, the data is of the utmost importance. Data is the key to understanding your cloud cost and usage patterns, and pivotal to making smart decisions about your cloud strategy and operations. This is why Microsoft is proud to be a founding member of the FinOps Open Cost and Usage Specification (FOCUS) project and why we’re dedicated to defining and evolving the specification alongside our customers, partners, and industry peers. We first implemented FOCUS 0.5 in the FinOps toolkit in June 2023, then we implemented FOCUS 1.0 preview in Cost Management exports in November 2023, and most recently, we were excited to announce FOCUS 1.0 support in Cost Management exports at FinOps X 2024. And if that weren’t enough, we were joined by Google Cloud Platform (GCP), Amazon Web Services (AWS), and Oracle Cloud Infrastructure (OCI) teams who all announced FOCUS 1.0 support in June. This is truly an amazing time to be able to see FOCUS take flight across each of these platforms, setting FinOps practitioners across the globe up for future success. So, if you haven’t started preparing for FOCUS by familiarizing yourself with the current specification, joining the FOCUS community, and providing feedback on your use cases and needs, now’s the time! And I’ll give you a crash course in FOCUS 1.0.

 

What is FOCUS?

FOCUS is a groundbreaking initiative to define a common format for billing data that empowers organizations to better understand cost and usage patterns and optimize spending and performance across multiple cloud, SaaS, and even on-premises service offerings.

 

FOCUS provides organizations with a consistent, clear, and accessible view of their cost data explicitly designed for FinOps needs such as allocation, analytics, monitoring, and optimization. As the new “language” of FinOps, FOCUS enables practitioners to collaborate more efficiently and effectively with peers throughout the organization and even maximize transferability and onboarding for new team members, getting people up and running quicker. Paired with the FinOps Framework, practitioners will be armed with the tools needed to build a streamlined FinOps practice that maximizes the value of the cloud.

 

For a quick introduction, I'll let JR Storment, executive director of the FinOps Foundation, introduce FOCUS in his own words from the FOCUS 1.0 announcement during the FinOps X keynote a few weeks ago.

 

 

Why organizations need FOCUS

The variety and flexibility of Microsoft cloud services allows you to build amazing things while only paying for what you need, when you need it. And with this flexibility comes varying operational models where services are billed and can be tuned differently based on a variety of factors. When services are billed differently, their cost and usage data tends to differ as well, making it challenging to allocate, analyze, monitor, and optimize consistently. Of course, this goes beyond just Microsoft’s cloud services. Organizations often rely on software as a service (SaaS) products, licensed software, on-premises infrastructure, or even other clouds, exacerbating the problem with each provider sharing data in proprietary formats.

 

FOCUS solves this problem by establishing a provider- and service-agnostic data specification that addresses some of the biggest challenges organizations face in managing the value of their cloud investments—understanding and quantifying the business value of their spending. FOCUS enables organizations to spend more time driving value and less struggling to understand data caused by inconsistencies between and unfamiliarity with different services and providers. And just to emphasize that point, FOCUS benefits everyone, not just organizations using multiple cloud providers. Whether you use multiple cloud providers, one cloud provider with complementary service providers, multiple accounts within a single cloud provider, or even if you have a single account with a single cloud provider. The benefits from using FOCUS are wide-reaching, from streamlined operations within an enterprise to making your skills as a FinOps practitioner more portable, FOCUS delivers immense long-term value. To learn more, see FOCUS benefits.

 

Getting started with FOCUS

FOCUS 1.0 covers the resources you deployed, the internal SKUs each resource used, the type of charge, how much you used or purchased, how it was priced, and the specific:

 

  • Billing details related to invoicing, like the provider you used, who generated the invoice (invoice issuer), and the billing period for the invoice.
  • Resource details about what you deployed with the provider, like the service, resource type, region, and tags.
  • SKU details about the product you used or purchased, like the publisher and SKU identifiers.
  • Charge details that describe and categorize the charge, like the type, description, frequency, and amount used or purchased.
  • Discount details that summarize the pricing model, like the pricing category and commitment discount details.
  • Pricing + costs that include the raw details about how each charge is priced, like the pricing quantity, unit price, and cost.

 

Resources are identified by a ResourceId and ResourceName and organized into their respective ServiceName and ServiceCategory. ServiceCategory enables you to organize your costs into a top-level set of categories consistent across cloud providers, which makes it especially interesting. You can also see additional details, like a friendly ResourceType label, the RegionId and RegionName a resource was deployed to, and any Tags that were applied to the resource.

Behind the scenes, resources use one or more products to enable their core capabilities. FOCUS refers to these as SKUs. Use of these SKUs is ultimately what you are charged for. Each SKU has a PublisherName of the company who developed the SKU, a SkuId that identifies the SKU that was used, and a SkuPriceId that identifies the specific price-point for the SKU, inclusive of all pricing variations like tiering and discounts.

All charges include a ChargeCategory to describe what kind of charge it is (such as usage or purchase), ChargeClass that identifies corrections to previous charges, the ChargePeriodStart and ChargePeriodEnd dates the charge applied to, the ChargeFrequency to know how often you can expect to see this charge, and a high-level ChargeDescription to explain what the row represents. They also include a specific ConsumedQuantity and ConsumedUnit in distinct units based on what was used or purchased.

Each charge has a PricingCategory that indicates how the charge was priced and, if a commitment discount was applied, they include CommitmentDiscountCategory and CommitmentDiscountType for friendly provider-agnostic and provider-specific labels for the type of commitment discount, CommitmentDiscountId to identify which commitment discount was applied to usage, the CommitmentDiscountName of that instance, and the CommitmentDiscountStatus that indicates whether the charge was for the utilized (used) or unutilized (unused) portion of the commitment discount.

Since prices are determined based on the billing relationship, you can also find the BillingAccountId and BillingAccountName that invoices are generated against, the BillingPeriodStart and BillingPeriodEnd dates the invoice applies to, the InvoiceIssuerName for the company responsible for invoicing, and the ProviderName of the cloud, SaaS, on-premises, or other provider you used. Please note the "billing account" term in FOCUS refers to the scope at which an invoice is generated and not the top-level, root account. For organizations with a Microsoft Customer Agreement (MCA) account, this maps to your billing profile and not your Microsoft billing account. Within each billing account, you also have a SubAccountId and SubAccountName for the subscription within the billing account.

Last but not least you also have the price and cost details. Each charge has a BillingCurrency that all prices and costs use, which may be different than how the provider prices charges. As an example, most MCA accounts are priced in USD and may be billed in another currency like Yen or Euros. It's important to note that FOCUS leverages billing currency for all prices and costs, which may differ from actual and amortized datasets for accounts that have different pricing and billing currencies. Each charge includes the PricingQuantity and PricingUnit based on how the SKU was priced (which may be in chunks or "blocks" of units) and a set of unit prices for the cost of each individual pricing unit (based on the SkuPriceId) and the total cost based on the pricing quantity. FOCUS includes the ListUnitPrice and ListCost for the public retail or market prices without discounts, ContractedUnitPrice and ContractedCost for prices after negotiated contractual discounts but without commitment discounts, EffectiveCost after commitment discount purchases have been amortized, and BilledCost that was or will be invoiced.

Perhaps the biggest difference between FOCUS and native Cost Management schemas is that FOCUS combines "actual" and "amortized" cost into a single dataset. This saves you time and money with a smaller dataset size compared to managing both datasets separately. Data size is on par with the amortized cost data except with less than 100 more rows for commitment discount purchases and refunds.

Beyond these, each provider can include additional columns prefixed with x_ to denote them as extended columns that are not part of the FOCUS schema but provide useful details about your cost and usage. Microsoft Cost Management provides the same details within its FOCUS dataset as the native schemas by utilizing this prefix. FinOps toolkit reports add to these columns with additional details to facilitate reporting and optimization goals. Refer to the FinOps toolkit data dictionary for details.

 

Next steps

Armed with the knowledge of what FOCUS is, it's time to take that critical next step to start adopting and evangelizing FOCUS within your organization. If you're looking for a starting point, check out the FinOps toolkit Power BI reports, which added support for FOCUS 1.0 in the most recent release.

 

If you'd like to dig in more before you start, you can also leverage the FinOps Foundation introductory course and certification for FOCUS. If you have any questions, feel free to ask here on Tech Community or leverage the #chat-focus channel in the FinOps Foundation Slack community. If you have direct feedback, create an issue in the FOCUS GitHub repository.

 

The FOCUS community is working diligently towards the FOCUS 1.1 release in November, so it's a great time to make your feedback heard and contribute to what will change the future of FinOps in an amazing way. And if there's anything we can do to help with your adoption of FOCUS and FinOps in general, let us know. We're here to help!

 

Updated Jul 22, 2024
Version 1.0
No CommentsBe the first to comment