Back to all features interface + control

Analytics.

Node-delegated cost tracking. Every node meters its own tokens and spend as it runs — and the canvas rolls all of them into one dashboard across every provider and local model.

Planning scope: tokens · cost · per node, per model
what it is

Each node accounts for itself.

Most tools wrap one meter around the whole app. DISPATCH delegates cost tracking to the node: each one tallies its own tokens in and out, and prices them at its own model's rate.

An Investigate on gpt-4o, a Plan on claude-opus, a Create on local llama-70b — each prices itself exactly. The canvas only rolls the numbers up: per node, per model, per provider, per run. No billing exporter, no guesswork.

delegated metering per node
Investigategpt-4o · $0.04
Planopus · $0.07
Createllama-70b · $0.03

three nodes · three models · one rolled-up total = $0.14

how it works

Meter at the node, roll up at the canvas.

The same loop fires every time a node runs: count → price → emit → roll up.

01 · count

Count its tokens

As a node streams, it tallies prompt and completion tokens straight from the provider's usage fields — input and output kept separate, never estimated after the fact.

02 · price

Price at its model

Each node already pins a provider and model, so it applies that model's exact input/output rate. Local models price at $0.00 — but still report tokens.

03 · emit

Emit a usage event

On completion the node emits a small usage record — node id, model, tokens, cost — onto the run's event stream, the same channel that drives live status dots.

04 · roll up

Roll up to one view

The canvas aggregates every event into one dashboard — per node, per model, per provider, per run — so a twenty-node graph reads as a single, trustworthy number.

live demo

Run the graph. Watch the meters.

Press Run. Each node meters its own tokens and cost as it fires; the dashboard rolls them up live into a per-model breakdown and one run total.

run · node-delegated cost idle
Refactor & document the billing service ·6 nodes
per node · self-metered tokens · cost
Initialiser trigger 0 tok$0.00
Investigate gpt-4o 0 tok$0.00
Plan claude-opus 0 tok$0.00
Create llama-70b · local 0 tok$0.00
Doc gemini-1.5-pro 0 tok$0.00
Review gpt-4o 0 tok$0.00
rolled up 0 tok $0.00
dashboard · per model 4 models
gpt-4o OpenAI $0.00
claude-opus Anthropic $0.00
gemini-1.5-pro Google $0.00
llama-70b Local $0.00
run total
$0.00
tokens
0
$ / 1k tok
$0.00

Local models cost $0.00 but still report tokens — usage stays visible even when spend is zero.

why it matters

Know what every node costs.

When cost lives on the node, you can see exactly where spend goes — and trim it without unwiring the graph.

attributable

Spend maps to the node that caused it.

A run total tells you what you paid, not why. If a Create node eats 60% of the bill, you see it on the bar in real time — then move it to a cheaper model, cap its tokens, or swap it local. Cost becomes a property you can edit, not a month-end surprise.

Investigate Create · 60% Review
cross-provider

One number across four vendors.

OpenAI, Anthropic, Google, and your local models each bill differently — or not at all. The dashboard normalises them into one currency-true total, so a mixed-model graph reads as cleanly as a single-model one.

parallel-safe

Twenty agents, one tally.

Because metering is delegated, a Parallel fan-out of twenty agents each reports its own cost — and the Merge rolls them into the same total. No double counting.

local-first

Counted, never sent.

All accounting happens on your machine from the usage you already receive. No telemetry, no billing export to a third party — your spend data stays as local as your canvas.

historical

Every run is a row.

Each run's rollup is kept beside the graph, so you can compare what a workflow cost yesterday versus today after a model swap — and catch a price regression before it compounds.