KPI Tree

Azure SQL logoAzure SQL Integration

Connect Azure SQL Database to KPI Tree. Two authentication methods, no ODBC driver to install.

KPI Tree connects directly to Azure SQL Database using SQL authentication or a Microsoft Entra ID service principal. There is no ODBC driver to install or version-manage, because KPI Tree uses Microsoft's official mssql-python driver over its own DDBC transport. Every connection is encrypted with TLS and validated against a real server certificate. Define metrics in T-SQL, map how they drive each other with confidence levels, assign RACI ownership, and build the accountability layer that sits above your database.

Connected in under an hour

Give KPI Tree your server hostname, choose an authentication method, and the connection is tested live against your database before it is saved.

1

Create a read-only user and allow the connection

In your database, create a login and a contained user with SELECT on the tables and views you want to measure (db_datareader is the simplest grant). The user has to exist in the database itself, not only in master. If your Azure SQL firewall is locked down, add KPI Tree's outbound IP under Security then Networking in the Azure portal, or expose the server over Private Link. Nothing else in your Azure configuration needs to change.

2

Choose an authentication method and connect

SQL authentication uses a standard username and password. A Microsoft Entra ID service principal uses a client ID, client secret and tenant ID for passwordless access managed in Entra. Enter your server hostname, port (1433 by default) and database name. KPI Tree runs a live SELECT 1 to confirm it can authenticate and reach the database before the connection is saved.

3

Define metrics and start building

Write T-SQL against your tables and views. Each query aggregates raw rows down to a daily value, and KPI Tree infers the cross-day rollup (sum, count, average, first or last) from the T-SQL itself. From there, arrange metrics into a causal tree, assign RACI ownership, and start closing the loop between a number moving and someone acting on it.

Built for the Azure data stack

KPI Tree connects to Azure SQL Database natively, with no extra drivers or middleware, and leaves your existing Azure security and networking model untouched.

Microsoft Entra ID service principal auth

Authenticate with an Entra service principal using client ID, client secret and tenant ID. There are no shared passwords to rotate and no local SQL accounts to manage, and access inherits your existing Entra governance and conditional access policies. Standard SQL authentication is fully supported for teams that prefer it.

No ODBC driver required

KPI Tree uses Microsoft's official mssql-python driver over DDBC (Direct Database Connectivity), so there is no ODBC driver to install, pin to a version, or debug for compatibility. Built-in connection pooling handles concurrent metric syncs, and every connection is TLS-encrypted against a valid server certificate.

Off-database analytics

Each metric runs one query on a schedule you set. Comparison periods, rollups, correlations and outlier detection all run in KPI Tree's own compute engine, never as extra load on your database. Your DTU or vCore consumption stays flat as you add metrics and users, and nothing keeps a serverless database awake between syncs.

Two authentication methods, matched to your security model.

SQL authentication uses a username and password for teams that want the simplest path. A Microsoft Entra ID service principal uses client credentials for passwordless, identity-managed access. Either way the connection is encrypted with TLS and verified against a real server certificate, and no ODBC driver is involved. Credentials are encrypted at rest, and if a driver error ever echoes the connection string, the password is scrubbed before anything is logged or shown.

  • SQL authentication with a username and password
  • Entra ID service principal with client ID, client secret and tenant ID
  • TLS-encrypted connections validated against a valid server certificate
  • No ODBC driver, and passwords are never logged

Warehouse connection

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

Read-only access · credentials never leave the encrypted store

A causal tree built from your Azure SQL data.

Define metrics in T-SQL against your tables and views, then arrange them into a tree that models how your business actually works. When a top metric moves, KPI Tree traces the tree to show which driver moved with it. Driver relationships are scored with proprietary ML models and statistical tests, including Pearson and lagged cross-correlation, partial correlation and Granger causality with Benjamini-Hochberg correction, so every edge carries a confidence level rather than a guess. Business models such as budgets, forecasts and targets flow through the same off-database pipeline as actuals.

  • Metrics arranged into a causal tree from operational inputs up to revenue
  • Statistical driver signals with confidence levels on every relationship
  • Automated root cause traces an anomaly down through the tree
  • Budgets, forecasts and targets run through the same pipeline as actuals
0:00

One query per metric. No extra queries for comparisons or aggregations.

KPI Tree runs a single query per metric on your chosen schedule and caches the result. Comparison periods, week, month and quarter rollups, correlations, regressions and outlier detection all run in KPI Tree's compute engine, and the browser caches calculation results so filtering, comparing and drilling never touch your database again. Your DTU or vCore bill reflects one lightweight query per sync, not the size of your team.

  • No extra database queries for comparisons, rollups or correlations
  • DTU and vCore consumption stays predictable as usage grows
  • A configurable sync schedule for every metric
  • All downstream analytics run in KPI Tree's own engine
