July 31, 2026
NEW

Python Analysis

Python Analysis

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

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
  • Fixed a crash in the add-ons' Explore sidebar

Modeling

  • Added ClickHouse support to dbt project sync
  • Primary keys are now detected from dbt metadata instead of guessed from names
  • Dimension types are now inferred from your dbt catalog
  • More queries now match a pre-aggregation, including rollups that don't store calc-group dimensions
  • Cancelling a query in Cube now cancels it in Snowflake instead of leaving it running
  • Fixed a Jinja tag swallowing the rest of a YAML model file in the editor
  • Fixed rolling-window measures failing to plan when queried with a time grain, and wrong column types coming back from aggregating indexes
  • Fixed SQL parameter escaping in the Athena, Trino, Presto, Pinot, Dremio, ksqlDB, Databricks, Hive, and JDBC drivers
  • Fixed large SQL results failing with a stack overflow in Explore and the Excel add-in at around 130k rows

API

  • Added public endpoints to create or update a workbook by slug and a report by its public id, so a workbook can be kept in sync from your own tooling
  • Added public endpoints for managing embed user-group membership and for enabling signed embedding on a Dashboard