Lens
Scheduled Sep 28, 2026One semantic layer, and no per-viewer licence.
Replaces
- Looker · Google LLC — no published list price
- Tableau · Salesforce, Inc. — $35 per seat per month (Tableau Enterprise (Cloud)), about $168,000/yr at 400 seats
Rented, per year
$168,000
Tableau list price at 400 seats.
Owned, per year
$13,800
AWS infrastructure only. Azure is $14,880.
Build
12 weeks
3 engineers. To parity on the core features above, including translation of existing LookML or Tableau data sources into the semantic model and rebuild of the top 40 dashboards.
Difficulty
5/5
Among the hardest in Techtons. Read the parity table closely.
Reference organisation: 40 model authors and 900 viewers, 300 dashboards, 8 TB of Parquet, roughly 20 TB scanned a month after caching, single region, prod + non-prod. Athena at $5 per TB scanned with partition projection and a Redis result cache, giving roughly 20 TB of billable scanning against about 90 TB of logical demand. Synapse serverless assumed at the equivalent published per-TB rate on Azure. 3-year Compute Savings Plan on Fargate / 3-year reservation on Container Apps. Aurora minimum 0.5 ACU for metadata only. Excludes any existing warehouse the customer already pays for, and excludes LLM gateway token cost. Figures are infrastructure only and exclude the build.
What it is
Lens is a business intelligence layer: a version-controlled semantic model, dashboards and exploration over it, scheduled delivery to email and Slack, embedded analytics, and row-level security derived from your identity provider rather than maintained by hand. It is aimed at organisations past roughly 400 dashboard consumers, where the licence has become a rationing mechanism for a metric everybody needs. Lens compiles to SQL and pushes the work down to the warehouse you already pay for, which makes the interesting question not what it costs to run but what your queries cost to answer.
Why this one stops making sense
- Tableau Enterprise on Cloud starts at $35 per user per month on an annual contract. Nine hundred and forty users — 40 model authors and 900 viewers, all of them licensed — is $394,800 a year, and the role-level rates that decide your real bill are not published at all.
- Google publishes no price for Looker. Every edition says 'Call sales', so the only benchmark available to you at renewal is your own previous contract.
- Per-viewer licensing means the finance team decides who is allowed to see the numbers, which is exactly backwards for a company trying to be data-driven.
- The semantic model — every metric definition, every join, every filter your business has agreed on — is the actual asset. In LookML it is at least text; in a Tableau workbook it is embedded in a binary file and duplicated across two hundred more.
- Dashboard sprawl is a governance problem the licence model actively encourages, because the cheapest thing to do with a question is build another workbook rather than fix the model.
What ships
- Semantic model as version-controlled files: entities, measures, dimensions, joins and tests
- Compiles to SQL against your existing warehouse — Snowflake, BigQuery, Redshift, Databricks or Postgres
- Dashboards and ad-hoc exploration over the model, with drill-through to the underlying rows
- Row-level and column-level security derived from IdP group claims, enforced in generated SQL
- Scheduled delivery to email, Slack and Teams, including per-recipient filtered variants
- Embedded analytics with signed, scoped tokens for customer-facing dashboards
- Result cache keyed on the compiled SQL and a partition watermark, with explicit invalidation
- Query cost attribution: every dashboard shows bytes scanned and estimated spend per refresh
- Metric tests and CI, so a broken definition fails a pull request rather than a board meeting
- Unlimited free viewer seats
Data model
Stack
- frontend
- Next.js 15 App Router + Tailwind + a chart layer over Vega-Lite and D3 scales
- backend
- NestJS on Node 22 — a compiler service that turns the model into SQL, plus an execution service
- database
- PostgreSQL 16 for metadata; the analytical store is whatever the customer already runs
- cache
- Redis 7 for result caching keyed on compiled SQL hash plus partition watermark
- queue
- BullMQ for scheduled runs, delivery and cache warming
- auth
- OIDC against the customer IdP; group claims drive row-level security predicates
- search
- PostgreSQL tsvector over model objects, dashboards and field descriptions
- ai
- Optional natural-language query generation constrained to the semantic model
Parity, honestly
What we match, and what we do not.
The rows marked No are the important ones. If one of them is the reason you bought Looker, keep buying it — and we will tell you that on the first call rather than the fifth month.
| Capability | Looker | Ours | Note |
|---|---|---|---|
| Version-controlled semantic layer | Yes | Yes | Looker's LookML is the benchmark here and we are deliberately close to it in shape. |
| Dashboards and interactive exploration | Yes | Yes | — |
| Row-level security | Yes | Yes | Derived from IdP groups and injected into generated SQL, so it cannot be bypassed by editing a filter. |
| Scheduled delivery with per-recipient filters | Yes | Yes | — |
| Embedded customer-facing analytics | Yes | Yes | Looker charges for an Embed edition. Lens embeds with scoped tokens at no additional licence. |
| Free unlimited viewers | No | Yes | — |
| Query cost visibility per dashboard | Partial | Yes | Bytes scanned is shown next to the refresh button, because it is the number that decides your bill. |
| Twenty years of chart types and visual analytics depth | Yes | No | Tableau's visualisation grammar — level of detail expressions, reference distributions, dozens of mark types, the polish of its formatting engine — is two decades of accumulated work. Lens ships about twenty chart types done well. If your analysts live in Tableau's canvas, this replacement will feel like a downgrade and you should believe them. |
| Tableau Desktop and Tableau Prep for offline authoring | Yes | No | Lens is browser-only, and the model is edited in a repository. There is no desktop application and no visual data-preparation tool. |
| Looker's Google Cloud integration and Looker Studio interoperability | Yes | No | If Looker was chosen because it is wired into BigQuery, Vertex AI and Looker Studio, that integration is much of what you bought. |
| A large labour market of Tableau-trained analysts | Yes | No | You can hire Tableau skills. Lens is learned in a week by anyone who knows SQL, but it is not on a CV. |
| Vendor-run SOC 2 and ISO 27001 attestation | Yes | No | Lens inherits your cloud posture. |
| Natural-language querying over the model | Yes | Yes | Constrained to generating queries against the semantic model, so it cannot invent a metric — it can only fail to find one. |
| Mobile dashboard applications | Yes | Partial | Responsive dashboards and a PWA. No store-listed native application. |
Reference architecture
Built twice, on purpose.
Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.
Amazon Web Services
- Compute
- ECS Fargate (api, compiler, executor, scheduler) behind an ALB
- Data
- Aurora Serverless v2 PostgreSQL for metadata; Athena over S3 Parquet where there is no existing warehouse
- Storage and edge
- S3 for Parquet, extract materialisations and delivered exports, CloudFront for the front end
- Identity
- Cognito federated to the customer IdP; scoped signed tokens for embedded views
- Observability
- CloudWatch and OpenTelemetry; bytes scanned per dashboard published as a metric
- Infrastructure as code
- Terraform, one module per environment
Services
The decision worth arguing about
The most important decision in Lens is not to ship a query engine. The semantic layer compiles to SQL and pushes execution into the warehouse the customer already pays for, because a BI tool that maintains its own extracts becomes a second, stale copy of the business within a year. Where there is no warehouse, the default is Athena over Parquet in S3, and that is where the cost conversation has to be honest: Athena charges $5 per terabyte scanned, and a twelve-tile dashboard auto-refreshing every five minutes for forty concurrent users will scan tens of terabytes a month and can quietly cost more than every other line in this deployment combined. Four things keep that under control, and they are design constraints rather than settings. The compiler prunes to only the columns a tile actually uses, which is where columnar storage earns its keep. Partition projection is mandatory on any table above about 50 GB, so a date filter never triggers a partition scan. Every result is cached in Redis against a hash of the compiled SQL plus the partition watermark, and dashboards default to cached-until-invalidated rather than live, so a hundred people opening the same board at 09:00 scan once between them. And each tile displays the bytes it scanned, because the fastest way to stop an expensive dashboard is to show the analyst who built it what it costs. Past roughly 30 TB of scanning a month, the arithmetic flips and a small always-on Redshift Serverless workgroup or a DuckDB cache tier on Fargate is cheaper than per-terabyte billing; the compiler emits standard SQL either way, so that migration is a connection string.
Microsoft Azure
- Compute
- Container Apps (api, compiler, executor, scheduler) with KEDA scaling on queue depth
- Data
- PostgreSQL Flexible Server for metadata; Synapse serverless SQL or Microsoft Fabric over ADLS Gen2
- Storage and edge
- ADLS Gen2 in Parquet, Blob Storage for exports, Front Door Standard for edge
- Identity
- Microsoft Entra ID directly, with group claims driving row-level predicates
- Observability
- Azure Monitor and Application Insights; capacity utilisation tracked alongside query latency
- Infrastructure as code
- Bicep, azd-compatible layout
Services
The decision worth arguing about
Azure offers the same choice as AWS and one that AWS does not, and picking between them is not really an engineering decision. Synapse serverless SQL bills per terabyte scanned, behaves like Athena, and rewards exactly the same discipline — column pruning, partitioning, caching. Microsoft Fabric bills the opposite way: you buy a fixed capacity in F-SKUs, reserve it for a year, and the price does not move regardless of how much you scan. The non-obvious part is what happens at the limit. Per-terabyte billing punishes a runaway dashboard with an invoice; fixed capacity punishes it by throttling, which means a single badly written tile degrades every query for everybody until the smoothing window clears, and nobody gets a bill to tell them why. So the choice is between a predictable experience with an unpredictable cost and a predictable cost with an unpredictable experience, and which one is correct depends on whether your finance team fears variance more than your analysts fear latency. We default to Synapse serverless below roughly 50 TB scanned a month and move to a reserved Fabric capacity above it, with the same compiler, the same caching and the same cost display on every tile. Microsoft does not render F-SKU rates on the public pricing page — they appear only through the calculator with a region selected — so we size that capacity per customer rather than publishing a number here that we cannot cite.
Sources
Every price on this page, with the page we read it from and the date we read it.
| Product | Plan | List price | Checked | Source |
|---|---|---|---|---|
| Looker | Standard / Enterprise / Embed | Not published | 2026-09-05 | cloud.google.com/looker/pricing Google publishes no list price for Looker. The official pricing page shows 'Call sales' against all three platform editions and gives no figures for Developer, Standard or Viewer user licences. The only published rates on that page are Conversational Analytics data-token overages. |
| Tableau | Tableau Enterprise (Cloud) | $35 / seat/month | 2026-09-05 | www.tableau.com/pricing/teams-orgs Published as 'starting at' $35 per user per month on an annual contract; Tableau Standard starts at $15. Role-level rates for Creator, Explorer and Viewer are not published on this page and require a sales conversation. |
Should you still be paying for Looker?
Two weeks, fixed price. We audit what you actually use, map it against Lens, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.