# SmartVisuals Combo Chart for Power BI

> Power BI combo chart: clustered, stacked or 100 % columns with lines on zero-aligned axes, the plan as a tick on every column, IBCS notation and variance bars.

- Page: https://www.smartvisuals.io/visuals/combo-chart
- Fields and settings: https://www.smartvisuals.io/visuals/combo-chart/settings
- Microsoft Marketplace: https://marketplace.microsoft.com/en-us/product/smartvisuals.smartvisuals-combo-chart?tab=overview
- Package: https://www.smartvisuals.io/downloads/smartvisuals-combo-chart-1.0.0.0.pbiviz
- Sample report (zipped .pbip): https://www.smartvisuals.io/samples/smartvisuals-combo-chart-sample-1.0.0.0.zip
- Price: Free tier for every viewer; premium $1.99 per user per month or $19 per user per year on Microsoft Marketplace, with a 30-day free trial. Premium works in edit mode without a licence; unlicensed viewers see the free tier, never a blocked visual.
- Certified by Microsoft: no
- Version: 1.0.0.0
- GUID (visualType and publicCustomVisuals): `smartvisualsComboChart1E65BD9F256A5D335E40434B5329EC86`

## What is free

- **Clustered, stacked or 100 % columns**: One column series per measure or per legend value; zero values hidden, so there are no empty stubs.
- **Lines on one or two axes**: Lines on the left or right axis, zero-aligned by default; straight, smooth or step.
- **The plan as a tick on each column**: Target draws a tick on every column or a line; it takes any measure: plan, budget or target.
- **IBCS scenario notation**: Actuals solid, plan and forecast periods outlined and hatched, the previous year as a grey column, by role.
- **Conditional formatting (fx) and dynamic format strings**: Colour any column by rule; dynamic format strings are honoured per value in labels and tooltips.
- **Trend, reference lines and bands, zoom, presets**: A linear trend line, reference lines and bands, a range navigator and style presets.
- **Tooltips, cross-filter and drilldown**: Tooltips with the change to the previous point and your Tooltips fields, report page tooltips, cross-filter, Ctrl multi-select, cross-highlight (the highlighted value drawn over the whole column), drilldown, bookmarks and the context menu.
- **Labels, legend, themes and localization**: Data labels, legend, axis titles, four themes, and the visual localized in 20 languages.
- **Accessibility**: One keyboard tab stop with arrow keys between columns and series, Enter or Space to filter, Escape to clear, a screen-reader live region, dash and marker shape per series, Windows high contrast, Reduce Motion, focus outline and minimum text size settings.
- **Never blocked**: Readers without a licence always see the free chart: no watermark, no broken report.

## What premium adds

- **Variance to plan**: Difference bars under the chart, good and bad by sign and colour, labelled; or against the previous year from the dates or any measure.
- **Forecasts with prediction intervals**: Picking up where the columns end: exponential smoothing chosen by AICc, with 80 and 95 % bands.
- **Time-savers**: Show values as year to date, running total, index or % change; Top N + Others; trend types beyond linear with the equation and R²; reference lines for every series; the drawn smart caption; annotations from a measure.
- **Trend test, more axes, small multiples**: Mann-Kendall trend test, value axes 3 and 4, and small multiples.

## Fields

| Field | Internal name | Takes | Needed | What it is for |
| --- | --- | --- | --- | --- |
| Axis (date) | `axis` | Column | Optional | The time axis: a date, a date hierarchy level, a number or text periods |
| Legend | `legend` | Column | Optional | One series per value (one row per value in Sparklines) |
| Values | `values` | Measure | Optional | Measures drawn as lines, areas or sparklines |
| Column values | `columns` | Measure | Optional | Measures drawn as columns |
| Secondary axis values | `secondary` | Measure | Optional | Measures drawn on the right-hand axis |
| Target | `target` | Measure | Optional | Plan, budget or target: a dashed series and the base for variances |
| Comparison | `comparison` | Measure | Optional | Previous year or any comparison series from the model |
| Annotation | `annotation` | Measure | Optional | Text measure: a non-blank value pins a note on that period |
| Small multiples | `facet` | Column | Optional | One panel per value (premium) |
| Tooltips | `tooltips` | Measure | Optional | Extra fields in tooltips |

## Format pane

Each card is a key under `visual.objects` in a PBIR visual.json; each setting is a property of it. Toggles take `true`/`false`, choices and text a value in single quotes (`'auto'`), numbers a `D` suffix (`12D`).

### Presets and Templates (`presets`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Apply Preset | `preset` | `none` ((choose to apply)), `executive` (Executive), `finance` (Finance (IBCS)), `trading` (Trading), `monitoring` (Monitoring), `print` (Print) |
| Style Template (copy or paste) | `template` | Text |

