KPI Plume: Power BI KPI cards that flip over to explain the number
Get started with KPI Plume in Power BI: prepare your measures, build a strip of KPI cards with change, target and trend, then write the back that shows on click.
Lire en françaisAt a glance
What the visual does. KPI Plume draws a strip of cards, one per key performance indicator (KPI: revenue, orders, average basket…). Each card brings together the number, its change (▲ +8.8%), its progress toward the target and a small trend line (sparkline). And like a playing card, it flips over on click: on the back, a text explains the number (a definition, the best month, the source).
An example in one line. Over six months, revenue reaches €774,900 against a target of €660,000: the card shows €774,900, a progress bar at 117%, and a change of +8.8% between December and November, written "Dec 2025 vs Nov 2025".
When to use it:
- a strip of key figures at the top of a report page;
- track indicators against a target, the previous month or the previous year;
- repeat the same KPIs for each region, product or team;
- explain a number (definition, period, source) without cluttering the page.
When to use something else:
- to compare many items with each other, a bar chart (Bar Plume) or a table (Table Plume) is easier to read;
- for a detailed trend over many dates, a real line chart (Line Plume) shows more than a card's small sparkline.
By the end, you will know how to:
- turn each measure into a KPI card;
- give each KPI its target, its change and its sparkline;
- line up the cards and color them by status (good / bad);
- adjust one KPI without touching the others (icon, back text);
- choose what the back of each card shows and make it appear on click.
What you need:
- Power BI Desktop (recent version);
- the KPI Plume visual installed (see the shared basics, "Installing a Plume visual");
- a table with a date (or month) column and a few amounts to add up;
- to see the result before you start: the sample report
PlumeKpiCard-Sample-EN(Downloads space), page "1 · KPI Plume".
Tip: the word "card" has two meanings here. A KPI card is a rectangle shown in the visual. A Format pane card is a group of settings (for example the Comparison card). One of these settings cards is actually called Card: it sets the shape and colors of the KPI cards.
The data you need
The expected shape
KPI Plume mainly expects measures. A measure is a calculation written in DAX that returns a result based on what is shown or filtered (see the glossary).
- One measure = one KPI card: each measure placed in the Values (one KPI per measure) field becomes a card.
- Optional measures go with each KPI: Target, Comparison (previous year…), Back of the card (text)…
- Two optional columns: a date for the sparkline (Trend axis (date)) and a category to repeat the KPIs (One KPI per… (category), for example one card per region).
Why measures? With a trend axis, the number shown by default is the measure computed by Power BI over the whole period: a margin rate stays exact, it is not the sum of the monthly rates.
The sample dataset
The Sales table of a home goods retailer (fictitious data): one row per month and per region, over six months. Month is the first day of the month.
| Month | Region | Amount | Margin | Orders |
|---|---|---|---|---|
| 07/01/2025 | Wales | 52,400 | 24,100 | 410 |
| 07/01/2025 | North West | 61,800 | 27,200 | 455 |
| 08/01/2025 | Wales | 48,900 | 21,500 | 388 |
| 08/01/2025 | North West | 57,300 | 25,800 | 431 |
| 09/01/2025 | Wales | 55,100 | 25,900 | 426 |
| 09/01/2025 | North West | 63,900 | 28,100 | 470 |
| 10/01/2025 | Wales | 56,200 | 26,400 | 437 |
| 10/01/2025 | North West | 62,200 | 27,400 | 462 |
| 11/01/2025 | Wales | 71,500 | 33,600 | 540 |
| 11/01/2025 | North West | 80,400 | 36,200 | 601 |
| 12/01/2025 | Wales | 78,300 | 35,200 | 592 |
| 12/01/2025 | North West | 86,900 | 38,200 | 648 |
To create it without a file: Modeling › New table, paste the formula below, then confirm.
Sales =
DATATABLE (
"Month", DATETIME,
"Region", STRING,
"Amount", DOUBLE,
"Margin", DOUBLE,
"Orders", INTEGER,
{
{ "2025-07-01", "Wales", 52400, 24100, 410 },
{ "2025-07-01", "North West", 61800, 27200, 455 },
{ "2025-08-01", "Wales", 48900, 21500, 388 },
{ "2025-08-01", "North West", 57300, 25800, 431 },
{ "2025-09-01", "Wales", 55100, 25900, 426 },
{ "2025-09-01", "North West", 63900, 28100, 470 },
{ "2025-10-01", "Wales", 56200, 26400, 437 },
{ "2025-10-01", "North West", 62200, 27400, 462 },
{ "2025-11-01", "Wales", 71500, 33600, 540 },
{ "2025-11-01", "North West", 80400, 36200, 601 },
{ "2025-12-01", "Wales", 78300, 35200, 592 },
{ "2025-12-01", "North West", 86900, 38200, 648 }
}
)
The dates are all on the first of the month: KPI Plume automatically writes them as month and year ("Dec 2025"), with no setting needed.
The measures to create
Select the Sales table, then Modeling › New measure. Create one measure at a time.
-- Revenue: adds up the Amount column
Revenue = SUM ( Sales[Amount] )
-- Number of orders: adds up the Orders column
Order count = SUM ( Sales[Orders] )
-- Average basket: revenue divided by the number of orders
-- (DIVIDE returns blank instead of an error when the divisor is zero)
Average basket = DIVIDE ( [Revenue], [Order count] )
-- Margin rate: margin divided by revenue
Margin rate = DIVIDE ( SUM ( Sales[Margin] ), [Revenue] )
-- Revenue target: €110,000 per month present in the context
-- (DISTINCTCOUNT counts the distinct months: 6 over the period, 1 for a single month)
Revenue target = 110000 * DISTINCTCOUNT ( Sales[Month] )
Give Margin rate the Percentage format and give Revenue, Average basket and Revenue target the Currency format (€): select the measure, then Measure tools › Format.
With this data, over the six months: revenue of €774,900 against a target of €660,000 (117% reached), 5,860 orders, an average basket of about €132, a margin rate of about 45.1%.
One measure per card: matching by rank
The Target, Comparison (previous year…), Back of the card (text) and Icon (text measure) fields don't say which KPI they belong to: their rank (their position in the field) is what counts. The 1st measure in Target goes with the 1st KPI in Values (one KPI per measure), the 2nd with the 2nd, and so on.
| Rank | Values (one KPI per measure) | Target | Comparison (previous year…) |
|---|---|---|---|
| 1 | Revenue | Revenue target | (nothing) |
| 2 | Order count | (nothing) | (nothing) |
| 3 | Average basket | (nothing) | (nothing) |
| 4 | Margin rate | (nothing) | (nothing) |
In this tutorial, only the 1st KPI has a target: placing Revenue target first is enough. To give a target to another KPI without depending on the order of the fields, Format › Per-KPI settings offers Fixed target (0 = “Target” field) and “Target” field number (0 = same rank, -1 = none) (see the how-to guides).
Data preparation pitfalls
- The automatic date hierarchy. When you drag
Monthinto Trend axis (date), Power BI may replace it with a hierarchy (Year, Quarter, Month, Day). In the visual's well, click the arrow to the right of the field and chooseMonthinstead of Date Hierarchy. - A comparison with the previous year requires a date table (one row per day, marked as a date table and related to
Sales; see the glossary). Then take the trend axis from that date table too, otherwise the prior-year measure returns a blank or wrong result. This tutorial doesn't need one: it compares with the previous month. - A rate in a calculated column would be added up: write it as a measure, like
Margin rate. - A blank measure gives a card with a dash ("—"): check the measure and the relationships between tables.
Step by step: your first KPI strip in 12 minutes
Goal: four cards in a row, colored by status, with a target bar on revenue and an explanatory back that appears on click. We start from the data and measures in "The data you need".
-
Click an empty area of the page, then the KPI Plume icon in the Visualizations pane. Resize the frame into a wide, short strip. A welcome screen lists the expected fields.
-
Drag
Revenue,Order count,Average basketandMargin rate, in this order, into the Values (one KPI per measure) field. Four cards appear, each with an icon picked from the measure's name: € for revenue, a cart for orders and the average basket, % for the rate. -
Drag
Revenue targetinto the Target field. A progress bar appears on theRevenuecard only (rank 1), filled to 117%. -
Drag
Monthinto the Trend axis (date) field (theMonthcolumn, not Date Hierarchy). A sparkline is drawn at the bottom of each card, and a change appears: on theRevenuecard, +8.8% with the label "Dec 2025 vs Nov 2025". The value shown is still the six-month total. -
In the Format pane, Layout card: set Arrangement to One row. The four cards line up. They always fit in the frame, shrinking if needed: When the cards do not fit is set to Shrink them (never a scroll bar) by default.
-
Card card: set KPI color to By status (good / bad). The icon and the sparkline of each card take the "good" (green) or "bad" (red) color based on its change: the
Margin ratecard turns red, because December's margin is lower than November's. -
Still in the Card card: set Accent bar (status) to Left. A stripe of the same color runs along the left edge of each card.
-
Per-KPI settings card: in the Apply settings to list, choose
Average basket, then set Icon to Sales · Shopping bag. Only the average basket card changes: it no longer shares the cart icon withOrder count. -
In the same card, choose
Revenuein Apply settings to. In Back of the card text, type:**Revenue** for the period: {value}. Best month: {max}, monthly average: {avg}. Target: {target}, {progress} reached.Double asterisks make a word bold. The placeholders are replaced with the KPI's numbers:
{value}the value shown,{max}and{avg}the highest and the average of the months,{target}the target,{progress}the percentage reached. -
Back of the card: content per KPI card: in Apply settings to, choose
Revenue, then turn off Maximum and Average. The text already gives them: the back of theRevenuecard keeps the other key figures (change, target, target achievement, last period…). -
Flip card: Flip the card is already set to On click. Turn on Show the back (preview in edit mode): every back is shown; check the
Revenueone, then turn the setting off. -
Try it: click the
Revenuecard. It flips over and shows the text, then the key figures. Click again (or press Esc) to turn it back.
Expected result: four cards in a row, colored by their change, the Revenue card with its target bar (117%) and an explanatory back that appears on click. Every feature used is free: no watermark.
Tip: the back text can also come from a text measure placed in the Back of the card (text) field, at the same rank as its KPI. This is useful for a comment that changes with the filters (see the how-to guides).
Troubleshooting
| What you see | Likely cause | Fix |
|---|---|---|
| The target or the comparison shows on the wrong card | Matching is done by rank | Put the measures back in the same order in Values (one KPI per measure), Target and Comparison (previous year…), or set “Target” field number (0 = same rank, -1 = none) in Per-KPI settings |
| The change doesn't match the number shown | Without a Comparison (previous year…) field, the change compares the last two periods ("Dec 2025 vs Nov 2025"), while the number shown is the total | This is expected; to compare the total, add a prior-year measure to Comparison (previous year…) and set Comparison › Compare with to “Comparison” field |
| The trend axis shows years instead of months | Power BI used the automatic date hierarchy | In the visual's well, choose the Month column instead of Date Hierarchy |
| The periods are written in an unexpected format | The dates are not on the first of the month, or the column has a specific format | Type the format you want in Sparkline › Period format (empty = automatic), for example mmm yy |
| A setting changed every card | The Apply settings to list was set to All KPIs | Choose the measure you want before changing the setting |
| The icon chosen in Per-KPI settings › Icon doesn't show | A measure in the Icon (text measure) field at the same rank, or a text in Or symbol / emoji (replaces the icon), takes priority; or Icon › Show is off | Remove the measure or clear the symbol; turn on Icon › Show |
| The back doesn't show the text of the Back of the card (text) measure | A text typed for this KPI in Per-KPI settings › Back of the card text takes priority | Clear the text typed for this measure |
| The Back of the card: content per KPI card can't be found | It only appears when the cards flip | Set Flip › Flip the card to On click (or On hover) |
| A click flips the card instead of filtering the report (with One KPI per… (category)) | Flip the card is set to On click | Use Ctrl + click to filter, or choose On click on the ↻ icon |
| The "Plume Visuals · Premium preview" watermark appears | A ★ feature is selected without a key (shape, arrangement, ring target, column sparkline, animation, style…) | Go back to a free option or paste your key (see the shared basics) |
Key takeaways
- One measure = one KPI card; the target, the comparison, the back text and the icon are matched by rank.
- With a trend axis, the number shown is the total computed by the measure (exact, even for a rate); by default the change compares the last two periods.
- Per-KPI settings and Back of the card: content per KPI work as "general setting, then exceptions": check the item chosen in Apply settings to.
- The cards always fit in the visual: they shrink instead of scrolling.
- The back is written in Per-KPI settings › Back of the card text (with placeholders) or comes from a text measure; by default it appears on click.
Learn more
- KPI Plume how-to guides: recipes for common needs.
- 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.