Here is the FlexReport query that gathers all Generative AI and ML costs across AWS, Azure, and GCP. The query uses CTEs and a UNION ALL to consolidate billing data from AWS Bedrock, Azure AI, and GCP Vertex and AI, mapping their native columns to the FinOps FOCUS standard (including ProviderName, ServiceName, ModelName, ConsumedQuantity, and BilledCost). This helps you track AI spending across clouds, standardize token usage, or monitor the costs of specific models (like Claude, GPT-4o, Gemini, etc.).
{
"sqlStatement": "SELECT
'AWS' AS ProviderName,
timeInterval_Month AS BillingPeriodStart,
lineItem_UsageAccountId AS SubAccountId,
\"Account##AccountName\" AS SubAccountName,
bill_PayerAccountId AS BilledAccountId,
product_region AS RegionName,
NULL AS ResourceGroupName,
product_ProductName AS ServiceName,
CASE
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3.7%sonnet%'
OR LOWER(product_ProductName) LIKE '%claude%3.7%sonnet%' THEN 'Claude 3.7 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%sonnet%4.6%'
OR LOWER(product_ProductName) LIKE '%claude%sonnet%4.6%' THEN 'Claude 4.6 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%sonnet%4.5%'
OR LOWER(product_ProductName) LIKE '%claude%sonnet%4.5%' THEN 'Claude 4.5 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%sonnet%4%'
OR LOWER(product_ProductName) LIKE '%claude%sonnet%4%' THEN 'Claude 4.0 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3.5%sonnet%'
OR LOWER(product_ProductName) LIKE '%claude%3.5%sonnet%' THEN 'Claude 3.5 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%haiku%4.5%'
OR LOWER(product_ProductName) LIKE '%claude%haiku%4.5%' THEN 'Claude 4.5 Haiku'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3.5%haiku%'
OR LOWER(product_ProductName) LIKE '%claude%3.5%haiku%' THEN 'Claude 3.5 Haiku'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%opus%4.6%'
OR LOWER(product_ProductName) LIKE '%claude%opus%4.6%' THEN 'Claude 4.6 Opus'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%opus%4.5%'
OR LOWER(product_ProductName) LIKE '%claude%opus%4.5%' THEN 'Claude 4.5 Opus'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%opus%4.1%'
OR LOWER(product_ProductName) LIKE '%claude%opus%4.1%' THEN 'Claude 4.1 Opus'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3%opus%'
OR LOWER(product_ProductName) LIKE '%claude%3%opus%' THEN 'Claude 3 Opus'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3%sonnet%'
OR LOWER(product_ProductName) LIKE '%claude%3%sonnet%' THEN 'Claude 3 Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%3%haiku%'
OR LOWER(product_ProductName) LIKE '%claude%3%haiku%' THEN 'Claude 3 Haiku'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%opus%'
OR LOWER(product_ProductName) LIKE '%claude%opus%' THEN 'Claude Opus'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%sonnet%'
OR LOWER(product_ProductName) LIKE '%claude%sonnet%' THEN 'Claude Sonnet'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%haiku%'
OR LOWER(product_ProductName) LIKE '%claude%haiku%' THEN 'Claude Haiku'
WHEN LOWER(lineItem_UsageType) LIKE '%claude%'
OR LOWER(product_ProductName) LIKE '%claude%' THEN 'Claude (Other)'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%micro%' THEN 'Nova Micro'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%lite%' THEN 'Nova Lite'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%pro%' THEN 'Nova Pro'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%premier%' THEN 'Nova Premier'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%canvas%' THEN 'Nova Canvas'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%reel%' THEN 'Nova Reel'
WHEN LOWER(lineItem_UsageType) LIKE '%nova%' THEN 'Nova (Other)'
WHEN LOWER(lineItem_UsageType) LIKE '%llama%3.3%' THEN 'Llama 3.3'
WHEN LOWER(lineItem_UsageType) LIKE '%llama%3.2%' THEN 'Llama 3.2'
WHEN LOWER(lineItem_UsageType) LIKE '%llama%3.1%' THEN 'Llama 3.1'
WHEN LOWER(lineItem_UsageType) LIKE '%llama%3%' THEN 'Llama 3'
WHEN LOWER(lineItem_UsageType) LIKE '%llama%' THEN 'Llama (Other)'
WHEN LOWER(lineItem_UsageType) LIKE '%mistral%large%' THEN 'Mistral Large'
WHEN LOWER(lineItem_UsageType) LIKE '%mistral%'
OR LOWER(lineItem_UsageType) LIKE '%mixtral%' THEN 'Mistral/Mixtral'
WHEN LOWER(lineItem_UsageType) LIKE '%titan%image%' THEN 'Titan Image'
WHEN LOWER(lineItem_UsageType) LIKE '%titan%embed%' THEN 'Titan Embeddings'
WHEN LOWER(lineItem_UsageType) LIKE '%titan%text%' THEN 'Titan Text'
WHEN LOWER(lineItem_UsageType) LIKE '%titan%' THEN 'Titan (Other)'
WHEN LOWER(lineItem_UsageType) LIKE '%cohere%embed%'
OR LOWER(product_ProductName) LIKE '%cohere%embed%' THEN 'Cohere Embed'
WHEN LOWER(lineItem_UsageType) LIKE '%cohere%command%'
OR LOWER(product_ProductName) LIKE '%cohere%command%' THEN 'Cohere Command'
WHEN LOWER(lineItem_UsageType) LIKE '%gemma%'
OR LOWER(product_ProductName) LIKE '%gemma%' THEN 'Gemma'
WHEN LOWER(lineItem_UsageType) LIKE '%qwen%' THEN 'Qwen'
WHEN LOWER(lineItem_UsageType) LIKE '%deepseek%' THEN 'DeepSeek'
WHEN LOWER(lineItem_UsageType) LIKE '%kimi%' THEN 'Kimi'
WHEN LOWER(lineItem_UsageType) LIKE '%gpt-oss%' THEN 'GPT-OSS Safeguard'
WHEN LOWER(lineItem_UsageType) LIKE '%gpt%' THEN 'OpenAI'
WHEN LOWER(product_ProductName) LIKE '%sagemaker%' THEN 'SageMaker Model'
WHEN LOWER(product_ProductName) LIKE '%rekognition%' THEN 'Rekognition'
WHEN LOWER(product_ProductName) LIKE '%polly%' THEN 'Polly'
WHEN LOWER(product_ProductName) LIKE '%transcribe%' THEN 'Transcribe'
WHEN LOWER(product_ProductName) LIKE '%translate%' THEN 'Translate'
WHEN LOWER(product_ProductName) LIKE '%lex%' THEN 'Lex'
WHEN LOWER(product_ProductName) LIKE '%q%' THEN 'Amazon Q'
ELSE 'Amazon Bedrock (Other)'
END AS ModelName,
CASE
WHEN LOWER(lineItem_LineItemDescription) LIKE '%tax%'
OR LOWER(lineItem_UsageType) LIKE '%tax%' THEN 'Tax/Fees'
WHEN LOWER(lineItem_UsageType) LIKE '%cache%' THEN 'Cached Tokens'
WHEN LOWER(lineItem_LineItemDescription) LIKE '%input%'
OR LOWER(lineItem_LineItemDescription) LIKE '%prompt%'
OR LOWER(lineItem_UsageType) LIKE '%inputtokencount%'
OR LOWER(lineItem_UsageType) LIKE '%input-tokens%' THEN 'Input Tokens'
WHEN LOWER(lineItem_LineItemDescription) LIKE '%output%'
OR LOWER(lineItem_LineItemDescription) LIKE '%completion%'
OR LOWER(lineItem_UsageType) LIKE '%outputtokencount%'
OR LOWER(lineItem_UsageType) LIKE '%output-tokens%' THEN 'Output Tokens'
WHEN LOWER(lineItem_UsageType) LIKE '%guardrail%' THEN 'Guardrails'
WHEN LOWER(lineItem_UsageType) LIKE '%bedrockflows%'
OR LOWER(lineItem_UsageType) LIKE '%invokeflow%' THEN 'Bedrock Flows'
WHEN LOWER(lineItem_UsageType) LIKE '%agentcore%'
OR LOWER(lineItem_UsageType) LIKE '%agent%' THEN 'Bedrock Agents'
WHEN LOWER(lineItem_UsageType) LIKE '%image%'
OR LOWER(lineItem_UsageType) LIKE '%canvas%' THEN 'Image Generation'
WHEN LOWER(lineItem_UsageType) LIKE '%embed%'
OR LOWER(lineItem_UsageType) LIKE '%titanembedding%' THEN 'Embeddings'
WHEN LOWER(pricing_unit) LIKE '%video%'
OR LOWER(lineItem_UsageType) LIKE '%video%' THEN 'Video Generation'
WHEN LOWER(lineItem_UsageType) LIKE '%datatransfer%' THEN 'Data Transfer'
WHEN LOWER(lineItem_UsageType) LIKE '%volumeusage%'
OR LOWER(pricing_unit) LIKE '%gb-mo%' THEN 'Storage'
WHEN LOWER(lineItem_UsageType) LIKE '%studio:%'
OR LOWER(lineItem_UsageType) LIKE '%notebk:%'
OR LOWER(lineItem_UsageType) LIKE '%ml.%'
OR LOWER(lineItem_UsageType) LIKE '%runtime:%'
OR LOWER(pricing_unit) LIKE '%hrs%' THEN 'Compute/Hosting Hours'
WHEN LOWER(lineItem_UsageType) LIKE '%train%'
OR LOWER(lineItem_UsageType) LIKE '%fine-tune%' THEN 'Training/Fine-tuning'
WHEN LOWER(lineItem_UsageType) LIKE '%inference%' THEN 'Inference/Hosting'
ELSE 'Other Usage'
END AS UsageCategory,
lineItem_UsageType AS ServiceSubcategory,
CASE
WHEN lineItem_LineItemDescription LIKE '%Marketplace%' THEN SPLIT_PART (lineItem_LineItemDescription, '|', 3)
ELSE pricing_unit
END AS PricingUnit,
SUM(lineItem_UsageAmount) AS Usage_Quantity,
SUM(lineItem_UnblendedCost) AS BilledCost,
CASE
WHEN SUM(lineItem_UsageAmount) > 0 THEN SUM(lineItem_UnblendedCost) / SUM(lineItem_UsageAmount)
ELSE 0
END AS Unit_Cost,
CASE
WHEN LOWER(pricing_unit) LIKE '%token%'
OR LOWER(lineItem_UsageType) LIKE '%token%'
OR LOWER(lineItem_UsageType) LIKE '%input%'
OR LOWER(lineItem_UsageType) LIKE '%output%'
OR LOWER(lineItem_UsageType) LIKE '%prompt%'
OR LOWER(lineItem_UsageType) LIKE '%completion%'
OR LOWER(lineItem_UsageType) LIKE '%cach%' THEN SUM(lineItem_UnblendedCost)
ELSE 0
END AS Token_Billed_Cost,
CASE
WHEN lineItem_LineItemDescription LIKE '%Marketplace%' THEN 'AWS Marketplace'
ELSE 'AWS'
END AS PublisherName,
lineItem_CurrencyCode AS CurrencyCode
FROM
AWS_CUR
WHERE
(
product_ProductName IN (
'AmazonBedrock',
'AmazonSageMaker',
'AmazonRekognition',
'AmazonPolly',
'AmazonTranscribe',
'AmazonTranslate',
'AmazonComprehend',
'AmazonPersonalize',
'AmazonForecast',
'AmazonKendra',
'AmazonTextract',
'AmazonQ',
'AmazonLex'
)
OR product_ProductName LIKE '%Bedrock%'
OR product_ProductName LIKE '%SageMaker%'
OR product_ProductName LIKE '%Machine Learning%'
)
GROUP BY
timeInterval_Month,
lineItem_UsageType,
lineItem_Operation,
product_region,
lineItem_UsageAccountId,
\"Account##AccountName\",
bill_PayerAccountId,
product_ProductName,
lineItem_LineItemDescription,
pricing_unit,
lineItem_CurrencyCode
UNION ALL
SELECT
'Azure' AS ProviderName,
timeInterval_Month AS BillingPeriodStart,
SubscriptionID AS SubAccountId,
SubscriptionName AS SubAccountName,
BillingAccountId AS BilledAccountId,
LOWER(ResourceLocation) AS RegionName,
ResourceGroup AS ResourceGroupName,
ProductName AS ServiceName,
CASE
WHEN LOWER(MeterName) LIKE '%grok%' THEN 'Grok'
WHEN LOWER(MeterName) LIKE '%phi%' THEN 'Phi'
WHEN LOWER(MeterName) LIKE '%gpt%rt%' THEN 'GPT-4o Realtime'
WHEN LOWER(MeterName) LIKE '%gpt%4.1%' THEN 'GPT-4.1'
WHEN LOWER(MeterName) LIKE '%gpt%4o%mini%' THEN 'GPT-4o Mini'
WHEN LOWER(MeterName) LIKE '%gpt%4o%' THEN 'GPT-4o'
WHEN LOWER(MeterName) LIKE '%gpt%4%turbo%' THEN 'GPT-4 Turbo'
WHEN LOWER(MeterName) LIKE '%gpt%4%' THEN 'GPT-4'
WHEN LOWER(MeterName) LIKE '%gpt%3.5%'
OR LOWER(MeterName) LIKE '%gpt%35%' THEN 'GPT-3.5 Turbo'
WHEN LOWER(MeterName) LIKE '%gpt%5%' THEN 'GPT-5 Series'
WHEN LOWER(MeterName) LIKE '%o4%' THEN 'o4-series'
WHEN LOWER(MeterName) LIKE '%o3%' THEN 'o3-series'
WHEN LOWER(MeterName) LIKE '%o1%' THEN 'o1-series'
WHEN LOWER(MeterName) LIKE '%dall-e%'
OR LOWER(MeterName) LIKE '%gpt img%' THEN 'DALL-E / Image'
WHEN LOWER(MeterName) LIKE '%sora%' THEN 'Sora (Video)'
WHEN LOWER(MeterName) LIKE '%whisper%'
OR LOWER(MeterName) LIKE '%trscb%' THEN 'Whisper (Speech)'
WHEN LOWER(MeterName) LIKE '%kimi%' THEN 'Kimi'
WHEN LOWER(MeterName) LIKE '%r1%' THEN 'DeepSeek-R1'
WHEN LOWER(MeterName) LIKE '%deepseek%' THEN 'DeepSeek (Other)'
WHEN LOWER(MeterName) LIKE '%llama%' THEN 'Llama'
WHEN LOWER(MeterName) LIKE '%claude%' THEN 'Claude'
WHEN LOWER(MeterName) LIKE '%ada%'
OR LOWER(MeterName) LIKE '%embedding%' THEN 'Text Embeddings (Ada)'
WHEN LOWER(ProductName) LIKE '%ai search%'
OR LOWER(ProductName) LIKE '%qna maker%' THEN 'Azure AI Search'
WHEN LOWER(ProductName) LIKE '%document intelligence%'
OR LOWER(ProductName) LIKE '%content understanding%' THEN 'Document Intelligence'
WHEN LOWER(ProductName) LIKE '%translator%' THEN 'Azure Translator'
WHEN LOWER(ProductName) LIKE '%speech%' THEN 'Azure Speech Services'
WHEN LOWER(ProductName) LIKE '%bot service%' THEN 'Azure Bot Service'
WHEN LOWER(ProductName) LIKE '%defender for ai%' THEN 'Defender for AI'
WHEN LOWER(ProductName) LIKE '%face%' THEN 'Azure Face API'
WHEN LOWER(ProductName) LIKE '%computer vision%' THEN 'Computer Vision'
WHEN LOWER(ProductName) LIKE '%language%'
OR LOWER(ProductName) LIKE '%content safety%' THEN 'Language & Safety'
WHEN LOWER(MeterCategory) IN ('foundry models', 'foundry tools') THEN 'Azure Foundry Model'
ELSE ProductName
END AS ModelName,
CASE
WHEN LOWER(MeterName) LIKE '%cracking%' THEN 'Data Extraction/Processing'
WHEN LOWER(MeterName) LIKE '%commitment%' THEN 'Commitment/Upfront Tier'
WHEN LOWER(MeterName) LIKE '%cach%'
OR LOWER(MeterName) LIKE '%cchd%' THEN 'Cached Tokens'
WHEN LOWER(MeterName) LIKE '%inp%'
OR LOWER(MeterName) LIKE '%prompt%' THEN 'Input Tokens'
WHEN LOWER(MeterName) LIKE '%outp%'
OR LOWER(MeterName) LIKE '%completion%' THEN 'Output Tokens'
WHEN LOWER(MeterName) LIKE '%image%'
OR LOWER(MeterName) LIKE '%img%' THEN 'Image Generation'
WHEN LOWER(MeterName) LIKE '%video%'
OR LOWER(MeterName) LIKE '%second%' THEN 'Video Generation'
WHEN LOWER(MeterName) LIKE '%train%'
OR LOWER(MeterName) LIKE '%fine-tune%'
OR LOWER(MeterName) LIKE '%ft-trng%' THEN 'Training/Fine-tuning'
WHEN LOWER(MeterName) LIKE '%embed%' THEN 'Embeddings'
WHEN LOWER(MeterName) LIKE '%hour%'
OR LOWER(MeterName) LIKE '%hstng%'
OR LOWER(MeterName) LIKE '%hosting%' THEN 'Compute/Hosting Hours'
WHEN LOWER(MeterName) LIKE '%pages%' THEN 'OCR/Document Pages'
WHEN LOWER(MeterName) LIKE '%characters%' THEN 'Characters'
WHEN LOWER(MeterName) LIKE '%unit%'
OR LOWER(MeterName) LIKE '%queries%'
OR LOWER(MeterName) LIKE '%transactions%' THEN 'Service Units/Queries'
WHEN LOWER(MeterName) LIKE '%records%' THEN 'Text Records'
WHEN LOWER(MeterName) LIKE '%session%' THEN 'Sessions'
WHEN LOWER(MeterName) LIKE '%gb%'
OR LOWER(MeterName) LIKE '%storage%' THEN 'Storage'
WHEN LOWER(MeterName) LIKE '%messages%' THEN 'Messages'
ELSE 'Other Provisioned'
END AS UsageCategory,
MeterName AS ServiceSubcategory,
UnitOfMeasure AS PricingUnit,
SUM(Quantity) AS Usage_Quantity,
SUM(CostInReportingCurrency) AS BilledCost,
CASE
WHEN SUM(Quantity) > 0 THEN SUM(CostInReportingCurrency) / SUM(Quantity)
ELSE 0
END AS Unit_Cost,
CASE
WHEN LOWER(UnitOfMeasure) LIKE '%token%'
OR LOWER(MeterName) LIKE '%token%'
OR LOWER(MeterName) LIKE '%inp%'
OR LOWER(MeterName) LIKE '%outp%'
OR LOWER(MeterName) LIKE '%prompt%'
OR LOWER(MeterName) LIKE '%completion%'
OR LOWER(MeterName) LIKE '%cach%'
OR LOWER(MeterName) LIKE '%cchd%' THEN SUM(CostInReportingCurrency)
ELSE 0
END AS Token_Billed_Cost,
'Microsoft' AS PublisherName,
ReportingCurrency AS CurrencyCode
FROM
AZURE_COST_USAGE
WHERE
(
ConsumedService IN (
'Microsoft.CognitiveServices',
'Microsoft.Search',
'Microsoft.BotService',
'Microsoft.Translator',
'Microsoft.HealthBot'
)
OR ProductName LIKE '%OpenAI%'
OR ProductName LIKE '%Foundry%'
OR ProductName LIKE '%Cognitive%'
OR ProductName LIKE '%AI Search%'
OR ProductName LIKE '%Bot Service%'
OR ProductName LIKE '%QnA Maker%'
OR ProductName LIKE '%Computer Vision%'
OR ProductName LIKE '%Defender for AI%'
)
GROUP BY
timeInterval_Month,
SubscriptionID,
SubscriptionName,
BillingAccountId,
ResourceLocation,
ResourceGroup,
ProductName,
MeterName,
MeterCategory,
MeterSubCategory,
UnitOfMeasure,
ReportingCurrency
UNION ALL
SELECT
'GCP' AS ProviderName,
timeInterval_Month AS BillingPeriodStart,
Project_Id AS SubAccountId,
Project_Name AS SubAccountName,
Billing_Account_Id AS BilledAccountId,
Region AS RegionName,
NULL AS ResourceGroupName,
Service_Description AS ServiceName,
CASE
WHEN LOWER(Sku_Description) LIKE '%gemini%1.5%pro%' THEN 'Gemini 1.5 Pro'
WHEN LOWER(Sku_Description) LIKE '%gemini%1.5%flash%' THEN 'Gemini 1.5 Flash'
WHEN LOWER(Sku_Description) LIKE '%gemini%2.0%' THEN 'Gemini 2.0'
WHEN LOWER(Sku_Description) LIKE '%gemini%' THEN 'Gemini (Other)'
WHEN LOWER(Sku_Description) LIKE '%claude%3.7%sonnet%'
OR LOWER(Service_Description) LIKE '%claude%3.7%sonnet%' THEN 'Claude 3.7 Sonnet'
WHEN LOWER(Sku_Description) LIKE '%claude%sonnet%4.6%'
OR LOWER(Service_Description) LIKE '%claude%sonnet%4.6%' THEN 'Claude 4.6 Sonnet'
WHEN LOWER(Sku_Description) LIKE '%claude%sonnet%4.5%'
OR LOWER(Service_Description) LIKE '%claude%sonnet%4.5%' THEN 'Claude 4.5 Sonnet'
WHEN LOWER(Sku_Description) LIKE '%claude%sonnet%4%'
OR LOWER(Service_Description) LIKE '%claude%sonnet%4%' THEN 'Claude 4.0 Sonnet'
WHEN LOWER(Sku_Description) LIKE '%claude%3.5%sonnet%'
OR LOWER(Service_Description) LIKE '%claude%3.5%sonnet%' THEN 'Claude 3.5 Sonnet'
WHEN LOWER(Sku_Description) LIKE '%claude%haiku%4.5%'
OR LOWER(Service_Description) LIKE '%claude%haiku%4.5%' THEN 'Claude 4.5 Haiku'
WHEN LOWER(Sku_Description) LIKE '%claude%3.5%haiku%'
OR LOWER(Service_Description) LIKE '%claude%3.5%haiku%' THEN 'Claude 3.5 Haiku'
WHEN LOWER(Sku_Description) LIKE '%claude%opus%4.6%'
OR LOWER(Service_Description) LIKE '%claude%opus%4.6%' THEN 'Claude 4.6 Opus'
WHEN LOWER(Sku_Description) LIKE '%claude%opus%4.5%'
OR LOWER(Service_Description) LIKE '%claude%opus%4.5%' THEN 'Claude 4.5 Opus'
WHEN LOWER(Sku_Description) LIKE '%claude%3%opus%'
OR LOWER(Service_Description) LIKE '%claude%3%opus%' THEN 'Claude 3 Opus'
WHEN LOWER(Sku_Description) LIKE '%claude%'
OR LOWER(Service_Description) LIKE '%claude%' THEN 'Claude (Other)'
WHEN LOWER(Sku_Description) LIKE '%palm%' THEN 'PaLM'
WHEN LOWER(Sku_Description) LIKE '%veo%' THEN 'Veo'
WHEN LOWER(Sku_Description) LIKE '%imagen%' THEN 'Imagen'
WHEN LOWER(Sku_Description) LIKE '%lyria%' THEN 'Lyria'
WHEN LOWER(Sku_Description) LIKE '%gemma%' THEN 'Gemma'
WHEN LOWER(Sku_Description) LIKE '%colab%' THEN 'Vertex Colab'
WHEN LOWER(Sku_Description) LIKE '%vector search%' THEN 'Vector Search'
WHEN LOWER(Sku_Description) LIKE '%prediction%' THEN 'Vertex Online/Batch Prediction'
WHEN LOWER(Service_Description) LIKE '%video intelligence%' THEN 'Cloud Video Intelligence'
WHEN LOWER(Service_Description) LIKE '%natural language%' THEN 'Cloud Natural Language'
WHEN LOWER(Service_Description) LIKE '%machine learning engine%' THEN 'Cloud ML Engine'
WHEN LOWER(Service_Description) LIKE '%vertex%' THEN 'Vertex AI (Other)'
WHEN LOWER(Service_Description) LIKE '%speech%'
OR LOWER(Service_Description) LIKE '%text-to-speech%' THEN 'Cloud Speech API'
WHEN LOWER(Service_Description) LIKE '%vision%' THEN 'Cloud Vision API'
WHEN LOWER(Service_Description) LIKE '%document ai%' THEN 'Document AI'
WHEN LOWER(Service_Description) LIKE '%dialogflow%' THEN 'Dialogflow'
ELSE Service_Description
END AS ModelName,
CASE
WHEN LOWER(Sku_Description) LIKE '%cach%' THEN 'Cached Tokens'
WHEN LOWER(Sku_Description) LIKE '%input%'
OR LOWER(Sku_Description) LIKE '%prompt%' THEN 'Input Tokens'
WHEN LOWER(Sku_Description) LIKE '%output%'
OR LOWER(Sku_Description) LIKE '%completion%' THEN 'Output Tokens'
WHEN LOWER(Sku_Description) LIKE '%image%' THEN 'Image Generation'
WHEN LOWER(Sku_Description) LIKE '%video%'
OR LOWER(Sku_Description) LIKE '%audio%'
OR LOWER(Sku_Description) LIKE '%music%' THEN 'Video / Audio Generation'
WHEN LOWER(Sku_Description) LIKE '%train%'
OR LOWER(Sku_Description) LIKE '%tune%' THEN 'Training/Fine-tuning'
WHEN LOWER(Sku_Description) LIKE '%core%'
OR LOWER(Sku_Description) LIKE '%ram%'
OR LOWER(Sku_Description) LIKE '%gpu%'
OR LOWER(Sku_Description) LIKE '%t4%'
OR LOWER(Sku_Description) LIKE '%l4%'
OR LOWER(Sku_Description) LIKE '%a100%'
OR LOWER(Sku_Description) LIKE '%h200%'
OR LOWER(Sku_Description) LIKE '%cpu%'
OR LOWER(Sku_Description) LIKE '%prediction%'
OR LOWER(Sku_Description) LIKE '%node%'
OR LOWER(Sku_Description) LIKE '%hour%' THEN 'Compute/Hosting Hours'
WHEN LOWER(Sku_Description) LIKE '%disk%'
OR LOWER(Sku_Description) LIKE '%storage%'
OR LOWER(Sku_Description) LIKE '%memory bank%'
OR LOWER(Sku_Description) LIKE '%gb%' THEN 'Storage'
WHEN LOWER(Sku_Description) LIKE '%grounding%'
OR LOWER(Sku_Description) LIKE '%search tool%'
OR LOWER(Sku_Description) LIKE '%search query%' THEN 'LLM Grounding'
WHEN LOWER(Sku_Description) LIKE '%search api request%'
OR LOWER(Sku_Description) LIKE '%index%' THEN 'Search/Indexing'
WHEN LOWER(Sku_Description) LIKE '%characters%' THEN 'Characters'
WHEN LOWER(Sku_Description) LIKE '%operations%'
OR LOWER(Sku_Description) LIKE '%detection%'
OR LOWER(Sku_Description) LIKE '%recognition%'
OR LOWER(Sku_Description) LIKE '%transcription%'
OR LOWER(Sku_Description) LIKE '%analysis%' THEN 'API Operations'
WHEN LOWER(Sku_Description) LIKE '%pipeline%' THEN 'Pipelines'
WHEN LOWER(Sku_Description) LIKE '%interactions%'
OR LOWER(Sku_Description) LIKE '%sessions%' THEN 'Interactions/Sessions'
WHEN LOWER(Sku_Description) LIKE '%embed%' THEN 'Embeddings'
ELSE 'Other Usage'
END AS UsageCategory,
Sku_Description AS ServiceSubcategory,
Units AS PricingUnit,
SUM(Consumption_In_Units) AS Usage_Quantity,
SUM(Cost) AS BilledCost,
CASE
WHEN SUM(Consumption_In_Units) > 0 THEN SUM(Cost) / SUM(Consumption_In_Units)
ELSE 0
END AS Unit_Cost,
CASE
WHEN LOWER(Units) LIKE '%token%'
OR LOWER(Sku_Description) LIKE '%token%'
OR LOWER(Sku_Description) LIKE '%input%'
OR LOWER(Sku_Description) LIKE '%output%'
OR LOWER(Sku_Description) LIKE '%prompt%'
OR LOWER(Sku_Description) LIKE '%completion%'
OR LOWER(Sku_Description) LIKE '%cach%' THEN SUM(Cost)
ELSE 0
END AS Token_Billed_Cost,
'Google Cloud' AS PublisherName,
Currency AS CurrencyCode
FROM
GCP_BILLING_EXPORT
WHERE
Project_Id IS NOT NULL
AND (
LOWER(Service_Description) LIKE '%vertex%'
OR LOWER(Service_Description) LIKE '%gemini%'
OR LOWER(Service_Description) LIKE '%document ai%'
OR LOWER(Service_Description) LIKE '%speech%'
OR LOWER(Service_Description) LIKE '%text-to-speech%'
OR LOWER(Service_Description) LIKE '%dialogflow%'
OR LOWER(Service_Description) LIKE '%vision%'
OR LOWER(Service_Description) LIKE '%translation%'
OR LOWER(Service_Description) LIKE '%natural language%'
OR LOWER(Service_Description) LIKE '%video intelligence%'
OR LOWER(Service_Description) LIKE '%discovery engine%'
OR LOWER(Service_Description) LIKE '%duet ai%'
OR LOWER(Sku_Description) LIKE '%gemini%'
OR LOWER(Sku_Description) LIKE '%claude%'
)
GROUP BY
timeInterval_Month,
Project_Id,
Project_Name,
Billing_Account_Id,
Region,
Service_Description,
Sku_Description,
Units,
Currency
ORDER BY
BillingPeriodStart ASC,
ProviderName ASC,
BilledCost DESC",
"dataGranularity": "MONTHLY",
"timeRange": {
"last": 12
},
"limit": -1
}
Model Name:

