Skip to content
datasquares.aiSign inStart free

Reference

Release notes

DataSquares ships continuously: features reach your workspace as they’re ready, with no upgrade to schedule and no maintenance window to sit through. This page is the human-readable trail of that — the changes you would actually notice, newest first, each one linked to the page that documents it. Small internal work and routine hardening aren’t listed.

2026-11-07 · Billing: payments that say where they stand

Section titled “2026-11-07 · Billing: payments that say where they stand”
  • Payments that say where they stand. A payment already at your bank shows the day it should land and can’t be paid twice; an unpaid purchase can be cancelled, and ends after 14 days; a pack or other purchase is a payment request until it is paid, then a tax invoice dated that day; and buying asks for your billing country, and in India your state, first. See Buying and changing plans.

2026-11-07 · The AI: steadier on long answers and builds, and a memory you review

Section titled “2026-11-07 · The AI: steadier on long answers and builds, and a memory you review”
  • Chat options, in the chat’s header. The effort for your next message, and a link to manage your memory, open from one button in the chat’s header, so the message box keeps only your text and Send. The shortcut Ctrl+Shift+. (⇧⌘. on a Mac) still moves to the next effort. See AI chat.
  • Steadier on answers of many steps. The AI builds on what it reasoned in an answer’s earlier steps instead of working it out again at each one, and an answer has more room before its length limit. That reasoning is kept only while the answer is being made. See How the AI uses your data.
  • Long builds keep going. When a large dashboard or report build fills most of what the AI can read at once, it sums up its earlier steps on its own and carries on. See Build a dashboard.
  • A request declined by mistake is answered. When the AI declines an ordinary request, another AI model takes it over at once; the work of both is charged. See When something goes wrong.
  • The memory is on. As it works, the AI keeps your notes and reads the workspace’s shared notes and the notes about your tables; each look is a Memory step in the working card. Settings → Memory lists, edits and deletes your notes; Incognito and Pause memory keep a chat, or you, out of it; admins can switch Memory off under AI tools. Ask AI on shares and embeds has no memory. See Memory.
  • Your chats stay yours. The AI keeps its progress and anything about a conversation in your own notes, and writes for the workspace only when you ask it to share a note. That note is your private draft, which nobody else sees, admins included, until you choose Send for review under Settings → Memory → Proposals; it applies to no one until it is accepted. The review shows the note a change would replace (Replaces), and a change whose note has changed since can only be dismissed. See How a note reaches other people.
  • Your data stays out of notes. The AI never writes a value from your data that names something in a note, nor a word of a labelled field’s value, nor, in a note for others, a word of row-secured data. See What the AI never writes in a note.
  • How much it keeps. Up to 200 notes each, and up to 4,000 characters in a note the AI writes; a note unused for 180 days is retired, though not while your memory is paused. See How much it keeps.

2026-11-07 · Metrics: one number everywhere, a page to read them on, safer changes

Section titled “2026-11-07 · Metrics: one number everywhere, a page to read them on, safer changes”
  • A metric has one number, everywhere. It is its latest whole period that has settled, in your workspace’s time zone, named (October 2026), with its change from the period before and why it may still move. The Metrics page, KPI cards, exports, digests, the Slack command, new alerts, the anomaly sweep and the AI chat all show that number; all of a metric’s data only when it is asked for. See A metric’s number.
  • The Metrics page shows the numbers. No more Evaluate: each row shows its number, change, trend and target in words, with search, filters and sorting, a star to follow a metric, and a drawer for each metric with its trend, what it is in plain words and Ask about this metric. See The Metrics hub.
  • New metric opens a page of ways to start: write the formula, describe it for the AI to draft (in AI credits), from a model measure, from a saved query, or import a definition. The editor gains filters, a number format, a test of the saved metric’s latest value and a warning when another metric already computes the same. See Defining a metric.
  • A metric’s KPI card follows the page’s filters on its data model, names the ones it doesn’t, and now shows on shared links and embeds. See Metrics on dashboards.
  • An alert on a metric says what it compares. A new one compares its latest whole period; one made before keeps comparing all of its data until its owner switches it, and each owner is told once. Create alert rule on a metric’s KPI card makes one. See Alerting on governed metrics.
  • Explain this change names both periods, and compares the latest whole period with the one before, or this period so far with the same days of the one before. See Why did it move?
  • A change under a metric is a new version. Editing a saved query, a measure or a calculated field a metric reads makes its next version, clears its certification and tells its owner. A certified metric is changed only by its owner or an admin, and a steward’s role can be allowed to certify. See Versions and Certification.
  • A metric in use isn’t deleted by mistake. The delete is refused with what uses it; deleting it anyway takes its name typed, turns its alerts off and can be undone for 30 days. See Deleting and restoring a metric.
  • Digests send at the hour you choose, in your workspace’s time zone, with each metric’s number and its pace over the period so far; only a digest an admin made posts to the workspace’s channels. See Digests & pace insights.
  • The anomaly sweep tells the owner and the followers, each in their own numbers, in words (Revenue for October 2026 is unusually low), and watches a monthly metric over 24 months. Its webhook leads with the same sentences. See Automatic anomaly sweeps and Metric anomalies.
  • One labelled column no longer hides every measure on its table: a measure is refused only when it reads a labelled field’s data. See Field sensitivity.
  • A metric’s file carries its whole definition, a saved query included, and can be imported over one of the workspace’s metrics, with the plan shown first. See Import a metric over an existing one.
  • A card’s AI summary follows every label on its data. A label in another model of the same source, or in a Warehouse copy of a table, now hides an older summary from people who see that column masked, as a label in the card’s own model does. A summary written before such a label reached its data stays hidden from them until an editor summarizes the card again. See Who sees a summary.
  • A metric’s tile in a sent file follows the page’s filters. A dashboard sent on a schedule or by subscription, or exported from the phone, narrows a metric’s KPI tile by the page’s filters on its data model, as the card does, and names the rest in a Note column (Not filtered by Channel). On a shared link or in an embed, the card names them too. See Metric tiles in exports.
  • An alert on a metric tells each person in their own number. Its email and push read each person as themselves where row-level security binds its data, and tell nobody who can’t read it. They name the period compared and write the value in the metric’s format (October 2026: 1,180,000), and are sent again for each new period while the alert stays past its threshold. The alert.fired webhook posts only for an alert a workspace admin made, and Create alert rule on a filtered card says the alert isn’t filtered. See How evaluation works.
  • A labelled field’s number stays in DataSquares. For a metric that reads a sensitivity-labelled field, an alert’s email, push and webhook, a digest its creator sends and an anomaly posted to the channels say why in place of the number.
  • A date-and-time field’s periods start at your workspace’s midnight, so a metric’s October 2026 is your October, not the database’s. Some sources and formulas keep the database’s periods: see When a period is complete.
  • Certify shows to everyone who may certify: admins, and roles that hold Certify metrics. A certified metric is deleted only by its owner or an admin. See Certification.
  • A restored metric reads what it reads again. When something under it changed while it was deleted, it comes back as a new version, uncertified. The Recovery Center lists deleted metrics and names the alerts, activations and digests that stay off, first under Before you restore, and the toast after a restore says what came back changed and what stays off. See Deleting and restoring a metric.
  • Renaming a measure carries into its metrics, which keep their certification, and a measure a metric names can’t be deleted. Pointing a field at another column, or restoring a data model, makes a new version of the metrics it changes. See Versions.
  • Without the Metrics permission, the AI chat reads no metric and names none; it answers from the data model’s own fields and measures. See Metrics in the AI agent.
  • The bell shows each person the number an alert told them. On the web and on the phone, an alert’s item shows the number it told you, your own where row-level security binds its data, and for its creator the number it read; anyone else sees only that it fired. An alert on a metric is listed only for admins and roles with the Metrics view permission, and one on a metric’s period shows again for each new period, as each anomaly the sweep finds does. See Notification channels.
  • More metrics show your workspace’s periods. A metric made from a model measure, and formulas with Calculate, Include, Exclude of another field, LastNonEmpty or an iterator, now read their latest whole period and the one before it between your workspace’s midnights where their query can’t cut them there. Running and to-date totals, PeriodEndSnapshot, Fixed, Exclude of the time dimension and IgnoreFilters keep the database’s periods. See When a period is complete.
  • A saved query on a shared link follows its maker’s row-level security. On a public or password link, a card or a report block that reads a saved query is not shown when a policy on the query’s source applies to the person who made the link, or, once they have left, when a policy there is aimed at a role. See What a link visitor gets.

2026-11-06 · Scheduled sends that try again, new owners told, Quick answers whole

Section titled “2026-11-06 · Scheduled sends that try again, new owners told, Quick answers whole”
  • A scheduled send that fails is tried again, a few times and further apart (from 2 minutes to 30, about an hour in all), then given up, and the schedule’s creator, or a subscription’s subscriber, is told in the app. One report’s slow or failing send no longer holds back other workspaces’ schedules. See Scheduling.
  • A new schedule waits for its time. A new, re-timed or resumed schedule first sends at its next time, never at once for a time already past, and saving it twice, with a double click for example, makes one schedule.
  • Word where it can be made. A Word schedule, preview or test send of a block report or a dashboard, the AI assistant’s included, is refused with the formats to choose instead; Word is for paginated reports.
  • Unsubscribing from a dashboard’s email works. The one-click unsubscribe in a dashboard subscription’s email removes the subscription, as it does a report’s, and says what happened.
  • A new owner is told. Someone made an asset’s owner by another person is told in the app, with a link to it. The owner dialog lists only active members, and on a model only those who can edit models; a current owner who can’t be chosen again stays shown with why. See Choose an owner or a domain.
  • Explain with AI only where it runs. A role without the Governance AI feature no longer sees Explain with AI under a lineage chain, and with AI turned off in the workspace the button says why before you click. See Explain with AI.
  • Quick answers a two-query question whole. At Quick a question has 4 rounds of work, one more than before, so a question that reads your data model and runs two queries answers without asking to continue. See While it works.
  • “Me” in the assistant’s alerts and schedules is you: notify me and Ana reaches both of you. And the top 5 by revenue ranks by revenue, also beside an average of revenue in the same answer.
  • A model’s security policies are shown to the people who manage them: only a role that may create or edit data models reads a model’s row-level security policies; they filter everyone’s queries as before. See Row-level security.

2026-11-06 · The Catalog: owners, a glossary with history, lineage both ways

Section titled “2026-11-06 · The Catalog: owners, a glossary with history, lineage both ways”
  • Assets you can search. The Catalog’s Assets tab searches, filters (type, domain, owner, No owner), sorts and pages the dashboards, models, data sources and metrics you can open, and counts the ones your role can’t open without naming them. Every name opens the asset, and a certified metric shows as certified, on the web and on the phone. See Ownership & domains.
  • Owners chosen, then saved. An owner is chosen in a dialog and saved with Save owner; a domain saves on Enter, in the spelling the workspace already uses. A new dashboard, model or data source is owned by whoever made it. A model’s owner also reviews the AI’s notes about it, so only someone who can edit models sets it, and only to someone who can edit models.
  • A glossary you can trust. A name already in use, a blank term and text hidden in invisible characters are refused with the reason. Each term has a steward and a history; each link names its asset and opens it, a deleted one says so, and a field link survives a rename. Link a metric chooses the metric first, then Link. See Business glossary.
  • The glossary stays on Team. After a move to Team, the glossary is read-only and a term can still be deleted, so a definition that still steers the AI can always be removed.
  • Lineage shows what feeds an asset and what uses it, to a number of steps, as a graph or a list and by keyboard, naming only what you may open (2 sources you can’t open). Blends are part of it, and a large workspace starts from an asset. See Lineage.
  • The AI reads the terms a question names, plurals too, at most eight a question: a large glossary no longer leaves some out at random. See AI limitations.
  • Search marks labelled fields. A field with a sensitivity label is still found by its name, with labelled: true, and its description is held back from people who can’t see labelled values when it holds something that looks like a value, something personal or secret, or an instruction. See Semantic search.
  • One Billing page, with one menu item. Administration’s seven billing pages (Overview, Plans, Subscriptions, Invoices, Payment methods, Billing details and AI credits) are one Billing page. A summary card answers three questions, each with one button: your Plan and its seats (13 of 13 seats in use · one seat per person, Change plan), the Next payment, how much, when and how (Payment method), and the company’s AI credits, included and bought (Resets 1 Dec · on track, Buy credits). The latest invoices follow, then Details: one row per setting, each opening a sheet over the page. See The Billing page.
  • A bar only when something needs doing. An overdue invoice, auto-pay that didn’t go through, a payment to approve in your bank, an invoice ready, renewal off, AI credits low, billing details missing, a trial ending or an order waiting for payment: one line and one button. See What the bar says.
  • Every change in a sheet. Change plan chooses the plan, the billing period and the editors and viewers, then reviews the price and the date it starts before you pay on Razorpay or schedule it (Change plan). Renewal, Pay automatically, Billed to, AI credits (the company’s credits with each workspace’s own, buying for a chosen workspace, below zero, auto top-up, viewers’ own credits and the activity) and Pipelines & Warehouse (the add-ons, hour packs, extra use and the Platform bundle) each open from their row.
  • All invoices is a page of its own, with All, To pay, Paid, Void and Activity; an invoice opens a side panel with its lines, the GST, who it was billed to, how it was paid, what happened to it and its PDF. See All invoices.
  • Plain words. Pay automatically instead of automatic renewal and payment methods, Buy credits, Auto top-up, Extra use, billed on the next invoice and Next payment. Rupees are grouped the Indian way, as on your invoices (₹1,00,000, not ₹100,000).
  • Old links still work. /admin/billing/plans opens Change plan, /subscriptions Renewal, /payment-methods Pay automatically, /details Billed to, /credits AI credits, /add-ons Pipelines & Warehouse and /invoices All invoices. Each of the seven billing permissions now shows its part of the page and opens its sheet, and any one of them shows the Billing menu item.

2026-11-03 · Right-click menus on every canvas; groups in decks and reports; sign in on one page

Section titled “2026-11-03 · Right-click menus on every canvas; groups in decks and reports; sign in on one page”
  • A right-click menu on every canvas. Right-click an element of a deck, a dashboard card, a report block, a paginated report’s column header or document section, or a story’s block, and its menu holds that canvas’s own commands, with the names and shortcuts of its quick bar and Ctrl+K: one item by its kind, several, a group, or the empty slide or page. A right-click outside the selection selects first; inside it, the menu acts on everything selected. Shift+F10 and the Menu key open it from the keyboard, and on a Mac so does Ctrl+click; text you are typing in keeps the browser’s menu. A page’s row in Pages has its menu too (a report’s now with Duplicate page). See Right-click menus and selecting several things.
  • A data point’s menu. In a dashboard and in its Preview, right-click a bar, a slice or a row for Include, Exclude, Drill down and Drill up, Copy value and Show data for this point. See A data point’s menu.
  • Select several. Shift+click, ⌘+click and, off a Mac, Ctrl+click add an item to the selection or take it out; on a Mac, Ctrl+click opens the menu instead.
  • Groups in decks, dashboards and reports. Ctrl+G groups the selection and Ctrl+Shift+G ungroups it; grouping groups merges them. A click selects the whole group, a second click or a double-click goes into it, and Esc comes back out; Layers shows a group as a folder you can rename. A deck’s group moves, resizes (its elements’ frames, never their text), locks, aligns and comes in as one when presenting. A dashboard’s group moves whole and stops at the grid’s edge, each card keeping its size. See Make a deck, Multi-select and card grouping and Reports.
  • More of the dashboard editor from the keyboard. Ctrl+X cuts, Ctrl+A selects every card, Ctrl+Shift+L locks, and Ctrl+Alt+C and Ctrl+Alt+V copy and paste a card’s format; copy, cut and duplicate take the whole selection. A paginated report has undo and redo. See Keyboard shortcuts.
  • Sign in on one page. The email and the password are side by side, so a password manager fills both and Sign in sends them at once. A company that signs in with single sign-on is recognised from the email, and the password gives way to Continue with SSO; no password is sent before that check has answered. Passkeys are still offered, and Email me a link works for everyone else: an address whose organization uses single sign-on gets Continue with SSO instead, and the page says why no link was sent. Two-factor is unchanged. See Sign in and SSO sign-in flow.

2026-11-02 · Recent colours; a report chart’s colours, a story’s cells and borders in the shared panel; each deck’s first slide on the home

Section titled “2026-11-02 · Recent colours; a report chart’s colours, a story’s cells and borders in the shared panel; each deck’s first slide on the home”
  • Recent colours in every colour panel. The last eight colours you picked, in any panel of any product, are a Recent colours row after the document’s and the style’s colours, newest first. It offers only what the field takes (a see-through colour only where the field takes one), stays put while the panel is open, and is hidden under a colour lock. See Recent colours.
  • A report chart’s and table’s colours in the shared panel. Every colour of a chart’s or a table’s Format tab is a tile opening the colour panel, with the report’s colours, its style’s, the brand kit, the lock and Change all (This block or Whole report); a series’ colour is led by Palettes for every series. A chart’s Format › Typography font opens the report’s font panel. A block’s text colour or background changed everywhere now reaches the charts’ and tables’ colours too, and a see-through colour never turns a solid one black. See A block’s colours and fonts.
  • Stories: a table cell’s colour and a picture’s border. Cell colour opens the colour panel on the six tints, then any colour, its words set in the ink that reads on it; the HTML file and the JSON bundle keep it. A picture’s Border colour opens the panel on the style’s colours. Change all reaches both. See Colours and fonts.
  • Font names load faster. Every font panel draws each family’s name as a small picture of it, fetched for the rows in view: the deck’s font list’s first screen now loads about 25 KB instead of over 1 MB. See The font panel.
  • Each deck’s own first slide on the Presentations home. Every card shows the deck’s first slide in its own style and page size, with no figures read for it; the title shows where it can’t be drawn. See The Presentations home.

2026-11-02 · A deck style’s artwork as one object; the colour and font panels in dashboards and stories

Section titled “2026-11-02 · A deck style’s artwork as one object; the colour and font panels in dashboards and stories”
  • Decks: Group and Ungroup, a steady click, keys that always move the slides. A style’s artwork on a slide is one object, Style artwork: a click on any part selects the whole, with Ungroup (Ctrl+Shift+G), Hide on this slide and Reset; ungrouped, each part is selected on its own and Group (Ctrl+G) puts them back. A double-click, or Layers, reaches a part inside the group, and the slide keeps the choice. A click selects without the slide moving or flickering: at Fit the slide keeps clear of the selection’s panel. In present mode, the presenter window and shared links and embeds, the arrows, Page Up, Page Down, Space and Enter move the slides whatever has the focus on the slide, ↑ and ↓ included, so a clicker always works; a link’s TV remote reaches the slide tools with Back. The colour panel never blocks a change: a text box in several colours takes the colour picked, words selected while typing take it alone, and low contrast is a warning. Since 1 Nov, Custom colour opens expanded in every colour panel. See A style’s parts, Colours and fonts, Keys and What a guest sees.
  • Dashboards’ colours and fonts in the shared panels. Every colour of a card’s format (titles, text, axes, gridlines, labels, legend, series, slices, a scale’s stops, a rule’s colours), a heading’s text and background, a shape’s fill and outline, a divider’s line, a text card’s words and highlight, and the page’s background are tiles that open the colour panel, and a card’s font and a text card’s words’ font open the font panel. A chart’s quick bar leads with its Colour; a pie’s opens its slices’ colours, a map’s its colour scale. Change all changes the colour or font you started from on This page or Everywhere, as one step, leaving locked cards alone. Customize… lists the brand kit’s colours and fonts, and Back or Esc returns to the same tab, sections and tile. The old colour picker, its shade matrix and the font lists are gone. See Colours and fonts and Themes.
  • Stories’ colours and fonts in the shared panels, and a panel’s own colour. The words’ Text colour is on the quick bar while you type, Highlight and Panel colour in More actions, and the Headings and Text fonts are tiles under Style. A text colour’s contrast is said for each page the story is read on (the light page, the dark page and paper, in the stories’ own look), never refused. Change all works in This section or the Whole story, with Undo across sections. A panel takes any colour beside its five tones, kept in the PDF, the HTML file and the JSON bundle; the Android app shows it in its tone. See Colours and fonts.
  • Source Serif 4 italic figures on Windows. They can fit a hair differently on Windows than in the PDF: Windows sets the italic 3 slightly wider at 400 and narrower at 500, so a line of italic numbers may break at another word. See What every PDF page and PNG carries.
  • Billing in euros where the euro is used. A company whose billing country is one of the countries and territories that use the euro pays in euros, the way a company in India pays in rupees; every other country stays on US dollars. Euros are sold from the day the price book’s euro prices take effect: each dollar price at about $1.116 a euro, rounded to a near figure, a year at ten months’ price as in dollars. The Plans page, signup, invoices and the pricing page show euros from then, and the month they start in bills its use in euros too. A company already invoiced in dollars stays on dollars; one not invoiced yet moves to euros, and sets its auto-recharge cap again in euros. An invoice in euros is an export of service, without Indian tax, as a dollar one is. See Plans and seats.

