Charts Update
This week we shipped a lot of updates to charts and visualization — a new way to lay a chart out, a rebuilt pie, richer table formatting, and more control over how values look. Most of it lives in the chart settings panel you already use.
Small multiples splits a bar, line, area, or scatter chart into a grid of panels, one per value of a dimension you pick under Split by. Panels can share an axis scale or get their own, so you can compare magnitude or shape.
Pie charts got a rebuild. A slice can now show what percent of the total it is, right on its label. A shape control turns any pie into a donut. And a query with two or more dimensions draws as concentric rings — one ring per dimension, each broken down by the ring inside it — where before every dimension past the first was silently dropped.
On the Table chart, a dimension's links now open straight from the cell value instead of the context menu. Conditional formatting can mark a cell with an arrow, dash, or dot in its own color, so you can see at a glance which rows beat their target. And cell values can be aligned to the top, middle, or bottom of a row, which starts to matter once rows wrap onto more than one line.
KPI blocks can be styled one block at a time — value color, background, and font size. And a reference line can carry a text label, so a target line says what it is on the chart itself.
Other improvements and fixes:
Workbooks
- You can now filter a time member by calendar period — in the month, in the quarter, in the year, and their negations — on the report bar, the dashboard filter widget, and embedded Dashboards
- Period-over-period comparison can now anchor to a time dimension the query only filters on, so a report with no time column still compares against the preceding window
- An Explore chat thread now has its own URL, so you can link someone straight to the conversation
- The Generated SQL tab now lists the queries for every data source
Dashboards
- Filters you change on a published Dashboard are now reflected in the URL, so a filtered view can be bookmarked or shared
- You can now rename a dashboard theme from its menu
- The dashboard slug is now shown next to the title in the builder
- Fixed the freshness indicator being invisible on stylized Dashboards
Visualization
- Fixed conditional-formatting colors reading inverted in dark theme
- Fixed Table chart data bars not rendering on a numeric dimension
- Fixed a pie chart failing to regroup when its slice dimension is removed
- Fixed KPI change colors being ignored on published and embedded Dashboards, so a KPI already saved with them now renders the way it was configured
- Fixed KPI HTML blocks keeping their light-mode colors in dark theme when the color comes from row data
Administration
- Added a workspace-wide time zone policy under Admin → Settings, with a personal override in Preferences, so time dimensions bucket and relative filters resolve in the zone your readers actually work in (off by default)
- The deployment you are in is now marked in the deployment switcher
- You can now filter the user groups list to system groups
- You can now edit or delete the demo data source
- Fixed view-only users being offered workbook edit access they cannot use
AI
- Analytics Chat now answers in your workspace time zone rather than always in UTC, so "orders today" stops straddling the wrong midnight
- Added GPT-5.6 Sol and Terra, and fixed Cube-hosted GPT selections other than GPT-4o falling back to GPT-5
- Added MCP tools for branch diffs, pre-aggregation build status, and deployment environment variables
- Cube Agent Skills now apply inside the MCP chat tool
- Agent spaces are now scoped to a deployment, so dev, staging, and production can each declare the same space name and get their own
- Asking a data question now saves its result into the empty tab it was asked from
- The agent now duplicates a view-only Dashboard before editing it, instead of failing
Embed
- You can now set a time zone per embed instance with
?timezone=, at runtime from the host page, or as an account-wide default under Embed → Settings - A crashing widget no longer takes down the whole Dashboard, and the AI widget no longer errors on embedded surfaces
- Fixed the embedded Creator Mode app reloading when a plan check ran
Integrations
- Compact numbers now reach the sheet as numbers rather than text in the Google Sheets and Excel add-ons
- Fixed Google Sheets converting text values into dates
Modeling
- You can now create a branch from an explicitly chosen source, including a branch that only exists on your remote
- Fixed Review changes in a dbt sync email opening an empty diff instead of the branch changes
- Fixed two measures on the same cube being refused when they need different join paths
- Fixed a multi-stage measure with its own
filterreturning extra rows that carried null values for every other measure - Fixed
FILTER_PARAMSfailing to resolve member references inside a column callback - Fixed ungrouped queries being answered from a pre-aggregation that collapses rows
API
cubeSql()andcubeSqlStream()in@cubejs-client/corenow accept atimezoneoption- Fixed the last-refresh time going missing from SQL API responses that use post-processing or SQL pushdown