How-to
How to instrument a funnel so an agent can run it
Agents can only optimise what they can measure. This guide shows how to instrument a funnel - events, metrics, and windows - so an agent can run experiments against revenue.
An agent can only optimise what it can measure, attributed to revenue, within an agreed window. Most funnels are instrumented for reporting, not for experimentation. This guide covers the difference and how to close it.
TL;DR in 60 seconds
- Define the funnel steps as discrete, observable events.
- Give each experiment a primary metric, a guardrail, and a measurement window up front.
- Tie every event back to revenue on a single identity.
- Agree the success bar before the test runs, not after.
Step 1: model the funnel as events
Write down each step a user takes as a named event: visited_pricing, started_trial, activated, converted. Vague stages ("consideration") cannot be optimised; discrete events can.
Step 2: attach revenue
Each event should be joinable to the eventual deal value on a shared identity key. Without this, the agent optimises proxies. With it, the agent can score a variant on revenue per visitor, not clicks. (If your data isn't joined yet, start with wiring agents into your data layers.)
Step 3: set the success bar before you run
For every experiment, agree three things up front:
- Primary metric - what you're moving.
- Guardrail metric - what must not degrade (margin, retention, CAC).
- Measurement window - how long the test runs before you read it.
Deciding these after the fact is how teams talk themselves into shipping noise. Fixing them first is what lets an agent call a result honestly.
Step 4: log everything, wins and losses
Every test, its hypothesis, and its outcome go into a log the agent can read. This is what turns a series of one-off tests into a system that sharpens over time.
What "done" looks like
Your funnel is a set of named events, each tied to revenue, and every experiment ships with a primary metric, a guardrail, and a window agreed in advance. Now an agent can run the loop and you can trust the results.