Triage and document solution for empty Reservations tab in MCA deployments
Problem
MCA (Microsoft Customer Agreement) customers deploying FinOps Hub v0.11 report that the Reservations tab in the Rate Optimization Report shows no data, despite other tabs loading correctly. There are no error messages, just empty results.
Root Cause Analysis
After comprehensive investigation of the codebase and Microsoft Learn documentation, the issue stems from missing MCA-specific configuration that differs from EA deployments:
-
MCA requires manual Billing Profile-level setup: Unlike EA customers, MCA customers must explicitly configure reservation data exports at the Billing Profile scope (not Billing Account scope)
-
One-time FOCUS exports are insufficient: FOCUS exports only contain cost and usage data, not the reservation-specific metadata required for the Reservations tab (as confirmed by @MSBrett's comment)
-
Missing permissions: The AOE Managed Identity needs the Billing Profile Reader role, which must be granted manually for MCA customers
-
Missing Automation variables: MCA-specific variables (
AzureOptimization_BillingAccountID,AzureOptimization_BillingProfileID) are required but not automatically created
Evidence from Microsoft Learn
Per Cost Management exports documentation:
For MCA customers, Reservation recommendations, Reservation details, and Reservation transactions are only available at the Billing profile scope.
MCA APIs use Microsoft Entra authentication and require proper role assignments at the Billing Profile level.
Solution
This PR provides comprehensive triage documentation including:
Recommended Solution: Run Automated Setup Script
./Setup-BenefitsUsageDependencies.ps1 `
-AutomationAccountName "<aoe-automation-account>" `
-ResourceGroupName "<aoe-resource-group>"
This script automatically:
- ✅ Grants Billing Profile Reader role to AOE Managed Identity
- ✅ Creates required Automation Variables
- ✅ Configures reservation data collection runbooks
- ✅ Sets up price sheet exports
Alternative: Manual Export Configuration
For customers who cannot run the script, detailed steps for manually creating:
- Reservation Details export
- Reservation Recommendations export
- Price Sheet export
All at the Billing Profile scope (not Billing Account scope).
Verification Steps
Complete checklist to verify:
- Automation variables are correctly set
- Role assignments are in place
- Runbooks execute successfully
- Data appears in Log Analytics and Storage
Documentation Added
-
Comprehensive triage document (
/tmp/triage-mca-reservations-issue.md) with:- Root cause analysis with code evidence
- Step-by-step solutions with authoritative Microsoft Learn citations
- Verification checklist
- Troubleshooting guide
- Follow-up questions for the customer
References
Microsoft Learn Documentation:
- Tutorial: Create and manage Cost Management exports
- Migrate from EA to MCA APIs
- Understand and work with scopes
- Reservation automation APIs
- Cost Management automation overview
FinOps Toolkit Documentation:
Expected Resolution Timeline
- Setup time: 15-30 minutes
- First data collection: 24 hours (next scheduled runbook run)
- Full data in reports: 24-48 hours after first successful collection
Related Issues
Fixes #[issue-number] - Data in Rate Optimization Report are loading fine except Reservations tab
Original prompt
This section details on the original issue you should resolve
<issue_title>Data in Rate Optimization Report are loading fine except Reservations tab ( currently empty with no errors )</issue_title> <issue_description><!-- ⚠️⚠️⚠️ BEFORE YOU SUBMIT ⚠️⚠️⚠️
- Confirm there isn't an issue already. If so, vote it up (👍) and add comments.
- Complete all TODO items below and remove the TODO lines after.
- Internal: Add applicable labels: Type, Micro PR, Area -->
🐛 Problem
TODO: MCA Customer has deployed finopshub v0.11, and billing admin tried loading up rate optimization report, all the tabs are loading fine except reservations. There's no errors reported but the data is empty
👣 Repro steps
TODO: Add repro steps below:
- Go to Workload optimization.pbit
- Click on Reservations tab
- No data reported.
🤔 Expected
TODO: All the other reports like cost summary are loading ok, where-as reservations are loading with empty data.
📷 Screenshots
TODO: Attached is the screenshot with empty data loaded
![]()
ℹ️ Additional context
TODO:
🙋♀️ Ask for the community
We could use your help:
- Please vote this issue up (👍) to prioritize it.
- Leave comments to help us solidify the vision. </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)
@MSBrett Hi @sharmilamusunuruWhich exports did you configure? Being a MCA the exports need to be set up manually at the Billing Profile level so that you can create the required PriceSheet and Reservation Recommendation exports. We need that data so we can show the correct pricing, coverage, etc.
@MSBrett > Hi [@MSBrett](https://github.com/MSBrett) , Focus reports are created manually at Billing profile, does the one-time export at billing profile won't include reservation recommendation data ?Nope, it's just focus data. You'll need to backdate everything.</comment_new> <comment_new>
#needs-info </comment_new>@flanakin
Fixes microsoft/finops-toolkit#1769
💡 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.