Product Documentation

Select a Product:

Find Text:
Submit a question:

Not seeing an answer to a question you might have? You can ask it here and we'll try to update the documentation to address it. If you're making a feature request or reporting a problem, please create a support item for it, instead!


LLM AI Charts

Purpose

The LLM AI Charts visual harnesses the power of Large Language Models to generate chart rendering code which is combined with your data and executed. This enables the presentation of dozens of possible chart types, depending on the characteristics of your data. You can use our Azure OpenAI services with zero setup on your part - or you can use your own LL model which is deployed in Azure AI foundry. You can choose how much or little data is shared with the LLM, to address privacy questions. You can make adjustments to the generated output using natural language prompts.

Data Bucket

The data requirements for the LLM AI Charts visual include 3 bucket fields, listed here:

Field Type Description
Values Any One or more fields from the semantic model. Taken together with any Group by fields, these form the data frame the chart is built from, and they set its granularity: each unique combination of these field values becomes one row. Despite the name, fields here can be categorical or continuous (text, dates, or numbers).
Measures Any Zero, one or more DAX measures. Unlike Values and Group by, measures do not affect granularity: each measure is evaluated at the grain set by your Values and Group by fields — one value per row of that combination (the most detailed level those fields define).
Group by Any Optional. One to three fields that define the primary grouping (series / breakdown) for the chart. Together with Values, they help set the data frame's granularity, and they become its leading hierarchy levels — enabling group-level highlighting, drill-through, and tooltips.

Settings

