BI + AI · Self-Hosted · Made in Belgium

Business Intelligence.
Powered by AI.

The self-hostable BI platform with AI baked in — not bolted on. Ask in plain English and get SQL. Surface anomalies automatically. Run Claude, Gemini, Ollama or LM Studio — cloud or local. Your data stays yours.

40 Connection Types
5 LLM Adapters
13 Chart Types
28 Agent Tools
100% Self-Hostable
Feature
Recommended Qrly Self-hosted · Made in Belgium
Tableau Salesforce
Power BI Microsoft
Self-hostable — your server, your data
Included
Cloud only
Azure only
Natural-language Ask (NL → SQL) included
Included
Tableau Pulse add-on
Copilot Premium tier
Built-in customer embed portal
Included
Separate paid product
Not available
Native scheduled subscription (4 delivery channels)
Included
Plugin / add-on
Not available
Azure AD + Google + LDAP + Basic Auth simultaneously
Included
Salesforce SSO only
Azure AD only
Visual query builder and raw SQL, round-trip convertible
SQL ⇆ visual
Custom SQL is one-way
Power Query M round-trips; DAX does not
Alert enforcement with automatic escalation
Included
Service Mgmt tier only
Not available
AI with local / on-prem option (Ollama, LM Studio)
Included
Cloud AI only
Azure OpenAI only
OIDC SSO user provisioning out of the box
Included
Enterprise tier only
Azure AD sync only
Productive in under 5 minutes
Included
Days of configuration
Days of configuration
Legend: Fully included Partial / extra cost Not available

Data & Analytics Engineers

SQL editor with template variables, AI performance analyzer, OLAP star/snowflake models, materialized caches, and query lineage.

SQL + QQL OLAP Models AI Perf Analyzer Lineage Graph

Business & Ops Analysts

Type a question in English, AI compiles it to SQL. Visual filters, dashboards, scheduled reports — no SQL required to ship insights.

AI Ask (NL→SQL) Visual Builder Insights Feed Subscriptions

Embedded Analytics & SaaS

Ship a branded analytics portal to your customers — public tokens or signed-JWT embeds, locked params, AI-assisted descriptions, no extra license.

Public Embed Signed JWT Locked Filters White Label

MSPs & Consultancies

Tenant → Org → Project hierarchy with per-tenant branding, custom domains and cache files physically separated per tenant on disk. Per-tenant LLM keys, token budgets and query governors.

Multi-Tenancy Custom Domains Per-Tenant LLM Query Budget

Enterprise IT & Compliance

Azure AD, Google, LDAP and Active Directory — concurrent, platform-wide or per organisation. AES-256-GCM at rest, full query audit log, on-prem AI for regulated workloads.

Per-Org OIDC AES-256-GCM On-Prem AI Query Audit

Product & Growth Teams

Live dashboards over WebSocket or PostgreSQL LISTEN/NOTIFY. AI anomaly detection surfaces what shifted. Cohort analysis without a data engineer in the loop.

Live Dashboards AI Anomalies Cohort Analysis 13 Chart Types
USP — 01

AI Ask — Plain English to SQL

Type "MRR by plan tier last quarter" — Qrly compiles QQL/SQL, suggests a chart, and lets you review before saving. Conversational, multi-turn, never auto-runs destructive SQL.

USP — 02

Bring Your Own LLM

Anthropic Claude, Google Gemini, OpenAI, Azure OpenAI, Ollama, LM Studio. Per-org config, AES-256-GCM encrypted keys, hard token budgets per user.

USP — 03

AI Anomaly Detection

Statistical + AI-assisted anomaly scans on verified questions. Surfaces shifts in revenue, churn, or ops metrics in the Insights feed — promotable into a saved alert in one click.

USP — 04

Local LLM = Full Data Sovereignty

Point Qrly at http://ai.internal — Ollama or LM Studio. Sensitive schemas never leave your network. Banks, defence, public sector use this.

USP — 05

QQL — Cross-Dialect Query Language

One JSON spec compiles to PostgreSQL, MySQL, BigQuery, Snowflake, Redshift, SQL Server, MariaDB, SQLite, DB2, Sybase and Pervasive — 12 dialect compilers, 40 connection types. Roughly 35 operators including regex, JSON path, full-text and range.

USP — 06

OLAP Models Without a Cube Server

