KPI Tree

Snowflake logoSnowflake Integration

The causal, owned, and verified layer above your Snowflake data.

You built your data foundation on Snowflake. KPI Tree sits on top of it. Your semantic layer tells AI how each metric is calculated. KPI Tree adds the layer above: how metrics drive each other with confidence levels, who owns each one as a RACI primitive, and whether the last action actually moved the number. Write metrics in SQL, sync them from your Snowflake Semantic Views so Snowflake does the calculation, or draft SQL from plain English with Cortex Analyst. One query per metric, every downstream calculation off-warehouse.

Connected in under an hour

A guided setup wizard generates the exact SQL you need. No agents to install, no bulk data extraction, no firewall changes unless you choose to add them. The connection is validated with a live SELECT 1 before it is ever saved.

1

Run the generated setup SQL

The wizard generates copy-paste SQL that creates a dedicated user with RSA key-pair authentication, a least-privilege role with read-only grants, and an optional network policy scoped to KPI Tree's static IP. Review the SQL, paste it into a Snowflake worksheet, and run it. Most teams also create a dedicated XS warehouse for the connection at this step.

2

Connect and validate

Provide your account identifier, warehouse, database, and RSA private key. KPI Tree tests the connection in real time before saving it. Snowflake supports two simultaneous public keys, so you can rotate credentials with zero downtime. The private key is held by a dedicated key handler and encrypted at rest, never logged.

3

Start building

Write SQL directly against your tables and views, sync measures from an existing Semantic View, or draft SQL from plain English with Cortex Analyst. From there, map how metrics drive each other, assign RACI ownership, and route anomalies to the person accountable for the number.

Reads the Snowflake platform natively

KPI Tree consumes Snowflake's own primitives rather than reimplementing them: Cortex Analyst for natural-language SQL, native Semantic Views for governed definitions, RSA key-pair auth, and network policies. Your governance model stays exactly as your team configured it.

Semantic Views and Cortex Analyst

Point KPI Tree at a Semantic View and each measure becomes a tracked metric, with Snowflake performing the calculation so the numbers always match the source. KPI Tree auto-discovers the Semantic Views in the connection's default database. In Cortex mode, describe a metric in plain English and Cortex Analyst drafts the SQL for you to review before it runs.

One query per metric, off-warehouse analytics

Each metric carries a single query that aggregates to a daily series on a configurable schedule. Comparison periods, week and quarter rollups, correlations, regressions, and outlier detection all run in KPI Tree's own compute engine, so no additional queries hit Snowflake as your team explores. Your warehouse bill stays flat as you add metrics.

Snowflake-native security

RSA key-pair authentication with no passwords stored. Network policies scoped to a single static IP. A dedicated role with read-only grants. Row-level security, dynamic data masking, and RBAC stay enforced on every query, because KPI Tree reads through your governance rather than around it.

Sync your Semantic Views, or draft SQL with Cortex Analyst.

Your Snowflake Semantic Views describe your data in governed business terms. KPI Tree reads them as an upstream source: pick a view, and every measure becomes a tracked metric that Snowflake calculates, so definitions never drift from the warehouse. A "Create dimension metrics" toggle expands a measure into per-value breakdowns, for example Revenue by Region, capped per parent to avoid metric sprawl. When you would rather start from a question, the editor has a Cortex mode: describe the metric in plain English, and Cortex Analyst drafts the SQL for you to review before it runs. Whichever route you take, the metric gets the same ownership, causal context, and statistical monitoring.

  • Auto-discovers the Semantic Views in the connection's default database
  • Each measure becomes a metric that Snowflake calculates, so numbers match the source
  • Dimension-metric toggle expands a measure into per-value breakdowns, capped per parent
  • Cortex mode drafts SQL from plain English for review before execution
Semantic layer sync loading

Map cause and effect across your entire business.

Snowflake stores the data. KPI Tree maps how it connects. Build a metric tree that shows how each operational input drives the metrics above it, up to revenue. Every driver edge is scored by proprietary ML models and statistical tests, using Pearson correlation, lagged cross-correlation, partial correlation, and Granger causality with Benjamini-Hochberg correction, so you see the relationships that survive significance testing rather than every coincidence. When a number moves, root-cause detection traces the anomaly down the tree and the AI analysis queries the warehouse directly to explain it. Assign RACI ownership to each metric so every driver has a named person accountable for it.

  • Driver edges scored by proprietary ML models and statistical tests with confidence levels
  • RACI ownership assigns accountability to real people, tied to team and manager
  • Root-cause detection traces anomalies down the tree automatically
  • AI analysis queries the warehouse directly to explain why a number moved
0:00

One query per metric. Nothing extra hits your warehouse.

KPI Tree runs one query per metric to aggregate raw Snowflake data down to a daily series, returned as Apache Arrow and cached with a configurable TTL. Comparison periods, rollups, correlations, regressions, outlier detection, and causal analysis all run in KPI Tree's compute engine, and per-metric results are cached again in the browser, so filtering, comparing, and drilling never re-hit the warehouse. Every sync query is deep-linked back to Snowflake's query history so you can inspect exactly what ran.

  • No additional warehouse queries for comparisons, rollups, or drill-downs
  • A dedicated XS warehouse isolates the read traffic on its own line in your bill
  • Auto-suspend spins the warehouse down between sync cycles
  • Deep links to Snowflake query history for every sync query
Compute savings comparison loading

Security your team has already approved.