Data and Interaction
Field Default Description
Identifier Optionally provide a label that will be used to uniquely identify this instance of the visual across all reports. This can be used to 'share' rendering logic in different dashboards (when using the same data fields).
Version Number Specify the version number of the code that was generated for this visual. This lets you revert to earlier renderings. Generating new renderings will increment the version number. Set to 0 to force a fresh rebuild.
Privacy Level +Include Column Detailed Stats Controls how much data is shared with the back-end service. Sharing more information can help build more meaningful visualizations. 'Detailed Stats' is the default, where per-column statistics (e.g. the mean) are shared. At 'Detailed Stats' and above, two narrow categories of actual text values are also shared verbatim — to pin correct axis order and stop the model guessing labels it cannot see: (1) recognized ordinal labels (weekday, month, quarter, and survey scales like Likert); and (2) short, low-cardinality category codes — either common generic labels (clothing sizes S/M/L/XL, days, months, Y/N) or alphanumeric codes with at most one letter plus a digit (e.g. 'Q1', 'J-01'), capped at 15 distinct values. All other text values stay obfuscated. Below 'Detailed Stats', NO actual text values are shared. 'Sample Data' additionally sends a few obfuscated sample rows.
Reasoning Mode Leave to visual How many LLM passes are used. More passes cost more credits but usually improve results. 'Leave to visual' (default) picks a mode by heuristic. 'Code pass only' generates the chart in a single pass - fastest and cheapest, with no chart-selection review. 'Pre-validate pass' adds a validator that picks the most suitable chart before code is written. 'Pre-and-post validate pass' adds both that validator and a post-generation proofread, for the highest quality. 'Code and post-validate pass' skips the validator (the visual's own engine picks a valid chart) and runs only the proofread. (in 2.0)
Model Temperature 30 For models that support it, controls how creative versus deterministic the generated code is. Scale is 1-100; 100 means the most creativity the selected model supports (e.g. 2.0 for OpenAI/DeepSeek chat models, 1.0 for Anthropic Claude). 50 is the model's own default temperature. 1 is highly deterministic (greedy decoding). Lower values produce more reproducible but less varied chart designs; higher values produce more creative but less predictable output. On retry after a code-generation error, the server automatically reduces temperature for better instruction adherence.
Change Creates New On When enabled (default), changing the data fields or a generation-affecting setting automatically creates a new version. When disabled, the current chart is kept until you rebuild manually (set 'Version Number' to 0 or click the rebuild button).
Field Descriptions You can optionally provide a description for one or more fields in your data source. This can help provide context for better code generation. You can provide a description for each field on sequential lines, or prefix each line with 'field name:' to name specific fields (matching the display names in the data well). Limit: 500 characters total across all descriptions for licensed accounts; ignored entirely for freemium requests. (Bring-Your-Own-Key accounts have no limit.) Longer text is truncated server-side.
Commentary You can optionally provide an explanation of the data, constraints, and any other relevant information. Limit: 500 characters for licensed accounts; ignored entirely for freemium requests. (Bring-Your-Own-Key accounts have no limit.) Longer text is truncated server-side.
Favor General Type N/A Steers the engine toward a family of chart types. 'Traditional' favors familiar charts (bar, column, line, pie, scatter); 'Non-traditional' favors richer forms (treemap, sunburst, Sankey, chord, heatmap, etc.). 'N/A' (default) leaves the choice to the engine. Note: choosing 'Traditional' also turns off the 'Chart Variety' nudge, since the two work against each other.
Allow Generated Measures Leave to Visual Whether the LLM is encouraged to invent derived measures (ratios, z-scores, period-over-period change, etc.) when picking a chart. 'Yes' tells the LLM to always propose 2-4 derived measures and refuse plain bar/line charts of raw values. 'No' suppresses derived-measure generation entirely — the chart reflects raw columns only. 'Leave to Visual' (default) lets the server roll a die (currently 90% yes / 10% no) so most generations get the richer treatment while occasional runs surface a baseline view.
Industry Context N/A Optional — tells the model what industry this data belongs to, so it interprets your columns through the right lens (e.g. a 'spend' column in Logistics is freight/fuel, not ad spend). This helps it infer genuinely valid domain measures AND avoid coining ones the data doesn't support. 'N/A' (default) leaves the model to infer context from the column names alone.
Favor Data Point Values N/A Whether to print data labels - the numeric value drawn on each bar, point, or slice. 'Yes' asks for them, 'No' suppresses them, 'N/A' (default) leaves the choice to the engine (which may omit them when marks are too dense to stay legible).
Title Text Leave to Visual Whether the generated chart should render its own title. 'Leave to Visual' lets the visual decide based on viewport size and a randomized preference (small viewports skip the title; otherwise the title is included on roughly 1-in-4 generations). 'Include' forces a chart title. 'Exclude' tells the LLM not to render one — typically because the report already shows a title outside the chart.
Legend Placement Auto Where the chart legend (if any) should be drawn. 'Auto' places the legend outside the plot area when the viewport is wide enough (≥ 500 px) and leaves it to the renderer otherwise — and for chart families that already name everything inline (flow/Sankey, whose nodes are labelled), Auto may omit the standalone legend entirely. 'Outside' forces the legend into the chart margin (right or bottom) for maximum plot real estate. 'Inside' keeps it inside the plot area where overlap with the data is minimized. 'None' tells the model to OMIT any standalone legend and rely on the chart's own labels. Single-series charts get no legend regardless of this setting.
Favor Limit To N/A Suggests filtering to a subset before charting: 'Latest' (most recent period), 'Top' / 'Bottom' (highest / lowest by the measure), 'Most common', or 'Outliers'. Use 'Favor Limit Count' to cap how many items are kept, and 'Allow Group to Others' to choose whether the remainder is bucketed into 'Others' or dropped. 'N/A' (default) leaves the choice to the engine.
Favor Limit Count Allows suggesting a limit for the number of groups, categories, etc. (blank or 0 = no limit implied / left to LLM)
Chart Variety Probability (0–1) that the engine deliberately favors a less conventional — but still semantically sound — chart instead of the single most obvious one for your data. Higher = more variety across regenerations. Blank = use the server default. Correctness always wins: if only the obvious chart can represent the data honestly, it is kept. Ignored when you've forced a specific chart type or set 'Favor General Type' to 'Traditional'.
Favor Overlay Leave to Visual Strongly suggests adding the chosen analytical overlay so you get it without asking. The engine still applies it only where it fits the chart + data (and may add any measures it needs). 'Leave to Visual' lets the engine decide.
Compactness Leave to visual Controls how aggressively the LLM aggregates high-cardinality columns before placing them on a chart axis. \
Group to Others Label Optional — RENAMES the 'Others' bucket (default name is 'Other'). Grouping the remainder is controlled by the 'Allow Group to Others' toggle, not by this field.
Allow Group to Others On When ON (default), limiting (Favor Limit Count / Favor Limit To) groups the remaining values into an 'Others' bucket so nothing is dropped. When OFF, the remainder is dropped — a 'leaderboard' showing only the limited set.
Favor Date Summary N/A Suggests the time grain to roll dates up to before charting (Day, Week, Month, Quarter, Year, Decade). 'N/A' (default) leaves the choice to the engine based on the date range.
No Data Text When there is no data available, this text can be shown in place of the chart with no data present.
Retry Count 2 Controls if / how many retries may be attempted if the generated code fails to render due to a client-side error. You will incur credit usage for retries, but larger values increase your chance of successful rendering. '0' disables retries.
Maximum Rows 250000 No more than this number of rows will be loaded for analysis and rendering. (Larger numbers can have negative performance implications.)
Execution Timeout (seconds) 120 If the client-side rendering takes longer than this number of seconds, it will automatically be canceled.
Allow Generate in View Mode Off When enabled, report users can choose to invoke generation of new layouts, at run-time, via the generate button. These will not be saved.
Click Shows Summary On When enabled, clicking on the generated image shows the summary (with any enabled buttons).
Save Thumbnails Off When enabled, initial renderings of versions can be saved at bizintelligencechampions.com, to be used as thumbnail images.
Use Default Context Menus Off When enabled, context menus will be the browser default as opposed to the Power BI context menu. This gives you the option to use browser menu features (eg. copy image).
Allow Tooltips On When enabled (default), hovering a mark shows a tooltip. Use 'Tooltip Source' to choose between the visual's data tooltip and the chart library's native tooltip. Turn off to suppress hover tooltips entirely.
Tooltip Source Auto (default) Which tooltip shows on hover. 'Auto' (default) uses the chart library's own tooltip for Plotly (purpose-built, shows true aggregates) and the visual's tooltip for D3 (D3 charts usually don't draw their own). 'Visual' always uses the visual's 'Data sample' tooltip, integrated with Power BI (for Plotly it suppresses the library's native tooltip to avoid a double tooltip). 'Chart' always uses the chart library's native tooltip and shows no visual tooltip (a D3 chart may then show none if the generated code didn't draw one).
Show Plotly Toolbar On Applies only to Plotly interactive renders. When enabled, Plotly's toolbar appears on hover in the top-right corner of the chart, giving users zoom, pan, box-select, lasso-select, autoscale, and reset-axes tools. When disabled, the toolbar is hidden and drag gestures still zoom (single-click cross-filter is unaffected either way).
Plotly Legend Click Behavior Cross-filter (default) Controls what happens when a user clicks a legend swatch or label on a Plotly-rendered chart. 'Cross-filter' (default) treats the click as a Power BI selection — every row in that category becomes the active filter, dimming non-selected marks here and cross-filtering other visuals on the page (Ctrl/Shift+click accumulates). 'Hide/show trace (Plotly default)' restores Plotly's native behavior of toggling that trace's visibility within this visual only — no cross-filter is sent. 'Disabled' makes legend clicks do nothing. D3-rendered charts ignore this setting (D3 legends don't fire through the same path).
Plotly Sankey Node Behavior Click to cross-filter (default) Controls what happens when a user clicks a node rectangle on a Plotly-rendered Sankey diagram. 'Click to cross-filter' (default) disables Plotly's node-drag handler so clicks reliably fire as Power BI selections — the click cross-filters other visuals on the page and dims unselected nodes/links here. 'Drag to rearrange (Plotly default)' restores Plotly's native draggable nodes; in this mode clicks are typically consumed by the drag handler and do NOT cross-filter (a known Plotly Sankey behavior). Pick this only when laying-out nodes manually matters more than cross-filter. Applies only to Plotly Sankey traces; other chart types are unaffected.

Formatting
Field Default Description
Auto-Localize Visual Text On When enabled (default), the visual translates its built-in messages to the host language. Turn off to keep messages in English regardless of the browser/host locale.
Language Code This setting can by used to override the browser language setting. This can influence localization of generated output. This should be the first 2 characters of a standard BCP 47 language code.
Caption Inside Chart Off When enabled, a short one-line description of what the chart is showing (chart type, derived measures, non-default aggregations) is rendered directly under the chart title in addition to appearing in the hover summary. Default off keeps that detail in the hover panel only.
Selection Dim Opacity (%) 25 When you click a mark to cross-filter, the non-selected marks dim to this opacity (1 = nearly invisible, 100 = no dim). Applies uniformly across heatmaps, bar/scatter/line, pie/treemap/sunburst/funnel, Sankey, and D3 charts. Default 25 matches the pre-setting hardcoded values.
Selected Mark Glyph None Optionally place a small high-contrast glyph at the top-right of each SELECTED mark when cross-filtering. DEFAULT OFF ('None'): most charts read fine on dimming alone, and the glyph can sit awkwardly on some mark geometries (e.g. at the outer edge of a sunburst arc, where it can be misread as belonging to a neighbour). Turn it on (Dot / Check) when you work with PALE / light-coloured marks where the dim is hard to see (e.g. an already-pale heatmap cell). Applies across D3 charts and Plotly cartesian charts (heatmap / scatter / bar / line). Automatically suppressed on flow/relationship, connected-series, and distribution-shape charts (Sankey / Chord / Arc / line / area / streamgraph / box / violin / ridgeline), where the highlight already makes the selection obvious or the mark is not a discrete point.
Label Contrast Fail-safe Leave to Visual After a chart renders, recolour in-mark text labels (sitting on a coloured tile/bar/cell) whose colour is hard to read against the mark's ACTUAL rendered fill — to black or white for legibility (skips labels that already read well; covers D3 and Plotly SVG charts). 'Leave to Visual' lets the visual decide per instance; 'Enabled' always applies it; 'Disabled' never does — choose Disabled if you ask the LLM for specific label colours you don't want this to override.
Legend Placement Fix-up Smart Placement How the visual adjusts legend placement AFTER a chart renders, to keep the legend from overlapping chart content. This is independent of the generation-time 'Legend Placement' hint (which steers the LLM). 'LLM Only' makes NO runtime adjustment — placement comes solely from how the chart was generated (the prompt prose still applies). 'Leave to Visual' (default) and 'Smart Placement' run the SAME fix-ups — re-anchoring a Plotly legend the code placed inside the plot, and a measured D3 reconcile that opens a gutter and slides an overlapping legend into it — but 'Leave to Visual' only acts on large, unambiguous overlaps and makes minimal changes (these narrow gates are refined over time), while 'Smart Placement' acts on smaller overlaps and allows larger adjustments.
Summary Position Bottom Controls whether and where the summary panel appears. It describes the chosen visualization (chart type, derived measures) and exposes action buttons. Default is 'Bottom'; how long it stays visible is set by 'Hide Summary After (In Edit / In View)'.
Hide Summary After (In Edit) 30 The summary area will be hidden after this number of seconds, when in edit mode. The summary is shown after refreshes and layout generation. 0 = never shown.
Hide Summary After (In View) 0 The summary area will be hidden after this number of seconds, when in reading mode. The summary is shown after refreshes and layout generation. 0 = never shown
Summary Text Font The font family for the summary text.
Summary Text Size The size of the summary text.
Suggested Font If provided, this font family name will be suggested to the LLM as the primary font to use.
Show Credits Remaining (in Reading view too) Off Licensed visuals always show the approximate credit balance in the hover panel when the report is open in Edit view. Turn this on to ALSO show the balance in Reading view (default off, since Reading view is what report consumers see and you may not want to expose Account-level credit balance there). Low-credit warnings fire in both views regardless of this setting.
Hide Some Warnings and Prices Off When enabled, some types of warning messages will not be shown. Also, the credit balance will not be shown in tool tips, and the price list / secret key entry will not be shown in the summary box.
Spinner Type Circles Lets you pick a spinner style, while the visual is processing data.
Please Wait Message Please Wait You can change the message shown when the visual is processing data. (A blank value will show no message.)

Colors
Field Default Description
Background Color The background color for the visual's whitespace areas. (Blank = transparent)
Background Opacity 0 The opacity (percentage) for the background color. (Zero is fully transparent.)
Summary Background Color The background color for the summary panel.
Summary Opacity 85 The opacity (percentage) for the summary panel. (Zero is fully transparent.)
Use Generated Palette On When enabled, a palette will be auto-generated from the current report theme.
Color 1 Color #1 of an optional palette suggested to the engine. Fill in colors in order and leave the rest blank. Used when 'Use Generated Palette' is off (or as the seed colors it builds from); leave all blank to follow the report theme.
Color 2 Color #2 in a user-defined suggested palette.
Color 3 Color #3 in a user-defined suggested palette.
Color 4 Color #4 in a user-defined suggested palette.
Color 5 Color #5 in a user-defined suggested palette.
Color 6 Color #6 in a user-defined suggested palette.
Color 7 Color #7 in a user-defined suggested palette.
Color 8 Color #8 in a user-defined suggested palette.
Color 9 Color #9 in a user-defined suggested palette.
Color 10 Color #10 in a user-defined suggested palette.
Color 11 Color #11 in a user-defined suggested palette.
Color 12 Color #12 in a user-defined suggested palette.
Color 13 Color #13 in a user-defined suggested palette.
Color 14 Color #14 in a user-defined suggested palette.
Color 15 Color #15 in a user-defined suggested palette.
Color 16 Color #16 in a user-defined suggested palette.
Color 17 Color #17 in a user-defined suggested palette.
Color 18 Color #18 in a user-defined suggested palette.
Color 19 Color #19 in a user-defined suggested palette.
Color 20 Color #20 in a user-defined suggested palette.

Vega and Vega-lite
Field Default Description
Vega Type N/A Determines whether the visual tries to use Vega or Vega-lite explicitly, or N/A leaves the choice to the visual. (in 2.0)
Render Mode N/A Controls whether Vega/Vega-lite renderings are done with SVG or Canvas. SVG is good for most cases but can become slow for a large number of data points. N/A leaves the choice to the visual. (in 2.0)
User Config You can optionally provide Vega/Vega-lite config JSON that gets used to provide styling. I.e. you can copy-and-paste your config across multiple instances of LLM AI Charts to provide consistent styling. This would be the same JSON you could find in Deneb's Config. (in 2.0)

Licensing

Need to hand a report to people who don't hold a license — clients, an agency's customers, or a wider audience? You can pin a finished chart version: a pinned rendering has its license and credentials stripped out, so it carries no license and renders watermark-free anywhere (Service, Desktop, embedded, even offline), with nothing traced back to your account. License once, distribute to many. See Distributing to Others — Pinning for the full walkthrough.

Field Default Description

Other Resources / Links:

AppSource Purchase Guide

Learn more about purchasing one or more user licenses from Microsoft AppSource.
This application may no longer respond until reloaded. Reload 🗙