2026-11-01 · A deck style’s parts change in place; one colour panel and one font panel in decks, reports, the brand kit and themes

Section titled “2026-11-01 · A deck style’s parts change in place; one colour panel and one font panel in decks, reports, the brand kit and themes”
  • Click a style’s part and change it. The bands, circles, rules, cards behind placeholders, the logo, the footer and the slide number a deck’s style draws can now be selected on a slide and changed there: a shape’s fill and outline, the colour of a rule, an icon or the footer’s words, its place and size, or Hide on this slide. A change holds on that slide only, with Apply to all slides and Reset; a part changed on every slide offers Reset every slide. Layers lists them under Style parts, a hidden one too. Switching the style or a layout keeps the changes, comparing versions names the parts changed, and present mode, links, thumbnails, copies, templates and every export draw them; a deck with no changes exports exactly as before. Under the logo lock the logo is never moved away from the brand, and a logo changed before the lock can always go back. See A style’s parts.
  • Every colour and font of a deck in the shared panels, and a text box’s own format. A line’s and an icon’s colour, a text’s highlight, the Format tab’s colours, a style part’s colours, a picture’s border and the master’s text styles are tiles that open the colour or font panel, and a text box’s quick bar leads with its Font. Change all changes the colour or font you started from on This slide or All slides, leaving out slides others are editing and saying so, and its Undo puts back each setting it changed on every slide. A text box takes a font, weight, size, line spacing and letter spacing of its own, or one of the master’s nine text styles from the font panel’s Text styles; the PDF, the PNG and PowerPoint draw it as the editor does, Arabic letters joined, and under the font lock a box can’t be set in a font off the brand. A deck without one exports exactly as before. See Colours and fonts and A text box’s format.
  • Reports’ colours and fonts in the shared panels. A text block’s quick bar leads with its Font, named in its own face, and its Text colour; a table’s with its text colour. Block colours, picture borders, the selected words’ colour, highlight and font, and the page’s accent are tiles that open the colour or font panel: In this report, the style’s colours with their shades, the brand kit. A text colour’s contrast is judged on the page as the files print it, white paper included. Change all changes the colour or font you started from on this page or everywhere, as one step. Selected words keep their six fonts. The old colour picker and font list are gone. See A block’s colours and fonts.
  • The brand kit and the theme manager use the same panels. Each colour of the brand kit opens the colour panel on the kit’s colours with their shades, the colours of the style previewed and colours read from your logo, each swatch with its contrast where the colour sits; the heading and body fonts open the font panel. In the theme manager a theme’s surface, text, chart detail, signal and series colours (each keeping its opacity) and the Theme font do the same, and a series colour’s panel opens with Palettes for every series. The card and page background defaults are tiles too, and in a dashboard’s Customize… under the colour lock they offer only Allowed colours. See Brand kit and Custom themes.
  • One page for both panels: searching by name, word or code, Custom colour with hue, opacity, Hex, RGB or HSL and the eyedropper, twelve recent colours shared by every product, contrast, and what a brand lock leaves. See The colour and font panels.
  • One plan for your company. Everyone in a company, editors and viewers, in every workspace, is on its plan, Team, Business or Enterprise: seats of another plan aren’t sold beside it, a change between Team and Business moves every seat of the company, in every workspace, in one quote, and the invite form, the member list and the Plans page name the plan people join on. One seat per person covers every workspace. Under an Enterprise agreement, everyone is on Enterprise and seats come through the agreement. Paying for the first seats ends a Business trial for the whole company, from that payment. See One plan for your company.
  • A model’s Security lists the policies it inherits. Under From other models, each policy written on another model over the same source, marked Inherited, with that model as a link, the tables it filters here and who it applies to; the Catalog’s lineage names those models too. See Policies from other models.

2026-10-31 · Every font the pickers offer, from DataSquares’ own files, printed as it shows

Section titled “2026-10-31 · Every font the pickers offer, from DataSquares’ own files, printed as it shows”
  • Fifteen fonts that never loaded now do. A dashboard card’s Typography and a report block’s Font Family offered Roboto, Open Sans, Lato, Poppins, Montserrat, Source Sans 3, Nunito, Raleway, Playfair Display, Merriweather, PT Serif, Fira Code, Source Code Pro, DM Sans and Space Grotesk from Google’s font service, which DataSquares never loads fonts from, so the screen drew a stand-in. They now come from DataSquares’ own files: reports and dashboards set in them change face on screen and in their files, and their lines and pages can break in other places. Blocks and cards set to the earlier list’s Inter or JetBrains Mono, which drew the system font or a plain monospace, now draw and print in Inter and JetBrains Mono. See Fonts.
  • Fonts print as they show. A report text or table block, a card’s own font and a dashboard text class set in one of the thirty bundled families now print in it in the PDF (they printed in Noto Sans, Times or Helvetica), are named in PowerPoint and, for a chart, drawn in Excel’s picture; scheduled emails attach the same files. A table block with a font of its own now prints its header and cells in it, where it printed in the report’s font. A text class set to a classic stack prints in the family it names (Inter, Source Serif 4, Space Grotesk, Geist or JetBrains Mono). A font of your computer prints in the PDF’s own font of its kind, and PowerPoint names the system font Segoe UI. See A block’s own font.
  • A chart in any font now prints. A chart whose font has a name in quotes (Open Sans, PT Serif, Times New Roman, Courier New, System UI, and the other families with a space in their name) printed nothing of the chart in a PDF for Times New Roman, Courier New and System UI, lost its picture in Excel for most of them, and lost its font in the HTML file; it now prints in each. A label holding a control character (a line break pasted from Word) no longer costs its chart Excel’s picture. A chart that can’t be drawn (a sankey whose flows loop back) lists its data in its place, as before, and the download and the scheduled email now say which chart and why.
  • Accented letters print as they show. Text in Lato, PT Serif, Raleway, Source Sans 3 or Source Code Pro that mixes letters such as ł, ř or ğ with plain ones prints as wide as the screen shows it, so Polish, Czech or Turkish lines break in the same places; it printed up to 3% wider. Cyrillic, Greek and Vietnamese in these fonts now print in them, where they printed in Noto Sans.
  • Charts draw in their font from the start. A chart in a card’s own font, or a theme’s, waits for the font before it first draws (a second at most, and only the first time a page needs that font) instead of drawing in a stand-in it then kept, so the screen and its PNG, PDF and PowerPoint downloads show the font.
  • Thirty fonts in every theme picker, and a report block’s list by kind (sans serif, serif, monospace) with the classic fonts of your computer after them. A run of words keeps its six fonts until runs print in their own.

2026-10-31 · One layout for decks, dashboards, reports and stories: folding rails

Section titled “2026-10-31 · One layout for decks, dashboards, reports and stories: folding rails”
  • The canvas owns the screen. Decks, dashboards, reports (the paginated builder too) and stories are edited in one layout. One bar at the top: the way back, the name and its menu, the save state, Undo and Redo, Search commands or ask AI in the middle, and at the right the canvas’s own actions with Share and Publish (a deck’s Present…). A rail of tools at the left, each with its word, such as Insert, Data, Pages (a deck’s Slides, a story’s Sections) and Style, with Versions at its foot, opens one drawer at a time over the canvas, which folds once used or on Esc. The selected item’s settings sit at the right only while something is selected, and a quick bar over the selection holds its first actions, the rest in More actions. Zoom, the page’s place and the canvas’s own toggles are small pills at its foot. The old toolbars, status bars, the story’s bubbles and side panels are gone: their actions moved to the bar, the rail, the quick bar and the foot, and nothing was removed with them. See the deck editor, the dashboard editor, the report editor, the paginated builder and the story editor.
  • Every action by its name. Ctrl+K (⌘K on a Mac) lists the canvas’s own commands first, each with its shortcut, then the rest of the workspace, and asks AI in the same box. A reading view keeps it too, offering only what it can do.
  • On a phone or a narrower window, below 1024 px, each canvas opens in its reading view and says so in one plain line: Editing needs a window at least 1024 px wide, then what you can do there. New makes nothing there: it says Creating needs a window at least 1024 px wide.
  • A report read on a phone or a tablet fits the window. Its page is drawn as wide as the window, never wider and never larger than the editor’s page, where it was cut on the right. Zoom with the zoom at its foot (Fit, 100 % and the steps), with a pinch, with Ctrl and the mouse wheel, or with Ctrl =, Ctrl - and Ctrl 0, as in a deck, never the browser’s zoom. Preview and full screen do the same, and the paginated builder’s preview keeps its foot inside a phone’s window. See Read a report, on a phone too.
  • A story’s reading view writes nothing: a story with no sections says so in one line, and its ways to start wait for the editor. See On a phone or a narrow window.

2026-10-31 · Styles and themes, one name each; one colour for each member across a dashboard

