Skip to content

Prices_transform nulls valid MarketPrice for SavingsPlan #2115

@tkalc

Description

@tkalc

🐛 Problem

When ingesting Azure Cost Management MCA price sheet (pricelist) exports into FinOps hubs (v1_2), the transform logic in Prices_transform_v1_2 sets ListUnitPrice to null for SavingsPlan-related rows.

However, for MCA price sheet exports, the MarketPrice provided by Azure Cost Management is accurate and represents the authoritative list/unit price. Nulling this value causes loss of correct pricing data and breaks downstream enrichment and savings calculations.

Problematic logic:

| extend ListUnitPrice = iff(
    x_SkuPriceType != 'SavingsPlan',
    MarketPrice,
    real(null)
) // MarketPrice for savings plan is not the list price


## 👣 Repro steps
Deploy a FinOps hub using schema version v1_2 (ADX or Fabric).
Configure Azure Cost Management MCA price sheet (pricelist) export ingestion.
Allow the price sheet export to be ingested into the hub.
Query Prices_final_v1_2 or call Prices_transform_v1_2().
Observe SavingsPlan-related rows where:

MarketPrice exists in the raw export
ListUnitPrice is null after transform

## 🤔 Expected
For MCA price sheet exports:
The export-provided MarketPrice should be preserved and available for SavingsPlan rows.
Either:
ListUnitPrice should retain MarketPrice, or
The export MarketPrice should be retained in a dedicated column for downstream use.
Savings and enrichment calculations should be able to reference the correct MCA list price.

## 📷 Screenshots
N/A 

## 🔧 Environment
FinOps hub version: v1_2 (current)
Billing account type: MCA (Microsoft Customer Agreement)
Power BI report type: ADX (Azure Data Explorer)
Cost Management export: Azure Cost Management price sheet / pricelist (FOCUS-based)

## ℹ️ Additional context
In our environment, the MCA price sheet MarketPrice consistently matches the authoritative list pricing from Azure Cost Management. Dropping this value for SavingsPlan rows prevents accurate reporting and validation.
A backward-compatible approach could include retaining the raw export MarketPrice (e.g., as x_MarketPrice) even if existing ListUnitPrice behavior is preserved.

## 🙋‍♀️ Ask for the community
We could use your help:
Please vote this issue up (👍) to prioritize it.
Leave comments if you’ve observed similar issues with MCA price sheets or SavingsPlan pricing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs: Attention 👋Issue or PR needs to be reviewed by the author or it will be closed due to no activityType: Bug 🐛Something isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions