KPI Plume: 11 how-to guides (prior year, budget, targets, icons…)
Step by step: compare with the prior year and budget, set a target per card, color cards green, amber or red, pick each KPI's icon and back content, add a link…
Lire en françaisThese recipes start from a KPI Plume visual that is already set up, with the Revenue, Order count, Average basket and Margin rate measures in Values (one KPI per measure), Revenue target in Target and Month in Trend axis (date). If that's not the case, begin with getting started: the examples reuse its data (the Sales table). Features marked ★ are premium: they work without a license, with a watermark.
Several recipes use the Per-KPI settings card of the Format pane: first pick, in the Apply settings to list at the top of the card, All KPIs (the general setting) or a measure (an exception for that KPI only).
How do I compare each KPI with the prior year?
The change from the previous month is useful, but management often thinks in terms of "vs. prior year."
-
Create a date table (Modeling › New table):
-- One row per day over two years, with the month (1st day of the month) and the year Calendar = ADDCOLUMNS ( CALENDAR ( DATE ( 2024, 1, 1 ), DATE ( 2025, 12, 31 ) ), "Month", DATE ( YEAR ( [Date] ), MONTH ( [Date] ), 1 ), "Year", YEAR ( [Date] ) ) -
Select the table, then Table tools › Mark as date table (
Datecolumn). In Model view, relateCalendar[Date]toSales[Month]. -
Create a prior-year measure for each KPI you want to compare:
-- Revenue for the same period, one year earlier Revenue PY = CALCULATE ( [Revenue], SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) -- Same idea for orders Order count PY = CALCULATE ( [Order count], SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) -
In Trend axis (date), replace
Sales[Month]withCalendar[Month]. In the Filters pane, limit the page toCalendar[Year]= 2025. -
Drag
Revenue PY, thenOrder count PY, into Comparison (previous year…): rank 1 forRevenue, rank 2 forOrder count, as in Values (one KPI per measure). -
Comparison card: set Compare with to “Comparison” field.
-
Per-KPI settings card, with All KPIs: type
vs PYin Comparison label. This text replaces the whole label; left empty, it would read "vs Revenue PY."
Result: the Revenue and Order count cards show their change from the prior year, followed by "vs PY." The other two cards show no change, since there is no comparison measure at their rank.
Warning: the sample data starts in July 2025, so Revenue PY stays blank and no change is displayed. Add 2024 rows to Sales or apply the recipe to your own data.
Tip: for monthly rather than yearly tracking, keep Sales[Month] and set Value › Displayed value (with a trend axis) to Last period and Compare with to Previous period (trend axis). Each card then shows December (€165,200 for revenue) compared with November. Type {period} in Note under the value to show the month under the figure.
How do I compare with the budget and the prior year at the same time? ★
The executive committee wants two changes on the revenue card, one against the budget and one against the prior year, plus a color that sums it all up.
-
Start from the previous recipe (
Revenue PYin Comparison (previous year…)) and create the budget measure:-- Revenue budget: €120,000 per month in the context Budget = 120000 * DISTINCTCOUNT ( Sales[Month] ) -
Drag
Budgetinto Comparison 2 (budget…), at rank 1 (likeRevenue). -
Comparison card: leave Comparison 2 (“Comparison 2” field) on.
-
Per-KPI settings card, with
Revenue: typevs budgetin Comparison 2 label. -
Comparison card: set Card status (good, warning, bad) to Target and comparison (green, amber, red) ★.
-
Card card: set KPI color to By status (good / bad) and Accent bar (status) to Left.
Result: under the prior-year change, the Revenue card shows a second change, ▲ +7.6% vs budget (€774,900 against €720,000). It is green because the target is reached (117%). The rule: green when the target is reached, amber when it isn't but at least one comparison is favorable, red otherwise. A KPI without a target takes the color of its comparison. The second change also appears on the back of the card and in the tooltip.
How do I give each card a different target?
Revenue and orders have their own target measures; average basket and margin rate have a fixed target, set once for the year.
-
Create the orders target measure:
-- Order count target: 950 orders per month in the context Order count target = 950 * DISTINCTCOUNT ( Sales[Month] ) -
Drag it into Target, after
Revenue target. -
Per-KPI settings card, with
Revenue: set “Target” field number (0 = same rank, -1 = none) to 1. WithOrder count: to 2. Targets no longer depend on the order of the measures in Values (one KPI per measure). -
With
Average basket: type 140 in Fixed target (0 = “Target” field). -
With
Margin rate: type 0.46 in Fixed target (0 = “Target” field). Enter the target in the measure's unit: 0.46 for 46%.
Result: each card has its own progress bar: Revenue 117%, Order count 103% (5,860 against 5,700), Average basket 94% (about €132 against €140), Margin rate 98% (45.1% against 46%). To remove a KPI's target, set its “Target” field number (0 = same rank, -1 = none) to -1.
How do I color cards green, amber or red based on the target?
You want to see at a glance which KPIs are on target, which are close and which are falling behind.
- Start from the targets of the previous recipe.
- Comparison card: set Card status (good, warning, bad) to Target (thresholds).
- Set Warning from (% of target) to 95.
- Card card: set KPI color to By status (good / bad) and Accent bar (status) to Left.
- To color the figure too, turn on Value › Color by status (good / bad). If needed, change “Good” color, “Warning” color and “Bad” color in the Comparison card.
Result: Revenue (117%) and Order count (103%) are green, Margin rate (98%) is amber, Average basket (94%, below the 95% threshold) is red. The badge of each change keeps the color of its own direction.
Tip: for a cost, a lead time or a return rate, going down is good news. Pick the measure in Per-KPI settings and turn on Lower is better: the card is green up to 100% of the target, amber up to 105% with a threshold of 95, and red beyond. For changes, Comparison › Neutral zone (± %) set to 2 keeps changes under 2% neutral.
How do I choose the icon of each card?
The automatic icon is picked from the measure name. You'd rather choose your own, or have an icon that changes with the region.
-
Per-KPI settings card, with
Revenue: set Icon to Finance · Coins. The list offers 134 Lucide icons sorted into 11 themes (Finance, Sales, People, Performance, Time, Operations…), plus Automatic (from the name) and None. -
With
Margin rate: set Icon to Performance · Gauge. To remove the icon of a single KPI, choose None; for a character of your own, type it in Or symbol / emoji (replaces the icon). -
Icon card: set Icon background to Solid badge and Position to Before the title.
-
For a calculated icon, with One KPI per… (category) =
Region, create a text measure:-- Icon of the Revenue card by region: icon name, emoji or embedded SVG image Revenue icon = SWITCH ( SELECTEDVALUE ( Sales[Region] ), "Wales", "waves", "North West", "☀️", "trending-up" ) -
Drag
Revenue iconinto the Icon (text measure) field, at rank 1 (likeRevenue).
Result: the Wales card shows waves, the North West card a sun, and a card without a region (the total, for instance) a rising arrow. The icon given by the measure takes precedence over the Icon setting.
Tip: the measure accepts the name of one of the visual's icons (trending-up, shopping-cart, euro…), an emoji, or an embedded SVG image starting with data:image/svg+xml, for example "data:image/svg+xml;utf8,…" built in DAX. Web addresses are never loaded. Unrecognized text is shown as is, like a symbol: check the spelling of the name.
How do I show the same KPIs for each region, with a total?
A strip per region lets you compare teams at a glance, with no empty cards when a region has nothing to show.
-
Create a measure that stays blank when there is nothing to count:
-- Number of months when revenue exceeds €80,000 (blank if none) Record months = COUNTROWS ( FILTER ( VALUES ( Sales[Month] ), [Revenue] > 80000 ) ) -
In Values (one KPI per measure), keep only
RevenueandRecord months. -
Drag
Regioninto One KPI per… (category). -
Layout card: turn on “Total” card (with “One KPI per…”) and type "All regions" in Total label.
-
Still in Layout, turn on Hide blank KPIs.
-
Flip card: set Flip the card to On click on the ↻ icon, so a single click on a card filters the report.
Result: two "All regions" cards (€774,900 and 6 months), then Revenue for Wales (€362,400) and North West (€412,500), and Record months for North West (2). Wales's Record months card, which is blank, isn't drawn. Clicking a region filters the page and dims the other cards.
How do I choose what the back shows, KPI by KPI?
On the back of the revenue card, you want the margin as a figure, then a definition; on the back of the other cards, only the comparison and the target, without minimum or maximum.
- Create the measure
Total margin = SUM ( Sales[Margin] )and drag it into Back of the card: figures. A measure in this field only appears on the back, with its format. - Per-KPI settings card, with
Revenue: type the definition in Back of the card text, for example**Revenue**: amount invoiced excluding tax, net of returns.(double asterisks make text bold). - Back of the card card: set Content to Text and key figures and Key figures to All available. Measures from Back of the card: figures only appear with this last choice.
- Back of the card: content per KPI card, with All KPIs: turn off Minimum, Maximum, Average and the
Total marginswitch (each measure of the Back of the card: figures field has its own, under its name). - In the same card, with
Revenue: turn onTotal marginand Text after the figures.
Result: on the back of the Revenue card, the total margin (€349,600), then the comparison, the target, its achievement (117%) and the period, and finally the definition. On the back of the other cards, the comparison, the target and the period, without minimum, maximum or average. The Back of the card: content per KPI card only appears when Flip › Flip the card isn't set to Never.
A variant, text that follows the filters: typed text doesn't change with filters, a text measure does.
-- Name of the region with the highest revenue, in the current context
Revenue back =
"Best region: "
& MAXX ( TOPN ( 1, VALUES ( Sales[Region] ), [Revenue] ), Sales[Region] )
Drag Revenue back into Back of the card (text), at rank 1, then clear Back of the card text for Revenue: text typed for a measure takes precedence over the field. The back then reads "Best region: North West."
Tip: to check every back without clicking each card, turn on Flip › Show the back (preview in edit mode), then turn it off once formatting is done.
How do I write a title and a note that follow the filters?
The title "Revenue" doesn't say which year it is: you want "Revenue 2025", and below the value a note that recalls the comparison.
-
Modeling › New measure, twice:
Revenue title = "Revenue " & MAX ( Calendar[Year] ) Revenue note = "vs " & ( MAX ( Calendar[Year] ) - 1 ) & ": {delta}" -
Drag
Revenue titleinto Title (text measure) andRevenue noteinto Note (text measure). They are the first measures in these fields: they go with the 1st KPI,Revenue. -
Pick another year in the year slicer.
Result: the card is called "Revenue 2025", then "Revenue 2024", and the note writes the change in place of {delta} (with the prior-year comparison from the first recipe). The other KPIs keep their title. To give the same note to every KPI, name the measure kpiFormat.note and drag it into Dynamic format.
Tip: the number is written in full when it fits in the card ("$412,300"), otherwise abbreviated ("$412K"): this is the new default of Per-KPI settings › Display units, Automatic (full value when it fits). Choose Abbreviated (K, M, bn) to always abbreviate.
How do I add a link to a card?
From the revenue card, readers should be able to open the detailed report; from the margin rate card, email the finance team.
- Per-KPI settings card, with
Revenue: type the address of the page to open in Link (web address), for examplehttps://www.example.com/reports/sales. - With
Margin rate: typemailto:finance@example.com.
Result: a ↗ button appears after the title of these two cards. A click opens the address after Power BI asks for confirmation; it doesn't flip the card or filter the report. Only addresses starting with https:// or mailto: are accepted. With One KPI per… (category), all cards of the same measure share the same link.
How do I highlight the main KPI? ★
Revenue deserves more room than the secondary indicators.
- Put
Revenuefirst in Values (one KPI per measure). - Layout card: set Arrangement to First one large, on the left ★.
- Set First KPI size (%) to 50.
Result: the Revenue card takes up the left half of the visual; the other three share the other half.
Tip: for a more visible target on the large card, set Target › Shape to Ring ★ and Thickness to 8, then Card › Content layout to Centered. The ring shows the percentage reached (117%).
How do I keep cards readable and scroll?
With one card per region and several measures, cards shrink in a small frame. By default, KPI Plume shrinks them so everything stays visible, with no scroll bar; you'd rather have fixed-size cards, even if that means scrolling.
- Layout card: set When the cards do not fit to Keep the minimum sizes and scroll.
- Set Minimum card width (px) to 180 and Minimum card height (px) to 110.
- Choose the scroll direction with Arrangement: Automatic grid to scroll down, One row to scroll right.
Result: each card stays at least 180 × 110 pixels. A scroll bar appears only in the direction that overflows, and only when the cards don't fit in the frame.
Learn more
- Getting started with KPI Plume: the data to prepare and a first visual, step by step.
- KPI Plume fields and settings: every field well and every setting.
- Getting started with Plume visuals: installation, license, styles and shared settings.
- The visual's page: KPI Plume. A question? Support.