Section titled “2026-10-31 · Styles and themes, one name each; one colour for each member across a dashboard”
  • One colour for each member across a dashboard. A member of a field keeps one colour on every card: EMEA is the same colour in the trend split by region, the region pie and the funnel beside them, and each measure drawn as its own series keeps its colour too. The dashboard keeps each member’s colour from the first time a card draws it for a signed-in reader, so the page opened first, a filter applied when it opens, or a cross-filter or slicer that takes members away never moves a colour; exports draw the kept colours, the PDF and PowerPoint files that scheduled sends and subscriptions email included. A card’s own colours still win. People who can’t see each other’s rows (row-level security, a label that masks a field) keep separate colours, and each shared link and each embedded customer keeps its own, so nobody learns a member from its colour; a link’s colours can differ from the editor’s. A field keeps colours for up to 64 members in each set (512 a set, 20,000 a dashboard); past that a member takes the next free colour of its view, as does a member a label masks. Each request that adds members to a set others share is recorded in the audit log, and editors can start again with Style → Reset colours… (recorded too). Keeping a colour isn’t an edit, so an editor working on the dashboard at the same time can still save. See One colour per member.
  • Styles and themes, one name each. Decks and dashboards call the six looks of the shared library styles and keep theme for a saved set (a built-in dashboard theme, or a workspace’s own). The dashboard editor’s Theme button is now Style, holding the styles, the themes and Customize…. See Themes.
  • Customize opens beside the canvas, where Card settings does (one at a time), with a preview of the look that follows every change and three folds: Colours, Text, and Cards and page. See Built-in themes.
  • The editor’s toolbar keeps four labelled controls in view, Refresh, Settings, Style and Share, then More and Publish; the filters panel, page settings and grid density moved into Settings and More. Later the same day the editor moved onto folding rails; see The editor.
  • Lines are straight unless a card asks for Smooth, on dashboards as in decks: the curve between two points isn’t data. A card that chose Smooth keeps it, in every export. See Line.
  • Filter operators in plain words, and only those that suit the field: a text field’s new filter starts as is one of with its values to tick, a number’s or a date’s as is between. See How a new filter starts.
  • A brand kit’s data colours are checked as a set, as every built-in palette is: two neighbours too alike to tell apart, for every reader or with red–green colour blindness, or a colour too close to the good or bad colours, is a soft warning with the nearest shade of it that passes every check. See Brand kit.
  • The ways to start a presentation show once: the row of them stays on the Presentations home until you have a deck of your own, and lives in the arrow beside New presentation after that. See Start a deck.
  • Small text stays at 11 and 12 px on a laptop, where it drew a little smaller on screens 1,280 px wide and under.
  • Sunset Warm’s first two series: its orange a step deeper (#f46700 to #ce5600), so a chart’s last year, drawn a shade lighter, still reads 3:1 on the card, and its crimson a little pinker (#e30047 to #e4006c), so the two stay told apart. See Built-in themes.

2026-10-31 · Presenting on touch screens and TVs; Start presenting asks one question

Section titled “2026-10-31 · Presenting on touch screens and TVs; Start presenting asks one question”
  • Present from a tablet or a touch screen. Swipe to the left for the next slide and to the right to go back, in present mode (a step at a time on a slide that builds) and on a deck’s link or embed. In present mode, tap the slide to show or hide the control bar, or tap a figure for its source, and with the laser on the dot follows your finger, in the presenter window too. A swipe on the slide is never Chrome’s or Edge’s swipe back a page; one from the very edge of a phone’s or tablet’s screen is still the device’s own Back. A pinch still zooms: in present mode and on a link your finger then moves the page, but an embedded deck can’t see the zoom of the page around it, so a sideways drag over it still moves its slides. Where a finger is the main pointer, every control of the bar, the sources list, the phone remote, the pen, Explore this slide (its fields too) and the rehearsal summary is at least 44 pixels across. See While presenting.
  • Start presenting asks one question: For the record, with the meeting’s name, or Rehearse, with a target length. Everything else (where, the presenter window, how the slides advance) is said in one line with Change, and where and the presenter window are remembered on this device. A rehearsal no longer checks a meeting name typed before you chose it. See Start presenting.
  • A presenter window to present from. Large Previous and Next, with the elapsed time and the clock, sit in a row of their own at the foot of the window, so they stay put however long the notes are; the slide tools sit under the slide, named as the room’s window names them (Blank, Blank white). The notes scroll in a box of their own, by finger or with the keys once focused, open at their top on each slide, and grow or shrink with A+ and A−. See The presenter window.
  • A kiosk read across a room. The foot of its screen always says when the figures it shows were computed and when they are read next (Figures as of 09:12 UTC · next read 09:17), sized from the screen’s width (42 pixels on a 1,920 pixel screen), amber with a warning sign while they are stale. It says Reading the figures… through its first round, then Not read yet if those reads fail, and never says a slide it could not read yet shows its last values. Its notices are as large, it calls its link a kiosk link, and on a touch screen it takes no swipe or pinch. See Kiosks.
  • TV remotes. On a link, OK moves on, ↓ reaches the slide tools (← and → along them, ↑ back), and Back closes the sources; the sources list’s rows still take Tab. In present mode a remote’s Back is Esc. A control reached with the keys or a remote is ringed in white with a black edge, seen over any slide. See What a guest sees.

2026-10-30 · Six deck styles in two colourways; crowded deck charts group the rest as Other; fewer valid queries refused

Section titled “2026-10-30 · Six deck styles in two colourways; crowded deck charts group the rest as Other; fewer valid queries refused”
  • The twelve deck styles are six styles, each in two colourways: Meridian, Ledger, Graphite, Atlas, Mono and Bloom, each with its layouts, shapes and type, and two colourways named for their accent (Meridian · Cobalt and Meridian · Teal, which was Harbor; Linen, Aurora, Citrus, Slate and Orchid are now Ledger · Terracotta, Graphite · Mint, Atlas · Orange, Mono · Indigo and Bloom · Violet; the palettes keep their names). The pickers in decks, reports, dashboards and stories list them by style. See Styles.

  • No series colour is taken for good or bad news. Every series now stands clearly apart from the colours a good or bad change is drawn in, wherever it is in a chart, and a change always carries its arrow and sign, so colour is never the only signal. The good and bad colours moved, not the series: each a visible step deeper on light styles (lighter on dark ones), still green and red, at 4.5:1 or better on the page and the cards. Every series keeps its place and, but for the few a hair deeper below, its colour, so a chart’s series keep their order and a two-series chart keeps its two colours. A red colourway keeps its red series (Mono · Red’s first, Atlas · Coral’s second), now at a clear distance from the bad colour, and a green one its green (Ledger · Brass’s first). Every series also reads at 3:1 or more on its page and cards. Styles are drawn live, so this reaches every deck in them, published versions, link views and new exports of earlier versions included, and every report and story drawn in these palettes. What moved:

    • Good and bad colours, both a step deeper: Ledger · Brass, Atlas · Coral, Mono · Red, Bloom · Wine, Ledger · Terracotta, Meridian · Teal, Atlas · Orange, Mono · Indigo and Bloom · Violet; among the other palettes Forest, Sunset, Sand, Berry, Steel, Mint and Ruby. Ruby’s bad colour goes a deep red, as its crimson first series leaves no other red that reads, and that series goes a hair lighter (#A61E3A to #AE2845).
    • The bad colour alone, a step deeper: Meridian · Cobalt and Ocean; a step lighter on the dark ones: Graphite · Amber, Graphite · Mint, Midnight, Charcoal, Deep forest and Plum night.
    • Series a hair deeper to read at 3:1 on their cards, hard to see side by side: the ochre of Meridian · Cobalt (series 4), Ledger · Brass (5), Atlas · Coral (4), Bloom · Wine (2) and Ocean (4), and Ocean’s orange (2).
    • In Atlas · Orange (Citrus) decks, the section slide’s disc and number are now its blue: its first data colour is its orange accent, which they sat on. Covers, big numbers and closings keep their orange.
    • A story’s KPI figure, drawn in its style’s first data colour, keeps its colour in every style, Ledger · Brass and Ledger · Terracotta included; in Ruby it goes a hair lighter with its first series.

    See Built-in themes.

  • Dashboard built-in themes pass the colour-blind checks, and every series reads at 3:1 on its cards. A dashboard on a built-in theme draws in it:

    • Porcelain Light: its deltas a deeper green (#007652) and red (#ac000e); its ochre series (4) a hair deeper. Graphite Dark: its red delta a lighter one (#ff9b97).
    • Corporate Navy, Deep Ocean, Midnight Aurora and Emerald Executive: their series stepped down from neon, in their places and their hues, except Emerald Executive’s gold first series, now an amber, and Deep Ocean’s second, a little bluer. Their deltas are lighter: Corporate Navy’s #4ce4a9 and #ff9ba5 (were #34d399 and #fb7185), Deep Ocean’s #5eef90 and #ff9ba5 (were #4ade80 and #fb7185), Midnight Aurora’s #4ce4a9 and #ffa3ac (were #34d399 and #fb7185), and Emerald Executive’s red #ffbac2 (was #fda4af).
    • Okabe–Ito (colour-blind safe) and Paper & Ink: their black, which no reader can tell as a series colour, becomes a plum; their orange, sky blue and yellow go a step deeper to read at 3:1 on white, each still nearer its old colour than another series’ (Paper & Ink’s orange becomes a deep gold and its yellow, #f0e442, an olive, #8b9700; its pink goes a hair deeper); their deltas are deeper (#006c4d and #953f00).
    • Sunset Warm: its orange, amber (now an ochre), sky blue and green go a step deeper to read at 3:1 on white, and its rose a hair; its deltas are deeper (#007551 and #9d002c).
    • High Contrast Light: its red and green series become a purple and a brown (its red and green are its deltas), and its series 5 and 6 are re-stepped (#a04a00 to #976200, #006b6b to #00728a). High Contrast Dark: its deltas (#4acc4e and #ffc3c0) and its white series (#c8feff) are re-stepped.

    Diverging colour scales (heatmaps, maps, colour by value) that take their ends from a theme’s good and bad colours shift with them. The Apply palette menu’s Aurora and Ocean follow their themes, and Monochrome blue and Pastel are retired (a dashboard that applied one keeps its colours).

  • Small text reads at 4.5:1. The theme editors refuse a theme whose labels, legends or KPI deltas fall under 4.5:1; a KPI value is held to 3:1 at its own size or at 14 pt or more, and to 4.5:1 when set smaller. A theme saved before can still be renamed with its colours as they were. Amber words and marks on light pages (a saved view’s default star) are a step deeper. Present mode’s marks and controls, its Unchecked label among them, keep their bright colours on a solid dark backdrop that now reads over a white slide, and the names of people editing with you read on their colour. See Contrast guard.

  • A deck chart with more than 25 members groups the rest as Other, as a dashboard does: the 20 largest, in their order, and Other, saying what it holds; the total is unchanged and every member keeps its colour. The categories of bar, column, stacked bar, 100% stacked bar, lollipop, pie and donut charts are grouped, and the series of bar, column, line and area charts, stacked ones included; treemaps, Pareto charts, waterfalls, funnels, heatmaps, maps and the categories of line and area charts are not. Other is grey as a part of a pie or a donut and as a series, and drawn in the series colours as a bar. Only for a measure that adds up, never for dates or an ordered breakdown. This applies to the charts your decks already hold, published and frozen ones included. An annotation on a member now inside Other shows a dash and asks for another end. See Broken down by.

  • Arabic and Hebrew in report and dashboard PDFs are set in Noto Sans Arabic and Noto Sans Hebrew, right to left, instead of boxes. See Exports.

  • Word, PowerPoint and Excel files open whatever their text holds, and their links open only web pages and emails.

  • COUNT(ALL …) on every source, and COUNT_BIG(ALL …) on SQL Server-family sources. ALL inside an aggregate, as in COUNT(ALL customer_id) or SUM(ALL amount), is what every aggregate does when it is given neither ALL nor DISTINCT, so it gives the same number as COUNT(customer_id). The safety check, and on a source with sensitivity labels the check of labelled columns, refused such a query as SQL they could not read. Both now read it, in the SQL editor, saved queries and the AI’s queries. ALL before a subquery, as in amount > ALL (SELECT …), is read as before.

  • SquareX measures on columns named with parentheses or a dot. A measure over a column named Revenue (USD) wrote the name as a calculation, and one over a column named unit.price split the name at the dot, so the chart failed on every database. A measure now writes such a column whole, the way the chart’s query names every column (in double quotes; in brackets on SQL Server; in backticks on MySQL and BigQuery), its conditions in Calculate included. A chart’s own columns with such names still can’t be used, as before.

  • FOR SYSTEM_TIME ALL on SQL Server and Azure SQL. The safety check, and on a source with sensitivity labels the check of labelled columns, refused a query that reads every version of a temporal table’s rows, FROM orders FOR SYSTEM_TIME ALL, as SQL they could not read, while AS OF, FROM … TO, BETWEEN … AND and CONTAINED IN passed. Both now read it.

  • The row limit names the item of an ORDER BY it refuses by its place. On Azure Synapse, and on SQL Server and Azure SQL for a UNION, EXCEPT or INTERSECT with a TOP in a branch, an ORDER BY that names a column with its table is refused before it runs. Its message quoted the query’s ORDER BY; it now says which item to change by its place, such as the 2nd item of its ORDER BY, since the message of a saved query also reaches the people who view its dashboard or a shared link, who are not shown its SQL.

  • An account anonymised at the person’s request stays deactivated. Reactivate in Admin → Users, resending its invitation or accepting one still pending for it could make the “Deleted user” account active again, and an identity provider’s reactivation through SCIM could restore its membership in that organization. Each is now refused, saying that the account was anonymised at the person’s request.

  • API keys and digests with AI sentences. A key could not turn a metric digest’s AI sentences on, but it could still change a digest whose creator had turned them on in the app: add metrics, make it daily or switch it back on, each using AI credits on sends no one signed in for. A key now can’t change such a digest at all (403), its AI sentences included: change it signed in, or have them turned off in the app first.

  • Anomaly checks for quarterly metrics. The automatic anomaly sweep read a certified quarterly metric over this year’s quarters, which never hold the seven whole quarters it needs, so no quarterly metric was ever checked. It now reads the last three years’ quarters.

  • A metric’s latest period reads its recent periods first, where that gives the same number. Evaluate, a KPI card bound to a metric and the Android app show a metric’s latest whole period, and each reading added up all of the metric’s history to find its three newest periods. DataSquares now checks a metric’s expression first: one that only adds up each period’s own rows (aggregates such as Sum, Count, Avg or Max, and arithmetic or Divide on them), at a day, week, month or quarter grain, reads its last few periods first, and the rest of its history only when they don’t settle it, such as for data that stopped a while ago; its number is the same. Every other metric reads all of its history in one read, as before: one that reads other periods’ rows (Exclude of its date, Fixed, YTD, RollingSum); one with a Calculate or a measure reference, which this check doesn’t look inside; one on a model field or a saved query; and any at year grain.

The query and metric changes were checked against the SQL grammars the safety check reads with, and on PostgreSQL and DuckDB themselves; not against a live SQL Server, Snowflake or BigQuery. Availability depends on the deployed API revision.

SQL compatibility and safety errors · From measure to SQL · SQL Server · Azure Synapse · Deleting a person’s data · Digests · Automatic anomaly sweeps

2026-10-28 · Your phone as a presentation remote; Presentations in the Android app

Section titled “2026-10-28 · Your phone as a presentation remote; Presentations in the Android app”
  • Use your phone as a remote. While presenting, Phone remote shows a code and a QR code; a phone signed in to the DataSquares app as someone who can present the deck pairs with it, and its big Next and Previous move the slides as the keys would. One phone at a time, a code works once for 5 minutes, Disconnect stops it, and pairing is recorded in the audit log. See Use your phone as a remote.
  • Presentations in the Android app (updated builds). Library, then Presentations: swipe through a deck, each figure read with your own access, as its slide or reflowed to read; tap a figure for its source, read and add comments, read the last decks you opened offline, and present full screen from the phone. See Presentations on your phone.

2026-10-27 · Edit a picture in a deck; long sources lists; periods in templates

Section titled “2026-10-27 · Edit a picture in a deck; long sources lists; periods in templates”
  • Edit a picture. Double-click a picture on a slide to crop it, turn and flip it, set its brightness, contrast and saturation, choose a filter (Mono, Warm, Cool, Vivid, Fade), fade it, give it a shape, a border in your style’s colours and a shadow, replace it or write its alt text. Each change is one step that Undo takes back, and the PDF, PNG and PowerPoint exports draw the picture as the editor shows it. See Edit a picture.
  • A sources list that runs long continues on more pages at its own text size, in the editor, while presenting and in every export, each page counted in its title.
  • Keep a period as it is. In Copy for next period, each period that moves offers Keep as it is, so a baseline such as 2024 stays put; the deck and its copies remember the figures kept (one that moves onto a kept period later still moves on), Let it move moves it again, and the audit log records each change. See Keep a period as it is.
  • A photo taken on its side shows turned as your browser shows it in every export, at the size it shows at.
  • A template asks which period to read. Choosing a template offers its periods, the suggested one first, and each chart and table reads the window its words name; a copy for the next period moves such a window by one period.
  • A number in a master’s footer (a studio name such as Studio 54) is plain text, not a figure the checks ask about.

2026-10-27 · Reports and dashboards in styles, colours and fonts

Section titled “2026-10-27 · Reports and dashboards in styles, colours and fonts”
  • Design a report in one click. The report editor’s Design panel offers the same styles, colour palettes and font pairings as the rest of DataSquares, and your brand kit. The page, its headings, numbers, tables, charts and cards take the style in the editor, in shared links and embeds, in every file the report becomes and in scheduled emails. A report without a style keeps its own look. See Design.
  • Start a dashboard from a style. A dashboard’s Theme panel and the workspace’s themes offer the same styles, palettes, font pairings and brand kit; choosing one sets the dashboard’s colours, fonts and cards in one step that Undo takes back, and exports draw the same fonts. A dashboard keeps its theme until someone chooses. See Start from a style.
  • Dates in scheduled sends. Every scheduled send now writes dates in your workspace’s date format and default timezone, as exports always have. Some schedules that send the report as it was when each send was prepared wrote dates as year-month-day in UTC; those now match too. A send prepared before this change keeps the old form.

2026-10-26 · Presentations: slide decks whose numbers don’t lie

Section titled “2026-10-26 · Presentations: slide decks whose numbers don’t lie”

Availability depends on the deployed API and web app revisions. Presentations is part of every plan and reaches workspaces in stages: Presentations appears in the menu once it is on for yours.

  • Slide decks on governed data. Every KPI tile, chart, table and number in a sentence is bound to a metric, a model measure, a saved query or a dashboard card, and computed for each reader with their own access. The deck keeps the binding, never the value. See Presentations.
  • Start from what you have. A blank deck; a template whose data slots ask for the figure they need; a dashboard, cut into slides at its row boundaries or one slide per visual, every chart still live; or a story, one slide per section. Add to presentation brings a dashboard card, a saved query or an AI chat answer into a deck, bound. A dashboard’s filters are not carried yet, and the slides say so. See Make a deck.
  • A slide editor. A 1920 × 1080 stage with snapping, the Data and Elements side panel, the Data, Format and Checks inspector, sections, hidden slides, speaker notes with live numbers, layers and reading order, undo with each slide’s history, and one person at a time on each slide while others edit the rest.
  • Figures that say what they are. Periods that roll forward, comparisons, calculations, filters and formats as in Stories’ bound numbers; a subtitle on each chart, tile and table with its period, filters and EMEA only, your access; Data through and provisional on every figure; a dash with the reason for a figure a reader may not see. See Bind numbers to data.
  • Checks as you build. Unbound figures, bars that don’t start at zero, partial periods compared with whole ones, mixed currencies, ratios averaged, claim words their figures contradict, faint or tiny text: each finding with its fixes, many of them one click. A finding that must be fixed blocks publishing and exporting. See How the checks work and the checks reference.
  • Publish and versions. The checks run again on the server; each publish makes a version with its check report. Restore any version: the draft is kept first. See Publish and versions.
  • Present. Name the meeting or rehearse; full screen or in a window for a video call; a presenter window with notes, the next slide and the time; every figure’s source on a click or I; values read once per slide and kept for the session. See Present.
  • Records of what was shown. Publishing, presenting to a meeting and exporting each write a record of the values shown that nothing can change; its values are read only by the owner, editors and that meeting’s presenter, under their own access. See Records of what was shown.
  • Share and comment by role inside your workspace, with comments anchored to slides and elements, mentions, resolve and follow. See Share and comment.
  • Templates in six styles. Twelve ready-made decks, from a board update to a year in review, in six styles you can preview before you start. Their data slots ask for the figure they need and suggest your workspace’s metrics that match, certified first; each is one click to confirm, and nothing binds on its own. See Make a deck.
  • Freeze for a meeting. Keep a published version’s values as they were when the meeting starts: readers whose access matches see them, everyone else sees live values and a note saying so. See Publish and versions.
  • What changed since a meeting. Compare a deck with what was shown: each figure that moved, classed by why (data that arrived late, a correction, a changed definition), with the authors’ notes. See Records of what was shown.
  • Export from the editor. A PDF of slides, slides with notes or handouts; one slide as a PNG; or an editable PowerPoint file with native charts. Every exported page says when its numbers were read and links back to the live deck. See Export a PDF, a picture or a PowerPoint file.
  • Not yet: links outside the workspace, embedding, schedules, the Android app and drafting with the AI come in later releases.

2026-10-24 · One viewer seat with AI included; Enterprise: single sign-on and SCIM, and Enterprise from 10 seats

Section titled “2026-10-24 · One viewer seat with AI included; Enterprise: single sign-on and SCIM, and Enterprise from 10 seats”

Availability depends on the deployed API and web app revisions.

  • Single sign-on moved to Enterprise. Setting up, changing or switching on a single sign-on connection (OIDC or SAML) is Enterprise. On every plan, people keep signing in through a connection that already exists, and an admin can still read the settings or remove the connection. See Single sign-on.
  • SCIM tokens moved to Enterprise. Creating a SCIM token is Enterprise. Listing and revoking tokens, and provisioning with a token you already have, work on every plan. See User provisioning.
  • Kept until your renewal. A workspace whose paid Business period was running keeps single sign-on and SCIM until that period renews, and the Single sign-on and SCIM provisioning cards say until when. Custom roles and every other Business feature stay on Business. Two-factor authentication, passkeys, sign-in links and signing in with Google or Microsoft are not single sign-on and stay on every plan.
  • One viewer seat, AI included. The viewer with AI seat is retired: every viewer seat now brings the person who holds it 1,000 AI credits a month of their own, used before the credits your company bought, with nothing to give out or take back. A viewer is $19 (₹1,599) a month or $190 (₹15,990) a year on Team, $24 (₹1,999) or $240 (₹19,990) on Business, and $29 (₹2,399) a month on Enterprise, billed yearly. Editor prices don’t change. When their own credits are used up, viewers keep asking from the credits your company bought while Viewers may use the credits your company bought is on (Administration → AI). Every viewer asks at the viewers’ level, including the people who held a viewer with AI seat. Administration → Billing → Plans lists each viewer’s credits for the month. See Viewers’ own credits.
  • Enterprise from 10 seats. Enterprise now starts at 10 seats, editors and viewers in any mix, with at least one editor, instead of 25 editors, and with no minimum contract value. One editor and nine viewers is $420 (₹34,840) a month, billed yearly. Enterprise is still sold by agreement: contact sales. See Team, Business and Enterprise.
  • Sign in with your email first. The sign-in page asks for your email, then shows only what fits it: single sign-on when your organization uses it, otherwise your password, with an emailed link, a passkey and your phone as other ways in. Google and Microsoft, where they are set up, are one click on the first step, and Google offers the account your browser is signed in to. A browser that cannot offer passkeys no longer shows an error before you have done anything. When single sign-on refuses you, the page now says why: no account, an account in another organization, a disabled account or suspended access.
  • Passwords follow single sign-on. Once your company has single sign-on switched on, members sign in through it, not with a password; company administrators keep their password for when the provider is down, and each such sign-in is in the audit log. See Single sign-on.

2026-10-23 · Embedded users: each person, on your site

Section titled “2026-10-23 · Embedded users: each person, on your site”

Availability depends on the deployed API and web app revisions.

  • Embed apps: two keys. Under Administration → Embedding, a company administrator makes an embed app: the dashboards and reports it may show, the sites it may be shown on, its row rules, Ask AI and its budgets. Its key’s secret is shown once and stays on your server, which signs a short-lived token for each person; the browser carries only that token, swapped once for a session bound to your site. Two keys at a time let you rotate; revoking a key or the app ends its sessions at once. See Embed dashboards for each person.
  • Each person’s rows. For your own customers (Enterprise), the token’s attributes must match the app’s row rules exactly and filter every card; your model’s row-level security applies too, and an app with no rules says that everyone sees every row before it is made. People in your company (Business) see exactly what they see signed in, under their own role, row security and credits.
  • Counted per person and per tenant. Views, Ask AI questions and AI credits by app, tenant and person on Administration → Usage, and each view and question in the audit log with the app, tenant and person. Each person finds their own Ask AI conversations again in their next session. Customers’ questions use the AI credits your company bought and stop at zero; the app’s budgets pause Ask AI for one person or one tenant, and the view keeps working. When one of your customers asks you to delete their data, Remove them there (Erase a person).
  • Customer-facing views on the invoice. A view is one person on one embedded dashboard or report for up to 30 minutes. Enterprise includes 20,000 views a month, then $50 (₹4,150) per 1,000 on an invoice of its own after the month (Embedded views).
  • The React SDK, 0.2. <DataSquaresEmbed getToken> asks your server for each person’s token, and signEmbedToken from @digisquares/datasquares-embed-react/server signs it (React embed SDK).
  • Embed tokens retired. The per-viewer tokens made with POST /api/embed-tokens were never accepted, so no embed depended on them: making one now answers 410, and the ones left are listed and revoked under Administration → Embedding by a company administrator.

2026-10-23 · Enterprise: compliance auditing, release management and the company audit view; row-level security on people’s attributes

Section titled “2026-10-23 · Enterprise: compliance auditing, release management and the company audit view; row-level security on people’s attributes”

Availability depends on the deployed API and web app revisions.

On every plan:

  • Row-level security on people’s attributes. A policy can keep only the rows whose column holds one of the person’s own values, such as their region or cost center, so one policy gives everyone their own rows. With a rule, the filter expression becomes an optional extra condition. Someone without a value for the attribute sees no rows from that policy. See Rules on a person’s attributes.
  • People’s attributes. Company admins set them under Admin → Users → Actions → Attributes (People’s attributes); your identity provider can send them through SCIM, from the enterprise extension, the work address or a DataSquares extension (Attributes for row-level security). Changes apply at the next query and are in the audit log with their values before and after.
  • Share a report with a member. Share on a report opens it to a workspace member as a viewer or an editor, even when their role doesn’t cover reports, as a dashboard’s Access does; an editor grant now opens the report for editing in the app. See Share a report with a member.

On Enterprise:

  • The company audit view. Company admins switch the audit log to Whole company: every workspace’s actions and the company-level ones (people, sign-ins, the security policy, single sign-on, menus, billing) in one list, with a CSV export. See The company audit view.
  • Compliance auditing moved to Enterprise. Exporting the audit log (the CSV and the NDJSON feed for your SIEM) and the query feed are Enterprise, with 7 years of history: the retention sweep keeps an Enterprise company’s rows in an archive the exports read. Every plan still reads two years of the log in the app. A workspace whose paid Business period was running keeps the export until that period renews. See Exporting.
  • Release management on Enterprise. Importing a dashboard, model or metric definition into a workspace is Enterprise; exporting, versions, the diff, dashboard stages, restore and pipeline promotion stay on every plan. A workspace whose paid Team or Business period was running keeps importing until that period renews. See Import a definition.
  • Your agreement on Billing. Administration → Billing shows the agreement’s terms (invoice or purchase-order billing, the uptime SLA, high-priority support, the data processing agreement) and the dedicated servers for Pipelines and Warehouse, which DataSquares sets up by hand. Below Enterprise, Plans says what Enterprise adds, with Contact sales. See Team, Business and Enterprise.

2026-10-23 · Ask AI beside any web app: the browser extension

Section titled “2026-10-23 · Ask AI beside any web app: the browser extension”

Availability depends on the deployed API and web app revisions and on the extension’s listing in the Chrome Web Store and Microsoft Edge Add-ons. On the Business and Enterprise plans, once an administrator turns it on.

  • DataSquares in your browser’s side panel. The DataSquares browser extension for Chrome and Edge puts the DataSquares AI assistant beside any web app: on a site your administrators set up, such as your CRM, the chat starts on the dashboard or model they chose for it, and a small DataSquares button on the page opens it. Every answer runs as you, with your access. See Ask AI beside any web app.
  • Signed in through DataSquares. Sign in opens a DataSquares sign-in window, single sign-on included; the extension never sees your password and holds no API key. Its sign-in lasts until you close your browser and is listed under Settings → Security as Browser extension.
  • Only the sites you allow, only the text you add. The extension reads the address of the sites your administrators set up, after you allow them, and a page’s text only when you tick Add this page for one question. It keeps nothing after you close your browser.
  • The same AI as the chat. The same AI controls, effort levels and AI credits as the chat; it has no price of its own.
  • For administrators: Administration → AI → Browser extension turns it on, chooses who may use it and what it offers on other sites, and maps sites to data, with page text and page context (a value from the page’s address, such as the account on screen, as a filter) off unless you turn them on. See Set it up.

2026-10-23 · What the AI assistant builds: design rules, more cards in one approval, and text from computed numbers

Section titled “2026-10-23 · What the AI assistant builds: design rules, more cards in one approval, and text from computed numbers”

Availability depends on the deployed API revision; dashboard templates, takeaway paragraphs and builds in stages need a server that turns the assistant’s new tool set on. The design rules apply to whatever the assistant builds — whole dashboards, single cards, report charts and tables — on either of its tool sets. See How the agent designs what it builds.

  • Every card is tried before you approve, and warnings are marked. Each card runs once on your data, as you; the approval card shows its first rows and a takeaway, and marks warnings (No rows for these filters, 28 categories: showing the top 10 and Other) with a warning sign. A card that cannot be built is left out with the reason, after at most two tries to repair it, and the rest is still built. The confirmation after you approve names what was left out; a single card the assistant could not build is reported in its reply. When you did not name a chart type, the approval card names two or three other ways to show the chart.
  • KPIs compare. A KPI the assistant builds shows its latest whole period against the one before (with the new tool set, also the same period last year, or a target you give), with a sparkline, and names the period under its title; this month so far is never set against a whole month — on dashboards, in reports and in their PDF, PowerPoint and HTML exports, which print the period and its change under the value. The Android app shows such a KPI’s latest period, which may still be filling. A KPI limited to a window of its own (Revenue YTD, the last 30 days, Q1 2026) shows that whole window. A cost’s rise is shown in red, or as a governed metric of the KPI’s name says when it says which way is better. Any KPI or gauge on a dashboard or in a report with no rows for its filters now says No data for these filters instead of 0.
  • Numbers as your model formats them. Values carry your model’s formats, so a large total of a field with no format of its own reads 2.3B; a count of an identifier is named after what it counts (Customers); a field’s default aggregation is used when you do not say one, and a sum or average of text, a date, an identifier or a rate is never made — not even as the field’s default in your model — nor brought into a card or report block by an edit; an identifier is known by its name too (Order Number, Invoice #, a SKU).
  • Charts that read honestly. Top 10 and Other (a pie the top 4), with Other only for values that add up, or every category when you ask for every one; a pie only for five parts of a whole at most; a chart over a date read as a trend, a pie over time drawn as columns; bars from zero; a second axis only for different units, the approval card saying when a rule undid what a card asked; targets muted, last year lighter, Other grey, all in your theme’s colours; an average line on a trend and the value axis titled with its unit; and a one-line subtitle under each chart that says what it shows and how it is cut, naming none of your data, since every reader sees the card with their own row-level security and masking (the takeaway from the rows, a rate’s change in percentage points, is on the approval card).
  • Layouts that fit. On the dashboard’s own grid, condensed included; a single card asked for a taken spot goes to the next free row; with the new tool set, cards can also go beside a named card or into free space. In the editor, the assistant’s change is one step you can undo.
  • Tables, scatter plots, maps and text in one approval. A dashboard the assistant builds or finishes takes them in the same approval as its KPIs, trends and breakdowns, each checked against your model and tried on your data, as you, before the approval card shows its first rows; they used to need an approval each. Any other chart type (a donut, a funnel, a treemap, a waterfall, a radar, a heatmap and the rest) still comes as an approval each. See What the agent adds, and where.
  • With the new tool set: dashboard templates, takeaway paragraphs and big builds in stages. A new dashboard is built on one of four templates (Executive overview, Focus, Monitor grid or Briefing), each with the KPI row first, a filter bar at the top of each page and about eight visuals a page, and the cards of each business question together under a heading with that question, in your workspace’s dashboard theme or the theme and compact layout you ask for. A takeaway paragraph says what each card shows and how it is cut, in the words of its subtitle, never a figure from your data. A build plan of many cards is built and checked a few cards at a time, each card tried as the whole build will build it, the plan card saying how many are ready, and comes as one approval card for the whole build, up to 60 cards or blocks, whose Change lists those cards. See Building with the new tool set.
  • Report commentary written from your data. When the assistant writes a report’s summary or commentary, the numbers come from DataSquares, computed on your data before the approval card appears: a value, a change on the period before or a year before, the members that drove it, the leaders of a breakdown, what stands out, a period’s pace to a target. The AI writes only the words, in sections — the headline, the context, the drivers, then what to do about it. The approval card lists the numbers and flags a figure the AI typed that matches none of them. With the new tool set, a report’s text quotes the cards built with it. See What the agent adds, and where.
  • It stays current. Each time the report is sent or exported, the commentary’s numbers are computed again, with the report filters and parameters of the cards it quotes — and, for numbers written for the text alone, the report’s parameters, so each recipient of a data-driven send reads about their own value. A month counts as over once it has ended in UTC and in your workspace’s time zone, so a report sent on the 1st speaks of the month just ended; a commentary whose period has not come yet is sent with a note. A number that cannot be computed for that send leaves the commentary out with the reason rather than old numbers. Edit its words and they stay yours. See reports.
  • Only for readers who may see its numbers. A reader row-level security restricts on the commentary’s data, and a shared or embedded report that filters rows, sees why in its place instead of numbers computed with someone else’s access — an edited commentary too, in what is sent or exported for them and in a copy narrowed for its recipients; the assistant reads the report the same way for them. See reports.
  • Write from the data, in Stories. A section with live data can have its narrative written from numbers computed from that data, in the same four parts, with every number a live number that reads exactly the row the words are about; you preview it and insert it. The Android app shows a number that is a change between two periods as a dash for now. Rewording keeps live numbers, mentions and dates in place, and asks before it removes or adds a number you typed; a selection with a chart or another block in it is not sent. Write with AI names, before you insert, any figure that won’t be a live number. A live number keeps its row when the section is edited. See Write from the data.
  • Card summaries: a preview first. Summarize with AI shows you the summary before anyone else sees it — dated, labelled AI-written, saying how many of the card’s rows it was written from (up to 5,000, or the first 50 for a card that offers no computed number, and that the rest were left out), with its numbers computed from the card and any other figure flagged. A card that shows only its top rows is summarized from those rows, never as all of the data. Show to everyone puts it on the card, below the chart instead of over it; a preview nobody shows is deleted after a day. It is the one takeaway from your data a card carries, hidden from a reader a row-level security policy on its data restricts, and never on a shared link or an embed. See AI card summaries.

2026-10-22 · Answers that go on when something goes wrong

Section titled “2026-10-22 · Answers that go on when something goes wrong”

Availability depends on the deployed API and web app revisions. Waiting for the AI comes with plans, on a server that turns plans on; picking answers up again and reconnecting, on a server that turns them on.

  • When the AI can’t be reached, a question waits instead of failing. The working card says The AI is busy right now; it will continue on its own., with how long it has waited; the question tries again on its own while it waits, and the answer goes on by itself when the AI is back — for up to ten minutes; after that the reply stops with what was found, labelled. A step the AI keeps failing on is tried three times in all, never again and again. Waiting uses no AI credits. See When something goes wrong.
  • AI is catching up. While answers may be slower, the chat says so above the message box, and the banner clears by itself (troubleshooting).
  • An answer survives a dropped connection and a restart. Closing the tab or losing the connection no longer stops an answer on the web: the chat reconnects on its own and shows what you missed, nothing repeated. An update or a crash of the service in the middle of an answer no longer loses it: it picks up again from its last finished step, and a change it was making is never made twice. Stop still stops it. The Android app keeps today’s behaviour, except that while the AI can’t be reached it may show the start of a step twice; reopening the conversation shows the answer as it was saved (On mobile).
  • Charged once, for what it did. An answer that waited, reconnected or picked up again is still one answer and one charge, the quick AI steps it took on the way included (AI credits).

2026-10-22 · Effort and AI credits on screen

Section titled “2026-10-22 · Effort and AI credits on screen”

Availability depends on the deployed API revision; the pause at the limit needs a server that runs the new engine loop.

  • The effort chip. Beside Send, one small chip names the effort your next message gets, and opens Quick, Balanced, Deep and Max, each named by its effort. Ctrl+Shift+. (⇧⌘. on a Mac) moves to the next one. Until you choose, it names your company’s default. See Effort.
  • Your choice stays. It is saved to your profile, so it applies to every new conversation, every AI chat box and measure drafting, on any device, until you change it. A choice kept in one browser before moves to your profile the first time you open the chat.
  • The company’s effort, on Administration → AI → Effort: the default level (the plan’s — Quick on Team, Balanced on Business and Enterprise — unless changed), the effort picker shown or hidden, the viewers’ level for viewers without an AI seat, Ask AI on shared links and embedded chat (Quick unless changed; above Quick on Business and Enterprise), whether those viewers may use the credits the company bought, and the highest level people may pick, which no conversation passes by itself either. With the picker hidden, a conversation on the default level still moves up one effort for a much harder follow-up or a build. See Set the company’s effort.
  • What changes before an admin changes a setting. Measure drafting runs at each person’s effort: Quick by default on Team, where it ran at Balanced. The Android app and the SQL editor’s Explain and Generate use the effort you chose, where they ran at the default. Viewers without an AI seat ask at the viewers’ level, Quick, which is also the highest they can choose; on Business and Enterprise they asked at Balanced and could choose any. Ask AI on shares stays at Quick, viewers keep using bought credits, and every level stays offered to everyone else.
  • An answer names the effort it ran at, beside its time (Deep effort · 4.2 s) and in its Response details, never its credits.
  • When a question needs more work than usual, AI chat on the web pauses once its rounds of work are used up and asks: This needs more work than usual: continue, or show what we have. Continue gives it as many rounds again; Show what we have answers from what it found. See While it works.
  • Running low, one banner. Members get Ask an admin, which tells the billing administrators how many credits are left; people who can buy credits get Buy credits. Dismissed, it stays away until the credits run out or the month turns. Request more credits on Administration → Usage does the same. See Running low.
  • When the credits run out, a verified question asked word for word, and asking for the last quick answer again, still answer: they need no AI, use no credits, and say so. See When the credits run out.
  • The Usage page shows credits by person and by workspace, as well as by feature, in whole credits.
  • Who can change what a schedule sends. A report or dashboard schedule normally sends what the person who created it can see, so only they or a workspace admin can now change who receives it, the parameter values it sends the report with, or its delivery policy; anyone else is told so. To get one yourself, use Email me this report or Email me this dashboard. See Scheduling.
  • A schedule waits when someone else changes what it sends. When anyone but its creator or a workspace admin changes what a report or dashboard shows, each schedule that sends it as its creator sees it pauses for review, and the creator is told in the app; only they or an admin resume it. See Scheduling.
  • A schedule keeps its creator’s filters, and waits when what it reads changes. Changing a report’s or dashboard’s filters no longer pauses its schedules or changes what they send: each sends the filters its creator made it with, until they choose Use current filters. A change by someone else to a data model (a field, measure, table, relationship or transform step added, changed or deleted, or a version restored), saved query or metric a schedule reads pauses it like an edit to the report, and the schedule list says who changed what, and when. A field still in use can’t be deleted, a new field can’t take another’s name in its table, and a send whose filter no longer names a field is skipped, never sent without it, and its creator is told in the app. See Scheduling.
Section titled “2026-10-22 · The AI experience: change a proposal in place, Continue, and labels that link back”

Availability depends on the deployed API and web app revisions.

  • Change a proposal on its card. Change on an approval card no longer starts a new AI turn: it lists the parts of the change — each card and filter, a new dashboard’s name, the fields an update changes — to remove or rename where they are, starting from the whole title or value. Check changes checks the result again with no AI and no AI credits, and the card shows the changed proposal to approve; one approved meanwhile in another tab is never applied twice. A change that can’t be taken apart puts Change the proposal above: in the message box for you to finish. See Changing a proposal.
  • Continue an answer that stopped early. An answer cut off at the step or length limit, by Stop or by an error offers Continue, which goes on from what was found, and Narrow it down, which puts your question back in the message box. An answer whose steps ran but wrote nothing offers the same instead of a Retry that started over. See What answers look like.
  • Starter questions from your data, on the chat panel and the AI page alike: built from the page you are on and the measures in your models, with no AI until you pick one. Answers end with Ask next follow-ups by default; showing them uses no AI credits.
  • Draft with AI beside your measure. The SquareX copilot’s draft no longer replaces the expression you are editing: it appears beside it with one sentence on what it computes, bracketed where the formula groups, and you choose Replace, Insert at the cursor or Discard. See Two ways to author.
  • AI-built and AI-written. A dashboard the AI built, and each card it added (exactly those, never a card someone else added meanwhile), say AI-built with the date, and link to the conversation that built them for the person who had it. Analyze’s, Explain’s and a metric’s AI summaries say AI-written with the date. The AI sparkle now marks AI only: a card’s Analyze button shows it no more. See Ask AI on a dashboard.
  • No credit numbers in the chat. The chat’s header no longer shows the credits left; they are on the Usage page. A question the assistant will not take now says what it can do instead.
  • Accessibility and phones. One status line says when an answer is ready or an approval needs you, and focus moves to an approval card; Analyze, Explain, a shared view’s Ask AI and Draft with AI say they are working and when their result is ready, and move focus to it. Every place you type a request to the AI uses 16 px text on phones, and Send, Stop, the suggestions and an answer’s buttons are 44 px there. See Accessibility and phones.

2026-10-22 · AI effort: lower between Balanced, Deep and Max at once, and a second look at a failing query

Section titled “2026-10-22 · AI effort: lower between Balanced, Deep and Max at once, and a second look at a failing query”

Availability depends on the deployed API revision, and the second look on a server that turns it on.

  • Between Balanced, Deep and Max, a lower effort applies from your next message too, as a higher one always did, and the conversation’s follow-ups stay quick: the three differ only in how much effort goes into each step. See Effort in a conversation.
  • Quick takes over sooner. Choosing Quick in a conversation that runs at a higher effort still waits for the conversation to move, but it now also moves once the conversation has gone unused for a while (five minutes after its last answer, or an hour from its third message on), as well as when its oldest part is summarized or in a new conversation. Until then each step runs at Balanced’s effort, with Quick’s lighter work where plans are on.
  • Higher or lower is measured against the effort the conversation runs at, not the one you chose last: in a conversation at Deep, choosing Quick and then Balanced runs Balanced from your next message.
  • A query that keeps failing gets a second look. When a query the assistant wrote still fails its own checks after two fixes in a row, it is reviewed once at the next effort up (from Deep, at Max’s), and the assistant goes on from the corrected query or from what could not be fixed. The review is one of the question’s rounds of work and uses AI credits like any other step; a query refused because of who may read the data, a source that is not answering, or data that is not there is said as it is, never sent for review (except where the database reports a table you may not read as missing, as Oracle does: that cannot be told from a misspelled name). Answer now or Stop ends a review in progress at once. At Max, where there is no effort above, the question stops there with an answer from what was found, labelled Response incomplete. See While it works.

2026-10-22 · The assistant’s new tool set

Section titled “2026-10-22 · The assistant’s new tool set”

Availability depends on the deployed API revision, and on a server that turns the new tool set on; a conversation keeps the tools it started with.

  • Answers from your data model first. The assistant asks your data model for measures, dimensions and a period, the model’s relationships making the joins; SQL of its own is a labelled fallback. With row-level security applied to you, it answers from the model, filtered to your rows, where it used to stop. A filter keeps rows before anything is added up. See On a server with the new tool set.
  • It checks before it answers: filter values that match nothing, a period with no data, a breakdown that does not add up to its total (every complete breakdown is checked), and failing data-quality checks are said beside the answer; an answer cut at its row limit is said to be the first rows, never added up as a total or drawn as shares of a whole, and compared with another period for its own rows only.
  • Comparisons follow the calendar: a month, quarter or year, named or given as its dates, is compared with the one before it; a rolling window or other dates with the same number of days just before.
  • A chart of a share shows the whole: a pie, or bars of 100%, of every part, each part’s rows added up, and of values that add up; split by a second field, each part is one bar of 100%. A top list without Other, an average or a change is drawn as a ranking, with no share of a total.
  • A chart you ask for comes with the answer, drawn in the same step from the rows the answer read; when it cannot be drawn, the answer still comes, with the reason.
  • Clearer questions back: up to three short questions with options and a recommended one.
  • It reads dashboards, reports and Stories you can open, with each card’s first rows as you would see them.
  • Admins see the new tools under Administration → AI → AI tools, each saying which tools it takes over (AI tools).

2026-10-22 · AI builds tried before you approve, several changes at once, schedules in your time zone

Section titled “2026-10-22 · AI builds tried before you approve, several changes at once, schedules in your time zone”

Availability depends on the deployed API revision, and on a server that turns the assistant’s new tool set on.

  • Every card tried before you approve. A dashboard or report the assistant builds runs on your data, as you, before the approval card appears. The card shows the layout row by row and each card or block with its first rows and a takeaway worked out from them, says which were left out and why, and warns of a chart with no rows for its filters or of a ranking cut to its top 10 and Other (a pie to its top 4). A takeaway never compares a month still in progress, or one dated after today, with a whole one. One approval covers up to 60 cards or blocks, the whole of a build plan (a build with many very long notes comes as a few approvals), and a new dashboard or report can have several pages in it; each page is laid out filters first, then KPIs, trends and breakdowns, on the dashboard’s own grid, and never on top of another card. Every chart type the assistant could build before can be part of it, from funnels and treemaps to heatmaps, radars, box plots, gauges and pivot tables. See Building with the new tool set.
  • Several changes in one approval. Renaming, changing chart types, moving cards (headings, images and buttons too) and deleting them on one dashboard or report is one approval card with every field before and after; only those fields change. A chart you change is tried on your data first, the card showing its first rows, and one that does not run is not offered. A dashboard someone changed since the assistant read it is never overwritten.
  • Email schedules in your time zone. A schedule the assistant sets up sends in your company’s Default Timezone, or the one you name, never in UTC by default: if none was ever saved, the assistant asks. The approval card shows the next three sends in that zone and up to 20 recipients, flagging any address outside the workspace. An alert can now email up to 20 members of the workspace.
  • SquareX measures from chat. The assistant drafts a measure from your description, checks it, tries it on the data you can see, and saves it on the model through an approval card when your role may create models.
  • Not yet: Stories. Building into a Story or changing one is not available with the new tool set yet; the assistant says so.

2026-10-22 · The assistant’s new tools: why a number moved, notes you can undo, and pipelines dry-run first

Section titled “2026-10-22 · The assistant’s new tools: why a number moved, notes you can undo, and pipelines dry-run first”

Availability depends on the deployed API revision, and on a server that turns the new tool set on.

  • Why a number moved, on governed data. The assistant explains a change in a metric, a measure or a field between two periods (a whole month against the whole month before), or against a metric’s target for one whole period of its grain: each member’s part of the change for up to five dimensions, and, given the volume behind it, the change split into volume, mix and rate. DataSquares computes the numbers, as you, with your row-level security and masking, and the assistant puts them into words; a period that hasn’t ended yet is flagged, and one member carrying the whole number is never taken as proof that a metric adds up. It also ranks the dimensions that explain a numeric field’s spread. See Grounded in your governance.
  • Trends, anomalies and forecasts on a governed series, by day, week, month, quarter or year, with the periods that have no data named, and a period that hasn’t ended, or that is only partly inside the dates read, left out of the math so it never reads as a drop or a jump.
  • A look at a table’s columns, every column reachable a page at a time, the most frequent values first, and how far to trust the data: freshness, the daily row-count check, data quality checks and their failing rows, open incidents and certification, for a table, a model (its tables a page at a time, the ones needing attention first), a field or a result.
  • Notes you can list and undo. The assistant lists your notes and your earlier topics page by page, and when it remembers, changes or forgets a note it says so, and you can ask it to undo that. A note you ask to share with a data model or the workspace is recorded as a proposal for its owner and shared with no one. See Notes the AI keeps.
  • Pipelines drafted and dry-run before they are saved. A draft shows the SQL each transform compiles to; a dry run adds the rows each step read and wrote in the last successful run, each transform’s rows from that run’s data with empty and repeated rows counted (only when everything they come from is data you may read: inside the AI scope, without row-level security applying to you, no column under a label hidden from you; and only when the pipeline hasn’t changed since that run and the change being drafted leaves the steps the transform reads from as they are), and the cost estimate. A sample run of a draft isn’t available yet. Changes come step by step in one approval, keeping every step you don’t mention as it is, and on a step it replaces what only the editor sets (its schema drift policy, parallel reads, retries, run condition, and file, Google Sheets and API deliveries); the card names anything a change drops, and dropping a load’s destination or a strict drift check is marked destructive. One too large for an approval card is refused before any card, with how to save it in parts. A schedule names its next run only while it is on. See Pipelines from chat.
  • The run card shows the month’s execution hours (used, included and left) and the expected time, and a run the month’s hours would refuse is refused before any card.
  • Connections: listed and searched a page at a time, and a connection test says why it can’t connect in plain words, without the server’s own error text.

2026-10-22 · How much of a model the AI reads, and small models read whole

Section titled “2026-10-22 · How much of a model the AI reads, and small models read whole”

Availability depends on the deployed API revision, and the compact model listing on a server that turns it on.

  • What the help says is now what happens. The help said the assistant reads most models whole. It reads the whole of a model with up to about 100 to 120 fields, about 80 to 90 when the tables and fields have descriptions; on a larger one, which can be a model of a dozen tables, it first reads the fields of the first tables, about as many in all, and the names of a few more tables at most, then asks for the tables it needs by name or searches for them; AI search, where the server turns it on, runs only on a model of several hundred tables. See How the assistant reads a model.
  • With the compact model listing, small models are read whole. The assistant reads a compact listing of the model, a line for each table with its columns, their types and keys, the relationships and the measures, and the whole model whenever it fits what the answer’s effort reads at once: about 900 columns at Quick, 1,700 at Balanced and 3,300 at Deep and Max, fewer when every table and column has a description. A larger model is listed as far as that goes, the tables your dashboards, saved queries and metrics use most first.
  • Every model at the start of a chat. With the listing, the assistant sees a line for each data model of the workspace, as many as fit, with its connection, its size and main tables and its description, instead of the names of the ten newest, so it can tell which model a question is about.
  • What the listing leaves out. The AI scope applies as before. The listing also leaves out hidden tables, as hidden fields were already, where the usual listing still names hidden tables; and it lists a field labelled sensitive only to the people who may read labelled values in clear, where the usual listing names it to everyone.

2026-10-21 · Billing: an unpaid change lapses at renewal, and the bundle keeps its Business seats

Section titled “2026-10-21 · Billing: an unpaid change lapses at renewal, and the bundle keeps its Business seats”

Availability depends on the deployed API and web app revisions.

  • A change that is not paid by the renewal lapses. An upgrade, and a switch into or out of the Platform bundle, whose total is due now apply when paid. If the invoice is still unpaid when the subscription renews, the invoice is voided, the change is cancelled and the renewal bills what you hold; the person who asked is told once, in the app. One paid in part holds the renewal until you pay the rest or billing support cancels it and returns what you paid; while it waits, what that subscription gives stops at the end of its paid period. If you cancel the renewal meanwhile, an unpaid change lapses when the subscription ends, and the notice says it ended. The notice links to Billing → Plans, where you can ask for the change again. See A change that is not paid by the renewal.
  • A change whose period has passed can no longer be paid. Once the subscription has renewed since you asked for a change, or has ended without renewing, its invoice reads Cannot be paid on Billing → Invoices, never overdue, with no Pay, and says why when you open it and in Account activity; the change will not apply. A payment that still reaches it is not applied: billing support cancels the change and returns the payment with anything paid before, and the person who asked is told. An older unpaid change that outlived a renewal lapses now, and its notice gives the date the subscription renewed.
  • Changes wait for the renewal’s invoice. From the renewal date until that invoice is paid, a plan change or a switch on that subscription waits, and Billing → Plans says why; once it is paid, a change is priced for the new period. See Buying and changing plans.
  • Plan changes in the account activity. Billing → Invoices → Account activity lists every plan change beside the switches: scheduled, changed or cancelled, and why when DataSquares cancelled it.
  • The bundle keeps its Business seats. Cancelling the renewal of your only Business editor seats while the Platform bundle renews is refused, and Billing → Subscriptions says what to do instead, including when a switch into or out of the bundle is pending; seats whose renewal is cancelled, or on an order awaiting payment, no longer count as seats the bundle keeps; and the bundle’s cancelled renewal can be resumed once Business editor seats renew again. See Switching into or out of the Platform bundle.
  • A credit carried to later renewals ends with its subscription. When the subscription a switch’s credit comes off ends without renewing, the credit closes; it is never paid out.
  • Upkeep stops at zero. Building the search index and the AI search catalog, storing the catalog and a scheduled data-quality scan never go below zero: only what people signed in to DataSquares use goes on an invoice. What a run went past zero reads Upkeep, past zero: not billed in the credit activity.
  • Fixed: a question asked through a shared link or an embed could set the company’s bought AI credits to zero. It now uses only what it used. If your bought credits dropped to zero after a visitor’s question, contact billing support.
  • Clearer words. A viewer with AI whose credits run out is told their own come back next month; a plain viewer is no longer told an allowance resets. Bought credits less than half a credit below zero read under 1 below zero, not 0 purchased. A pipeline’s Cost & performance says use past the included hours goes on your next invoice, under a usage limit DataSquares sets. See When the credits run out.

2026-10-21 · AI effort: Deep, a default by plan, and questions answered at once

Section titled “2026-10-21 · AI effort: Deep, a default by plan, and questions answered at once”

Availability depends on the deployed API and web app revisions.

  • Thorough is now Deep, and every plan has all four efforts. The effort control under AI chat’s message box offers Quick, Balanced, Deep and Max on every plan, a trial included, each named by its effort alone. A choice of Thorough you made before carries on as Deep. See Effort.
  • Auto is your workspace’s default effort: Quick on Team, Balanced on Business and Enterprise, or the Answer depth a workspace admin chooses under Administration → AI. It used to pick an effort for each message.
  • A conversation keeps its effort, so its follow-ups are quick. A higher effort applies from your next message; a lower one once the conversation’s oldest part is summarized, or in a new conversation. On Auto, a follow-up that asks for much more than the conversation so far, or a first request to build a dashboard or report, moves the conversation up one effort, never to Max, and never down. See Effort in a conversation.
  • The AI reads what you ask more reliably, questions phrased as how-tos and questions in other languages included.
  • Some questions are answered at once, on fresh data: a question your admins verified, one number from a governed metric over all of its data, the same answer again, and one question back, with clickable options, when a question could mean several things. They use far fewer AI credits than a worked-out answer, and the numbers are never kept from an earlier answer. See Questions answered at once.
  • Verified answers on Administration → AI: workspace admins add the questions people ask most, each with the governed metric or dashboard card that answers it and the period it asks about, and remove them. A question whose words name a period the answer does not keep is refused, with what to change. See AI settings.
  • A status line while the AI works says what it read your question as, then what it is doing between its steps, so something shows within moments of sending. See What answers look like.

2026-10-21 · AI plans you can watch, Answer now, and big builds that start from a plan

Section titled “2026-10-21 · AI plans you can watch, Answer now, and big builds that start from a plan”

Availability depends on the deployed API and web app revisions, and on a server that turns plans on.

  • A plan you can watch for a question with several parts. A question with three or more parts, and at Deep and Max an analysis, starts with a checklist of three to six steps. The working card shows Step 3 of 6, ticks each step as its work finishes, with what it found, and lists the steps it ran under the one that is running. A lookup or a single chart gets no plan, and at Quick there is no checklist. A changed plan says why. See While it works.
  • Answer now. Once something has been found, the working card offers Answer now beside Stop: the AI stops between steps, stops the queries still running and answers from what it found, labelled incomplete and saying what it did not get to; a query it stopped shows as stopped, not failed. Something being saved, or a change being prepared for your approval, finishes first. It is charged for the AI work it did, like every request.
  • An answer that runs out of rounds still answers. Each question has a number of rounds of work by effort (up to 3 at Quick, 6 at Balanced, 8 at Deep and 10 at Max, and up to 12 in a conversation that builds), and the AI is told how many are left. A lower effort chosen in a conversation sets them, and whether a question gets a plan, from your next message, so a question that would have needed more rounds can use fewer AI credits; each round still runs at the conversation’s effort until the conversation itself moves to that effort, once its oldest part is summarized (see Effort in a conversation). Past them, the next round is its answer from what it found, labelled incomplete, instead of a failure; the same when a step takes too long once something was found (writing the plan does not count). If that answer takes too long as well, the reply says it was cut off (or, when none was begun, that no answer was written), and what was found stays. Each step has a time limit of its own in place of one limit for the whole answer.
  • A big build starts from a build plan you approve. For five or more cards, several pages or a report, at every effort level, the AI first shows a Build plan with the question each card answers. Edit it in place with no AI request (remove, move, rename, change a chart type), Revise it in your own words, Build this or Cancel. Nothing is built before you choose Build this, and approving it writes nothing: the approval card still comes first. A question the AI asks during the build is answered without a second Build this. If the build cannot be made, nothing is created and the plan card says the build did not finish. Up to four cards on one page go straight to the approval card, and so does every build where an administrator has switched plans off (the AI tool Writing the plan). See Build a dashboard.
  • Resume. If the service restarts while a plan runs, the conversation shows where it stopped, and Resume picks it up at the first step not done.
  • On the web for now. The DataSquares Android app does not show plans yet: a question asked on a phone still works from its plan, and while a build plan waits for you, the reply on the phone says to open the conversation on the web. See What the AI can and cannot do.

2026-10-21 · AI search at Balanced, and Prep for AI

Section titled “2026-10-21 · AI search at Balanced, and Prep for AI”

Availability depends on the deployed API and web app revisions, and AI search on a server that turns it on.

  • AI search does more at Balanced, Deep and Max. On a model of several hundred tables, a quick AI step rewrites the question into search phrases and the names your database most likely uses, each searched beside the question; AI search adds the tables between the ones it found, without adding a calendar or a customer table to every answer; another quick step keeps 7 to 10 tables and sorts their columns into the ones the question needs and the ones it might. At Quick it searches and keeps tables as before, and gains the repair and the examples below. See How it finds the tables.
  • Possible joins matched from your data. Warehouses rarely declare their keys, so AI search also finds two columns whose values match, such as a ticket’s cst_no and a customer’s cust_no, from short code lists and from the 100 smallest values of each key column, read weekly from your source and kept in DataSquares only, under the value hints switch. A match is a possible join, never one the assistant relies on as it is: it checks one against your data with a small query, or asks you, before writing a query on it. See Joins matched from values.
  • Every join with where it comes from: the assistant sees how many rows of one table meet a row of the other and whether a join is declared, used in saved SQL or a possible join matched from values, and at Balanced and above can ask for the ways two tables join. Two tables that join in more than one way, such as an order’s date and its ship date to one calendar, and two routes between tables that are as short, are given to it way by way, never as one join and never one chosen for it: it works out from your question which one you mean, or asks you. Two relationships between the same tables are two joins; columns your saved SQL joins on together are one. A join your model or saved SQL already has is never shown as a possible one too, and the joins never depend on the order AI search found the tables in. Where your model’s relationships say which side of a join is many, a fact table’s own joins come first, at every effort; a join between two tables the joins taken already connect, such as a customer’s home store beside the store of the sale, is given apart, with what it means, for the assistant to use only where your question means it. Joins known only from saved SQL don’t say which side is many: among them the fact table may not come first.
  • One repair, at every effort, and one check of a filter value. When a query the assistant wrote from what AI search found fails, Quick included, it sees the database’s own error once to put it right, without the other column names some databases suggest. At Balanced and above, when a question filters on a value no stored value confirms, the assistant checks it with one small query of at most 10 rows, as you.
  • A one-line overview of the model’s other tables on a model of up to about 500 tables, as many as fit beside the tables found, the closest first, and on any large model, at every effort, a few of your own questions marked as answered well that used the tables found, as examples (two at Quick, three at Balanced and above). With the compact model listing, AI search’s tables come in that listing’s form, with the joins between them, and without the overview, the check of a filter value or the examples.
  • Prep for AI in the Data model editor (More → Prep for AI) shows a model’s readiness for the AI from 0 to 100, what to do next, and every join with where it comes from. Draft with AI drafts the missing table and field descriptions, up to 10 tables at a time, from names, known joins and counts, never a stored value; nothing is published until an editor approves a draft, as written or edited, or rejects it. A draft that fails the checks is left out, counted with why, and not drafted again; Prep for AI lists what is left to describe by hand. Drafting runs once at a time on a model, a request for up to 4 minutes (Draft the rest goes on), uses AI credits, shown as Description drafts, and is a feature an admin can turn off per workspace and per role. See Prep for AI.
  • Paid in AI credits as before: the quick steps are part of the answer’s one charge. See How AI credits are counted.

2026-10-21 · What goes on your next invoice: AI credits below zero, data out and usage limits

Section titled “2026-10-21 · What goes on your next invoice: AI credits below zero, data out and usage limits”

Availability depends on the deployed API and web app revisions.

  • AI keeps working when the credits run out, up to your company’s limit. Past the included and bought credits, people signed in to DataSquares can go below zero, and what is below zero when the month closes goes on your next invoice at the pack price, $10 (₹830) per 1,000 credits. A billing administrator turns it on or off and chooses the limit on Administration → Billing → AI credits. The default limit is one month of your included credits, at most 10,000 credits a month unless a contract names more. It is on by default for new companies, off during a trial and without a saved payment method, and off for companies already paying until a billing administrator turns it on. Buying a pack pays it back first, Ask AI on shared links and embeds stops at zero, and billing administrators hear when the company goes below zero, at 80 % of its limit and at the limit.
  • Credits are used in order, by who asks. Editors use the included credits, then the bought ones; a viewer with AI their own 1,000, then the bought ones; other viewers and Ask AI on shared links and embeds the bought ones only. The included credits come with editor seats, so they are for editors. See Which credits a request uses.
  • Pipelines and Warehouse use past the allowance goes on the next invoice, now with data out. Each size includes data out a month (Pipelines 1, 4 or 15 TB; Warehouse 500 GB, 2 or 8 TB), and past it data out is $20 (₹1,660) a TB. Data coming in is free, and so are your own dashboards, reports and AI reading the warehouse. See Data out.
  • No more overage cap to set. Use past the allowance builds up under a usage limit DataSquares sets and reviews; at it, new runs, loads and refreshes wait for the next month, and the refusal names no amount. Billing → Plans shows the rates, this month’s use and what the next invoice will carry. A cap or an off your administrator had set is kept as your limit until we change it.
  • Seats added just before a renewal that falls mid-month bring the AI credits for the days to the renewal at once, and the rest of the month once it is paid, so credits follow what the seats cost.
  • Enterprise contracts carry their editors, with 10,000 AI credits a month for each.

2026-10-21 · Switch into or out of the Platform bundle

Section titled “2026-10-21 · Switch into or out of the Platform bundle”
  • Move from separate sizes to the Platform bundle, or back, yourself. A workspace holding Pipelines or Warehouse sizes saw the bundle blocked with a request to contact billing support, and a bundle holder saw every size blocked. Administration → Billing → Plans now offers Switch to the bundle and Switch to this size instead. The quote names every line and what happens to it (added, replaced, credited, removed, kept, or what blocks it and how to clear it), and shows what is due now and what the sizes cost from the renewal. See Switching into or out of the Platform bundle.
  • What you already paid is credited. The lines the switch removes are credited for their unused days at what each was paid, discount included. When the total is zero or more you pay it now on one invoice and the switch applies with the payment; when it is below zero nothing is billed now and the switch applies at the renewal, where a line on another subscription is credited on the renewal invoice and anything that does not fit comes off later renewals. A subscription the switch leaves empty stops renewing and ends with its period.
  • Leaving the bundle for a larger size is paid now; for smaller sizes it waits for the renewal; raising one product while lowering the other happens on two dates in one switch. A switch scheduled for renewal can be cancelled until it applies, and billing history lists every switch.
  • A switch needs the renewal it lands at. Cancelling that renewal cancels the switch with it; a switch paid now whose invoice is still unpaid at that renewal lapses, a two-date switch with its renewal step, its invoice voided, and the renewal bills the lines you hold.
  • The bundle keeps a Business editor seat. Changing your only Business editor seats to Team while you hold the bundle, or while a switch into it is pending, is now refused, as ordering the bundle without them already was; seats already set to change to Team at their renewal do not count for a switch into the bundle, and a switch and a seat change made at the same moment are taken one after the other.

2026-10-21 · AI search on large models, and the AI scope

Section titled “2026-10-21 · AI search on large models, and the AI scope”

Availability depends on the deployed API and web app revisions, and AI search on a server that turns it on.

  • AI search finds the tables a question needs on a large model. On a model with several hundred tables, too large for the assistant to read whole, it searches a catalog of the model’s tables and fields, by meaning and by name, keeps the few a question needs, adds the tables that join them, and reads those in full. Smaller models are read whole, as before. See AI search on large models.
  • The catalog holds names and descriptions, never your data, and each person finds only what they may see. It is built the first time a question needs it, kept up to date within minutes of every change, and deleted the same day a workspace or company is deleted.
  • Value hints give the assistant the stored values of short code lists (such as regions or statuses) that a question names, so its filters match your data. They are kept in DataSquares only, never read from labelled fields or tables with row-level security, and an admin can turn them off.
  • Joins in the assistant’s SQL are checked on the sources AI search serves: a join with no condition is refused, and a join the workspace’s models and saved queries don’t use is flagged to the assistant.
  • The AI scope: under More → AI scope in the Data model editor, an editor chooses which tables and fields the assistant may use on a model. Measures and metrics built on what it leaves out are left out too, a measure the assistant drafts doesn’t use it, and a table or field that every model over a source leaves out is neither listed nor read by the assistant’s own SQL and data look-ups. See The AI scope.
  • Paid in AI credits, shown as AI search on the Usage page: building and updating the catalog, and searches as part of the answer that ran them. Storing the catalog is included up to 100,000 documents a workspace, then 1.5 AI credits per 1,000 documents a month. Administration → AI shows the catalog, its two switches and the models it serves. See How AI credits are counted.

2026-10-21 · AI credits are counted to the thousandth

Section titled “2026-10-21 · AI credits are counted to the thousandth”
  • Each AI run is charged exactly for its work. AI credits are counted to the thousandth of a credit, with no minimum per run: a small run is no longer rounded up to a whole credit. Balances, allowances, purchased credits and budgets keep the same amounts, now counted to the thousandth too.
  • Every number you see is still a whole credit, now rounded to the nearest, a half up. An amount above zero that rounds to nothing reads under 1, on the Usage page, the credit activity, the AI ledger and its export, budgets and the chat’s header. Totals add up the exact amounts and round once, so a total can differ a little from the rounded rows above it. See How AI credits are counted.
  • One charge for each chat answer. Everything the assistant does to give an answer adds to that answer’s single charge, listed once in the AI ledger. An answer that was stopped or broke off before all its AI work was reported can have a second, later line with the rest.
  • The credit activity lists AI use as one line a day for each feature, with the number of AI runs it adds up (a chat answer is one run), beside the allowance, packs and adjustments. It shows the last 90 days; choose the last 12 months or all time above the list to see more.

2026-10-21 · The shared menu and webhooks: who can change them

Section titled “2026-10-21 · The shared menu and webhooks: who can change them”

Availability depends on the deployed API and web app revisions.

  • On the hosted service, a company can no longer change the menu every company sees. The sidebar’s menu is one menu, shared by every company on the hosted service, and the Menu Builder let a company admin add, rename, move, hide and delete its entries, add external links, and relabel entries for the built-in roles, which every company shares too, so the change reached every company’s sidebar. There the menu tree is now read-only and the page says why. What stays yours is what your company’s own roles call the entries and, on the Business plan, which entries those roles see; another company’s role can’t be read or relabelled. On a private server, which is one company, the whole Menu Builder stays as it was. The hosted service’s menu holds only the entries DataSquares ships, so there is nothing to put back. See Menu builder on the hosted service.
  • Only a company admin manages webhooks. Any signed-in member, a viewer included, could add a webhook sending the workspace’s events to an address of their choosing, or change, test or delete the workspace’s webhooks and read their deliveries. Managing webhooks now needs a company admin, signed in, as the workspace’s other settings do; anyone else gets 403, and so does an API key, whatever its scope. The events webhooks deliver, and sharing a story to Slack, are unchanged. See Who can manage webhooks.
  • Sidebar choices and role labels refuse an entry that does not exist. Saving your own sidebar choices, or a role’s labels, with an entry that does not exist failed with a server error after the saved list had already been cleared. It is now refused with 400 and nothing changes.

2026-10-21 · Measures on mixed-case PostgreSQL tables, and whole averages on SQL Server

Section titled “2026-10-21 · Measures on mixed-case PostgreSQL tables, and whole averages on SQL Server”

Checked on PostgreSQL itself, and for SQL Server through DataSquares’ SQL Server driver over a copy of the demo data kept the way SQL Server keeps it, not against a live SQL Server, Db2 or Snowflake. Availability depends on the deployed API revision.

  • SquareX measures on tables and columns with capital letters, spaces and most reserved words. A measure wrote its columns without quotes, SUM(Orders.OrderTotal), while the chart’s query names its tables in quotes, "Orders". PostgreSQL reads a name without quotes in lower case, so on a PostgreSQL source a chart with such a measure failed with missing FROM-clause entry for table “orders”, and so it did on Greenplum, CockroachDB and the rest of the PostgreSQL family that reads a name without quotes in lower case (on Redshift, when case-sensitive identifiers are turned on; DuckDB and MotherDuck match names whatever their case, so they were not affected). Snowflake reads a name without quotes in capitals, so there a measure failed the same way on a table whose model name is in lower case; and on every database a column with a space in its name, or named with a reserved word such as Order, broke the measure. A measure now writes each column the way the chart’s query names it: in double quotes, in brackets on SQL Server, in backticks on MySQL and BigQuery. So does the SQL DataSquares writes around a measure: the separate queries of Calculate, Fixed, YTD, RollingSum and LastNonEmpty, and an average over a one-to-many join. The compiled SQL the measure editor shows has the quotes too. A measure that already worked gives the same answer. Some column names still can’t be used, as before. A name with parentheses, such as Revenue (USD), is read as a calculation, and a name with a dot, such as unit.price, is split at the dot into two names, in a measure and in a chart’s own columns alike. And a measure can’t use a name the safety check refuses: one holding a word such as Update, Delete, Insert, Drop or Sleep, starting sp_ or xp_, or holding #, ;, -- or /*, such as Invoice#. A chart’s own columns can use those names.
  • Averages of whole-number columns on SQL Server, Azure SQL, Azure Synapse, Fabric Warehouse and Db2. These databases return the average of an integer column as an integer, so a chart’s average of one, and a SquareX Avg or AvgX over one, was cut to a whole number: an average discount of 6.09 showed as 6. The average is now taken as a decimal, to six places at least. A chart that averages an integer column on these sources can show a different number from before, and the new one is right.
  • Ratios keep their digits on DuckDB, MotherDuck, CrateDB, QuestDB and Elasticsearch. A division in a SquareX measure (/ and Divide) and the data quality profile’s averages were worked out to about seven significant digits there, so a ratio in the hundreds of thousands could be off in its cents. They are now worked out in double precision, as on every other database.
  • COUNT_BIG on SQL Server-family sources. The safety check, and on a source with sensitivity labels the check of labelled columns, refused a query with COUNT_BIG(*), COUNT_BIG(DISTINCT …) or a COUNT_BIG window as SQL they could not read. Both now read COUNT_BIG as the COUNT it is, in the SQL editor, saved queries, and the AI’s queries for editors and admins.

From measure to SQL · SQL compatibility and safety errors · PostgreSQL · SQL Server

2026-10-21 · You stay signed in through an outage, and the audit log shows what changed

Section titled “2026-10-21 · You stay signed in through an outage, and the audit log shows what changed”
  • A database outage no longer signs you out. While DataSquares cannot check your session, the web app and the management portal keep it and try again. A page that needs a fresh session says “We could not check your session just now. You’re still signed in: try again in a moment.”, and opening the app during the outage shows “We can’t reach DataSquares right now. You’re still signed in.” until it reconnects. If you weren’t signed in on that browser, it says only that it can’t reach DataSquares and offers Go to sign in; once you sign in there, your page opens straight away. The Android app still asks you to sign in again after an outage; its update follows.
  • Audit Log entries show what changed. Select an entry in Admin → Audit Log: Entry Details now lists each field the change moved with its value before and after (secrets read [redacted]), and the entry’s other details. More changes carry this record: dashboard filters, bookmarks (their saved filters as a fingerprint, never the values), metric digests, a story’s parameter settings, an applied license, and the steps the DataSquares AI assistant adds to a pipeline. The billing country, the menu order and a role’s menu labels carry it too, in the company-level record, which a workspace’s Audit Log does not list yet. A product plan DataSquares grants or ends for your workspace by hand is listed, marked by: operator.
  • Webhook signing secrets are encrypted. A webhook’s secret is now stored encrypted, like a data source’s credentials; deliveries are signed exactly as before. If a secret can no longer be decrypted, its deliveries fail with a message saying to set the secret again, instead of going out unsigned.
  • Password hints match the rules. The invitation page no longer asks for a number or special character, which was never a rule: it states the real ones (8 to 128 characters; no common passwords or names, simple patterns, or your own name or email address). On a self-hosted install, the first-run setup asks for your company name, which it needs, shows why a password is refused, and says the first account’s password is at least 12 characters. The portal’s Add operator form asks for 12 too.
  • Operators’ compute actions and plan grants are in the portal audit log. Changing a VM, a worker or the compute settings, resuming paused schedules, and granting or revoking a workspace’s product plan are recorded with the operator’s name, and a VM or settings change with what moved.
  • Dashboard filter answers are complete. The API’s dashboard filter endpoints now return each filter’s label, linked cards and position, and its default value as stored.

Audit log · Portal audit log · Webhooks · Password rules · Operator security

2026-10-21 · AI that stopped partway, refusals that say why, and one page for AI settings

Section titled “2026-10-21 · AI that stopped partway, refusals that say why, and one page for AI settings”
  • A step cut off partway is charged once, a little later. Every AI run is charged for the AI work it did, and when you stopped an answer or it broke off, the work of the step it was on was not always known yet, so it went uncharged. DataSquares now asks the AI service for it afterwards, usually within a few minutes, and charges it once, as its own line in the AI ledger under the same feature. Only work the AI service reports is charged, never an estimate. That line is part of the same call: it adds credits, not another call or request.
  • An answer that ended early says so after a reload. Response stopped or Response incomplete showed while the answer streamed, and was gone when you opened the conversation again. It now stays.
  • Explain with AI says why there is no summary. When the workspace’s AI controls leave it out (AI or Explain and Analyze off, your role, a used-up budget), Explain this change and a metric’s Explain now say No AI summary: and why, as Analyze does, instead of No AI summary this time. The numbers are unchanged. Through the API, POST /api/ai/explain and POST /api/ai/explain-metric return the refusal as aiRefusal.
  • Suggest recipe’s refusals speak to the person reading them. A member whose workspace had used its AI credits read Recharge under Admin → Billing; they are now told to ask a workspace admin, as everywhere else.
  • The AI usage limit “for now” says it resets on its own, and no longer points to the plan’s AI limits, which no longer exist.
  • A share whose Ask AI the AI controls pause says Paused. A dashboard’s Share dialog now lists your links to it under Your links to this dashboard, each with its Ask AI switch. A link whose Ask AI the controls pause keeps its switch on, as you set it, and says Paused; viewers get Ask AI back once the controls allow it. GET /api/shares adds ai_offered beside allow_ai.
  • Every AI setting is under Administration → AI. The AI assistant, AI tools and What people said about AI answers cards moved there from General.
  • Your own unused saved query is yours to delete. The help now says what the product already allowed: a saved query you created that nothing uses can be deleted without the delete permission.

An answer that ended early · AI credits · Explain this change · What people see when AI is off or paused · Ask AI on a share · AI settings · Saved queries

2026-10-20 · Data quality’s row-count check finds changes

Section titled “2026-10-20 · Data quality’s row-count check finds changes”
  • The row-count check compares each table with a count it saved. It compared tables with a count no data model ever saved, so it found no change. It now saves each table’s latest exact row count, compares the table’s next count with it, and lists a table whose row count grew or shrank by 25% or more. It compares exact counts only: a Warehouse dataset’s, an uploaded file’s or connector’s, and those Snowflake, BigQuery, Databricks, Elasticsearch and OpenSearch report. Other databases report an estimate, which it leaves to a Row count test. When it finishes it says how many new counts it compared, how many tables had no new count, how many it saved a starting count for, and how many have only an estimate or no count. Its first run saves the starting counts, so a table’s changes are listed from its next count. It still uses no AI credits.
  • Uploaded files and connector data show their row count straight after a refresh. Their count was read from the database’s estimate just after each scheduled refresh or file replacement, before the estimate caught up, so a full table could show 0 rows until the next Sync. DataSquares now counts their rows when it reads them. A count read before this change stays an estimate, which the row-count check doesn’t compare, until the source’s next refresh or Sync.
  • The Row-count changes tab lists them. It read the profiling scan’s suggestions, which never hold a row-count change, so it was always empty, and so was its count on the page. It now lists each change with its table and model, both counts, and how and when they were taken. Acknowledge and Dismiss take a change off the list.
  • Suggestions saved before 18 October 2026, 20:00 UTC, are removed. Until then a profiling scan could send a labelled column to the AI, and the AI could reword a suggestion with its values. Run a profiling scan to see a table’s suggestions again.

Row-count check · Monitoring views & tabs · Columns labelled sensitive

2026-10-20 · The whole AI chat stays in the app

Section titled “2026-10-20 · The whole AI chat stays in the app”
  • The AI chat’s conversations refuse API keys. Listing, searching, reading, renaming, pinning, deleting, forking, exporting and rating AI chat conversations run no AI, but they are the AI chat’s, so they now refuse an API key whatever its scopes, with the AI chat’s 403: “AI features are available in the DataSquares app; API keys can’t use them.” The workspace’s AI settings, tools, quota, usage, audit log, feedback trends, escalations and the AI page (its controls and the AI ledger) now refuse one with the same message.
  • The API reference marks AI endpoints App only. The AI Chat page leaves the reference, since none of its endpoints takes an API key. On the other pages, each endpoint that always runs AI for someone signed in, such as Summarize with AI or a Story’s writing aids, is marked App only with the 403 a key gets, and so is reporting content for review. Rebuilding the semantic index is one of them: it refused a key as needing a company admin, and now gives it the AI message. A share’s public Ask AI has no mark: it runs AI for anyone who has the share’s link, with no sign-in, and takes the link rather than a key.

REST API scopes

2026-10-20 · New prices, far more AI credits, and the viewer with AI

Section titled “2026-10-20 · New prices, far more AI credits, and the viewer with AI”
  • New seat prices. A Team editor is $29 (₹2,399) a month, a Business editor $69 (₹5,749) and a viewer $5 (₹419), on either plan; a year is still ten months’ price. Rupee prices exclude GST. A subscription you already hold keeps the prices it was bought at, and its renewals bill them.
  • More AI credits, with no minimum. Each editor seat now includes 1,500 AI credits a month on Team (was 100) and 4,000 on Business (was 250), shared by the workspace. There is no company minimum any more: the credits come with the editor seats, and a trial starts with 4,000.
  • The viewer with AI. A third seat on every plan, $19 (₹1,599) a month, for a viewer who asks the AI: it brings the person who holds it 1,000 AI credits a month of their own, used before the workspace’s. Buy the seats on Administration → Billing → Plans and give them to viewers under Viewers with AI on the same page.
  • Enterprise is $159 (₹13,249) an editor a month, billed yearly, from 25 editors, with 10,000 AI credits per editor seat. Pipelines and Warehouse are add-ons, as on every plan; on Enterprise they run on dedicated servers from the Platform bundle up. The contract adds a 99.9% uptime service-level agreement and high-priority support. It is sold by contract: contact sales.

Seat prices · AI credits · Viewers with AI

2026-10-19 · AI runs only when you choose it

Section titled “2026-10-19 · AI runs only when you choose it”
  • Explain this change answers with statistics. On a card or a metric, Explain shows which members drove the change and spends no AI credits. Explain with AI adds a short AI summary and uses AI credits, as the panel says. The Android app’s Explain, and its explanation of a metric or an alert, give the numbers only. An API key now gets Explain’s statistics too, and is refused only the AI summary (ai: true).
  • Profiling scans run on rules. Run Profiling Scan no longer asks the AI to rank its findings. Tick Add AI findings (uses AI credits) before scanning to have it.
  • A digest’s AI sentences are its creator’s choice. A metric digest’s pace sentences are the rule-based ones unless its creator turns on AI sentences (aiSentences), which use AI credits on every send. Every digest starts with them off, existing digests included.
  • More AI clicks say they use AI credits. Summarize with AI, Analyze’s Phrase it, Draft with AI in the theme and measure editors, Suggest recipe in the pipeline editor, the SQL editor’s Explain and AI Generate, and Generate Query in the onboarding wizard now say so, with no numbers.

Explain this change · Why did it move? · Digests & pace insights · Monitoring views & tabs · SQL editor · REST API scopes

2026-10-19 · AI controls: who uses AI, where, and how much

Section titled “2026-10-19 · AI controls: who uses AI, where, and how much”
  • One set of AI controls for every AI feature. Under Administration → AI, a company administrator turns AI off for a workspace or for one AI feature, chooses which AI features each role may use, and sets monthly AI credit budgets. Every AI feature asks these controls before the AI starts: the chat, Explain and Analyze, card summaries, Stories, reports, pipelines, data quality, metric digests, theme and measure drafts, Ask AI on shares and embeds, and search by meaning. Until someone changes something, every switch is on and there is no budget; what the roles below now need does change by itself.
  • Roles. A role uses AI only with its AI Chat permission. Within it, the built-in Viewer starts with AI chat, Explain and Analyze, Reports and Metric digests, and every other role with every AI feature. Company administrators always use every feature.
  • Budgets pause AI, never your BI. A budget for the workspace and one for each person, in AI credits a month (none by default). At 80% the workspace’s administrators get a notification; at 100% AI pauses until the first of the next month (UTC), while dashboards, reports, queries and pipelines keep working. Each refusal says why, in words for the person who meets it, with a stable error code in the API.
  • Ask AI on a share follows the role of the person who shared it. A viewer’s question on a shared link or an embed runs on behalf of the person who shared it, so their role in the shared dashboard’s or report’s workspace decides it. Shares made by a Viewer, by someone whose role has no AI Chat permission, or by someone who has since left the workspace stop offering Ask AI, including shares made before this change. To bring one back, allow Ask AI on shares and embeds for the role on the AI page (a custom role also needs the AI Chat permission), or have someone whose role includes it share the view again.
  • The AI ledger. The AI page lists every AI call of a month: its feature, who it ran for, how it ended and the AI credits it used, in whole credits. Exporting it as a CSV file needs the Business plan.
  • Features that use no AI no longer say they do. On the Data Quality page, AI Scan and AI Anomalies are now the Row-count check and Row-count changes, and AI-Powered Suggestions are Suggested fixes. Relationships found from the tables’ keys are Suggested, not AI-detected. Home’s Needs attention and the card settings’ chart suggestion no longer carry the AI sparkle. None of them uses AI credits.

AI controls · Read the AI ledger · Ask AI on a share · Row-count check · Suggested relationships

2026-10-18 · AI stays in the app, and saved AI output follows row-level security

Section titled “2026-10-18 · AI stays in the app, and saved AI output follows row-level security”
  • API keys can’t use AI. AI features are available in the DataSquares app only. Every AI action, from the AI chat, Explain this change and Summarize with AI to the SquareX copilot, now refuses an API key whatever its scopes, admin included, with a 403: “AI features are available in the DataSquares app; API keys can’t use them.” A key can’t be created with an AI scope such as ai_chat:view. Where AI is an optional step, a key gets the result without it: Analyze without its narrative, a report comparison or a story’s analysis review without its AI summary or proposal, semantic search by spelling and glossary, a profiling scan with its rule-based findings and a digest sent now with its standard sentences. A key can turn a share’s Ask AI off, but not on.
  • Ask AI on shares and embeds keeps its conversation on the server. The panel sends the question and the conversation’s id, never the conversation itself. A conversation ends 30 minutes after its last answer; the panel then says so and puts the question back, and sending it starts a new one. The hourly limit is counted for the whole share on the server, so a restart no longer resets it. The Ask AI for viewers toggle now says that your workspace’s AI credits pay for viewers’ questions.
  • Saved AI output follows row-level security. A card’s AI summary is hidden from anyone a row-level security policy on the card’s source applies to. The chart of an AI snapshot card, saved from a chart-only AI answer, is hidden from anyone a policy in the workspace applies to, and on shares and embeds that apply row filters. Each shows a note saying why; the snapshot’s suggests asking the author to make it a live card. Live cards are unchanged.
  • Sensitive columns in data quality. The profiling scan never sends a labelled column’s values or statistics to the AI. Column Profile shows a labelled column’s values only to company admins; anyone else sees its counts and lengths and Values hidden: this column is labelled sensitive. A Custom SQL test keeps sample rows only when its query reads no labelled column. A scan and its profiles can be read only in their own workspace.

REST API scopes · Ask AI on a share · Who sees a summary · From answer to dashboard · Columns labelled sensitive

2026-10-17 · Fabric Warehouse signs in with Microsoft Entra ID

Section titled “2026-10-17 · Fabric Warehouse signs in with Microsoft Entra ID”

Validated locally only, not against a live service. The sign-in was run with the same SQL Server driver every query uses, against a scripted SQL endpoint that plays Fabric’s side of the Microsoft Entra ID exchange, with a stand-in for Microsoft Entra ID’s token service. Availability depends on the deployed API revision; live acceptance on a real Fabric warehouse is pending. This entry is not a deployment receipt.

  • A Fabric Warehouse form, in Preview. The tile opens its own form: the server from the warehouse’s SQL connection string, the warehouse’s own name, and a Microsoft Entra ID service principal (tenant ID, client ID, client secret), on the fixed port 1433. There is no username or password: Fabric’s SQL endpoint takes only Microsoft Entra ID sign-in. Test Connection, discovery and every query sign in this way. The client secret is stored encrypted like a password and never shown again; an edit that changes the server needs it entered again.
  • Setting up the service principal. The connector page says how to register it in Microsoft Entra ID, which tenant setting a Fabric administrator turns on, and the workspace role it needs.
  • Not yet in pipelines or complete exports. A pipeline step that reads from or writes to a Fabric Warehouse connection is refused before it connects, saying why, and complete exports from it stay refused; bounded Document sections exports run.

Fabric Warehouse · Connection flows · What Extract can pull from

2026-10-17 · Timestamps in CSV and Excel files

Section titled “2026-10-17 · Timestamps in CSV and Excel files”

Validated locally with unit tests, the export writers’ own output and, for Databricks, the Databricks SDK’s own result handlers reading a stand-in for a SQL warehouse. Availability depends on the deployed API revision; this entry is not a deployment receipt.

  • Milliseconds are kept. CSV and Excel files held a timestamp only to the second. CSV now writes it to the millisecond when it has one (2026-10-15 12:34:56.789), and an Excel date cell holds the milliseconds, its number format showing the seconds and milliseconds the time has. A time of 00:00:00.123 is no longer written as the date alone. In a workspace on the default date settings, PDF, HTML, Word and PowerPoint tables, the display sheet of a document’s Excel file, and a report’s Read data in the Android app now show a timestamp’s milliseconds too, as they already did for a source that sends its timestamps as text. So does a {{field}} in a document’s text, whatever the date settings: it inserts a timestamp in UTC, 2026-10-15 12:34:56.789.
  • Timestamps sent as text with their zone. DuckDB sends a TIMESTAMPTZ as text with an offset, 2026-10-15 12:34:56.789+00, and Trino, Starburst, Presto and Athena send a timestamp with time zone with UTC or an offset after a space, 2026-10-15 12:34:56.789 UTC. Excel wrote these as text, PDF, HTML, Word and PowerPoint showed the text whatever the workspace’s date settings, and a chart drawn for an export or a delivery labelled them -. They are now read as the time they name: a date cell in Excel, and the workspace’s date format and zone in the other files. CSV keeps the text as it came. A zone written as a region, such as America/New_York, is still kept as text; the exports page says why, and how to convert it.
  • A date Excel cannot hold is written as text. A date before 1 March 1900 or after 31 December 9999, as the CSV file writes it or on the workspace’s clock, is written in Excel as its full ISO 8601 text: the CSV file’s text, on the same day, naming its zone so that it never reads as the workspace’s time, 1850-06-15T05:30:00Z, or the date alone for a date or a midnight in UTC. It was a date cell, which Excel showed as #### before 1900, and one day late in January and February 1900.
  • A year past 9999 is written in full. A year after 9999 or before year 0 was cut into a wrong date (+010000-01). CSV and Excel now write its full ISO 8601 text, +010000-01-01T12:34:56.789Z. A source that sends such a year as text in another form keeps that text as it came in both files, such as DuckDB’s 10000-01-01 00:00:00 for the year 10000. A column formatted as a Date shows the whole date in PDF, HTML, Word, PowerPoint and an Excel display sheet, in the workspace’s date format and zone: +010000-01-01 on the default date settings. On those settings such a column could also show a timestamp in the years 0001 to 0099 with a wrong year (0050-06-15 12:00 as 1950-06-15), and DuckDB’s text of a year before 1 as a date in the 2000s (0045-03-15 (BC) as 2045-03-15). It shows its own year now, and DuckDB’s text as it came, as every other date setting does. A few values are not read as dates yet, so these rules do not reach them: a PostgreSQL timestamp after 13 September 275760 or a MySQL or MariaDB zero DATETIME arrives empty, and a DATE with a zero month or day as another date, as on the dashboard. The exports page lists them, and how to export their text.
  • Dates in hierarchy matrices and metric tiles. A date value of a dashboard’s hierarchy matrix, or of a KPI tile bound to a metric, such as the latest order time, was written in CSV as Thu Oct 15 2026 12:34:56 GMT+0000 (Coordinated Universal Time), and shown that way in PDF, HTML and PowerPoint on the default date settings; a metric tile’s was that text in Excel too. Both now follow the same rules as every other export. In Excel, a metric tile’s number that its source sends as text, such as a PostgreSQL numeric, is now a number cell. PowerPoint now shows a KPI tile’s date value in the workspace’s date format and zone, as a table cell of its type is, and so does PDF for a tile bound to a model; both showed it in UTC.
  • ARRAY, MAP and STRUCT values. Report and dashboard downloads, scheduled deliveries and Document sections background exports wrote such a value in CSV and Excel as [object Object], or as a list whose timestamps read Thu Oct 15 2026 12:34:56 GMT+0000 (Coordinated Universal Time), to the second. They now write its JSON text, as a Complete table query background export already did: ["2026-10-15T12:34:56.789Z",null], each timestamp ISO 8601 in UTC, to the millisecond. PDF, HTML, Word and PowerPoint now show an ARRAY’s timestamps as the dashboard’s table does, 2026-10-15T12:34:56.789Z, not as that long text. A MAP or STRUCT still reads [object Object] there, as it does on the dashboard.
  • Excel’s cell limit. An Excel cell holds at most 32,767 characters. A block report’s or dashboard’s Excel file, a paginated table’s, and the values table of a document’s chart wrote a longer text whole, a cell Excel cannot hold; with the JSON text above, a large ARRAY, MAP or STRUCT value can be that long. Every Excel file now refuses such a value with a message naming its column. A Complete table query background export and a document’s tables refused one before, without naming it. CSV keeps it whole.
  • The same download twice. A download made again within the five minutes the query cache keeps a result read the rows the first one had cached, in which each timestamp had become text. It wrote 2026-10-15T12:34:56.789Z where the first had written 2026-10-15 12:34:56.789, a Snowflake timestamp as Snowflake’s own text, such as 2026-10-05 00:00:00.000 -0700, and, in a workspace whose timezone is west of UTC, a midnight in UTC on the day before. The cache now keeps a timestamp a timestamp, at the same instant, whatever text its source writes for it, so a download writes it the same way every time, as a background export does. A blend that read one of its sides from the cache had that side’s timestamps as text too; they are timestamps now, as on a fresh read.
  • Databricks timestamps far from 1970. Each TIMESTAMP is now read from its exact count of microseconds, in query results and exports alike, so it arrives to the millisecond, cut toward 1970, however far it is from 1970: 9999-12-31 23:59:59.999999 arrives as 9999-12-31 23:59:59.999, where it rounded into year 10000. One more than 100,000,000 days from 1970 is refused, in a query or an export, instead of arriving as an empty value.

Dates and times in CSV and Excel · Metric tiles in exports · Databricks

2026-10-17 · SQL Server-family queries behind CTEs and TOP

Section titled “2026-10-17 · SQL Server-family queries behind CTEs and TOP”

Validated locally only, not against a live database. The tests check the exact SQL each path sends through DataSquares’ SQL Server driver to a stand-in for its connection pool, and read it with the T-SQL grammar the safety check uses; live acceptance on SQL Server, Azure SQL and Azure Synapse is pending. Availability depends on the deployed API revision. This entry is not a deployment receipt.

  • Top N charts, table pages and Document sections on secured or transformed models. On SQL Server and Azure SQL, a chart with a row limit, a page of a table and the model blocks of a Document sections export failed on a model with a row-level security policy or a table transform: the row limit put the query’s WITH inside a subquery, which SQL Server refuses. The query’s common table expressions now lead the statement.
  • A KPI over a one-to-many relationship with a row limit no longer fails on SQL Server and Azure SQL with Invalid object name: its query now defines the pre-aggregated table it joins.
  • Dashboard filters and parameter values on saved queries that start with WITH now run on SQL Server, Azure SQL and Azure Synapse. Three shapes are refused instead, with the reason: a common table expression named __dsq, a WITH inside parentheses, and a WITH that is not a list of common table expressions (such as WITH RECURSIVE, which T-SQL does not have).
  • TOP with ORDER BY. On SQL Server and Azure SQL, a query with its own TOP and a trailing ORDER BY no longer fails when DataSquares adds its row limit, whether it comes from the SQL editor, a saved query, a dashboard filter or the AI’s own queries: the limit no longer adds OFFSET … FETCH after a TOP. A TOP within the row limit runs as written, and one above it is lowered to the limit, so the rows keep the query’s order.
  • The AI describes fields on SQL Server-family sources. Its sample values query was written SELECT TOP 10 DISTINCT, which T-SQL refuses; it is now SELECT DISTINCT TOP 10.
  • One statement at a time. SQL Server, Azure SQL and Azure Synapse run a second statement that follows a query without a semicolon: a reserved word that starts a statement, such as CHECKPOINT after a query’s table, or a query in parentheses right after a value or a name, such as WHERE b = 'x' (SELECT …). The safety check now refuses both as Multiple SQL statements detected, naming the word or what the parentheses follow. To use such a word as a name, write it in brackets ([CHECKPOINT]); to use such a query as a subquery, put an operator or a keyword such as = or IN before it.
  • A block comment inside a block comment is refused on every source. Some databases nest /* … */ comments and others end one at its first */, so such a comment could hide what follows it. The safety check now refuses it, saying “a block comment holds another /*”; remove the inner /*.
  • Azure Synapse: the ORDER BY of a UNION. The row limit sorts a UNION, EXCEPT or INTERSECT from outside it, where only the result’s own column names and positions can be read. An ORDER BY that names a column with its table (ORDER BY t.a) is now refused before it runs, saying so, instead of failing on the pool. On SQL Server and Azure SQL the same holds for a set operation with a TOP in a branch not in parentheses.

SQL compatibility and safety errors · Queries on dashboards · SQL Server · Azure SQL · Azure Synapse

2026-10-14 · Complete exports from Databricks and Azure Synapse

Section titled “2026-10-14 · Complete exports from Databricks and Azure Synapse”

Validated locally only, not against a live service. The Databricks adapter was run through the Databricks SDK’s own session, operation and result handlers, reading a stand-in for a SQL warehouse’s Thrift service and its cloud-storage result files. The Synapse adapter was run against a stand-in for node-mssql’s request object, read through node-mssql’s own stream adapter: the tests check the batch of statements it sends and how it handles the rows, refusals and cancellations that come back, with no SQL Server, network protocol or connection pool behind it. Availability depends on the deployed API revision and on background exports being enabled for your server; live acceptance on real Databricks and Synapse workspaces is pending. This entry is not a deployment receipt.

  • Databricks. A complete table-query export runs one statement and reads its result chunk by chunk, each Delta table under snapshot isolation, with every DECIMAL and BIGINT digit kept. Cancelling the job, or reaching the source’s query time limit, cancels the statement on the warehouse while it still runs and closes it there either way, and a result that arrives short of the rows the warehouse reported fails the job instead of publishing part of it. A TIMESTAMP within about 278 years of 1970 (April 1691 to September 2248) arrives to the millisecond, cut toward 1970: its microseconds are dropped, and a value before 1970 that has them moves up to the next millisecond. Further out its microseconds can round to the nearest millisecond instead (9999-12-31 23:59:59.999999 arrives as 10000-01-01 00:00:00.000). Since 2026-10-17 every TIMESTAMP is cut toward 1970, however far it is from 1970.
  • Databricks values that would arrive rounded are refused. ARRAY, MAP and STRUCT columns that a warehouse sends as JSON text instead of Arrow are refused, in exports and in queries, and a query now refuses what a column-based result would round, as an export does: a DECIMAL above 15 digits and nested columns. Cast such a column to STRING in the query or the model.
  • Every digit of a negative Databricks DECIMAL. A negative DECIMAL whose stored integer (the value times 10 to the column’s scale) passed 2^53 came back rounded in query results, and from 10^21 up it came back garbled, however few digits the value shows: -1000 in a DECIMAL(38,18) column was one. It now keeps every digit, in exports too.
  • Azure Synapse dedicated SQL pools. One SELECT under read committed snapshot isolation, for a database whose READ_COMMITTED_SNAPSHOT option is already on. Without it the job is refused before any row, naming the setting, which the exporter never changes. A serverless SQL pool is refused too: its transactions cover only its metadata, not the files it reads.
  • Fabric Warehouse is marked Soon. Fabric’s SQL endpoint accepts only Microsoft Entra ID sign-in, and the connector signed in with a username and password, so it could not connect: the connection wizard marks it Soon until it can sign in with Entra ID.
  • MotherDuck stays bounded. Its documentation does not say what one query reads when MotherDuck runs it partly locally and partly in its cloud. A DuckDB source opened on a MotherDuck md: DSN is now refused a complete export when the export is queued, before any connection to MotherDuck, instead of being read under DuckDB’s policy.

Background report exports · Databricks · Azure Synapse · Fabric Warehouse

2026-10-13 · Add fields to a chart with a click

Section titled “2026-10-13 · Add fields to a chart with a click”
  • Click a field to add it. A field clicked in the Fields list — or added with Enter, or the + at the end of its row — goes to the well that fits it on the selected chart: a second dimension becomes the legend (Series / Color), a measure joins Values, a new measure replaces a KPI’s value, a table gets another column. With nothing selected, a click starts a new chart. Every well also has + Add field, a searchable list that fills exactly that well.
  • Drop where you look. A field drags from anywhere on its row. Dropped on a chart, it goes to the well that fits; dropped on empty canvas, it starts a new chart where the outline shows. While you drag, every well says what a drop would do, and Esc cancels. From the keyboard, Space picks a field up and the arrow keys move it between wells, charts and the canvas.
  • New visuals are ready to fill: selected, scrolled into view and on the page’s data model, with Fields open beside them.
  • New filters start the way their field reads: a text field as a checklist of its values, numbers and dates as a range. A filter without a value stays off the list until it has one.
  • No edit lost while saving. An edit that can’t be saved stays queued on the page and is tried again, one failing card no longer holds up the others, Ctrl+S says when everything has saved, and leaving with unsaved edits asks first.
  • A chart-type change keeps the card’s settings — Top N, drill-through, cross-filtering, conditional formatting and a bound metric — and a time of day on the X axis is no longer grouped by month.
  • The format painter copies formatting only. An AI chart’s picture, the visual a tooltip shows, a table’s column settings and an image’s alt text stay with their card.
  • Keyboard and screen readers. The Arrange / Edit / Preview switch, the Layers list (Space builds a multi-selection), the Format panel and the color picker work from the keyboard, and Backspace deletes cards like Del.
  • Create alert works on a KPI by mouse again. The KPI’s freshness badge no longer covers the card’s menu. Metric alerts

Add fields to a card · Where a field goes · How a new filter starts · Format painter · Keyboard shortcuts

2026-10-12 · Complete exports from Trino, Starburst, Presto, Athena and Oracle

Section titled “2026-10-12 · Complete exports from Trino, Starburst, Presto, Athena and Oracle”

Implemented and locally validated against protocol test doubles. Availability depends on the deployed API revision and on background exports being enabled for your server; live acceptance on real Trino, Starburst, Presto, Athena and Oracle accounts is pending. This entry is not a deployment receipt.

  • Trino, Starburst and Presto. A complete table-query export reads one query page by page as the engine produces it, with exact decimal and 64-bit integer values. Cancelling the job cancels the query, and a failed query fails the job instead of publishing part of it.
  • Amazon Athena. The export runs one query, waits for Athena to store its result, then reads that stored result page by page. Cancelling the job while the query runs stops it on Athena, which bills by data scanned.
  • Oracle. One query in a read-only transaction returns every row as of the moment it started, with NUMBER values kept to their exact digits. BFILE, object, cursor and interval columns are refused, with a request to expose them as text in the model.

Background report exports

2026-10-12 · Complete exports from Snowflake and BigQuery

Section titled “2026-10-12 · Complete exports from Snowflake and BigQuery”

Implemented and locally validated. Availability depends on the deployed API revision and on background exports being enabled for your server; this entry is not a deployment receipt.

  • Complete exports from Snowflake. A saved table query’s complete result as CSV or Excel, read in one statement (one consistent read) with exact NUMBER values. The statement stays within the source’s query time limit, and so does the download of the result Snowflake keeps; a result that does not arrive in full fails the job instead of publishing part of it. Live acceptance on a Snowflake account is pending.
  • Complete exports from BigQuery. One query job, within the source’s query time limit and, when one is set, its bytes-billed cap, then its result read page by page with exact INT64, NUMERIC and BIGNUMERIC values. A result that does not arrive in full fails the job instead of publishing part of it. Live acceptance on a BigQuery project is pending.
  • Limits are named, not retried. A Snowflake or BigQuery export that reaches the source’s query time limit, or BigQuery’s bytes-billed cap, fails with a message naming the limit instead of being retried against the warehouse.
  • A slow BigQuery query no longer comes back empty. A BigQuery query still running after about ten seconds returned no columns and no rows, so a chart or table showed no data; such a query is now waited for, within the source’s query time limit.

Background report exports · BigQuery

2026-10-11 · Connection forms that match each engine

Section titled “2026-10-11 · Connection forms that match each engine”

Implemented and locally validated; availability depends on the deployed API and UI revisions.

  • Dremio and Tinybird ask for their token, not a login. The form names the token — a personal access token for Dremio — and no longer asks for a username or a database. Exasol no longer asks for a database, and SAP HANA’s is optional; Apache Pinot, Druid and Drill already worked this way. Quick onboarding now offers only the connectors on the plain host/port form; Druid, Drill, Dremio and Tinybird connect from the Data Sources wizard.
  • A source can’t be renamed to another source’s name. Renaming a data source to a name another live source in the workspace has is refused with a 409, as creating one already was.
  • An interrupted import leaves nothing behind. An upload or import cut short by a server restart no longer leaves its staged rows behind, and a background import whose source was already created finishes as done instead of failing on its own name.
  • Clearer reachability help. Troubleshooting now names the messages you see when a private or loopback address is refused, and what to do instead.

Connection flows · Troubleshooting

2026-10-11 · Row-level security: choose who a policy applies to

Section titled “2026-10-11 · Row-level security: choose who a policy applies to”
  • API keys get exactly their owner’s rows. Row-level security now applies to an API key as it does to the person who created it. Before, a key skipped every policy that targets a role, so a member’s key could read rows the member could not. Integrations that use a member’s key may now receive fewer rows.
  • Choose who a policy applies to, and see it before you save. Everyone (company admins included), Members, Company admins, or specific people. The policy dialog previews how many people it covers and what everyone would see on the table, and policies can now be edited.
  • Targets that can never match are refused. A role other than member or company admin (workspace roles such as Viewer are never matched), a person outside the company, or a group is refused with a message naming it. Existing policies keep working; a target in them that can never match is flagged under Security.

Row-level security · REST API authentication

2026-10-11 · Complete exports from uploads, apps, Redshift and the Warehouse

Section titled “2026-10-11 · Complete exports from uploads, apps, Redshift and the Warehouse”

Implemented and locally validated. Availability depends on the deployed API revision and on background exports being enabled for your server; this entry is not a deployment receipt.

  • Complete table-query exports from uploaded files and app sources. CSV, Excel, Parquet, JSON and SQLite uploads, Google Sheets, REST API and MongoDB sources export a saved table query’s complete result as CSV or Excel, read from the copy staged at the last upload, replace or refresh.
  • Complete exports from Warehouse datasets. Read under the workspace’s own Warehouse credential, within the Warehouse query time limit, and counted toward its query hours.
  • Complete exports from Amazon Redshift. One read-only transaction with a forward-only cursor; a result larger than the cluster’s cursor limit fails the job instead of publishing part of it. Live acceptance on a Redshift cluster is pending.
  • Sources are released sooner. A complete export now reads the whole result before it writes the file, so a source’s query time limit covers reading the rows, not building a large Excel file.

Background report exports

  • Nine S3-compatible stores, each with its own connector, in Preview: MinIO, Ceph Object Gateway, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Scaleway, OVHcloud and IBM Cloud Object Storage. Browse and import a bucket’s objects, and read and write files from pipelines, as with Amazon S3. Each asks for its endpoint in the store’s own form and says where to find it, works out the signing region from it where the store decides it, and starts with the store’s addressing style; a self-hosted MinIO or Ceph server must be reachable from the internet. Amazon S3 still reaches any other store that speaks the S3 API, and connections already made that way keep working. S3-compatible stores · MinIO · Cloudflare R2 · Backblaze B2

2026-10-11 · OData connector and app connector fixes

Section titled “2026-10-11 · OData connector and app connector fixes”
  • OData, in Preview. Connect any OData V4 service by its service root — Microsoft Graph, Dynamics 365 Finance and Operations, SAP Gateway, an SAP CAP app or a public feed. Find tables lists the service’s entity sets with none picked for you; each one you pick becomes a table, read through every page the service sends. Sign in with a user name and password, a bearer token, OAuth 2.0 client credentials at your own token URL (Microsoft Entra included), or not at all. OData
  • Long table lists are searchable. For every connector that finds its tables (Airtable, Notion, OData), the list can be searched, paged and picked in bulk.
  • A refused request says why. When a service refuses a REST source or an app connector, the message now carries the service’s own explanation after the HTTP status — or, for a redirect, the address it points to.
  • Update credentials can clear a field. Emptying an app connector’s field in Update credentials now removes its value, so a wrong scope or SAP client can be taken out; a secret left empty is still kept. Refreshing
  • A new address needs the secrets again. Changing an app connector’s address in Update credentials — a self-managed GitLab URL, an OData service root or token URL — now needs its secrets typed again: a saved secret is only ever sent to the address it was saved for. Refreshing

2026-10-11 · Partitioned folders in pipeline file extracts

Section titled “2026-10-11 · Partitioned folders in pipeline file extracts”
  • Partitioned folders read back with their partitions as columns. A Files extract with Folder names are columns on turns key=value folders (sales/year=2026/month=10/…) into columns of every row — the layout Spark, Hive, Glue, DuckDB and the Files load target write. Values stay text unless you type them, and a marker such as _committed_* beside the data is refused with the fix named, never read as rows. A Delta, Hudi or Iceberg table’s folder is refused too, a path inside one included: it keeps files the table has removed. Building a pipeline
  • A full file read past Max files is refused, not cut short. It used to read the oldest objects up to the limit and succeed; now it stops before downloading anything and names the fix. Max files per run is in the editor, and incremental reads still catch up across runs. Building a pipeline

2026-10-11 · Query results: every column, every digit

Section titled “2026-10-11 · Query results: every column, every digit”

Implemented and locally validated. Availability depends on the deployed API revision; this entry is not a deployment receipt.

  • Long numbers arrive exact. An integer or decimal too long for a floating-point double — a 20-digit id, a DECIMAL(38,10) amount — comes back as its exact digits from BigQuery, Snowflake, Databricks, Oracle, ClickHouse and the Warehouse, Athena, Trino, Druid, Pinot, Dremio, CrateDB, Elasticsearch/OpenSearch, Drill, Databend, Tinybird and Google Sheets imports, where it used to be rounded. Excel exports keep such a value as text rather than round it. Two cases are still rounded past 15 digits: SQL Server DECIMAL, NUMERIC and MONEY values in query results, and Databricks decimals when the warehouse sends a result in its column-based format rather than Arrow.
  • Two columns with one name both come back. The second shows as name_2, and a column SQL Server leaves unnamed as column_<n>. Databricks, Dremio, Drill and Tinybird return rows keyed by name, so there such a query is refused with a request to alias the column.
  • Druid results come with their column types. Queries read Druid’s rows by position, after the header rows that name each column’s type. A broker that does not send those rows (typesHeader, sqlTypesHeader) is refused rather than read with two data rows taken for headers.
  • One set of column type names. Every source now names a result column’s type the same way (bigint, decimal(10,2), double, varchar, date, timestamptz, array, …), so charts, exports and Warehouse imports read a MySQL BIGINT or an Oracle DATE as they read a PostgreSQL one. Integrations that read columns[].type from the REST API see these names.

SQL editor results · Warehouse limits

The following Stories increments are implemented and locally validated. Availability in a workspace depends on its deployed API/UI revision; these entries are not a deployment receipt.

  • A wider writing workspace: Reading, Wide and Full layouts, section/heading outline, responsive review panels, richer composition blocks and safe file/link handling.
  • Connected knowledge and current work: labels, parent organization, permitted search, published reusable sections, review freshness, decision/action cards and personal Jira references with explicit preview and confirmation for supported writes.
  • Shared analysis context: typed filters mapped to saved-query outputs, revision-aware capture/live evidence, deliberate claim checks and optional cited AI proposals. AI previews never publish or send Jira writes. Long Stories defer offscreen editors/data and retain sections beyond the old creation/restore limit.
  • Deliberate, complete exports: print preflight, omission review, portrait/landscape output, full returned tables, and portable Markdown/HTML/JSON with staged private-draft import.
  • Collaboration recovery: database persistence before edit acknowledgement, room ownership checks across API instances, and access revalidation. Android clears stale Story reads and exposes current evidence and safe web fallbacks.

Stories guide · Shared filters and numerical evidence

  • Meta Ads, Google Ads and LinkedIn Ads, in Preview. Campaigns and daily results from each, with your own credentials — a Meta system-user token, a Google Cloud service account (plus a Google Ads developer token), or a sign-in through your own LinkedIn app. Daily results re-read their window on every refresh, so late conversions are picked up. Meta Ads · Google Ads · LinkedIn Ads
  • Update an app connector’s credentials without recreating the source: when a key expires or is replaced, the new one is tested before it replaces the saved one, and the tables, schedules and everything built on them stay. When a scheduled refresh fails
  • Prices follow your country. India is billed in rupees, every other country in US dollars; the plans card shows the country the prices are for, and you can change it before you buy. Indian invoices are GST tax invoices, and the plans card shows the GST before you pay. Plans and seats · Invoices and tax
  • Edit a story section together, live: everyone’s cursor is named and everyone’s words stay whole, even in the same paragraph. Stories
  • Stories. Write analysis people read, discuss and act on: sections by people or by AI, live charts, tables and numbers that every reader sees with their own data access, sections assigned with due dates, comments and suggested edits, reviews before anything is published, templates, versions you can compare, PDF export, sharing to Slack, a Monday digest, and stories you can follow. Stories open in the Android app too. Stories
  • Charts keep their colours across light and dark mode — the built-in Auto themes share one eight-colour series palette. Themes
  • Four ways to ask AI, and a new AI page. Ask from the chat panel, the AI page, Ctrl+K (⌘K) → Ask AI, or a card’s Insights. The AI page has a Split view — the conversation beside a large result you can switch between Chart, Table, SQL and Evidence — and a Full view. Four ways to ask · Split and Full
  • The AI learns from your workspace and from you. It keeps short notes so that later answers fit your workspace: what you ask it to remember; what you type that reads like a preference, a definition or a rule (“by revenue I mean net revenue”), and a correction you type with a thumbs-down; the question behind an answer you rate thumbs-up, and how it was answered, with the values taken out; a short summary of a topic once the conversation moves on; and, each night, notes about the workspace’s dashboards, data models, governed metrics and glossary terms. A preference, definition, fact or caveat that three people in a workspace hold word for word becomes a note for everyone in it. The notes it learns from you are yours alone at first, and it doesn’t announce them. Every note stays in your workspace’s database and trains no AI model; tell the AI to forget one and it stops being used. Added to these notes on 21 October 2026. Notes the AI keeps
  • An API key never exceeds its owner’s role. A key’s scopes are capped by the role of the person who created it, whatever scopes it asks for. API keys
  • Just say what you want in AI chat. The Analyze / Dashboard / Report switch is gone: the assistant reads from your words whether you want an answer, a new dashboard or report, or a change to one — and asks a short question with choices when it can’t tell. Nothing is written without your approval, as before. AI chat
  • Choose how much effort the AI puts in. The effort control under AI chat’s message box sets the effort for your next message: Auto, Quick, Balanced, Thorough or Max. Auto, the default, picks from what you ask: Quick for a definition or a how-to, Balanced for a short lookup, and Thorough for analysis or building something; it never picks Max. A higher effort does more work and uses more AI credits. Added to these notes on 21 October 2026. Effort
  • Microsoft Dynamics 365, in Preview. Accounts, contacts, leads, opportunities, cases and users through your own Microsoft Entra app — choice and lookup columns arrive with their labels. Microsoft Dynamics 365
  • ServiceNow, Freshdesk, Mailchimp, PagerDuty and Datadog, in Preview. Incidents, changes and users from ServiceNow; tickets and satisfaction ratings from Freshdesk; campaign reports from Mailchimp; a year of incidents from PagerDuty; monitors, SLOs and dashboards from Datadog — each with its own key or integration user. ServiceNow · Freshdesk · Mailchimp · PagerDuty · Datadog
  • Embeds frame again, and only where you allow. Embedded dashboards and reports had stopped loading inside iframes (the page was sent with a do-not-frame header); fixed. The browser now also refuses to frame an embed on a site outside the workspace’s allowed domains. Locking embeds down
  • Notion, in Preview. Connect with an internal integration’s secret; every database shared with it is found, and each data source you pick becomes a table, its properties as plain columns. Notion
  • Airtable and PayPal, in Preview. Airtable finds every table in a base and imports the ones you pick (linked records keep their ids, so they join); PayPal connects with your own REST app and imports the last 12 months of transactions, your invoices and disputes. Airtable · PayPal
  • Subscribe yourself to a dashboard. Anyone who can open a dashboard can have it emailed to themselves on a schedule, with their own data permissions; deliveries stop if they lose access. All your report and dashboard subscriptions can be listed together. Sharing
  • Change a metric digest in place — its creator can edit the name, metrics or cadence, and creating a digest through the API works again. Governed metrics
  • Require a watermark on shared images (workspace setting, mobile app). Settings
  • Sign in with Zendesk. Connect Zendesk with your own OAuth client instead of an API token — Zendesk stops accepting API tokens on 30 April 2027. The sign-in is kept encrypted and renewed before every refresh. Zendesk
  • Eleven app connectors, in Preview. Klaviyo, Intercom, Slack, Chargebee, Recharge, WooCommerce, GitLab, GitHub, Zendesk, Pipedrive and Workday connect with the app’s own key or token: pick the tables you want (customers, subscriptions, tickets, deals, issues…) and each becomes a table you can model, refreshed on a schedule. Connection flows
  • Dashboards are only changed by people who may edit them. Adding, editing or deleting cards, pages and filters, publishing, restoring a version and deploying now need edit rights on the dashboard, and its cards, pages and versions are visible only to people who can open it — through the app and the API alike. Users and roles
  • Exports match the screen for query cards. A card built on a saved SQL query now exports with the page’s filters and your own, like every other card. Exports
  • Unscanned data is not scored. Data quality shows Not scanned for a table that has never been scanned, instead of a perfect score. Data quality
  • A dashboard whose theme was deleted now shows the Auto theme for your light or dark mode. Themes
  • Why did it move? Explain a metric’s latest change from the Metrics hub — which regions, products or channels drove it, and by how much. Governed metrics
  • Metrics know which way is good. Mark a metric Higher is better or Lower is better: the Metrics hub colours its value against the target, and digests, Slack and the AI read a cost or churn target as a limit — spend past its budget no longer “reaches its target”. Governed metrics
  • Snooze an alert for yourself. Quiet a noisy alert for an hour, a day or a week without pausing it for your team — no email or push from it while it is snoozed — and read notifications one at a time. Metric alerts
  • Alert pushes reach the whole team. An alert’s mobile push now goes to everyone it is for — the people its email names and the people who star its metric — not only the person who created it. Metric alerts
  • More on your phone. The mobile app can also push a comment that mentions you, a dashboard shared with you or your group, your metric digests and a failed run of a pipeline you own — each only if you turn it on. Mobile notifications
  • What moved, in one call. GET /api/metrics/movers returns the metrics you follow, largest move first. Governed metrics
  • One price for AI credits. 1,000 credits cost $10 (₹830) in every pack (1,000 / 5,000 / 10,000), and packs can be bought on any plan or none. Plan allowances grow with the change: BI Team 500 credits a month, BI Business 1,000, Platform 1,500. Since replaced: allowances are now counted per editor seat, and the Platform bundle includes none. AI credits
  • Refunds and credit notes. When you are owed money back on a paid invoice, the DataSquares team can now refund it to the original payment method. The invoice shows where the refund stands, and a refund for the service itself comes with a numbered credit note (PDF) that restates the tax the same way the invoice charged it. Refunds and credit notes also appear in Account activity. Refunds and credit notes
  • Large file imports run in the background. Upload a CSV, Excel, SQLite, Parquet or JSON file and the import carries on on the server: a panel above your sources shows its progress with a Cancel button, it survives a page reload, and a cancelled import leaves nothing behind. Replace file works the same way. Files are read from disk as they import, and an NDJSON file may now be larger than the JSON size limit. Importing in the background · JSON files

  • Deleting a source says what goes with it. When data models or saved queries are built on a source, the confirmation names them and waits for Delete anyway. Deleting a source

  • Connector fixes worth knowing.

    • BigQuery columns keep their real types, queries honour the statement timeout, and a per-source maximum bytes billed caps what one query can cost. BigQuery
    • Snowflake sources take key-pair authentication and an S3 bulk staging area in the wizard, and Snowflake numbers type as numbers. Snowflake
    • Db2, Vertica and Oracle connect over TLS by default, and Trust self-signed certificate now reaches Trino, Druid, Dremio, Pinot and the other connectors that speak SQL over HTTP. Credentials & security
    • SFTP sources can pin the server’s host key. SFTP
    • Object stores: gzip files are unpacked on import, zip archives are refused with a clear message, and a very large folder lists its first objects instead of failing. Object stores
    • CSV date-times without a UTC offset are stored exactly as written — no time-zone shift. CSV
    • HubSpot pipeline runs fetch only what changed since the last run. Building pipelines
  • AI asks before it writes — now for alerts, schedules and calculated fields too. The approval card lists every change (before and after, for an existing item), and once it runs DataSquares re-opens the item to check the change landed. Answers carry Evidence — the sources and metrics by name, filters and time range, live or cached data, how much of the data a chart covers, and anything the answer assumed — and a dropped connection no longer cuts a finished answer off. AI chat

  • Home search looks at all your dashboards, not only the ones on screen, and Favorites shows every favourite, not just those among the newest.

  • Keyboard access. Row actions on the Metrics and Pipelines pages are reachable with Tab; the dashboard card menu takes arrow keys and opens above an open dialog; the dashboard Theme picker takes arrow keys, Home/End and Enter.

  • A wrong current password no longer signs you out. Changing your password with a typo now just says the current password is wrong and keeps what you typed; the same goes for a mistyped code while turning two-factor on or off. SSO & MFA

  • The upload routes and POST /api/sources/{id}/replace take ?mode=async: the answer is 202 with an import job; follow it with GET /api/sources/ingest-jobs/{jobId} and stop it with POST /api/sources/ingest-jobs/{jobId}/cancel. Synchronous stays the default. Data sources API
  • DELETE /api/sources/{id} answers 409 SOURCE_HAS_DEPENDENTS with the models and saved queries that depend on it; add ?cascade=true to delete anyway.
  • A wrong current password or two-factor code from a signed-in caller is 403 (CURRENT_PASSWORD_INCORRECT, INVALID_MFA_CODE) instead of 401, so a client no longer mistakes it for an expired session. Auth API
  • Page links and one page bar. Every multi-page dashboard — in the editor, the viewer, public links and embeds — and every report now keeps the open page in its address (?page=<page-id>): refresh stays put, Back and Forward step through pages, and a copied link opens the same page. The editor has a single page bar (the extra side rail is gone) with keyboard reordering (Alt+← / Alt+→); on a phone, pages open from a Pages sheet. Canvas basics · Exploring dashboards · Sharing & embeds

  • Embeds are themed, not white-labelled. An embed keeps your logo, theme and primary color, and now always shows a small Powered by DataSquares credit. Custom CSS for embeds is gone, and there is no white-label product or licence add-on. DataSquares follows one model: the hosted cloud service today, with a standalone server planned later. Sharing & embeds · React embed SDK

A large period. The headline is that measures stay exact across a fan-out join — a class of silently wrong number that most BI tools either get wrong or refuse outright.

  • Exact aggregates across fan-out joins. When a join multiplies rows — one order joined to many order lines — a plain COUNT DISTINCT, MEDIAN or SUM over the “one” side used to be computed over the multiplied rows. Those measures are now evaluated at their own grain and joined back, so the number matches what the source would give you. Chains several hops deep are handled the same way. Where a shape genuinely can’t be answered exactly, the refusal now names the blocking table and the fix instead of failing generically. Data models & relationships
  • Dashboard version history. Semantic models take version snapshots you can review and restore — so an edit that breaks twenty cards is a rollback rather than an archaeology project. Data models & relationships
  • Two people editing one dashboard no longer overwrite each other. Editor saves now carry a version token; the second save is rejected with a clear conflict instead of silently winning. Canvas basics
  • Data-quality checks can hold publication. Mark a check critical and a failing result blocks the asset from being published — on every surface that publishes, not just the one you were looking at. Data quality
  • MFA recovery codes. Ten single-use codes, issued once and stored hashed, so a lost authenticator isn’t a support ticket. Using one is audited. SSO & MFA
  • HTML report export is genuinely self-contained. The exported file now carries everything it needs and opens correctly offline. Exports
  • Metric-bound KPI tiles reach paper. Tiles driven by a governed metric were skipped in server-side exports; they now render in all five formats, with the metric’s own name as the label. Exports · Governed metrics
  • Embedded analytics gets white-label branding and usage rollups — see how much each embed is actually used, and strip DataSquares chrome from it. Sharing & embeds · React embed SDK
  • The audit log became tamper-evident, and can be exported. Every row is chained to the one before it, edits and deletes are refused by the database itself, and there is an endpoint that verifies the chain. Export as CSV for a reviewer, or as a cursored NDJSON feed for a SIEM. Log Explore
  • Catalog ownership. Assets carry an owner and a domain, with facets and an “unowned” view for finding the gaps. Catalog
  • Log Explore returns up to 5,000 rows (was 500), with a row-limit control. Log Explore
  • Fixed: week-grain year-over-year compared against the same calendar date a year earlier rather than the same week — it now aligns 52 weeks back, which is what a weekly comparison means. Charts & formatting
  • Fixed: large file uploads are streamed to disk instead of held in memory, so big imports stop competing with everything else for RAM. Connector catalog
  • Each workspace now gets its own warehouse credential, granted access to only its own database — cross-tenant reads are refused by the database engine rather than by application code. Nothing to configure. Warehouse
  • Compute controls. For self-managed fleets: a placement policy for where runs land, drain/resume/stop on individual workers, and a scale timeline with a time-to-start SLO. Pipelines refuse to place on a worker too old to validate their definition, rather than failing every run. Pipelines
  • The React embed SDK shipped to npm. @digisquares/datasquares-embed-react — a <DataSquaresEmbed> component instead of hand-rolled iframe plumbing. React embed SDK
  • Per-user dashboard access. Share with named people at a chosen level, above whatever their workspace role allows. Sharing & embeds
  • Dashboard delivery schedules. Send a dashboard on a schedule, rendered server-side, with the filter state you chose. Reports
  • The table card became a real grid — per-column filter and search, paging, frozen columns and draggable widths. Table
  • AI got a lot more useful. An insights feed, a SquareX copilot in the measure editor, Ask AI inside embeds, dashboard-from-a-prompt, scheduled anomaly sweeps over certified metrics, an AI data-quality scan with ranked findings, and a keyless seasonal forecast. AI chat · AI dashboard generator
  • Search over your glossary and asset names: by spelling and glossary synonyms, and by meaning where the server has an embeddings service turned on. Semantic search
  • Exports honor a table card’s column configuration in every format. Exports
  • Map overhaul. Location matching now ignores case, accents and punctuation, resolves the common aliases (USA, UK, Viet Nam, Korea, South, Türkiye), and reads rows that name several countries at once (United States, India). The underlying world map is finer, too: around 60 smaller countries — Singapore, Hong Kong, Malta, Bahrain and the rest — now have a shape to shade instead of quietly falling off the map. See Map.
  • A Map section in the Format panel. Pin the location level (world countries or US states) instead of relying on auto-detection, lock or allow pan and zoom, and control the color scale and its min/max range. Values that still don’t match anything are collected in a notice on the card — click it open to see exactly which ones didn’t bind. Maps also gained a Tooltip well, so you can put extra context under the region name on hover. Map · Charts & formatting
  • Per-category chart colors. Pick a color per slice, step or bar straight from your data’s own values — with a hex box and one-click reset — instead of taking whatever the palette hands you. Charts & formatting
  • Field search that finds fields you can’t see. Search in the dashboard builder now reaches inside tables you haven’t expanded, and matches model, table, column and measure names. Canvas basics
  • Fixed: switching to the phone viewport could leave a dashboard’s desktop layout compressed until you refreshed the page. Layout & productivity

Pipelines landed a release of its own this period.

  • A full transform engine. Reshape data mid-flight with 15 visual operations, drop to raw SQL where it’s faster to say it in SQL, run a sandboxed Python step for the things SQL can’t express, and route rows down different branches on a condition. Building a pipeline
  • Triggers, not just schedules. Alongside scheduled runs, a pipeline can now start on file arrival (a new file lands in a watched location), on another pipeline finishing, or on an inbound webhook from whatever system you want to be the clock. Runs, backfill & monitoring
  • Change data capture from Postgres. Move only what changed — inserts, updates and deletes — rather than reloading the table each run.
  • Write-back destinations. Land results in your own databases, warehouses and object stores, so a pipeline can feed the systems downstream of DataSquares as well as DataSquares itself.
  • Five new chart types. 100% Stacked Bar and 100% Stacked Area for share-of-total questions, Combo (Stacked + Line) for a total split by category with a trend across the top, Pareto for “which few things account for most of this?” (ranked bars plus a cumulative % line), and Lollipop for ranked comparisons with far less ink than bars. All visual types
  • A Format panel that tells the truth. The panel now shows exactly the controls the selected chart honors — no more options that sit there and quietly do nothing. Charts & formatting
  • SquareX: 12 new functions, bringing the language to 39. Quarter- and month-to-date (QTD, MTD); Fixed(… IgnoreFilters) for a value that stands outside the user’s filters; Percentile for p50/p90-style distribution work; the iterator family (SumX, AvgX, MinX, MaxX) for row-by-row math before the aggregate, plus CountRows; view-relative Include and Exclude; and the semi-additive LastNonEmpty and PeriodEndSnapshot for balances and stock levels that must never be summed across time. Nested Calculate and Fixed × Calculate compose, and both editor autocomplete and the measure-builder templates cover the new surface. All SquareX functions · Recipes
  • Visual query builder. Build a query as a chain of steps — source, filter, group, join, and so on — with a live preview at every step and the generated SQL visible underneath, so you can start clicking and finish in SQL. Visual query builder
  • Warehouse. Import a table or a saved query into DataSquares’ managed storage and chart it like any other source. Refresh on demand or on a schedule; the swap is atomic, so a query never sees a half-loaded table. Warehouse · Refreshing
  • Themes v2. Detailed design tokens, four new themes, per-token overrides, a contrast guard that stops you shipping unreadable text, a brand generator that builds a theme from your colors, and Power BI theme import. Themes
  • Metrics hub. Define a KPI once — with certification badges and owner and domain stewardship — then bind KPI cards to it, so “revenue” means the same thing on every dashboard. Governed metrics
  • Business glossary. Org-wide definitions with synonyms, surfaced where people actually need them: in AI answers and in field tooltips. Catalog: certification & glossary
  • Card insights. Explain this change on any card, Analyze for anomalies, key influencers and forecasts, and AI card summaries saved on the card. Card insights
  • Viewer exploration. Viewers can personalize a visual, spotlight a card, zoom a chart, comment with @mentions, keep favorites and a recently-viewed list, set a personal default bookmark, and subscribe themselves to a report — without editor rights and without touching your dashboard. Exploring dashboards
  • PowerPoint export for dashboards, multi-page PDF, and copy-a-card-as-image for when you just need it in the deck. Exports
  • Menu Builder. Content-as-navigation: build the sidebar your org actually reads, let people personalize it, and define custom roles with per-menu permissions. Users, roles & invites
  • The Android app. A companion app — SSO and biometric sign-in, dashboard viewer, metrics hub with sparklines, alerts and an offline cache. Mobile app
  • Studio. A free desktop designer with an embedded engine: pull from local files and databases, use the full canvas offline, and publish to (or pull from) your workspace when you’re ready. Studio
  • Conditional formatting gained text color and bold, not just background fills. Charts & formatting
  • AI authoring moved onto the new agent for charts, dashboards and reports — and Save to dashboard now produces a fully re-queryable card rather than a snapshot. AI dashboard generator
  • World map, drill-through and drill-down. A world map chart, cross-dashboard drill-through (click a value, land on the detail dashboard filtered to it), hierarchy drill-down inside a chart, and Show Me chart suggestions for when you know the question but not the shape. Filters & interactivity · Charts & formatting
  • Report parameters. Prompt for filter values at export time, so one report serves every region — plus PowerPoint report export with native, editable charts. Reports
  • Filters, rebuilt. On-canvas slicers, a dockable Filters panel, an always-visible active-filter bar, and cross-filter chips a human can read. Filters & interactivity
  • Saved views (bookmarks), dashboard auto-refresh, and per-card freshness badges so nobody presents a stale number. Exploring dashboards
  • Dashboard parameters with URL state — the link you send reproduces exactly what you were looking at. Filters & interactivity
  • Calculated fields got a real formula editor. Calculated fields
  • Data quality. Define tests, scan tables against them, and track freshness, so a broken source announces itself before a dashboard does. Data quality
  • Metric alerts. Threshold conditions, scheduled evaluation, and notifications when they fire. Metric alerts
  • Chart formatting. Axis titles, per-series colors, number formats, field aliases, Top N, and a date-bucket selector. Charts & formatting
  • Paginated (operational) reports — multi-page tabular PDF for the reports that are meant to be read row by row. Reports

Connectors ship continuously rather than in waves, so they get their own section. The catalog now stands at 152 connectors — that count is read from the same registry that drives the product’s connection wizard, so it cannot drift from what you see in the app.

August 2026 — object stores got their own connection forms. Amazon S3 (and any S3-compatible store: MinIO, Cloudflare R2), Azure Blob Storage, ADLS Gen2 and Google Cloud Storage now have real connection forms in the wizard — each with its own credential shape. Connect one and you can browse the bucket and import Parquet, JSON/NDJSON or CSV objects as staged datasets; pipelines can still read and write them in bulk. See Amazon S3.

Added earlier:

Alongside the new entries, dozens of value-correctness fixes went in across ClickHouse, BigQuery, Trino, Databricks, Oracle, Elasticsearch, Druid, Pinot, Dremio, Drill, Athena, Db2 and HANA — the unglamorous work of making sure a number in DataSquares is the number the source would have given you.

Browse the connector catalog or check the connector support matrix for the full, always-current list.