81trust / 100
Funnel Analyze
by HALOWERK Agent Tools in Documents & files
x402 APIPassing, checked 3 h ago
Walks the events you pass through the ordered steps you name and reports per step: how many arrived, conversion from the previous step and from the first, drop-off in users and as a rate, and time to the next step as median, p90 and mean. A step counts only if it happened after the one before and inside the window. Where events carry a segment, each is tested against the largest with the same two-proportion test the A/B endpoint uses. Nothing is stored.
POST https://tools.halowerk.com/v1/funnel/analyze
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 36 ms typical, 36 ms slowest 5%
- Last check
- 3 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://tools.halowerk.com/v1/funnel/analyze" \
-H "content-type: application/json" \
-d '{"events":[{"segment":"eu","step":"view","time_unix_s":1786000000,"user_id":"u1"},{"segment":"eu","step":"cart","time_unix_s":1786000120,"user_id":"u1"},{"segment":"eu","step":"checkout","time_unix_s":1786000420,"user_id":"u1"},{"segment":"eu","step":"purchase","time_unix_s":1786000900,"user_id":"u1"},{"segment":"us","step":"view","time_unix_s":1786000010,"user_id":"u2"},{"segment":"us","step":"cart","time_unix_s":1786000200,"user_id":"u2"},{"segment":"us","step":"view","time_unix_s":1786000020,"user_id":"u3"}],"steps":["view","cart","checkout","purchase"],"window_s":604800}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.03:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftools.halowerk.com%2Fv1%2Ffunnel%2Fanalyze
const res = await pay("https://tools.halowerk.com/v1/funnel/analyze", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"events":[{"segment":"eu","step":"view","time_unix_s":1786000000,"user_id":"u1"},{"segment":"eu","step":"cart","time_unix_s":1786000120,"user_id":"u1"},{"segment":"eu","step":"checkout","time_unix_s":1786000420,"user_id":"u1"},{"segment":"eu","step":"purchase","time_unix_s":1786000900,"user_id":"u1"},{"segment":"us","step":"view","time_unix_s":1786000010,"user_id":"u2"},{"segment":"us","step":"cart","time_unix_s":1786000200,"user_id":"u2"},{"segment":"us","step":"view","time_unix_s":1786000020,"user_id":"u3"}],"steps":["view","cart","checkout","purchase"],"window_s":604800}),
});
console.log(await res.json());Example input
{
"events": [
{
"segment": "eu",
"step": "view",
"time_unix_s": 1786000000,
"user_id": "u1"
},
{
"segment": "eu",
"step": "cart",
"time_unix_s": 1786000120,
"user_id": "u1"
},
{
"segment": "eu",
"step": "checkout",
"time_unix_s": 1786000420,
"user_id": "u1"
},
{
"segment": "eu",
"step": "purchase",
"time_unix_s": 1786000900,
"user_id": "u1"
},
{
"segment": "us",
"step": "view",
"time_unix_s": 1786000010,
"user_id": "u2"
},
{
"segment": "us",
"step": "cart",
"time_unix_s": 1786000200,
"user_id": "u2"
},
{
"segment": "us",
"step": "view",
"time_unix_s": 1786000020,
"user_id": "u3"
}
],
"steps": [
"view",
"cart",
"checkout",
"purchase"
],
"window_s": 604800
}Example output
{
"biggest_drop_off": {
"drop_off": 1,
"drop_off_rate": 0.5,
"index": 2,
"step": "checkout"
},
"confidence_level": 0.95,
"event_count": 7,
"events_outside_funnel": 0,
"funnel": [
{
"conversion_from_first": 1,
"conversion_from_previous": 1,
"drop_off": 0,
"drop_off_rate": 0,
"index": 0,
"reached": 3,
"step": "view",
"time_to_next_s": {
"mean": 155,
"median": 155,
"p90": 187,
"sample": 2
}
},
{
"conversion_from_first": 0.666667,
"conversion_from_previous": 0.666667,
"drop_off": 1,
"drop_off_rate": 0.333333,
"index": 1,
"reached": 2,
"step": "cart",
"time_to_next_s": {
"mean": 300,
"median": 300,
"p90": 300,
"sample": 1
}
},
{
"conversion_from_first": 0.333333,
"conversion_from_previous": 0.5,
"drop_off": 1,
"drop_off_rate": 0.5,
"index": 2,
"reached": 1,
"step": "checkout",
"time_to_next_s": {
"mean": 480,
"median": 480,
"p90": 480,
"sample": 1
}
},
{
"conversion_from_first": 0.333333,
"conversion_from_previous": 1,
"drop_off": 0,
"drop_off_rate": 0,
"index": 3,
"reached": 1,
"step": "purchase",
"time_to_next_s": null
}
],
"overall_conversion_rate": 0.333333,
"segment_comparisons": [
{
"absolute_difference": 1,
"alpha": 0.05,
"baseline_rate": 0,
"baseline_segment": "us",
"note": null,
"p_value": 0.0832645167,
"rate": 1,
"segment": "eu",
"significant": false,
"z": 1.732051
}
],
"segments": [
{
"conversion_rate": 0,
"segment": "us",
"steps": [
{
"index": 0,
"reached": 2,
"step": "view"
}
],
"users_completed": 0,
"users_entered": 2
},
{
"conversion_rate": 1,
"segment": "eu",
"steps": [
{
"index": 0,
"reached": 1,
"step": "view"
}
],
"users_completed": 1,
"users_entered": 1
}
],
"stateless": true,
"steps": [
"view",
"cart",
"checkout",
"purchase"
],
"strict_order": true,
"users_completed": 1,
"users_entered": 3,
"window_s": 604800
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Passed | 402 | 36 ms | $0.002 |