Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs-mslearn/toolkit/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ _Released June 2, 2025_
- **Fixed**
- Address new data quality issues with data ingested into Data Explorer:
- Fix BillingPeriodStart and BillingPeriodEnd to always be at the start of the month.
- Change data types for ChargePeriodStart and ChargePeriodEnd from 'datetimezone' to 'date' in Power BI KQL reports to resolve invalid calculations in running total measures.

### [FinOps alerts](alerts/finops-alerts-overview.md) v0.11

Expand Down
16 changes: 16 additions & 0 deletions docs/power-bi.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,19 @@ Create a new or update an existing FinOps hub instance.
<a class="btn mb-4 mb-md-0 mr-4" target="_blank" href="https://portal.azure.com/#view/HubsExtension/InProductFeedbackBlade/extensionName/FinOpsToolkit/cesQuestion/How%20easy%20or%20hard%20is%20it%20to%20use%20FinOps%20toolkit%20Power%20BI%20reports%3F/cvaQuestion/How%20valuable%20are%20FinOps%20toolkit%20Power%20BI%20reports%3F/surveyId/FTK{% include ftkver.txt %}/bladeName/PowerBI/featureName/Marketing.Docs">πŸ’œ Give feedback</a>

<br>

## Data Model Update: ChargePeriodStart Column for KQL based reports

- **Column:** `ChargePeriodStart`
- **Old Data Type:** `datetimezone`
- **New Data Type:** `date`
- **Reason for Change:**
- To ensure correct grouping and aggregation by day in Power BI and downstream analytics tools.
- This change eliminates issues with multiple rows per day caused by time and timezone components.

**Note:**

- All queries, visuals, and documentation should now treat `ChargePeriodStart` as a `date` type.
- If you previously used DAX or Power Query workarounds to normalize this column, you can now use it directly for daily grouping.

<br>
Comment on lines +200 to +215
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert

15 changes: 9 additions & 6 deletions src/power-bi/kql/Shared.Dataset/definition/tables/Costs.tmdl
Original file line number Diff line number Diff line change
Expand Up @@ -251,25 +251,27 @@ table Costs

column ChargePeriodEnd
dataType: dateTime
formatString: General Date
sourceProviderType: datetimeoffset
formatString: Short Date
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically, we should probably use the same format as start dates.

sourceProviderType: date
lineageTag: 0d353195-2c13-4b43-ab97-8f691c508997
summarizeBy: none
sourceColumn: ChargePeriodEnd

annotation SummarizationSetBy = Automatic

annotation UnderlyingDateTimeDataType = Date

column ChargePeriodStart
dataType: dateTime
formatString: Mmm d, yyyy
sourceProviderType: datetimeoffset
formatString: Short Date
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert

sourceProviderType: date
lineageTag: 015b4c1a-f072-4c68-8f1b-d5e10c54b97e
summarizeBy: none
sourceColumn: ChargePeriodStart

annotation SummarizationSetBy = Automatic

annotation PBI_FormatHint = {"isCustom":true}
annotation UnderlyingDateTimeDataType = Date
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert


column CommitmentDiscountCategory
dataType: string
Expand Down Expand Up @@ -1836,9 +1838,10 @@ table Costs


", [MaxRows=null, MaxSize=null, NoTruncate=null, AdditionalSetStatements=null]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ChargePeriodEnd", type date}, {"ChargePeriodStart", type date}}),

// Sort columns alphabetically
Output = Table.ReorderColumns(Source, List.Sort(Table.ColumnNames(Source)))
Output = Table.ReorderColumns(#"Changed Type", List.Sort(Table.ColumnNames(#"Changed Type")))
in
Output

Expand Down