Proof of concept on synthetic data. This page is a demonstration, not a production system.
Looking Glass self-serve analytics
Analytics engineering · the tool, not the dashboard

A BI platform, running in your browser.

Most portfolios show a dashboard. This is the thing dashboards are built in: drag fields to explore a real company's P&L — corporate down to a single brand in one channel — and watch every move compile to SQL and run in milliseconds. It explains its own numbers and traces any variance to its root cause. Ask in plain English. And when you're done — drop in your own CSV and it explores that instead.

—·FY —· — fact rows·grain: —· engine loading…·last query —
The explorer

Drag. It compiles to SQL. It runs.

Pull a dimension and a measure onto the shelves — Looking Glass writes the governed SQL, DuckDB-WASM runs it against 13,824 rows, and it auto-picks the chart. Or just ask.

Dataset
▸
Proof of concept: the Ask box is a deterministic resolver that maps your words to the model's defined fields. In a production build this is exactly where a governed LLM interface slots in — constrained to the semantic layer so it still can't invent numbers.
Group by
Measures
Filters
▸ generated SQL JS
The dashboard

Pin views. Click to cross-filter.

Pinned tiles share one filter context — click any bar and the whole board follows it. Everything stays live SQL underneath.

How it works

A real semantic layer under a real engine

Dimensions and measures are defined once. Your clicks become a semantic query, the query compiles to grain-safe SQL, and DuckDB-WASM executes it entirely client-side — the same pattern a governed BI platform uses.

01

Model

Every measure — Gross Profit, EBITDA, margins — has one definition over the P&L line items, so subtotals foot at every level.

02

Compile

Shelf state becomes governed SQL: the right GROUP BY, the right measure math, the right filters.

03

Run

DuckDB-WASM executes it over the fact table in the browser — no backend, no round-trip.

04

Render & explain

The result auto-maps to a chart, matrix, table or full P&L — then the Analyst reads it and traces any variance to its root cause.

Scope · what production adds
This is a proof of concept on synthetic data, built to demonstrate the architecture end to end. The pieces shown are the load-bearing ones — a governed semantic layer, click-to-SQL, in-browser execution, root-cause variance, and bring-your-own-data. In a real production implementation the same pattern extends naturally: the plain-English box becomes a governed LLM interface (the model constrained to the defined metrics, so it still can't hallucinate a number), the engine points at a warehouse instead of the browser, and it gains access controls, caching, and scheduled refresh. None of that changes the core idea — semantic layer → compiled SQL → engine → explained result — it just scales it.