### Lines (`lines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Line Shape | `interpolation` | `straight` (Straight), `smooth` (Smooth (never overshoots)), `stepAfter` (Step (after)), `stepBefore` (Step (before)), `stepMiddle` (Step (middle)) |
| Line Width (0 = theme) | `width` | Number |
| Missing Values | `missing` | `gap` (Leave a gap), `zero` (Treat as zero), `connect` (Connect across), `interpolate` (Interpolate), `previous` (Repeat previous value) |
| Show Values As | `showAs` | `value` (Value), `cumulative` (Running total), `ytd` (Year to date), `index` (Index (first = 100)), `pctChange` (% change vs previous), `movingSum` (Moving sum) |
| Fiscal Year Starts In Month | `fiscalStart` | Number |
| Moving Sum Periods | `window` | Number |
| Show Top N Series (0 = all) | `topN` | Number |
| Other Series | `others` | `context` (Thin grey context lines), `sum` (Sum as "Others"), `hide` (Hide) |

### Columns (`columns`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Layout | `layout` | `clustered` (Clustered), `stacked` (Stacked), `percent` (100 % stacked) |
| Column Width (%) | `width` | Number |
| Corner Radius (-1 = theme) | `cornerRadius` | Number |
| Hide Zero Values | `hideZeros` | On / off |
| Target As | `target` | `tick` (Tick on each column), `line` (Line) |
| IBCS Scenario Notation | `ibcs` | On / off |

### Markers (`markers`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Markers | `show` | `none` (None), `all` (All points), `last` (Last point), `minmax` (Minimum and maximum), `firstlast` (First and last) |
| Shape | `shape` | `theme` (From theme), `circle` (Circle), `square` (Square), `diamond` (Diamond), `triangle` (Triangle) |
| Size | `size` | Number |

### Data Labels (`labels`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | `none` (None), `all` (All points), `last` (Last point), `minmax` (Minimum and maximum), `firstlast` (First and last) |
| Label Every Nth Point | `every` | Number |
| Decimals (-1 = auto) | `decimals` | Number |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |
| Background Pill | `background` | On / off |

### End-of-Line Labels (`endLabels`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Content | `content` | `name` (Series name), `value` (Last value), `both` (Name and value) |
| Font Size | `fontSize` | Number |
| Up To N Series (more: legend) | `maxSeries` | Number |

### Highlights (`highlights`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Mark Maximum | `max` | On / off |
| Mark Minimum | `min` | On / off |
| Mark Peaks and Troughs | `peaks` | On / off |
| Peak Prominence (% of range) | `prominence` | Number |

### Threshold Colouring (`threshold`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Colour Above / Below | `show` | On / off |
| Threshold | `source` | `value` (A value), `target` (The Target field) |
| Value | `value` | Number |
| Above Colour | `aboveColor` | Colour |
| Below Colour | `belowColor` | Colour |

### Actual and Forecast Styling (`actual`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Actuals End At | `through` | `none` (No styling), `auto` (Last period with an actual), `date` (A date) |
| Date (yyyy-mm-dd) | `date` | Text |
| Vertical Rule | `rule` | On / off |
| Rule Label | `ruleLabel` | Text |

### Trend Line (`trend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Type | `type` | `none` (None), `linear` (Linear), `poly2` (Polynomial (2nd order)), `poly3` (Polynomial (3rd order)), `poly4` (Polynomial (4th order)), `exponential` (Exponential), `logarithmic` (Logarithmic), `power` (Power), `loess` (LOESS (smooth)), `sma` (Simple moving average), `ema` (Exponential moving average), `wma` (Weighted moving average) |
| Moving Average Periods | `window` | Number |
| LOESS Span (%) | `span` | Number |
| For Every Series | `allSeries` | On / off |
| Line Style | `dash` | `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted), `dashdot` (Dash-dot) |
| Equation and R² in Legend | `showEquation` | On / off |

### Forecast (`forecast`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show Forecast | `show` | On / off |
| Periods Ahead (0 = one season) | `horizon` | Number |
| Or Forecast Through (yyyy-mm-dd) | `through` | Text |
| Model | `model` | `auto` (Automatic (lowest AICc)), `ANN` (Simple exponential smoothing), `AAN` (Holt linear trend), `AAdN` (Damped trend), `ANA` (Seasonal, no trend), `AAA` (Holt-Winters additive), `AAdA` (Holt-Winters damped) |
| Season Length (0 = from dates) | `season` | Number |
| Prediction Interval | `level` | `none` (None), `80` (80 %), `95` (95 %), `both` (80 % and 95 %) |
| Mark Anomalies | `anomalies` | On / off |
| For Every Series | `allSeries` | On / off |

### Compare (`compare`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Compare With | `base` | `none` (Nothing), `previousYear` (Same period last year (from the data)), `target` (The Target field), `comparison` (The Comparison field) |
| Show the Comparison Line | `ghost` | On / off |
| Variance Band | `varianceBand` | On / off |
| Variance Bars | `varianceBars` | `off` (Off), `absolute` (Absolute (Δ)), `relative` (Relative (Δ %)) |
| Higher Is Better | `higherIsBetter` | On / off |

### Trend Test (`trendTest`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Test for a Trend (Mann-Kendall) | `show` | On / off |
| Significance Level | `alpha` | `0.1` (10 %), `0.05` (5 %), `0.01` (1 %) |

### X-Axis (`xAxis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Title | `showTitle` | On / off |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |
| Vertical Gridlines | `grid` | On / off |