Star and snowflake schemas with facts, dimensions, hierarchies, measures and AI-suggested dimensions. Drill-down, drill-through, pivot — all compiled to native SQL.

USP — 07

Live Dashboards, Not Polled Snapshots

WebSocket interval mode or PostgreSQL LISTEN/NOTIFY for sub-second refresh. Cards update in place — no full reload, no flicker.

USP — 08

Embedded Analytics Included

Public tokens or signed-JWT embeds with locked params. Ship a branded analytics portal to customers without a second SKU. Every tier.

USP — 09

Multi-Tenancy Down To The Disk

Tenant → Org → Project → Collection, with per-connection cache files laid out per tenant and organisation, custom domains per tenant or org, and permissions re-resolved most-permissive-wins on every request.

USP — 10

Identity Without Compromise

Azure AD and Google OIDC — platform-wide clients and per-organisation registrations — plus LDAP, Active Directory and passwords, all concurrent. SSO discovery by hostname, JWT with a revocation denylist, scoped API tokens, per-IP lockout.

USP — 11

Alerts & Subscriptions Built In

Rows returned, goal reached, below goal. Email, Slack, webhook, SMS and an in-app inbox. Hourly, daily, weekly or monthly, as PDF, CSV or inline, with optional AI narration. Not a marketplace add-on.

USP — 12

Self-Hostable, No Lock-In

Spring Boot 4 + Java 25 + PostgreSQL, GraalVM native-image capable. Run on any Linux box or Kubernetes cluster. Export everything. Your data, your AI keys, your server, your terms.

AI Layer

AI woven into
every workflow.

Qrly's AI layer is provider-agnostic — Anthropic Claude, Google Gemini, OpenAI, Azure OpenAI, Mistral, Ollama, LM Studio, Jan.ai, LocalAI and anything else speaking the OpenAI protocol. Configure per organisation. Encrypted keys. Per-user daily token budgets. Local execution for full data sovereignty.

  • Ask — natural language → QQL, compiled, executed and narrated
  • Schema descriptions — AI-written docs for tables & columns, schema-only by default
  • Performance analyzer — a heuristic score with findings ranked HIGH to INFO; AI recommendations are an explicit step, so no tokens are spent by default
  • Anomaly detection — |z| > 2.5 and week-over-week deltas above 25%, surfaced in the Insights feed
  • Chart suggestions — picks the right viz for the result shape
  • Filter suggestions — recommends interactive parameters and their lookup SQL
  • Context drawer — opens the exact system prompt that was sent, broken down by source
BI Layer

QQL across
any database.

One JSON query document compiles to PostgreSQL, MySQL, MariaDB, SQL Server, BigQuery, Snowflake, Redshift, SQLite, H2, DB2, Sybase and Pervasive — with Trino, Presto, DuckDB, ClickHouse, Vertica, Athena and Spanner folding into a compatible dialect. Roughly 35 operators across regex, JSON path, range, full-text and arrays. Visual builder, raw SQL editor, OLAP models — three origins, one engine.

  • 40 connection types across 12 dialect compilers, including managed AWS, Azure and GCP variants
  • 13 chart types: bar, line, area, pie, scatter, KPI, gauge, progress, funnel, pivot, maps — plus TREND on dashboards
  • OLAP star/snowflake models with ROLLUP, CUBE, GROUPING SETS, pivot and prior-period comparison
  • Live dashboards: WebSocket interval or PostgreSQL LISTEN/NOTIFY on the data source
  • Interactive filters, calculated fields, forecasting and drill-through
  • Question-as-view — reuse any saved question as a source or join target, five levels deep, with cycle detection
Authentication

Any Identity.
One Platform.

Run multiple auth providers simultaneously. Employees use Azure AD, contractors use a password, partners use Google — all on the same organisation, and the login page decides which buttons to show from the hostname it was reached on.

  • Azure AD and Google (OAuth2/OIDC) — platform-wide clients and per-organisation registrations, composed at runtime
  • LDAP and Microsoft Active Directory per organisation, with group sync and encrypted bind credentials
  • SSO discovery by hostname — a custom domain resolving to one organisation narrows the page to that organisation
  • API tokens qrly_live_…, SHA-256 hashed, scoped, rate-limited per token, revealed once
  • JWT in an HttpOnly cookie with a denylist for logout and revocation, rotating keys and a validation cache
  • Configurable session timeout, max sessions per user, login-failure tracking and per-IP lockout
