From 306a9628f185fe88f7369be0d31a52a1921990b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 10 Oct 2025 20:29:14 +0000 Subject: [PATCH 1/7] Initial plan From be99ba44d9e93a60031322d5bfa7fe4cba1420d4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 10 Oct 2025 20:36:31 +0000 Subject: [PATCH 2/7] Add CapacityReservationId and CapacityReservationStatus columns to Power BI storage templates Co-authored-by: MSBrett <24294904+MSBrett@users.noreply.github.com> --- docs-mslearn/toolkit/changelog.md | 1 + src/power-bi/queries/ftk_NormalizeSchema.pq | 4 +++- .../Shared.Dataset/definition/tables/Costs.tmdl | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 7c5d94e4b..06d252b73 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -45,6 +45,7 @@ The following section lists features and enhancements that are currently in deve - **Fixed** - Fixed tag expansion in Power BI reports when tag names contain special characters like colons. + - Fixed missing `CapacityReservationId` and `CapacityReservationStatus` columns in storage-based Power BI templates ([#1839](https://github.com/microsoft/finops-toolkit/issues/1839)). ### [FinOps hubs](hubs/finops-hubs-overview.md) v13 diff --git a/src/power-bi/queries/ftk_NormalizeSchema.pq b/src/power-bi/queries/ftk_NormalizeSchema.pq index 991ab8cba..6ef238830 100644 --- a/src/power-bi/queries/ftk_NormalizeSchema.pq +++ b/src/power-bi/queries/ftk_NormalizeSchema.pq @@ -287,7 +287,9 @@ let BillingAccountType = Table.AddColumn(BillingAccountName, "BillingAccountType", each if [x_AccountType] = "MCA" then "Billing Profile" else if [x_AccountType] = "EA" then "Billing Account" else "Subscription"), BillingPeriodEnd = _swapCol(BillingAccountType, "tmp_BillingPeriodEnd", "BillingPeriodEnd", each if _isMissing("tmp_BillingPeriodEnd") then Date.StartOfMonth(Date.AddDays([ChargePeriodStart], 31)) else Date.AddDays([tmp_BillingPeriodEnd], 1), type date), BillingPeriodStart = _swapCol(BillingPeriodEnd, "tmp_BillingPeriodStart", "BillingPeriodStart", each if _isBlank([tmp_BillingPeriodStart]) then Date.StartOfMonth([ChargePeriodStart]) else [tmp_BillingPeriodStart], type date), - ChargeCategory = Table.AddColumn(BillingPeriodStart, "ChargeCategory", each if _isBlank([tmp_ChargeType]) then "Usage" else if [tmp_ChargeType] = "Usage" or [tmp_ChargeType] = "Purchase" or [tmp_ChargeType] = "Tax" then [tmp_ChargeType] else if Text.StartsWith([tmp_ChargeType], "Unused") then "Usage" else if [tmp_ChargeType] = "Refund" then "Purchase" else "Adjustment"), + CapacityReservationId = Table.AddColumn(BillingPeriodStart, "CapacityReservationId", each if _isNotBlank([x_CapacityCommitmentId]) then [x_CapacityCommitmentId] else null), + CapacityReservationStatus = Table.AddColumn(CapacityReservationId, "CapacityReservationStatus", each if _isBlank([CapacityReservationId]) then null else if _isNotBlank([x_ResourceType]) and Text.Lower([x_ResourceType]) = "microsoft.compute/capacityreservationgroups/capacityreservations" then "Unused" else "Used"), + ChargeCategory = Table.AddColumn(CapacityReservationStatus, "ChargeCategory", each if _isBlank([tmp_ChargeType]) then "Usage" else if [tmp_ChargeType] = "Usage" or [tmp_ChargeType] = "Purchase" or [tmp_ChargeType] = "Tax" then [tmp_ChargeType] else if Text.StartsWith([tmp_ChargeType], "Unused") then "Usage" else if [tmp_ChargeType] = "Refund" then "Purchase" else "Adjustment"), ChargeClass = Table.AddColumn(ChargeCategory, "ChargeClass", each if [tmp_ChargeType] = "Refund" then "Correction" else null), ChargeDescription = Table.AddColumn(ChargeClass, "ChargeDescription", each [x_SkuDescription]), // TODO: PricingQuantity,SkuId,SkuPriceId diff --git a/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl b/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl index 904fd4447..747a28b53 100644 --- a/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl +++ b/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl @@ -796,6 +796,22 @@ table Costs annotation PBI_FormatHint = {"isCustom":true} + column CapacityReservationId + dataType: string + lineageTag: 7a3e4b1c-6f8e-4d9a-b5c1-3e2f4a7b8c9d + summarizeBy: none + sourceColumn: CapacityReservationId + + annotation SummarizationSetBy = Automatic + + column CapacityReservationStatus + dataType: string + lineageTag: 8b4f5c2d-7g9f-5e0b-c6d2-4f3e5b8a9c0e + summarizeBy: none + sourceColumn: CapacityReservationStatus + + annotation SummarizationSetBy = Automatic + column ChargeCategory dataType: string lineageTag: 669cea79-1e27-46c1-a88f-0ad859cee094 From a3e0295036c209480f59b1349e380593e974113d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 9 Jan 2026 10:30:15 +0000 Subject: [PATCH 3/7] Move CapacityReservationId changelog entry to Added section Co-authored-by: flanakin <399533+flanakin@users.noreply.github.com> --- docs-mslearn/toolkit/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 116003d22..c0d1bde11 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -51,7 +51,6 @@ _Released January 2026_ - Enhanced troubleshooting guidance for [Data Explorer ingestion errors](help/errors.md#dataexploreringestionfailed) with detailed steps for diagnosing and resolving the common SEM0080 "Ingestion Failed" semantic error, including schema mismatch detection, ingestion mapping verification, and diagnostic query examples. - **Fixed** - Fixed tag expansion in Power BI reports when tag names contain special characters like colons. - - Fixed missing `CapacityReservationId` and `CapacityReservationStatus` columns in storage-based Power BI templates ([#1839](https://github.com/microsoft/finops-toolkit/issues/1839)). ### [FinOps hubs](hubs/finops-hubs-overview.md) v13 @@ -91,6 +90,7 @@ _Released January 2026_ - **Added** - Added export requirements sections to all Power BI report documentation pages to clarify which Cost Management exports are needed for each report. - Added Azure Resource Graph as an explicit requirement for governance and workload optimization reports. + - Added `CapacityReservationId` and `CapacityReservationStatus` columns in storage-based Power BI reports ([#1839](https://github.com/microsoft/finops-toolkit/issues/1839)). - **Fixed** - Fixed tag expansion in Power BI reports when tag names contain special characters like colons. - Fixed unattached disks count in the workload optimization report to show only truly unattached disks instead of all disks. The card visual now filters disks where (managedBy is empty and diskState is not ActiveSAS) or (diskState is Unattached and not ActiveSAS) ([#1896](https://github.com/microsoft/finops-toolkit/issues/1896)). From eb07b5548b5ccb52e93a3cd1a7d54db8d826709c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 25 Feb 2026 06:24:25 +0000 Subject: [PATCH 4/7] chore: Update ms.date in docs-mslearn files --- docs-mslearn/toolkit/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 067c51e6f..80fa0f397 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -3,7 +3,7 @@ title: FinOps toolkit changelog description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more. author: MSBrett ms.author: brettwil -ms.date: 02/24/2026 +ms.date: 02/25/2026 ms.topic: reference ms.service: finops ms.subservice: finops-toolkit From e3488edbc088664ee57e944eaeb2d4203836710a Mon Sep 17 00:00:00 2001 From: Michael Flanakin Date: Tue, 24 Feb 2026 22:25:56 -0800 Subject: [PATCH 5/7] Fix changelog entry Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs-mslearn/toolkit/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 80fa0f397..29ccad240 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -132,7 +132,7 @@ _Released January 2026_ - **Added** - Added export requirements sections to all Power BI report documentation pages to clarify which Cost Management exports are needed for each report. - Added Azure Resource Graph as an explicit requirement for governance and workload optimization reports. - - Added `CapacityReservationId` and `CapacityReservationStatus` columns in storage-based Power BI reports ([#1839](https://github.com/microsoft/finops-toolkit/issues/1839)). + - Added `CapacityReservationId` and `CapacityReservationStatus` columns in storage-based Power BI reports ([#1836](https://github.com/microsoft/finops-toolkit/issues/1836)). - **Fixed** - Fixed tag expansion when tag names contain special characters like colons. - Fixed unattached disks count in the workload optimization report to show only truly unattached disks ([#1896](https://github.com/microsoft/finops-toolkit/issues/1896)). From b2b92a3611736e61152a750d2ec767f45c454e7a Mon Sep 17 00:00:00 2001 From: Michael Flanakin Date: Tue, 24 Feb 2026 22:26:48 -0800 Subject: [PATCH 6/7] Fix bad guid Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../storage/Shared.Dataset/definition/tables/Costs.tmdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl b/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl index 5d8139e63..8136f08c1 100644 --- a/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl +++ b/src/power-bi/storage/Shared.Dataset/definition/tables/Costs.tmdl @@ -814,7 +814,7 @@ table Costs column CapacityReservationStatus dataType: string - lineageTag: 8b4f5c2d-7g9f-5e0b-c6d2-4f3e5b8a9c0e + lineageTag: 8b4f5c2d-7a9f-5e0b-c6d2-4f3e5b8a9c0e summarizeBy: none sourceColumn: CapacityReservationStatus From d56c4d2d56d9ff78dd6ca0266b16ab76fac5a8cc Mon Sep 17 00:00:00 2001 From: Michael Flanakin Date: Tue, 24 Feb 2026 22:35:50 -0800 Subject: [PATCH 7/7] Remove duplicate text --- docs-mslearn/toolkit/changelog.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs-mslearn/toolkit/changelog.md b/docs-mslearn/toolkit/changelog.md index 29ccad240..44e014885 100644 --- a/docs-mslearn/toolkit/changelog.md +++ b/docs-mslearn/toolkit/changelog.md @@ -79,11 +79,6 @@ This release is a minor patch to fix a bug in FinOps hub managed exports and the - **Fixed** - Fixed incorrect PriceSheet export dataset version in managed exports to 2023-05-01. -### [Power BI reports](power-bi/reports.md) v13 - -- **Fixed** - - Fixed tag expansion in Power BI reports when tag names contain special characters like colons. - ### [PowerShell module](powershell/powershell-commands.md) v13 Update 1 - **Added**