Add triage and troubleshooting guidance for Rate Optimization report $0 savings issue
Issue Summary
Users deploying FinOps Hub with Azure Data Explorer (ADX) are experiencing $0 savings displayed in the Rate Optimization Power BI report for certain reservations, despite having properly configured FOCUS cost exports, price sheets, reservation details, and reservation transactions at the MCA Billing Profile level.
Root Cause
The issue occurs when price sheet data is missing or ingested after cost data. The Rate Optimization report calculates commitment discount savings using the formula:
Commitment discount savings = ContractedCost - EffectiveCost
However, Microsoft Cost Management does not include list and contracted prices for all accounts, particularly for MCA billing profiles. According to the FinOps hubs data processing pipeline, price enrichment happens during cost data ingestion:
Populate missing
ListCost,ListUnitPrice,ContractedCost, andContractedUnitPricevalues based on the price sheet. This process requires prices to be exported before the cost. Prices being missing for the first day of the month if costs are ingested before prices are available for the month.
When price data is missing, the savings calculation documentation specifies:
Zero savings are displayed when no reliable price comparison can be made. This happens when:
- List prices are missing or null
- Contracted prices are missing or null
- Reference prices are zero or invalid
Response Provided
This PR documents comprehensive triage guidance including:
-
Root cause analysis - Explained why $0 savings appear (missing price data required for savings calculations)
-
Critical finding - YES, the order of ingesting Price Sheet matters! Price data must be ingested BEFORE FOCUS cost data to properly populate missing prices during the cost data transformation process.
-
Step-by-step solutions:
- Configure daily price sheet exports at Billing Profile level
- Export historical price data for past months (up to 13 months via portal)
- Re-ingest current month cost data after prices are available
- Verify export configuration includes all 5 required dataset types
-
Data quality diagnostics - Provided KQL query to identify specific pricing scenarios causing $0 savings
-
Authoritative documentation links - Referenced 9 official Microsoft Learn and FinOps toolkit documentation sources:
- Cost Management exports tutorial
- Azure pricing download procedures
- Reservation savings calculation methodology
- FinOps toolkit savings calculations guide
- Data processing and price enrichment documentation
Impact
This guidance helps users:
- Understand why reservation savings show as $0 in Power BI reports
- Configure exports in the correct order (price sheet before cost data)
- Troubleshoot and resolve missing price data issues
- Implement proper ongoing monitoring to prevent recurrence
Related Issues
Addresses reported customer deployment issues where properly configured exports still show $0 savings due to data ingestion ordering and missing price enrichment.
Original prompt
This section details on the original issue you should resolve
<issue_title>PowerBI ADX - Rate Optimization Report Issues</issue_title> <issue_description>## đ Problem I am working on a customer deployment (MCA) where we redeployed the latest version of FinOps Hub with ADX, reconfigured all exports (FOCUS, price sheet, reservation details, reservation transactions) at the Billing Profile level and there are still certain RIs showing as $0 savings in the Commitments tab of the Rate Optimization PowerBI report.
đˇ Screenshots
No RIs showing savings before changing the filter settings.
![]()
âšī¸ Additional context
Does the order of ingesting the Price Sheet matter? Just wondering if there is any impact to doing it before or after the Focus data set when initially setting up the Hub.
đââī¸ Ask for the community
- Please vote this issue up (đ) to prioritize it.
</issue_description>
<agent_instructions>Triage the issue, research using mslearn, provide proposed solutions along with links/citations to authorative sources.</agent_instructions>
Comments on the Issue (you are @copilot in this section)
@MS-mikeo I am currently seeing this on another customer deployment as well.![]()
Fixes microsoft/finops-toolkit#1811
đĄ You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.