Agent Layer

Four personas.
Nothing writes unasked.

An Analyst that answers, a Composer that builds dashboards, a Modeler that proposes OLAP models and an Investigator that runs a fixed six-step root-cause method with every write tool stripped out of its prompt. 29 tools — 16 read, 13 write — and every single write stages a proposal for a human to approve or reject.

  • Propose then approve — write tools have no path to the real service call; approval required defaults to on
  • Four stop conditions — step cap, daily token budget re-queried mid-run, wall-clock deadline, provider error
  • Repetition circuit breaker — the same call three times returns a synthetic observation telling the model to change approach
  • Server-side tool allow-list per session, on top of prompt-level filtering
  • Full audit — every tool call with step, input, output, duration and status; opt-in per-step prompt auditing
  • Verified findings — an independent validator re-checks every outlier the Investigator claims
Performance Layer

Four cache tiers.
Then replication.

Warm results in the JVM, persist them across restarts, materialize them as real tables in your own warehouse, or replicate the source tables outright over change data capture. All opt-in per connection or per question, all encrypted, and every cache failure degrades to a live query rather than an error.

  • T1 JVM cache — in-process, byte-budgeted, with an optional columnar store of typed primitive arrays
  • T2 persistent cache — the application database or a per-connection SQLite WAL file, laid out per tenant and organisation
  • T3 materialized tables — a real table in a database you own, directly queryable by any other tool
  • T4 table sync — full reload, watermark, snapshot-delta or CDC through embedded Debezium on Postgres, MySQL and SQL Server
  • AES-256-GCM at rest in both cache tiers — the cache never stores plaintext rows
  • Read routing transparently rewrites visual questions to the synced copy; native SQL is never rewritten
Spreadsheet Reports

A real workbook.
Bound to live SQL.

Roughly 500 worksheet functions with their own tokenizer, parser and evaluator — named ranges, dynamic-array spilling, cycle detection and the full Excel error set. Then bind a block of cells to a saved question, stored QQL, ad-hoc SQL or an AI prompt, and refresh it without destroying the work built around it.

  • Refresh-safe blocks — source columns are addressed by name, so inserted columns and rows are preserved and never overwritten
  • Key columns return each record to its previous row, so hand-written cells stay beside their record across reorders
  • AI bindings resolve once to SQL, then refresh as plain SQL — a scheduled refresh never spends tokens
  • 17 conditional-format presets plus colour scales, data bars and icon sets with custom thresholds
  • Point mode, fill handle, paste-special including transpose, frozen panes, merged cells, find and replace
  • Server-side export to XLSX with real formulas, CSV, JSON and XML — the same bytes a subscription emails
🤖

AI — Ask & Insights

NL→QQL Ask, schema descriptions, performance analyzer, anomaly detection at |z| > 2.5, chart & filter suggestions.

🧠

BYO LLM

Claude, Gemini, OpenAI, Azure OpenAI, Mistral, Ollama, LM Studio and any OpenAI-compatible service. Encrypted keys, per-org budgets.

🧭

AI Agents

Analyst, Composer, Modeler, Investigator. 29 tools, 16 read and 13 write — every write stages a proposal a human approves.

📈

Questions & Dashboards

Visual builder, raw SQL, OLAP-backed. 13 chart types, 12-column grid, cascade filters, drill-through, verified questions.

🔍

QQL Query Language

One JSON document, 12 dialect compilers. ~35 operators across regex, JSON path, range, full-text and arrays.

🧊

OLAP Models

Star & snowflake models. ROLLUP, CUBE, GROUPING SETS, time-hierarchy drill, prior-period comparison, Top-N, pivot.

🧮

Spreadsheet Reports

~500 worksheet functions, dynamic-array spilling, 17 format presets. Refresh-safe blocks keep your columns and notes.

📊

Reports & Packages

Card and analysis reports, public share links, bursting into one page per filter value, CSV/JSON/XML/XLSX, ZIP packages.

🔗

Connections

40 connection types over 12 dialects, plus managed AWS, Azure and GCP variants. SSH tunnels, SSL, AES-encrypted credentials.

Four Cache Tiers

