KPI Tree

For agents

Canopy is the business context layer for AI agents.

Every other context layer helps AI answer. Canopy is the only one that closes the loop: each metric carries what drives it, who owns it, and whether the last action actually worked, and it learns from that. So your agents move the business instead of just describing it.

What agents get on Canopy. None of it lives in your warehouse or semantic layer.

Causality, statistically proven. Not LLM pattern-matching

An intelligence layer runs proprietary ML models and statistical tests daily across all your metrics, from Pearson correlation to Granger causality, BH-FDR corrected. Your team edits the tree, pruning what is not causal, so every agent inherits that judgement.

Actions that respect your org chart. Live RACI on every metric

Canopy knows who is Responsible, Accountable, Consulted and Informed, and who reports to whom, so an agent notifies, assigns and escalates to the right person, not a mailing list.

Learns from actions actually taken. Not what people said

Actions are tracked against the metric they were meant to move and the impact is verified. What worked strengthens the model, what did not gets discounted, so recommendations sharpen over time.

Ten queries become one. Precomputed context

Comparison periods, rolling totals and outlier checks are precomputed around every metric, so an agent gets the full picture in one call instead of ten warehouse round trips. An order of magnitude fewer tokens per question.

Your warehouse bill stays flat. Our compute, not yours

Every aggregation, comparison and correlation runs in KPI Tree's proprietary encrypted in-memory engine, not your warehouse. Question volume grows; warehouse spend does not.

Plans and reforecasts in context. Not just actuals

Budgets, forecasts, targets and ramp profiles flow through the same pipeline as your actuals, so whether you are ahead of plan is a question an agent can actually answer.

Agents know when to trust a number. Outliers and staleness tracked

Every metric is continuously checked for outliers, gaps and stale syncs, and that status travels with every answer, so an agent qualifies its answer instead of confidently quoting a broken number.

Curated context in, noise kept out

Layer in qualitative context from tools like Notion and Slack, and connect any MCP-compatible server as a data source so long-tail SaaS metrics land in the same trees, ownership and targets as warehouse metrics. Curation runs in both directions: context known to be unreliable, such as self-reported numbers, is kept out, because an agent grounded in bad context is worse than an agent with none.

Ecosystem diagram loading

Same agents. Same MCP. Different context.

Connecting an agent to your warehouse or catalogue is real and good: governed definitions kill hallucinated SQL and permissions are inherited. Pick what your agent sits on today; the comparison is about everything after the number.

ClaudeChatGPTGeminiCopilot
MCP
KPI Tree Canopy
Metric Context
Cross-platformOne warehouse only. Metrics living in other warehouses, databases or tools are invisible to the agent.One context layer across Snowflake, BigQuery, Databricks, Redshift, Azure SQL, Postgres and Google Sheets, plus anything with an MCP server. Metrics from different platforms live in the same tree, with the same causality, ownership and actions.
Metric definitionsRaw tables and SQL. The agent re-derives every metric per question, so ask twice and you can get two answers.Governed definitions synced from your semantic layer, identical on every surface, with the causal model on top.
Data lineageObject dependencies and access history exist, but the agent reconstructs lineage query by query.Full dbt lineage travels over the same MCP: which models and columns feed every metric, with the causal model above it. Where the number came from and what moves it, in one context.
Queries per questionRoughly ten warehouse round trips per metric: the value, each comparison period, rolling totals, outlier checks.Comparison periods, rolling totals and outlier checks are precomputed, so one call returns the full picture. Roughly ten queries become one.
Warehouse billEvery agent question is warehouse compute, and agents ask a lot of questions.Aggregations, comparisons and correlations run in KPI Tree's proprietary encrypted in-memory engine. The bill stays flat as question volume grows.
Data confidenceNone. The agent confidently quotes whatever the table returns, including broken numbers.Outliers, gaps and stale syncs are tracked continuously per metric, and that status travels with every answer.
Business Context
CausalityNone. The LLM narrates whatever pattern it spots in the moment, and correlation gets presented as causation.Driver edges statistically proven daily by proprietary ML models and statistical tests, Pearson through Granger causality with BH-FDR correction, and pruned by the people who know the business.
OwnershipNone. Ownership lives in people's heads.RACI on every metric plus the live org chart, so an agent knows who is Accountable, who to notify and how to escalate.
Plan contextPlans usually live in planning tools or spreadsheets outside the warehouse, with no shared aggregation logic.Budgets, reforecasts, targets and ramp profiles flow through the same pipeline as actuals, so an agent knows what the plan was.
Action Context
Acting on a changeNone. The answer ends in the chat window.A metric move pushes to the named owner with the driver attached, and workflows escalate up the reporting chain when nobody acts.
Agent write-backAn agent can run SQL, but there is nowhere to record an action, an owner or an outcome.The context is writable through the same MCP: agents file tasks against metrics, update ownership and propose tree edits, with every change traced.
Learning over timeStateless. Every session starts from zero and the org never learns from itself.Actions are tracked against the metric they were meant to move and the impact is verified. What worked re-weights the model.