Compute savings comparison loading

Ownership, alerts, and proof that the action worked.

Every metric carries full RACI ownership tied to a real person, their team, department and manager, not a free-text owner field. When a synced metric breaks its expected range, KPI Tree pushes the Accountable owner in the channel they actually watch, across Slack, email, WhatsApp and SMS, and escalates up the org chart if it goes unaddressed. Once someone acts, verified impact checks whether the number actually moved, so the loop closes instead of trailing off after the alert.

  • RACI ownership per metric, tied to team, department and manager
  • Anomaly alerts pushed to the Accountable owner with org-chart escalation
  • Delivered across Slack, email, WhatsApp and SMS
  • Verified impact confirms whether the action moved the metric
RACI accountability matrix loading

What KPI Tree adds on top of Azure SQL

Above the database, not inside it. Your database stores and serves the data. KPI Tree reads it as a source and adds the layer your database and BI tools were never designed to provide: causation with confidence, ownership, and proof.

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.

Causation with confidence, not just queries

The tree maps how each metric drives the ones above it. When monthly recurring revenue dips, KPI Tree shows whether new signups, expansion or churn moved it, with a confidence level on each link from statistical tests run nightly. Diagnosis is table stakes now. The tree is where it becomes structure you can own.

Ownership that routes to a person

Every metric has an Accountable owner with full RACI, not a label on a workbook. When it moves the wrong way, the alert reaches that person where they work and escalates if it stalls. A dashboard shows a number. KPI Tree makes someone responsible for it.

Verified impact closes the loop

Actions are tracked against the metric they were meant to move, and KPI Tree checks whether it actually moved. Every tool claims insights to action. KPI Tree is the one that proves the action worked, or shows that it did not.

Common questions

What authentication methods are supported?
SQL authentication with a username and password, or a Microsoft Entra ID service principal with a client ID, client secret and tenant ID. Both encrypt the connection with TLS and require a valid server certificate. For a service principal, remember to create a contained user for it in the database itself, not only in master.
Do I need to install an ODBC driver?
No. KPI Tree connects through Microsoft's official mssql-python driver over DDBC (Direct Database Connectivity). There is no ODBC driver to install, no driver version to pin, and no compatibility layer to maintain.
How does KPI Tree reach a database behind the Azure firewall?
KPI Tree connects from a fixed outbound IP. If your Azure SQL firewall is restricted, add that IP under Security then Networking in the Azure portal, or expose the server privately over Private Link. If the IP is not allowed you get a clear firewall error rather than a silent timeout, so the fix is obvious.
What permissions does the database user need?
Read-only access to the tables and views you want to measure. Adding the user to the db_datareader role is the simplest way to grant this. No write access and no admin rights are needed. The user has to exist in the target database as a contained user, not only as a login on the logical server.
What connection details do I need?
Server hostname, port (1433 by default), database name, and your chosen credentials: username and password for SQL authentication, or client ID, client secret and tenant ID for an Entra service principal.
How does KPI Tree affect my database costs?
It runs one query per metric on the schedule you set, and every comparison, rollup, correlation and anomaly check runs off-database in KPI Tree's own engine. Your DTU or vCore consumption reflects those lightweight syncs, not the number of people using KPI Tree, and a serverless database is free to auto-pause between them.
How does KPI Tree know how to aggregate a metric across days?
It reads the cross-day rollup from your T-SQL. KPI Tree parses the query with the T-SQL dialect and infers whether the metric should sum, count, average, or take the first or last value across a period, so a running balance and a daily count are each rolled up the right way without extra configuration.
Does KPI Tree work with Azure Synapse or SQL Managed Instance?
The integration is designed and tested against Azure SQL Database. SQL Managed Instance and Synapse dedicated SQL pools speak the same wire protocol, so metrics reachable through the same connection details may work, but Azure SQL Database is the supported and validated target.
Does KPI Tree work with dbt?
If your models are governed in dbt, connect through our dedicated dbt Cloud or dbt Core integration, which reads your metric definitions from the dbt semantic layer. The Azure SQL connector itself queries your tables and views directly and does not run a dbt sync.
Does KPI Tree copy data out of Azure SQL?
KPI Tree queries your database and processes the aggregated daily result in its own engine. Raw row-level data is not persisted outside your environment, cached results are encrypted at rest, and your existing Azure firewall, Entra policies and access controls stay fully enforced.

Connect Azure SQL in under an hour.

SQL or Microsoft Entra ID authentication, no ODBC driver, TLS-encrypted connections. Your Azure data stays where it is, and KPI Tree adds the layer above it.

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