The setup wizard generates review-ready SQL that follows Snowflake security best practice. RSA key-pair authentication means no passwords are stored or transmitted, and two simultaneous public keys let you rotate keys without downtime. A network policy restricts access to a single static IP. A dedicated role receives only USAGE and SELECT. Your Snowflake security posture stays exactly as configured, and KPI Tree never asks you to loosen it.

  • RSA key-pair authentication with zero-downtime dual-key rotation
  • Network policy scoped to a single static IP
  • Least-privilege role with USAGE and read-only SELECT, including future grants
  • Credentials encrypted at rest and never logged

Warehouse connection

Connected
Hostanalytics-prod.••••••.cloud
Service credential••••••••••••
TLS verifiedScoped service credentialsSecrets encrypted

Read-only access · credentials never leave the encrypted store

The layer above your semantic layer

Snowflake, Horizon, and your Semantic Views are the substrate KPI Tree reads from, not something it competes with. They govern what a metric means and how it is calculated. KPI Tree adds the four primitives above the definition: which metric drives which, who owns each one, what action is in flight, and whether it worked.

causal · q < 0.05lag 3dq < 0.01Revenue-15%Conversion-23%Traffic+2%AOV-4%Checkout-31%PricingPaidOrganicBasket sizeDiscountsPayment errorsPage speed

Every source resolves onto one causal tree.

A causal layer, not just governed definitions

Your Semantic Views and Horizon Context tell AI how each metric is calculated and where it came from. KPI Tree adds how metrics drive each other, as a graph where every edge carries a confidence level from nightly statistical tests, not graph-walking or a hand-written narrative. Same data, a question your semantic layer does not answer.

Ownership and routed action

Every metric has full RACI ownership tied to a real person, their team, and their manager, not an "owner" text field. When a metric breaches its baseline, KPI Tree pushes the anomaly to the Accountable owner across Slack, email, WhatsApp, or SMS, with org-chart escalation if it is not picked up. The warehouse can tell you the number moved; it cannot tell anyone whose job it is.

Proof the action moved the number

Actions are tracked against the metric they were meant to move, and impact is verified against the statistical baseline rather than self-reported. Every competitor claims insights to action; KPI Tree closes the loop and shows whether the last action actually shifted the metric. Business-model budgets and forecasts run through the same pipeline as actuals.

Common questions

What does the setup wizard generate?
SQL to create a dedicated user with RSA key-pair authentication, a dedicated role with read-only grants, and optional network-policy SQL scoped to KPI Tree's static IP. You review the full SQL before running it in a Snowflake worksheet, and the connection is validated with a live SELECT 1 before it saves.
What permissions does KPI Tree need?
USAGE on your database, schemas, and warehouse. SELECT on tables, views, and semantic views, including future grants so new objects are covered automatically. That is the full grant surface, and it is read-only.
How do Semantic Views and Cortex Analyst work?
KPI Tree auto-discovers the Semantic Views in the connection's default database. Sync a view and each measure becomes a tracked metric, with Snowflake performing the calculation so the values match the source exactly. A dimension toggle expands a measure into per-value metrics. Separately, Cortex mode lets a user describe a metric in plain English; Cortex Analyst drafts the SQL, which appears in the editor for review before it runs. KPI Tree is a consumer of Cortex here, not a replacement for it.
How does KPI Tree relate to Snowflake Horizon and Cortex?
It sits on top of both. Horizon Context governs what your metrics mean and where they came from, and Cortex answers semantic questions about them. KPI Tree reads that governed context as a source and adds the four things it does not cover: which metric drives which with confidence levels, who owns each one as a RACI primitive, the channel the owner gets pinged in, and whether the last action actually moved the number.
How does KPI Tree affect Snowflake costs?
One query per metric on a configurable schedule, returned as Arrow and cached. Every comparison, rollup, correlation, and drill-down runs off-warehouse in KPI Tree's compute engine, so exploration adds no Snowflake load. Each sync query is a simple daily aggregation, so the credit spend stays small and predictable as you add metrics.
Does KPI Tree work with dbt on Snowflake?
Yes. If your metrics are defined in dbt, connect dbt Cloud or dbt Core as a semantic-layer source and sync the catalogue; see those dedicated integration pages. Aggregation type is auto-detected from the dbt model. The dbt connection can still run its queries against Snowflake, so definitions live in dbt and the data path stays on your warehouse.
How does RSA key-pair authentication work?
Generate an RSA key pair and assign the public key to your KPI Tree user in Snowflake. Provide the private key to KPI Tree, where it is encrypted at rest. Snowflake supports two simultaneous public keys, so you can rotate the key with zero downtime by assigning the new one before retiring the old.
What warehouse size is recommended?
A dedicated XS warehouse. KPI Tree runs one lightweight aggregation query per metric on a configurable schedule, so an XS comfortably handles hundreds of metrics. A dedicated warehouse keeps the read traffic isolated on your bill and auto-suspends between syncs.
Does KPI Tree copy data out of Snowflake?
No bulk extraction. KPI Tree queries your warehouse and processes the aggregated daily results in its own engine. Raw row-level data is not persisted outside your environment, and every Snowflake control stays fully enforced on each query: network policies, RBAC, row-level security, and dynamic data masking.

Connect Snowflake in under an hour.

A guided wizard generates the SQL. KPI Tree reads Semantic Views, Cortex Analyst, RSA key-pair auth, and network policies as a source. Then build the causal, owned, and verified layer above.

Experience That Matters

Built by a team that's been in your shoes

Our team brings deep experience from leading Data, Growth and People teams at some of the fastest growing scaleups in Europe through to IPO and beyond. We've faced the same challenges you're facing now.

Checkout.com
Planet
UK Government
Travelex
BT
Sainsbury's
Goldman Sachs
Dojo
Redpin
Farfetch
Just Eat for Business