Causality, statistically proven daily

An intelligence layer runs proprietary ML models and statistical tests daily across all your metrics: Pearson correlation, lagged cross-correlation, partial correlation and Granger causality, with BH-FDR correction across the thousands of edge tests. Correlation alone is never reported as causation, and none of it is what an LLM thinks is a pattern in the moment. And because people edit the tree, relationships your team knows have no causal link are pruned, so every agent answer inherits that judgement. Statistical inference plus human correction, compounding, and no agent can re-derive it from raw tables.

Pearson correlationr = 0.93
Lagged cross-correlationlag = 3 days
Partial correlation|r|z = 0.62
Granger causalityF = 8.4
BH-FDR correctionq < 0.05

Every driver edge. Every day.

Your org chart, in context

Canopy knows who reports to who and keeps an always-current RACI on every metric, so an agent's answer can become an action routed to the right named person rather than a paragraph describing a problem. When someone leaves or moves team, the accountability moves with them. There is no ownership primitive in a warehouse or a semantic view; this is context only the layer above can carry.

James Harrington

CEO

14

Sarah Chen

VP Revenue

A · Revenue

David Mitchell

VP Product

Sofia Martinez

VP Marketing

2

Emma T.

Growth

Laura F.

Sales

Reporting lines and RACI, current on every answer.

It learns from what actually happened

Canopy tracks the actions people actually took on top of the metrics, not what they said they did, and which of them moved the number, verified by the same pipeline that calculates actuals. That outcome history is context an agent can use: not just what drives revenue in theory, but which interventions have proven to move it here, in this business, when someone owned them. No other feedback signal comes close to observed behaviour change, and no stateless connection accumulates it.

Fix checkout flow

Verified · +£32k

Linked to Revenue · measured by the actuals pipeline

Pause underperforming ad sets

Measuring…

Roughly ten queries become one, and the warehouse bill stays flat

An agent investigating a metric straight on the warehouse runs roughly ten queries: the current value, each comparison period, rolling totals, outlier checks, every one a live warehouse hit and a context-window round trip. Canopy precomputes that metadata so a single query returns it, and every aggregation, comparison and correlation runs in KPI Tree's encrypted in-memory engine, not your warehouse. Agents burn an order of magnitude fewer tokens, answer faster, and your warehouse bill stays flat while question volume grows. This funds the layer; the capability above is why you buy it.

Revenue

19 Mar 2025
Month on month4.2%
Year on year1.8%
Trailing 30 days vs previous2.9%
Retail week (4-5-4)0.7%
vs Budget3.1%

Precomputed for every date in your history · in-memory · no warehouse query

Any date, any grain, every comparison. No query.

