Skip to main content
Alpha. The metric-tree analyses below (traverse, root-cause, opportunity, predict) are available today through the MetricTreeClient. The higher-level node interface — the expand / drill / explain / size / simulate paradigm, the interactive components, and actions — is a design preview and may change. Actions are not yet built.
The World Model isn’t just a set of numbers — it’s a graph: metrics connected to the drivers that move them, the entities that produce them, and (soon) the actions that change them. The World Model Interface exposes that graph to your app so you can build experiences that let people navigate their business, not just read a dashboard.

The node paradigm

Everything in the World Model is a node, and every node speaks the same five verbs. Learn them once and they compose across the entire surface: Render a node, let the user click a verb, get more nodes back, recurse. That’s the whole interaction model — a metric card whose drivers expand into more cards, each of which can be drilled, explained, sized, or simulated.

Get the interface

A single hook — useWorldModel — returns the whole interface, scoped to the project. Everything else hangs off it: you grab a node and the node speaks the verbs.
world.metric(id) is the one object you carry around — every verb below is a method on it.

Explain a move

explain decomposes a period-over-period change, recursively splitting the metric by its components and dimensions until the move concentrates — so you can show where a number came from, not just that it changed.

Size the opportunity

size finds underperforming segments and quantifies the upside of closing the gap to their peers — “match the best” across a dimension.

Simulate an action

This is the frontier. An action is a lever a human can pull — hire, raise prices, open a store. Actions live in a catalog and declare only the leaf measure they directly move; everything downstream is already described by the metric tree’s drivers, so the SDK propagates the effect for you — carrying the nonlinearity in the drivers.
Because the nonlinearity lives in the driver, not the action, the same hire produces a different lift depending on where each store sits on its curve — which is exactly what makes size + simulate compose into a ranked recommendation:
Hire 2 servers at San Mateo → +0.14 CSAT (4.62 → 4.76) → +$28k/mo. Diminishing returns past a 3rd hire.
The knots of a piecewise driver are inspectable metadata, so the interface can say why the returns diminish rather than emit an opaque number.

Make everything clickable

The verbs above are designed to nest, so an interactive component only needs one callback: hand it the node the user clicked and let them choose what to do next.
A dashboard built this way starts at a single top-line metric and lets the user walk the whole business from it — expand into drivers, drill into a region, explain a drop, size the gap, and (soon) simulate the fix — every object a live handle rather than a static number.

Available today

The analyses this interface is built on ship now via MetricTreeClient (getTree, getSensitivity, predict, explain, findOpportunities) — see Hooks & components. The node paradigm, interactive components, and actions on this page are the proposed shape of the higher-level interface.

Next steps

The Metric Tree

Component vs. driver edges, forms, and promotion

Hooks & components

The stable SDK surface MetricTreeClient sits in