Invoke-FinOpsSchemaTransform Loads a Cost Management CSV file, converts it to the FinOps Open Cost and Usage Specification (FOCUS) schema, and saves it to a new file.

Syntax Examples

On this page

The Invoke-FinOpsSchemaTransform command was implemented before Microsoft Cost Management supported a native FOCUS export. Going forward, we recommend using the native export. The Invoke-FinOpsSchemaTransform command will remain available but will not be updated to support FOCUS 1.0-preview. If you have a scenario where you need a PowerShell converter, please leave feedback at aka.ms/ftk.

The Invoke-FinOpsSchemaTransform command reads actual and amortized cost data from files via Import-Csv, converts them to the FinOps Open Cost and Usage Specification (FOCUS) schema via ConvertTo-FinOpsSchema, and then saves the result to a CSV file using Export-Csv.

This command is a simple helper to simplify chaining these commands together. If you do not want to read from a CSV file or write to a CSV file, use the ConvertTo-FinOpsSchema command.

Invoke-FinOpsSchemaTransform inherits the same schema constraints as ConvertTo-FinOpsSchema. Refer to that documentation for details.


🧮 Syntax

Invoke-FinOpsSchemaTransform `
    [-ActualCostPath <string>] `
    [-AmortizedCostPath <string>] `
    [-OutputFile <string>] `
    [-Delimiter <string>] `
    [-Encoding <string>] `
    [-NoClobber] `
    [-Force]


📥 Parameters

Name Description
ActualCostPath Required. Specifies the path to the actual cost data file. File must be a supported Microsoft Cost Management schema.
AmortizedCostPath Required. Specifies the path to the amortized cost data file. File must be a supported Microsoft Cost Management schema.
OutputFile Required. Specifies the path to save the FOCUS cost data to.
Delimiter Optional. Specifies a delimiter to separate the property values. Enter a character, such as a colon (:). To specify a semicolon (;), enclose it in quotation marks. Default: “,” (comma).
Encoding Optional. Specifies the encoding for the exported file. This value is passed to Export-Csv. Please refer to the Export-Csv documentation for the default and allowed values.
NoClobber Optional. Use this parameter to not overwrite an existing file. By default, if the file exists in the specified path, it will be overwritten without warning.
Force Optional. This parameter allows overwriting files with the Read Only attribute.


🌟 Examples

Get all hubs

Invoke-FinOpsSchemaTransform `
    -ActualCostPath ActualCost.csv `
    -AmortizedCostPath AmortizedCost.csv `
    -OutputFile FOCUS.csv

Converts previously downloaded ActualCost.csv and AmortizedCost.csv files to FOCUS and saves the combined data to a FOCUS.csv file.



  • 🏦 FinOps hubs – Open, extensible, and scalable cost reporting.
  • 📊 Power BI reports – Accelerate your reporting with Power BI starter kits.
  • 🌐 Open data – Data available for anyone to access, use, and share without restriction.



This site uses Just the Docs, a documentation theme for Jekyll.