Forecasts with confidence intervals, regressions, significance tests — the analysis SQL can't express — now run inside Cube. With Python Analysis, a Workbook tab can carry a Python script alongside its semantic query: the script reads the query results as data.csv, writes a chart to output.json, and runs against a sandbox with pandas, Prophet, and the rest of the scientific stack pre-installed. Because the input comes from your semantic model, a forecast uses the same governed metric definitions as every dashboard.
You don't have to write the code yourself — ask Analytics Chat to "forecast next quarter's revenue" and the agent writes and runs the analysis, reaching for Python only when SQL genuinely can't answer the question. The script and its results are saved as part of the workbook, so a Python-backed report can be published to a Dashboard, re-run on view, and filtered by dashboard filters like any other chart — including on embedded surfaces. Read more in the announcement.
Internationalization
Cube now speaks your team's language. The interface is fully translated into 12 locales — English, German, Spanish (Spain and Latin America), French, Italian, Japanese, Norwegian Bokmål, Portuguese (Brazil and Portugal), Swedish, and Vietnamese — across Workbooks, Dashboards, Analytics Chat, the Data Model IDE, administration, sign-in, and transactional emails. Dates, numbers, and day names follow the same locale, so a report reads the way its audience expects.
Each person picks their own language from the Language picker in Preferences, and it follows them everywhere, including the emails Cube sends them. For embedded analytics, set an account-wide default under Embed → Settings, override it per embed with ?locale=, or switch it at runtime from the host page.
Other improvements and fixes:
Workbooks
Freshness and refresh are now one control in Workbooks and Dashboards: hover to see when data was last refreshed and where it came from, and refresh a single chart or every chart on a board from its popover
Added is empty and is not empty filter operators, distinct from the existing null checks
You can now turn period-over-period comparison on for every measure at once from the time dimension column
Nested view groups in the Explore sidebar can now be drilled into and back out of
Dashboards
Charts on published Dashboards now offer Edit in Workbook to anyone with edit access to the backing workbook
Restoring a published version now restores the full Dashboard state
Duplicating a workbook now preserves its chat history, and the copy starts unshared
Scheduled refreshes that fail to register are now surfaced instead of failing quietly
Visualization
Added a circular ring style to the KPI Progress block
KPI Progress bar and Sparkline blocks now accept a per-block value format
Reworked the Table chart's Style tab with compact toolbars and icon toggles
You can now hide a category from a chart by clicking its legend entry
Fixed Table chart heat maps scaling from row totals and subtotals instead of real cells
Administration
Groups can now be assigned roles directly from the console (in preview)
You can now move or delete workspace items and activate, deactivate, or delete users in bulk, from the UI or the public API
AI
Chat on a published Dashboard now offers the same editing actions as chat in a workbook
Asking for several metrics at once now produces a separate KPI widget for each one
Long-running MCP chat calls no longer time out while the agent is still working
Embed
Fixed the AI Summary widget failing to load or regenerate on embedded Dashboards.
Integrations
Date columns with a time grain now keep their formatting in the Google Sheets and Excel add-ons
Large reports are now written to the sheet in chunks, so big exports no longer fail