Every metric re-aggregates automatically to any granularity, daily, weekly, monthly, quarterly or yearly, while respecting each metric's additivity: sums sum, rates average, balances carry their last value. And for every date in your history, more than twenty comparison frames are already computed: rolling 7 and 30 days, week on week through year on year, every to-date frame against last period and last year, same day last year, retail 4-5-4 calendars, even Black Friday alignment. An agent can time-travel to any date and read all of it in one in-memory call, at answer speed. Budgets and reforecasts aggregate through the same pipeline, side by side with actuals.

Time travel timeline loading

Fast because nothing is computed twice

Your warehouse is queried once per metric per sync, never once per question. From there, every aggregation, comparison and correlation runs in KPI Tree's proprietary encrypted in-memory engine. There are no pre-aggregations to define and no cache warm-ups to schedule; the precompute is automatic for every metric and refreshes as new data lands. People and agents get answers at in-memory speed, question volume never reaches your warehouse, and the bill stays flat while usage grows.

Compute engine loading

Confidence built in

An agent on raw tables cannot tell a stale number from a fresh one, or an outlier from a trend, so it answers confidently either way. Canopy tracks outliers, gaps and staleness automatically and surfaces them as context, so the agent knows when to trust a number and says so when it should not. Budgets, reforecasts and ramp profiles are part of the context too, flowing through the same pipeline as actuals, so an agent knows what the plan actually was, not just what happened.

Data quality checks loading

Run your own workflows on this context

Because Canopy holds the org chart, the RACI and the metric triggers, you can automate business processes on top of it. Someone is out of office? The action escalates to their manager automatically. A metric goes silent or a period closes off-target? A workflow fires, with approvals as the human gate. This is context that does things, not context that gets quoted.

Workflow builder loading

Prefer us to run the agents? Meet Canopy Agents

Everything on this page is what external agents consume over MCP. When you would rather not bring your own, Canopy Agents are the agents KPI Tree runs for you: the Personalised Action Plan, RACI assignment, canvas and Slack agents, plus custom agents you deploy, all on this same context with your permissions, model choice, spend caps and full run history.

Weekly revenue review

scheduled · Mondays
ModelYour key · Opus
Spend this month£4.20 of £25 cap
Actions require approvalon

Ask questions that were previously impossible

What is driving churn, who owns the fix, and did last month's action actually work? No warehouse query answers those. Canopy's MCP carries the driver edges, RACI, verified impact, plans and full dbt lineage behind every metric, and it is writable: agents file tasks, update ownership and propose tree edits, all traced. Every answer is scoped to the asking user's permissions. And because the context is defined once, connecting another agent costs nothing: one-click setup for Claude, ChatGPT, Gemini, Copilot and the other MCP clients, with no separate integration per agent.

AI query examples loading

Common questions

What is a business context layer?
The layer between your data and your AI systems that carries the organisational knowledge raw tables cannot: structural context (the causal tree and the org chart), operational context (RACI, workflows and permissions), behavioural context (the decision traces of what people actually did and what verifiably worked) and temporal context (what was true when, plan against actual). Without it agents hallucinate rules, fragment into inconsistent answers across teams, and drift as the business changes. Canopy delivers all four, governed, at runtime.
Does Canopy replace our semantic layer?
No. It sits above it. Keep dbt, Looker or Snowflake semantic views as the source of calculation truth; Canopy adds the causal, ownership and outcome context they do not model.
Why not connect our agent straight to the warehouse?
For one-off numbers, do. But a direct connection re-derives the business on every question, cannot know what drives what with statistical confidence, who is accountable, or whether the last action worked, and it burns roughly ten warehouse queries where Canopy serves one precomputed answer.
Which agents can connect?
Anything that speaks MCP: Claude, ChatGPT, Gemini, Copilot, Cursor, VS Code, Windsurf, Gemini CLI and more.
Is our data stored?
By design KPI Tree does not store your raw data; cached data is encrypted at rest in an HSM-backed engine.

See it on your own metrics.