### Y-Axis (`yAxis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Title | `showTitle` | On / off |
| Minimum (blank = auto) | `min` | Text |
| Maximum (blank = auto) | `max` | Text |
| Start At Zero | `zero` | `auto` (Automatic (columns and areas)), `always` (Always), `never` (Never) |
| Logarithmic Scale | `log` | On / off |
| Decimals (-1 = auto) | `decimals` | Number |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |
| Align Zero Across Axes | `align` | On / off |

### Secondary Y-Axes (`y2Axis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Title | `showTitle` | On / off |
| Minimum (blank = auto) | `min` | Text |
| Maximum (blank = auto) | `max` | Text |
| Logarithmic Scale | `log` | On / off |
| Colour Each Axis Like Its Series | `colorByAxis` | On / off |

### Gridlines (`gridlines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `theme` (From theme), `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted), `bands` (Zebra bands), `none` (None) |
| Colour | `color` | Colour |

### Legend (`legend`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom), `right` (Right) |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Reference Lines (`refLines`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Line 1 | `line1` | `none` (None), `value` (A value), `average` (Average), `median` (Median), `percentile` (Percentile), `min` (Minimum), `max` (Maximum), `target` (Target field (last value)) |
| Line 1 Value | `line1Value` | Number |
| Line 1 Percentile | `line1Pct` | Number |
| Line 1 Label | `line1Label` | Text |
| Line 1 Colour | `line1Color` | Colour |
| Line 2 | `line2` | `none` (None), `value` (A value), `average` (Average), `median` (Median), `percentile` (Percentile), `min` (Minimum), `max` (Maximum), `target` (Target field (last value)) |
| Line 2 Value | `line2Value` | Number |
| Line 2 Percentile | `line2Pct` | Number |
| Line 2 Label | `line2Label` | Text |
| Line 2 Colour | `line2Color` | Colour |
| For Every Series | `perSeries` | On / off |
| Vertical Line | `vertical` | `none` (None), `today` (Today), `date` (A date) |
| Vertical Line Date (yyyy-mm-dd) | `verticalDate` | Text |
| Vertical Line Label | `verticalLabel` | Text |

### Reference Bands (`refBands`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Value Band From | `valueFrom` | Text |
| Value Band To | `valueTo` | Text |
| Value Band Label | `valueLabel` | Text |
| Value Band Colour | `valueColor` | Colour |
| Period From (yyyy-mm-dd) | `timeFrom` | Text |
| Period To (yyyy-mm-dd) | `timeTo` | Text |
| Period Label | `timeLabel` | Text |
| Period Colour | `timeColor` | Colour |

### Annotations (`annotations`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Style | `style` | `pin` (Pin with label), `flag` (Flag on the axis), `numbered` (Numbered, listed in the footnote) |
| Shade Until the Next Annotation | `shadeUntilNext` | On / off |
| Font Size | `fontSize` | Number |
| Colour | `color` | Colour |

### Zoom (`navigator`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Range Navigator | `show` | On / off |
| Navigator Height | `height` | Number |
| Ctrl + Wheel Zooms, Drag Pans | `wheel` | On / off |

### Small Multiples (`smallMultiples`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Columns (0 = auto) | `columns` | Number |
| Shared Y-Axis | `sharedY` | On / off |

### Smart Caption (`caption`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Position | `position` | `top` (Top), `bottom` (Bottom) |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Footnote (`footnote`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Show | `show` | On / off |
| Source | `source` | Text |
| State the Methods | `showMethod` | On / off |
| Font Size | `fontSize` | Number |
| Text Colour | `color` | Colour |

### Accessibility (`accessibility`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Distinguish Series Without Colour | `distinguish` | On / off |
| Focus Outline Colour | `focusColor` | Colour |
| Focus Outline Width | `focusWidth` | Number |
| Minimum Text Size (0 = off) | `minFontSize` | Number |

### Theme (`theme`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Theme | `selectedTheme` | `smartvisuals` (SmartVisuals), `dark` (Dark), `clean` (Clean (White)), `slate` (Slate) |
| Font | `font` | `inter` (Inter), `segoe` (Segoe UI), `arial` (Arial), `georgia` (Georgia) |
| Transparent Background | `transparentBg` | On / off |

### Series Colours (`seriesColors`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Colour | `fill` | Colour |

### Series Axes (`seriesAxis`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Axis | `axis` | `1` (Axis 1 (left)), `2` (Axis 2 (right)), `3` (Axis 3 (left, outer)), `4` (Axis 4 (right, outer)) |

### Series Line Styles (`seriesStyle`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Line Style | `dash` | `solid` (Solid), `dashed` (Dashed), `dotted` (Dotted), `dashdot` (Dash-dot) |

### Data Colours (`dataPoint`)

| Setting | Internal name | Type or options |
| --- | --- | --- |
| Colour | `fill` | Colour |