JVM columnar, persistent SQLite or app-DB, materialized tables in your own warehouse. AES-256-GCM at rest, failures degrade to a miss.

🔁

Table Sync & CDC

Replicate raw tables by full reload, watermark, snapshot-delta or CDC via embedded Debezium. Atomic staging swap per dialect.

🏗️

Constructions

Design schemas in the browser, compiled to dialect DDL. Three-tier enable cascade, all off by default. The only DDL path.

🕸️

Lineage

Connections, tables, questions, dashboards, alerts and subscriptions as a graph rebuilt from source. Mermaid, Markdown and PDF export.

📥

Schema Sync & Dictionary

Opt-in JDBC introspection, curated names and descriptions, an exportable data dictionary, ERD viewer and freshness probes.

🏦

BCBS 239

14 Basel principles in code, self-assessments with sign-off, 7 executable data-quality checks, column-level lineage, issue tracker.

🌐

Embedded Analytics

Self-verifiable signed JWTs with locked params and expiry, per-org signing key, JS SDK with auto-resize, embeddable agent widget.

🔌

Public Data API

Run questions and reports over HTTP in JSON, CSV, NDJSON or Parquet. RPC to stored procedures, table writes with Prefer handling.

🛰️

MCP Server

JSON-RPC at /mcp with SSE, 8 tools, read-only by design. Authenticated with existing API tokens — no new credential type.

📡

Live Dashboards

Interval re-run or a PostgreSQL LISTEN/NOTIFY channel on the data source. WebSocket card updates, no full page reload.

📤

Alerts & Subscriptions

Rows returned, goal reached, below goal. Email, Slack, webhook, SMS and in-app inbox. PDF, CSV or inline, with optional narration.

🏢

Multi-Tenancy

Tenant → organisation → project → collection. Custom domains per tenant or org, driving branding and sign-in options.

⚙️

Permissions Engine

Collection, project and data access levels resolved most-permissive-wins. RESTRICTED runs saved questions; FULL authors SQL.

🔐

Authentication

Password, LDAP, Active Directory, Azure AD and Google — platform-wide and per organisation. SSO discovery by hostname, scoped API tokens.

🕐

Governor & Budgets

Per-connection semaphore with a FIFO queue and wait timeout. Per-user daily query budget, atomically reserved before every run.

🎨

Whitelabel Branding

Two tiers resolving org → tenant → default, first non-null per field. Logos, favicon, four colours, custom CSS, branded email.

🔒

Audit Trail

Query audit log with SQL, rows, duration and status; agent tool calls; verification history. Retention enforced by a daily sweep.

Java 25 Spring Boot 4.0.3 Jakarta EE 11 Spring Security PostgreSQL 14+ Flyway Migrations HikariCP Thymeleaf Bootstrap 5 / Tabler.io ApexCharts Vanilla ES6+ JWT (HS256/RS256/ES256) OAuth2 / OIDC LDAP JDBC (12 dialects) Anthropic / Gemini / OpenAI Ollama / LM Studio PostgREST-style API OpenAPI 3 / Swagger WebSocket Live AES-256-GCM Debezium CDC
Your annual revenue
50k 1M 10M 100M 1B
Your annual fee
1,500
per year · unlimited everything, one organization, one installation · 0.15% effective
Tier Revenue Annual Monthly
Starter up to €500k €900 €75
Business €1M €1,500 €125
Scale €5M €3,600
Scale+ €25M €9,000
Enterprise €100M €21,750
Group €500M €63,750
Global €1B €93,750
Every feature ships at every tier — unlimited everything, one organization, one installation. Qrly does not gate functionality behind price. Minimum €900 a year, and there is no free tier. Consultancy, setup and training are not included in the licence — they are available on request at additional cost, quoted before any work starts.
All prices excl. VAT € billing only On-premise or private cloud Multi-organization · Unlimited users & projects Services quoted separately
Self-Hostable · BYO LLM · No Lock-In

Your data.
Your AI.
Your server.

Spring Boot 4 + PostgreSQL on your infra. Bring your own LLM — Claude, Gemini, or local Ollama. Sensitive schemas never leave your network unless you want them to.

Address
Schrieksesteenweg 40-42
2221 Heist-op-den-Berg, Belgium
Email
Use the contact form — we'll get back to you promptly.
Sending message…
Message sent — thank you!