Usage Category:

The combined query above requires active billing data for AWS, Azure, and GCP in your environment. If you only use a single cloud, running the combined query will result in a schema validation error, such as 'Dataset not available'. Alternatively, you can use the individual cloud-only query provided below.
AWS:
{
"sqlStatement": "SELECT 'AWS' AS ProviderName, timeInterval_Month AS BillingPeriodStart, lineItem_UsageAccountId AS SubAccountId, \"organization##accountname\" AS SubAccountName, bill_PayerAccountId AS BilledAccountId, product_region AS RegionName, product_ProductName AS ServiceName, lineItem_UsageType AS ServiceSubcategory, CASE WHEN LOWER(lineItem_UsageType) LIKE '%nova%' OR LOWER(lineItem_UsageType) LIKE '%titan%' OR LOWER(lineItem_UsageType) LIKE '%llama%' OR LOWER(lineItem_UsageType) LIKE '%guardrail%' OR LOWER(lineItem_UsageType) LIKE '%qwen%' OR LOWER(lineItem_UsageType) LIKE '%mixtral%' OR LOWER(lineItem_UsageType) LIKE '%pixtral%' OR LOWER(lineItem_UsageType) LIKE '%mistral%' OR LOWER(lineItem_UsageType) LIKE '%claude%' OR LOWER(lineItem_UsageType) LIKE '%deepseek%' THEN SPLIT_PART(lineItem_UsageType, '-', 2) WHEN LOWER(lineItem_UsageType) LIKE '%gpt%' THEN 'OpenAI' WHEN LOWER(lineItem_UsageType) LIKE '%bedrockflows%' THEN 'Bedrock Flows' WHEN LOWER(product_ProductName) LIKE '%agentcore%' OR LOWER(lineItem_UsageType) LIKE '%agent%' THEN 'Bedrock Agents' WHEN LOWER(lineItem_UsageType) LIKE '%dataautomation%' THEN 'Data Automation' WHEN LOWER(lineItem_UsageType) LIKE '%generatesql%' THEN 'Generate SQL' WHEN LOWER(lineItem_LineItemDescription) LIKE '%marketplace%' THEN SPLIT_PART(product_ProductName, '(', 1) WHEN LOWER(lineItem_LineItemDescription) LIKE '%tax%' THEN 'Tax/Fees' ELSE 'Other Models' END AS ModelName, CASE WHEN LOWER(lineItem_LineItemDescription) LIKE '%tax%' THEN 'Tax/Fees' WHEN LOWER(lineItem_LineItemDescription) LIKE '%input%' OR LOWER(lineItem_LineItemDescription) LIKE '%input-tokens%' THEN 'Input Tokens' WHEN LOWER(lineItem_LineItemDescription) LIKE '%output%' OR LOWER(lineItem_LineItemDescription) LIKE '%output-tokens%' THEN 'Output Tokens' WHEN LOWER(lineItem_LineItemDescription) LIKE '%node%' OR LOWER(lineItem_UsageType) LIKE '%bedrockflows%' THEN 'Bedrock Flows' WHEN LOWER(lineItem_LineItemDescription) LIKE '%guardrail%' OR LOWER(lineItem_UsageType) LIKE '%guardrail%' THEN 'Guardrails' WHEN LOWER(lineItem_LineItemDescription) LIKE '%image%' OR LOWER(lineItem_UsageType) LIKE '%imagegenerator%' OR LOWER(lineItem_UsageType) LIKE '%novacanvas%' THEN 'Image Generation' WHEN LOWER(lineItem_UsageType) LIKE '%embedding%' OR LOWER(lineItem_UsageType) LIKE '%titanembedding%' THEN 'Embeddings' WHEN LOWER(pricing_unit) LIKE '%video%' THEN 'Video Generation' WHEN LOWER(lineItem_UsageType) LIKE '%storage%' THEN 'Storage' WHEN LOWER(lineItem_UsageType) LIKE '%inference%' THEN 'Inference' WHEN LOWER(lineItem_UsageType) LIKE '%optimize%' THEN 'OptimizePrompt' WHEN LOWER(lineItem_LineItemDescription) LIKE '%marketplace%' AND LOWER(lineItem_UsageType) LIKE '%input%' THEN 'Input Tokens' WHEN LOWER(lineItem_LineItemDescription) LIKE '%marketplace%' AND LOWER(lineItem_UsageType) LIKE '%output%' THEN 'Output Tokens' ELSE 'Other Usage' END AS UsageCategory, CASE WHEN lineItem_LineItemDescription LIKE '%Marketplace%' THEN SPLIT_PART (lineItem_LineItemDescription, '|', 3) ELSE pricing_unit END AS PricingUnit, SUM(lineItem_UsageAmount) AS SUM_Consumption_In_Units, SUM(lineItem_UnblendedCost) AS SUM_Cost, CASE WHEN lineItem_LineItemDescription LIKE '%Marketplace%' THEN 'AWS Marketplace' ELSE 'AWS' END AS PublisherName, lineItem_CurrencyCode AS CurrencyCode FROM AWS_CUR WHERE product_ProductName LIKE '%Amazon Bedrock%' GROUP BY timeInterval_Month, lineItem_UsageType, lineItem_Operation, product_region, lineItem_UsageAccountId, \"organization##accountname\", bill_PayerAccountId, product_ProductName, lineItem_LineItemDescription, pricing_unit, lineItem_CurrencyCode ORDER BY BillingPeriodStart ASC, SUM_Cost DESC",
"dataGranularity": "MONTHLY",
"timeRange": {
"last": 12
},
"limit": -1
}
Azure:
{
"sqlStatement": "SELECT 'Azure' AS ProviderName, timeInterval_Month AS BillingPeriodStart, SubscriptionID AS SubAccountId, SubscriptionName AS SubAccountName, BillingAccountId AS BilledAccountId, LOWER(ResourceLocation) AS RegionName, ResourceGroup AS ResourceGroupName, ProductName AS ServiceName, MeterName AS ServiceSubcategory, CASE WHEN LOWER(ProductName) LIKE '%ai search - free%' THEN 'AI Search - Free' WHEN LOWER(ProductName) LIKE '%ai search - standard%' THEN 'AI Search - Standard' WHEN LOWER(MeterName) LIKE '%o4-mini%' THEN 'o4-series' WHEN LOWER(MeterName) LIKE '%o3%' THEN 'o3-series' WHEN LOWER(MeterName) LIKE '%o1%' THEN 'o1-series' WHEN LOWER(MeterName) LIKE '%gpt 5.2%' OR LOWER(MeterName) LIKE '%gpt-5.2%' THEN 'GPT-5.2' WHEN LOWER(MeterName) LIKE '%gpt 5.1%' OR LOWER(MeterName) LIKE '%gpt-5.1%' THEN 'GPT-5.1' WHEN LOWER(MeterName) LIKE '%gpt 5%' OR LOWER(MeterName) LIKE '%gpt-5%' THEN 'GPT-5' WHEN LOWER(MeterName) LIKE '%gpt-4.1-mini%' OR LOWER(MeterName) LIKE '%gpt 4.1 mini%' THEN 'GPT-4.1 Mini' WHEN LOWER(MeterName) LIKE '%gpt-4.1%' THEN 'GPT-4.1' WHEN LOWER(MeterName) LIKE '%gpt-4o-mini%' OR LOWER(MeterName) LIKE '%gpt 4o mini%' THEN 'GPT-4o Mini' WHEN LOWER(MeterName) LIKE '%gpt-4o%' OR LOWER(MeterName) LIKE '%gpt 4o%' THEN 'GPT-4o' WHEN LOWER(MeterName) LIKE '%gpt-4%' OR LOWER(MeterName) LIKE '%gpt 4%' THEN 'GPT-4' WHEN LOWER(MeterName) LIKE '%gpt-3.5%' OR LOWER(MeterName) LIKE '%gpt-35%' OR LOWER(MeterName) LIKE '%gpt 3.5%' THEN 'GPT-3.5 Turbo' WHEN LOWER(MeterName) LIKE '%gpt-image%' OR LOWER(MeterName) LIKE '%dall-e%' THEN 'Dall-E / Image' WHEN LOWER(MeterName) LIKE '%whisper%' THEN 'Whisper' WHEN LOWER(MeterName) LIKE '%speech%' THEN 'Azure Speech' WHEN LOWER(MeterName) LIKE '%code-interpreter%' THEN 'Code Interpreter' WHEN LOWER(MeterName) LIKE '%k2 thinking%' OR LOWER(MeterName) LIKE '%kimi%' THEN 'Kimi-K2' WHEN LOWER(MeterName) LIKE '%r1 %' OR LOWER(MeterName) LIKE '%deepseek%' THEN 'Deepseek' WHEN LOWER(MeterName) LIKE '%embedding%' THEN 'Embeddings' ELSE MeterSubCategory END AS ModelName, CASE WHEN LOWER(MeterName) LIKE '%cached%' OR LOWER(MeterName) LIKE '%cchd%' THEN 'Cached Tokens' WHEN LOWER(MeterName) LIKE '%outp%' OR LOWER(MeterName) LIKE '%outpt%' OR LOWER(MeterName) LIKE '%txt out%' OR LOWER(MeterName) LIKE '%opt%' THEN 'Output Tokens' WHEN LOWER(MeterName) LIKE '%inp%' OR LOWER(MeterName) LIKE '%inpt%' OR LOWER(MeterName) LIKE '%tokens%' THEN 'Input Tokens' WHEN LOWER(MeterName) LIKE '%images%' THEN 'Image Generation' WHEN LOWER(MeterName) LIKE '%session%' THEN 'Sessions' WHEN LOWER(MeterName) LIKE '%text records%' THEN 'Text Records' WHEN LOWER(MeterName) LIKE '%characters%' OR LOWER(MeterName) LIKE '%speech to text%' THEN 'Characters' WHEN LOWER(MeterName) LIKE '%pages%' THEN 'OCR Pages' WHEN LOWER(MeterName) LIKE '%search%' OR LOWER(MeterName) LIKE '%unit%' THEN 'Service Units' ELSE 'Other Provisioned' END AS UsageCategory, UnitOfMeasure AS PricingUnit, SUM(Quantity) AS SUM_Consumption_In_Units, SUM(CostInReportingCurrency) AS SUM_Cost, 'Microsoft' AS PublisherName, ReportingCurrency AS CurrencyCode FROM AZURE_COST_USAGE WHERE ( LOWER(MeterCategory) IN ('foundry models', 'foundry tools') OR LOWER(ProductName) LIKE '%azure openai%' OR LOWER(ProductName) LIKE '%ai search%' OR LOWER(ProductName) LIKE '%cognitive%' ) GROUP BY timeInterval_Month, SubscriptionName, SubscriptionID, BillingAccountId, ResourceGroup, MeterCategory, ProductName, MeterName, MeterSubCategory, UnitOfMeasure, ReportingCurrency, ResourceLocation ORDER BY BillingPeriodStart ASC, SUM_Cost DESC",
"needBackLinkingForTags": true,
"dataGranularity": "MONTHLY",
"timeRange": {
"last": 12
},
"limit": -1
}
GCP:
{
"sqlStatement": "SELECT 'GCP' AS ProviderName, timeInterval_Month AS BillingPeriodStart, Project_Id AS SubAccountId, Project_Name AS SubAccountName, Billing_Account_Id AS BilledAccountId, Region AS RegionName, Service_Description AS ServiceName, Sku_Description AS ServiceSubcategory, CASE WHEN LOWER(Sku_Description) LIKE '%gemini 3.1 flash%' THEN 'Gemini 3.1 Flash' WHEN LOWER(Sku_Description) LIKE '%gemini 3.0 pro%' OR LOWER(Sku_Description) LIKE '%gemini 3 pro%' OR LOWER(Sku_Description) LIKE '%gemini_3_pro%' THEN 'Gemini 3 Pro' WHEN LOWER(Sku_Description) LIKE '%gemini 3 flash%' THEN 'Gemini 3 Flash' WHEN LOWER(Sku_Description) LIKE '%gemini 2.5 pro%' THEN 'Gemini 2.5 Pro' WHEN LOWER(Sku_Description) LIKE '%gemini 2.5 flash%' THEN 'Gemini 2.5 Flash' WHEN LOWER(Sku_Description) LIKE '%gemini 2.0 flash%' THEN 'Gemini 2.0 Flash' WHEN LOWER(Sku_Description) LIKE '%gemini 1.5 pro%' THEN 'Gemini 1.5 Pro' WHEN LOWER(Sku_Description) LIKE '%gemini 1.5 flash%' THEN 'Gemini 1.5 Flash' WHEN LOWER(Sku_Description) LIKE '%gemini pro%' THEN 'Gemini Pro' WHEN LOWER(Sku_Description) LIKE '%gemini code assist%' THEN 'Gemini Code Assist' WHEN LOWER(Sku_Description) LIKE '%claude 3.7 sonnet%' THEN 'Claude 3.7 Sonnet' WHEN LOWER(Service_Description) LIKE '%claude sonnet 4.5%' OR LOWER(Sku_Description) LIKE '%claude sonnet 4.5%' THEN 'Claude 4.5 Sonnet' WHEN LOWER(Sku_Description) LIKE '%claude haiku 4 5%' OR LOWER(Sku_Description) LIKE '%claude haiku 4.5%' THEN 'Claude 4.5 Haiku' WHEN LOWER(Service_Description) LIKE '%claude opus 4.6%' OR LOWER(Sku_Description) LIKE '%claude opus 4.6%' THEN 'Claude 4.6 Opus' WHEN LOWER(Service_Description) LIKE '%claude opus 4.5%' OR LOWER(Sku_Description) LIKE '%claude opus 4.5%' THEN 'Claude 4.5 Opus' WHEN LOWER(Service_Description) LIKE '%claude sonnet 4%' OR LOWER(Sku_Description) LIKE '%claude sonnet 4%' THEN 'Claude 4.0 Sonnet' WHEN LOWER(Sku_Description) LIKE '%claude 3.5 sonnet%' THEN 'Claude 3.5 Sonnet' WHEN LOWER(Sku_Description) LIKE '%claude 3.5 haiku%' THEN 'Claude 3.5 Haiku' WHEN LOWER(Sku_Description) LIKE '%claude 3 haiku%' THEN 'Claude 3 Haiku' WHEN LOWER(Sku_Description) LIKE '%veo 3%' THEN 'Veo 3' WHEN LOWER(Sku_Description) LIKE '%veo 2%' THEN 'Veo 2' WHEN LOWER(Sku_Description) LIKE '%imagen 4%' THEN 'Imagen 4' WHEN LOWER(Sku_Description) LIKE '%imagen 3%' THEN 'Imagen 3' WHEN LOWER(Sku_Description) LIKE '%imagen%' THEN 'Imagen' WHEN LOWER(Sku_Description) LIKE '%palm text bison%' THEN 'PaLM' WHEN LOWER(Sku_Description) LIKE '%lyria2%' THEN 'Lyria 2' WHEN LOWER(Sku_Description) LIKE '%embed%' THEN 'Embeddings' WHEN LOWER(Sku_Description) LIKE '%vector search%' OR LOWER(Service_Description) LIKE '%vertex ai search%' THEN 'Vector Search' WHEN LOWER(Sku_Description) LIKE '%grounding%' OR LOWER(Sku_Description) LIKE '%search tool%' THEN 'LLM Grounding' WHEN LOWER(Service_Description) LIKE '%cloud speech%' THEN 'Cloud Speech API' WHEN LOWER(Service_Description) LIKE '%document ai%' THEN 'Cloud Document AI' WHEN LOWER(Sku_Description) LIKE '%dialogflow%' OR LOWER(Sku_Description) LIKE '%vertex ai conversation%' THEN 'Dialogflow / Conversation' WHEN LOWER(Sku_Description) LIKE '%evaluation service%' THEN 'Vertex AI Evaluation' WHEN LOWER(Sku_Description) LIKE '%nvidia%' OR LOWER(Sku_Description) LIKE '%colab%' OR LOWER(Sku_Description) LIKE '%feature store%' OR LOWER(Sku_Description) LIKE '%vertex ai: online/batch%' OR LOWER(Sku_Description) LIKE '%vertex ai: training%' OR LOWER(Sku_Description) LIKE '%vertex ai: automl%' OR LOWER(Sku_Description) LIKE '%tensorboard%' OR LOWER(Sku_Description) LIKE '%metadata storage%' OR LOWER(Sku_Description) LIKE '%pipeline job%' THEN 'Vertex AI Infrastructure' ELSE 'Other AI Models' END AS ModelName, CASE WHEN LOWER(Sku_Description) LIKE '%cach%' THEN 'Cached Tokens' WHEN LOWER(Sku_Description) LIKE '%input%' THEN 'Input Tokens' WHEN LOWER(Sku_Description) LIKE '%output%' THEN 'Output Tokens' WHEN LOWER(Sku_Description) LIKE '%audio generation%' OR LOWER(Sku_Description) LIKE '%veo%' OR LOWER(Sku_Description) LIKE '%video generation%' THEN 'Video / Audio Generation' WHEN LOWER(Sku_Description) LIKE '%imagen%' OR LOWER(Sku_Description) LIKE '%virtual try-on%' OR LOWER(Sku_Description) LIKE '%image generation%' THEN 'Image Generation' WHEN LOWER(Sku_Description) LIKE '%vector search%' OR LOWER(Sku_Description) LIKE '%index%' THEN 'Search/Indexing' ELSE 'Other Usage' END AS UsageCategory, Units AS PricingUnit, SUM(Consumption_In_Units) AS SUM_Consumption_In_Units, SUM(Cost) AS SUM_Cost, 'Google Cloud' AS PublisherName, Currency AS CurrencyCode FROM GCP_BILLING_EXPORT WHERE Project_Id IS NOT NULL AND ( LOWER(Service_Description) IN ( 'vertex ai', 'gemini api', 'vertex ai search', 'cloud document ai api', 'cloud speech api', 'cloud dialogflow api' ) OR LOWER(Service_Description) LIKE '%claude%' OR LOWER(Sku_Description) LIKE '%gemini%' ) GROUP BY timeInterval_Month, Project_Id, Project_Name, Billing_Account_Id, Service_Description, Sku_Description, Cost_Type, Currency, Region, Units ORDER BY BillingPeriodStart ASC, SUM_Cost DESC",
"dataGranularity": "MONTHLY",
"timeRange": {
"last": 12
},
"limit": -1
}