Visuals/Pl. XIV

    Tornado

    The tornado chart that actually does sensitivity analysis

    Bars swing around your base case, the widest swing goes on top and each driver's assumptions sit at the bar ends. The same visual draws butterflies, population pyramids and diverging stacked bars, and the chart type follows your fields.

    Datasheet
    Status
    Available on Microsoft Marketplace
    Price
    $1.99 /user/mo · $19 /user/yr
    Licensing
    Per user, assigned in the Microsoft 365 admin center. Unlicensed viewers see the free tier, never a blocked visual.
    Data
    Computed inside Power BI. No external calls, no API keys, no telemetry.
    Visuals API
    5.11
    Accessibility
    Keyboard navigation, high-contrast mode, optional hatching so direction never relies on colour
    Languages
    English, Czech, German, Spanish, French
    Works in
    Power BI Desktop, Service, Embedded
    Pl. XIV  ·  Tornado  ·  the product spotrecorded from the shipped visual
    Sensitivity tornado chart in Power BI around a base NPV, drivers sorted by swing with input assumptions
    Pl. XIV  ·  Tornado  ·  Sensitivity tornado around the base NPV, sorted by swing, with inputs (over 5 drivers is premium).rendered from the shipped visual
    What it does

    SmartVisuals Tornado takes the output at each driver's low and high input plus the base case and draws a true sensitivity tornado: bars anchored at the base, sorted by swing, with the input assumptions and their units at the bar ends and an insight sentence naming the drivers that matter. Unlike two-measure butterfly visuals, it anchors the bars at your base case, and inverse or one-sided drivers are drawn correctly.

    Drop in two measures, or one measure split by a field, and the same visual becomes a centre-spine butterfly or a population pyramid; split by three or more values and it draws diverging stacked bars. Four themes, colours per category, cross-filtering, report-page tooltips, keyboard navigation and high contrast come free. Everything is computed inside Power BI and the visual makes no external calls.

    Search all visuals

    Free and premium

    Where the line is, exactly.

    Report authors see the full premium set in edit mode, so you can evaluate every feature on your own data before assigning a single licence. Unlicensed viewers always get a working chart.

    Free tierevery viewer
    • Sensitivity tornado with up to 5 driversBase line with label, swing sort, input assumptions with per-driver units, change vs base in value or %, swing column and a materiality threshold.
    • Colour that carries meaningColour by effect (worse or better than base, with a lower-is-better switch for costs) or by input (low or high), with optional hatching so direction never depends on colour alone.
    • Butterfly and population pyramid in fullTwo measures or one measure split by a field, category labels in the centre spine, % of grand total, of each side or of each row, winner emphasis and independent scales per side.
    • A pyramid that knows it is a pyramidAge bands split by Male / Female draw as a population pyramid on the first drop: oldest band on top, men on the left. The Pyramid sort does the same for any banded data.
    • Diverging stacked barsLosses left of zero, gains right, with a net marker, or survey answers with the first series on the left and a neutral split at zero.
    • Sorting, Top N and drill-downSort by swing, value, total, difference or name; Top N with Others; drill-down hierarchies on the category.
    • Native Power BI behaviourFour themes with their own personality, colours per category with conditional formatting, cross-filtering, tooltips and report-page tooltips, keyboard navigation, high contrast and five languages.
    Premium$1.99 /user/mo · first month free
    • More than 5 driversSensitivity analysis with every driver your model flexes. Without a licence, readers see the 5 widest drivers and a note, never a blocked chart.
    • Reference overlayLast quarter's analysis, prior year or budget drawn as an outline, tick or ghost bar behind the current one.
    • Small multiplesOne tornado or pyramid per project, plant or region, with a shared scale or each panel on its own.
    • Share-of-variance and cumulative columnsAnalytics columns beside the sensitivity tornado that show how much of the total variance each driver explains.
    • Butterfly difference columnThe difference and difference % between the two sides, row by row.

    How do you build a sensitivity tornado chart in Power BI?

    A sensitivity tornado answers one question: which assumptions move the result most? For each driver you need three numbers, the output at the driver's low input, the output at its high input and the base case. Map a driver field to Category and those three measures to Left / low case, Right / high case and Base case, and SmartVisuals Tornado draws the analysis: every bar swings around the base, the widest swing goes on top, and a labelled base line marks the starting point.

    Add the input assumptions and each bar end carries the value that produced it, with its own unit per driver (€620/t, 3 months, 7.5%). Every role is a measure, so what-if parameters and DAX scenarios drive the chart live as a slicer moves, and the visual writes the finding as a sentence such as "Annual volume and Ramp-up delay explain 58% of the NPV variance".

    Why do the bars start at the base case instead of zero?

    Because a sensitivity tornado is about change. Two-measure butterfly visuals draw both bars from zero, which shows two values side by side but not how far each driver pushes the result away from the plan. Anchored at the base case, the length of a bar is the swing, and the chart reads the way a finance or engineering team expects.

    The awkward drivers are drawn correctly too. An inverse driver, where a higher input lowers the output, and a driver whose low and high results both land on the same side of the base keep their true position. Colour by effect (worse or better than base, with a lower-is-better switch for cost outputs) or by input (low or high), and turn on hatching so direction never depends on colour alone. A materiality threshold hides drivers whose swing is below a percentage of the base, with a note saying so.

    Can the same visual draw a butterfly chart or a population pyramid?

    Yes, and the chart type follows your fields. Without a base case, two measures, or one measure split by a two-value field, become a butterfly with category labels in the centre spine, percentages of the grand total, of each side or of each row, winner emphasis and independent scales per side.

    Age bands split by Male / Female draw as a population pyramid on the first drop: oldest band on top, men on the left, the demographic convention. For any other banded data, pick the Pyramid sort. Workforce pyramids in HR analytics and win / loss butterflies in sales operations are both part of the free tier.

    Diverging stacked bars for gains, losses and survey answers

    Split a measure by a field with three or more values and the visual switches to diverging stacked bars: losses stack left of zero, gains right, with a net marker per row. For survey data, the first series go on the left and a neutral answer can be split at zero, so agreement and disagreement read from the centre out.

    Sorting works the same across all three chart types: by swing, value, total, difference or name, with Top N and an Others row, and drill-down hierarchies on the category.

    What is free, and what does the premium licence add?

    Butterflies, population pyramids, diverging stacked bars and a sensitivity tornado with up to 5 drivers are free, with every theme and cosmetic option. Premium is $1.99 per user per month or $19 per year through Microsoft Marketplace, with the first month free. It adds sensitivity analysis with more than 5 drivers, a reference overlay (last quarter's analysis, prior year or budget as an outline, tick or ghost bar), small multiples per project, plant or region, share-of-variance and cumulative columns, and the butterfly difference column.

    Every premium feature is fully unlocked while you edit a report, so you can evaluate it before buying, and a short note tells an unlicensed author how many drivers their readers will see. Viewers without a licence always see a working chart in the free tier: a sensitivity tornado shows its 5 widest drivers with a note. The visual is never blocked and never watermarked.

    Who uses a tornado chart?

    FP&A teams and controllers testing NPV and budget sensitivity, capex committees and project finance comparing investment cases, engineering and risk teams running one-way sensitivity, HR analytics drawing workforce pyramids, and sales operations reading win / loss by segment. Everything is computed inside Power BI; the visual makes no external calls.

    Use cases

    Where Tornado earns its place.

    NPV sensitivity for a capital investment case

    An FP&A or project finance team has the model output at each driver's low and high input. Map Driver to Category, NPV at low input to Left / low case, NPV at high input to Right / high case and Base NPV to Base case, then the input values to Low input and High input with a unit column in Input unit or format (set to First). The bars swing around the base NPV with the widest swing on top, each bar end shows the assumption behind it (€620/t, 12 months) and a sentence names the two drivers that explain most of the variance.

    One tornado per project in a portfolio review

    A capex committee comparing several investment cases keeps the same sensitivity fields and adds Project to Small multiples. Each project gets its own panel and, by default, its own scale, with a note reminding readers to compare bar lengths within a panel only. Small multiples are a premium feature; without a licence, readers see the first project with a note saying how many panels are not shown.

    Workforce age pyramid for HR analytics

    Map the age band to Category (sorted by an age-order column in the model), Headcount to Value (with Split by) and Gender to Split by. With numeric bands split by Male / Female, the default sort draws a population pyramid: oldest band on top, men on the left. Set Butterfly & pyramid > Show as percent to % of grand total to compare plants of different size; last year's headcount in Reference left / low draws an outline behind each bar (premium).

    Won vs lost revenue by product family

    Sales operations map Product family to Category, Lost to Left / low case and Won to Right / high case. Both bars grow out of a centre spine with the product names between them, and Chart > Sort by can order the rows by total, difference or size of difference. The difference column, showing the gap and the gap in percent per row, is premium.

    Revenue bridge drivers per region

    A controller with revenue movement split into churn, downsell, price effect, upsell and new customers maps Region to Category, the movement amount to Value (with Split by) and the movement type to Split by. With three or more values the visual draws diverging stacked bars: losses stack left of zero, gains right, and Data labels > Net marker and label shows the net per region. Chart > Sort by > Net puts the strongest region on top.

    Likert survey results

    Map the question to Category, the response count to Value (with Split by) and the answer to Split by, sorted from Strongly disagree to Strongly agree in the model. In the Diverging card, set Series on the left to 2 and turn on Split the next series at zero (neutral), so disagreement reads to the left, agreement to the right and the neutral answer sits across the centre.

    Getting started

    From empty canvas to first chart.

    1. 01

      For a sensitivity tornado, map a driver to Category and measures to Left / low case, Right / high case and Base case. Bars swing around the base, sorted by swing.

    2. 02

      Add Low, Base and High input measures and an Input unit to print each driver's assumptions at the bar ends.

    3. 03

      For a butterfly or pyramid, skip the base case and map two measures, or one measure with a two-value Split by field; three or more values give diverging stacked bars.

    4. 04

      Pick a theme, colour mode and sort in the format pane. Premium features preview in full while you edit.

    Get Tornado

    Two ways in.

    Installation instructions for both paths are on the download page.

    Microsoft Marketplace (recommended)

    Reviewed by Microsoft, updates automatically, licences assigned in the Microsoft 365 admin center.

    Open Microsoft Marketplace
    Accessibility

    Readable and usable for everyone.

    Tab
    Moves into the chart. The whole chart is one tab stop, and focus stays on the same row when the chart redraws.
    Up / Down arrow
    Moves to the previous or next row.
    Home / End
    Jumps to the first or the last row.
    Page Up / Page Down
    Moves ten rows up or down.
    Right / Left arrow
    In a butterfly or diverging chart, steps into the row's bars or segments and moves between them; Up, Down or Esc returns to the row. In a sensitivity tornado, moves to the next or previous row.
    Enter or Space
    Selects the focused row, bar or segment and cross-filters the page. Hold Ctrl or Shift to add it to the selection.
    Esc
    On a row, clears the selection.
    Shift+F10 or the context-menu key
    Opens the Power BI context menu for the focused row, bar or segment.
    • Screen readers

      The chart is announced as a tornado chart with its number of rows and a short hint on the keys to use. Each row is a list item that reads its label and values: in a sensitivity tornado the low and high results with the input behind each and the swing; in a butterfly the two sides with their field names; in diverging bars the net. Bars and segments that can be selected are buttons that read their own series and value.

    • Not colour alone

      In a sensitivity tornado, Bars > Accessible hatching marks the worse side of each driver (or the high input when colouring by input) with a diagonal hatch, and the legend shows the same pattern. A sensitivity bar's side of the base line also tells whether the driver moves the result up or down.

    • High contrast

      In Windows high contrast mode the chart uses only the colours of the contrast theme. Bars become outlines, custom colours and row styles are set aside, and sides are told apart by line style: the worse side or high input of a sensitivity tornado and the right side of a butterfly are dashed, and each series of a diverging chart gets its own dash pattern.

    • Context menu

      Right-click, Shift+F10 or the context-menu key opens the Power BI context menu on a row, bar or segment, and right-clicking the empty background opens it for the visual.

    • Languages

      The format pane, notes, tooltips and keyboard hints are available in English, Czech, German, Spanish and French.

    Release notes

    What changed, and when.

    Updates install automatically from Microsoft Marketplace. Full history.

    1. 1.0.0.0

      First release on Microsoft Marketplace.

      • Sensitivity tornado, butterfly chart, population pyramid and diverging stacked bars.
      • More than five drivers, reference overlay and share-of-variance columns (premium).
    Questions

    Asked before you did.

    More questions? See support or write to hello@smartvisuals.io.

    A butterfly puts two values back to back from a centre line. A sensitivity tornado anchors each bar at the base case, so the bar shows how far a driver's low and high inputs move the result, and sorts the drivers by that swing. This visual draws both, and picks the type from the fields you map.

    For a sensitivity tornado: a driver field in Category and three measures, the output at the driver's low input in Left / low case, the output at its high input in Right / high case and the base output in Base case. Binding Base case is what turns the tornado on; Low input, High input, Base input and Input unit or format are optional and print each driver's assumptions at the bar ends. For a butterfly or pyramid, leave Base case empty and map two measures to Left / low case and Right / high case, or one measure to Value (with Split by) and a two-value field to Split by. A Split by field with three or more values draws diverging stacked bars.

    Yes. Every role is a measure, so what-if parameters and DAX scenarios update the chart live. Columns work too, through the implicit aggregation.

    Free: butterflies, population pyramids, diverging stacked bars and a sensitivity tornado with up to 5 drivers, with input assumptions, the insight sentence, sorting, Top N, every theme and cosmetic option, keyboard access and high contrast. Premium: sensitivity with more than 5 drivers, the reference overlay (outline, tick or ghost bar), small multiples, the share-of-variance and cumulative columns, and the butterfly difference column.

    Never. Unlicensed viewers always see a working chart in the free tier: a sensitivity tornado shows its 5 widest drivers with a note, small multiples of a sensitivity analysis show the first panel with a note, small-multiple butterflies and diverging bars are combined into one chart, and the reference overlay and difference column are left out. The visual never blocks a report and never shows a watermark.

    Yes. Every premium feature is fully unlocked in edit mode, and the licence itself starts with a free first month. After that it is $1.99 per user per month or $19 per year through Microsoft Marketplace.

    Up to 1,000 categories, a category hierarchy of up to 3 levels for drill-down, up to 30 values in Split by and up to 5 extra measures in Tooltips. When Power BI reduces the data, a note under the chart says so.

    Yes. The chart is one tab stop: Up and Down move between rows, Right and Left step into a butterfly or diverging row's bars, Enter or Space selects, Esc clears and Shift+F10 opens the context menu. Screen readers hear each row's label and values, including the input assumptions and the swing in a sensitivity tornado. Optional hatching marks the worse side so direction never depends on colour, and in Windows high contrast mode sides are told apart by dashed outlines.

    English, Czech, German, Spanish and French, for the format pane, notes, tooltips and keyboard hints. Power BI picks the language from the report or user settings. Your own field and driver names are shown as they are in the model.

    Yes. Reading view in the Power BI Service works like Power BI Desktop: licensed viewers see the full chart, others see the free tier. Where Power BI tells the visual that licences cannot be checked, for example in Power BI Embedded, Publish to web or Power BI Report Server, the visual shows the full premium chart rather than lock anyone out.

    No. The visual makes no external calls, requests no privileges, sends no telemetry and loads no web fonts; every calculation runs inside your report.

    Use the Report a bug block on the support page (smartvisuals.io/support) or email hello@smartvisuals.io. A screenshot, the fields you mapped and what you expected to see help most. Sample data is welcome but never required.
    Troubleshooting

    When it does not look right.

    Found a bug or missing something? Post it on the requests board or vote for what others asked; the developer answers within two business days.

    My tornado bars start at zero, like a butterfly, instead of swinging around the base case.
    The sensitivity tornado turns on when a measure is in Base case together with Left / low case or Right / high case. If the scenario (Low / High) is a column in Split by with one measure in Value, the visual draws a butterfly, because that is what the fields describe. Write one measure per case instead, for example CALCULATE over the output with the scenario column filtered to Low, and another filtered to High, and put them in Left / low case and Right / high case. If you have no base measure, Format > Sensitivity > Base from this number and Base value set one; without any base the bars span low to high and a note says so.
    A note says some drivers are not shown because they have no low or high value, or a blank Base case.
    A driver is left out when both its low and high outputs are blank, or when Base case is bound but returns blank for that driver while other drivers have a base. Check the measures for that driver in a table visual. A driver with only one of the two outputs is still drawn: the missing end is treated as no change from the base and shows as a dash in the tooltip. If your base measure is blank for some drivers, make it ignore the driver filter (REMOVEFILTERS on the driver column) or use Format > Sensitivity > Base from this number.
    The base line has turned into short ticks on each row and the label reads "Base varies by row".
    Your Base case measure returns a different number for different drivers, so there is no single base to draw a line at, and each bar gets its own base tick. In a one-way sensitivity analysis the base should be the same for every driver. Change the measure so it ignores the driver (for example CALCULATE with REMOVEFILTERS on the driver column), or turn on Format > Sensitivity > Base from this number and type the base value.
    The input assumptions at the bar ends show raw numbers such as 0.075 instead of 7.5%.
    Each driver can have its own unit. Add a column or measure to Input unit or format; for a text column, set the aggregation to First. A unit label such as €/t, CZK/h or months is printed next to the number, and a format string such as 0.0% or €#,0 is applied as a format. Without a unit, the input measure's own format from the model is used. Position, font size and the base input are set in the Input assumptions card, which appears once Low input, High input or Base input is bound.
    Some drivers are missing even though I have a licence.
    Two settings hide drivers on purpose: Sensitivity > Hide swings below (% of base) drops drivers whose swing is smaller than that share of the base, and Chart > Show top N keeps only the N widest swings. When either hides something, a note under the chart says how many drivers are not shown and the largest swing among them. Set both to 0 to see every driver. Also check the notes for a data reduction message: Power BI sends the visual at most 1,000 categories.
    Readers see only 5 drivers, or the reference outline, small multiples and analytics columns are gone in reading view.
    Sensitivity with more than 5 drivers, the reference overlay, small multiples, the share-of-variance and cumulative columns and the butterfly difference column are premium. Every premium feature is fully unlocked while you edit, and an unlicensed author sees a muted note: "Readers without a licence see the 5 widest drivers." Readers without a licence get the free tier: the 5 widest drivers with a note, the first small-multiple panel of a sensitivity analysis, and small-multiple butterflies or diverging bars combined into one chart. Nothing is blocked or watermarked. To give a reader the full chart, assign them a licence in the Microsoft 365 admin center under Billing > Licenses.
    My population pyramid is upside down, or the age bands are in the wrong order.
    Chart > Sort by is Auto by default, and Auto draws a pyramid only when the category labels start with a number (18-24, 65+) and Split by has exactly two values recognised as male and female. Otherwise it keeps the data order. Choose Sort by > Pyramid (oldest on top) to force it. The pyramid follows the order of the bands in your model, so sort the age band column by an age-order column; otherwise 5-9 sorts after 40-49 and the pyramid inherits that order. Chart > Swap sides moves men to the right.
    My custom bar colours are ignored and the bars are drawn with dashes.
    Windows high-contrast mode is on. The visual then uses the colours of the high-contrast theme only, ignores custom colours and row styles, and in a sensitivity tornado marks the worse side (or the high input) with dashes so direction never depends on colour; the legend shows the same dash. Your colours come back when high contrast is turned off. Keyboard use works in both modes: Tab into the chart, move between rows with the arrow keys, press Enter to select and Escape to clear the selection.
    For developers & AI agents

    Add this visual programmatically.

    Use the GUID and data roles below to add Tornado to a Power BI report via PBIR or the Report Authoring agent. Full catalog (JSON)

    Visual GUID
    smartVisualsTornadoC3E81B5F2A9D4E7B8F16A0D4C92E57B1
    RoleDisplay nameKind
    categoryCategoryGrouping
    leftLeft / low caseMeasure
    rightRight / high caseMeasure
    baseBase caseMeasure
    valueValue (with Split by)Measure
    seriesSplit byGrouping
    lowInputLow inputMeasure
    highInputHigh inputMeasure
    baseInputBase inputMeasure
    inputUnitInput unit or formatMeasure
    refLeftReference left / lowMeasure
    refRightReference right / highMeasure
    groupSmall multiplesGrouping
    tooltipsTooltipsMeasure
    Missing something?

    Tell us what is missing.

    A feature you need, a bug you hit, a visual that does not exist yet. Every message reaches the person who builds these visuals, and feature requests shape what ships next. We also build visuals to order.

    Also in the family