Summary In the KPI visual, when a measure uses Dynamic Format Strings (Model view → Format → Dynamic), Auto scaling for the Callout Value Display Units treats decimal/whole numbers differently than currency. Decimals are abbreviated (e.g., K/M), while currency callouts show full, unscaled values—even in the hundreds of millions—unless you manually pick “Thousands” or “Millions.” This is inconsistent with Card and new Card visuals, which apply dynamic formats more predictably. Please make Auto honor the dynamic format string and/or measure value for all types (including currency) so KPI behavior matches other visuals. Why this matters Consistency: Dynamic format strings were introduced to avoid using FORMAT() (text) and keep measures numeric while letting visuals display different formats by context (currency, decimal, %, units). KPI’s current Auto scaling undermines that goal. Usability: Financial dashboards frequently compare Actual vs Budget in a single KPI. If Auto doesn’t abbreviate currency, callouts become unreadably long and inconsistent with Cards on the same page. Maintainability: Forcing manual “Thousands/Millions” breaks scenarios where different metrics (EFTSL counts vs. $ revenue) share a KPI but need different scaling depending on selection. This pushes authors back to brittle workarounds (wrapper measures, FORMAT(), or custom tooltips). Repro steps (Nov 2025 desktop builds) Create a single Switch measure (numeric) that returns different base measures based on a slicer, e.g., counts vs. currency. In Model view, set Format → Dynamic for the measure; return currency strings for revenue and decimal strings for counts. (Per Microsoft Docs and blog guidance.) Place the measure in a KPI visual (Callout = measure; Target = budget measure with the same dynamic format). Set Callout Value → Display Units = Auto. Change the slicer from counts (decimal) to revenue (currency). Actual: Counts are abbreviated (K/M); currency shows full numbers (e.g., $228,537,815.48) without K/M. Expected: KPI Auto should abbreviate both numeric and currency consistently based on dynamic format strings / current value, similar to Card behavior. What we observe today (evidence & prior reports) Dynamic format strings work and are documented to keep the measure numeric while changing how visuals render the value. Visuals should honor that expression. Community reports show KPI “Auto” units not working or only under narrow conditions (e.g., whole vs. decimal types, specific decimal places), with long‑standing threads noting inconsistent scaling behavior. Tutorials and guidance emphasize dynamic format strings for abbreviations (K/M) and currency without losing numeric type—this works in Cards but is inconsistent in KPI Auto. Technical analysis (hypothesis) Auto scaling in KPI likely uses a rule set that depends on the static format category (currency vs. decimal) and does not re‑evaluate the dynamic format string expression or SELECTEDMEASURE() value when deciding whether to abbreviate. Cards have newer rendering logic that respects dynamic formats more consistently (including with the “new Card” GA announcement and display‑unit behavior), while KPI retains older scaling heuristics. Requested enhancements (developer‑friendly) Honor Dynamic Format Strings in KPI Auto Update KPI’s Auto scaling to evaluate the dynamic format string expression (and SELECTEDMEASURE()) the same way Card does, so abbreviations like K/M are applied when appropriate regardless of currency/decimal. Expose a “Respect dynamic format” toggle Add a per‑visual option (KPI → Callout Value) like “Use dynamic format string for Auto display units”. When On, Auto follows the dynamic format logic (including localized strings like [$-en-AU]$#,0,,M). When Off, the current heuristic remains. Support locale‑qualified currency abbreviation patterns Allow dynamic format strings such as [$-en-AU]$#,0,,M or pattern tokens for abbreviated units (K/M/B) so authors can control thousands/millions within the dynamic format—and ensure KPI doesn’t strip the symbol when abbreviating. (Docs already encourage locale‑qualified strings; please make KPI honor them.) Align Tooltips & Axis/Callout scaling rules Ensure Tooltips, Callout, and (if present) trend line labels all apply the same rule set when dynamic format strings are used, so users don’t see conflicting formats between the callout and hover tooltips. Document current behavior & guidance Update KPI docs to clarify how Auto interacts with dynamic format strings and provide recommended patterns (e.g., when to set Display Units = None/Thousands/Millions vs. rely on dynamic format strings). Why not use workarounds? Manual “Thousands/Millions” forces the same scale for all metrics, breaking mixed scenarios (e.g., counts needing full precision, currency needing M). FORMAT() returns text, breaking numeric comparisons and KPI goal logic—exactly what dynamic format strings were created to avoid. Custom tooltips or wrapper measures add complexity and don’t fix the KPI’s Auto behavior at the callout. Impact (real-world example) In HR dashboards (e.g., employee FTE/employee Headcount counts (decimal or whole numbers) vs Salaries ($)), users compare Actual vs Budget in a KPI. With Auto: Counts show K/M (good), Currency shows full 9‑digit values (bad), leading to inconsistent readability and stakeholder confusion, especially at executive level. Aligning KPI Auto with dynamic formats resolves this without measure duplication. References Dynamic Format Strings (Microsoft Learn): Overview, how to set in Model view, and why they keep numeric type (vs FORMAT()). Create Dynamic Format Strings for Measures in Power BI Desktop - Power BI | Microsoft Learn, powerbi-docs/powerbi-docs/create-reports/desktop-dynamic-format-strings.md at main · MicrosoftDocs/powerbi-docs · GitHub Microsoft Power BI Blog: Deep dive into dynamic format strings for measures (preview → general usage). Deep dive into the new Dynamic Format Strings for Measures! | Microsoft Power BI Blog | Microsoft Power BI SQLBI: Technical notes and examples using SELECTEDMEASURE() in format expressions for units (K/M). Introducing dynamic format strings for DAX measures - SQLBI KPI visual docs (Microsoft Learn): KPI visual requirements and formatting; lacks clarity on Auto with dynamic formats. Key Performance Indicator (KPI) visuals - Power BI | Microsoft Learn Community thread (long‑standing): KPI Auto units inconsistencies reported since 2019, partial fixes and limitations. KPI Visual not auto displaying the units correctly - Microsoft Fabric Community New Card visual GA blog: Indicates newer rendering consistency for modern visuals—please bring KPI in line. New Card visual in reports (Generally Available) | Microsoft Power BI Blog | Microsoft Power BI Closing Request: Make KPI Auto Display Units honor Dynamic Format Strings (and measure values) the same way Card does—so currency and decimals both abbreviate appropriately without manual scaling. This will improve readability, consistency, and trust in financial KPI dashboards without forcing authors into fragile workarounds. Happy to share a reproducible PBIX if needed.
... View more