🤖 [AI] Filed from findings raised in discussion #2068.
⚠️ Problem
The ADX dashboard's Summary page and Rate Optimization page show different "List cost" and "Commitment savings" numbers for the same month (reported gap: ~5.7% on List cost, ~2x on Commitment savings). Confirmed independently by two customers.
🛠️ Solution
Root cause, verified against src/templates/finops-hub/dashboard.json:
- Summary page's "Cost summary" tile (query
5ff29428…) and "Summary"/"Savings summary" tiles (e8b343dc…, f5f240a8…) compute List/Contracted/Effective cost and Commitment savings as a flat sum(ListCost)/sum(ContractedCost)/sum(EffectiveCost) over CostsByMonth/CostsByDay — with no exclusion of ChargeCategory == 'Purchase' rows.
- Rate Optimization page's equivalent tiles (
e17346d1…, 3b3f0a58…) already carry where x_AmortizationClass != 'Principal' — explicitly commented "Don't double-count commitment discount purchases."
A Reservation/Savings Plan upfront purchase row carries the full ListCost/ContractedCost with EffectiveCost ≈ 0 (the real usage cost is amortized separately). Summing it in unfiltered, as the Summary page does, inflates that month's List cost and Commitment savings by roughly the purchase amount.
Fix: add the same x_AmortizationClass != 'Principal' exclusion to the three Summary-page queries, mirroring the existing Rate Optimization pattern.
ℹ️ Additional context
Related: #2068 (discussion)
🤖 [AI] Filed from findings raised in discussion #2068.
The ADX dashboard's Summary page and Rate Optimization page show different "List cost" and "Commitment savings" numbers for the same month (reported gap: ~5.7% on List cost, ~2x on Commitment savings). Confirmed independently by two customers.
🛠️ Solution
Root cause, verified against
src/templates/finops-hub/dashboard.json:5ff29428…) and "Summary"/"Savings summary" tiles (e8b343dc…,f5f240a8…) compute List/Contracted/Effective cost and Commitment savings as a flatsum(ListCost)/sum(ContractedCost)/sum(EffectiveCost)overCostsByMonth/CostsByDay— with no exclusion ofChargeCategory == 'Purchase'rows.e17346d1…,3b3f0a58…) already carrywhere x_AmortizationClass != 'Principal'— explicitly commented "Don't double-count commitment discount purchases."A Reservation/Savings Plan upfront purchase row carries the full
ListCost/ContractedCostwithEffectiveCost ≈ 0(the real usage cost is amortized separately). Summing it in unfiltered, as the Summary page does, inflates that month's List cost and Commitment savings by roughly the purchase amount.Fix: add the same
x_AmortizationClass != 'Principal'exclusion to the three Summary-page queries, mirroring the existing Rate Optimization pattern.ℹ️ Additional context
Related: #2068 (discussion)