-
01 Query Query the operational row, not a stale extract.
An analyst opens the query editor. Those tables ARE the operational tables the rest of the business writes to — orders, accounts, invoices, employees, time_entries, audit_events. No warehouse refresh window, no ETL lag, no semantic-layer translation. A query an analyst writes against orders today is the same query a CFO report runs at month-end. Row-level ACL is enforced in the database, so analysts see exactly what their role allows — same record, same scoping. SQL, GraphQL, or a visual query builder; pick your surface.
-
No warehouse, no ETL
Operational tables ARE the query surface. Analyst, dashboard, and CFO report all read the same row.
Same row, same number
A query an analyst writes today is the query an executive report runs at month-end. No semantic-layer translation drift.
Database-level ACL
Row + field-level ACL enforced in the database. Analysts see what their role allows — no separate BI permission tree.
SQL · GraphQL · visual
Pick your surface. SQL for power users, GraphQL for code, visual builder for everyone else.
Query history audited
Every analyst query writes a row — who, what, when. A DPO reads the same log finance audits.
-
02 Dashboards Compose a dashboard in seconds, not a sprint.
An analyst opens the dashboard builder. Charts, tiles, and tables build from queries against operational rows — drag a query onto a canvas, pick a visualization, set a refresh trigger (on write, on demand, on schedule). A dashboard reads what the team wrote today; an executive opens it cold and numbers refresh in front of them. Permissions inherit from the underlying tables — if an analyst can see a row, a consumer sees it scoped the same way. No data-engineering sprint, no BI license stack on top.
-
Drag, query, ship
Build a chart from a saved query in seconds. Pick a viz, set a refresh, share with your team. No license stack.
Refresh on write
A dashboard tile can refresh on every relevant write — no cron schedule, no 4 AM batch.
Permissions inherit
If an analyst can read a row, a dashboard consumer reads it scoped the same way. ACL is the data layer.
No data sprint
A new metric is a new query, not a new pipeline. Analyst ships; engineering does not block.
-
03 Propose Propose a change, ship through the same loop.
An analyst spots a pattern — accounts in Tier 2 that always pay early should move to T1. They propose the change in AI Builder: a structured diff that says which Account rows to update, which downstream side effects ripple (pricing-tier change, finance accrual delta), and where to ratify. A CRO reviews and ratifies. The platform commits in one transaction; audit_events records the analyst as actor and AI Builder as agent. If a proposal is wrong, the same path reverts it. Analysis becomes a closed loop, not a slide deck.
-
Diff, not a deck
Analysis ships as a structured proposal: which rows change, what side effects follow, who ratifies. Not a PowerPoint.
AI assembles the proposal
AI Builder takes an analyst question, queries the rows, drafts a proposal with citations to source data.
Human ratifies
A CRO, CFO, or DPO reviews and clicks ratify. The platform writes one transaction; agent_id is on every row.
Revert is a click
If a change was wrong, the same transactional path reverts it. Analysis becomes a safe-to-try loop.
Named metrics, certified joins, and shared dimensions on top of the same operational rows — so "revenue (net)" means one thing across every dashboard and every analyst question.
Today: direct table access with row-level ACL. Tomorrow: a metric layer with one definition of revenue, gross margin, OTIF, AR aging — written once, audited, queryable by name.
Production vs Pilot
- Direct SQL access to operational tables (read-only, ACL-enforced)
- GraphQL API with the same row + field-level scoping
- Visual query builder for analysts who do not write SQL
- Dashboard builder with on-write, on-demand, and scheduled refresh
- AI Builder proposes structured-diff changes from analyst questions
- Query history and dashboard-publish events in audit_events
- Semantic layer — named metrics, dimensions, certified joins
- Anomaly detection on dashboard tiles (live alerts on KPI drift)
- AI-assisted root-cause analysis from a single KPI tile
- External data joins (bring-your-own-data lake against operational rows)
- Notebooks against the same row + Python sidecar
Where it fits
Analysts read across AI Builder , Workflows , CRM , OMS , ERP , and Channels — the same row across every module that wrote it. No second copy, no reconciliation step.
Often read alongside: Executives , Finance & Compliance , and Operations .
Bring one dashboard your data team won't build — we'll compose it live on your rows.
A metric your CFO keeps asking for but engineering can't prioritize; a cross-system join that takes a week to spec in a warehouse; a tile that breaks every time a source schema changes. Twenty-five minutes. We open the query editor against a sandbox of your data, compose a dashboard live, and show what changes when rows are queryable and the propose-ratify-ship loop is two clicks away.