# What a pipe saves your bot

92% fewer tokens across three checks (9,137 instead of 116,827). 99.4% fewer when nothing is new (142 instead of 25,574). Exact, replayable output: 30 of 30 runs matched an independent parse, and 29 of 29 replays reproduced the receipt.

Ten paired runs of three real checks, on Sunday, Oct 18, 2026 (19:16–19:25 UTC). An agent reading the raw sources, versus the same agent reading the pipe response.

HTML: https://asipipes.com/benchmarks
JSON: https://asipipes.com/benchmarks.json

## Headline

- **92% fewer tokens** for the same three checks: 9,137 tokens for the pipe responses, 116,827 for the raw sources. Measured with tiktoken o200k_base.
- **A quiet check is 142 tokens, not 25,574** (99.4% fewer) when the SEC watch had nothing new.
- **27× smaller for news.** Four RSS feeds were 90,175 tokens raw. The pipe's top-20 result was 3,308.
- **Deterministic and replayable.** 30 of 30 pipe runs succeeded. All 20 SEC and news outputs matched an independent parse of the same sources, field for field. 29 of 29 completed replays reproduced the original receipt. Markets equities and the alert matched 10 of 10. Crypto prices matched 5 of 10 exactly and 10 of 10 within 0.05%, because the price moved in the second between the two fetches.

## Per task

Means of 10 iterations. "Fewer" is tokens, not time.

| Task | Raw tokens | Pipe tokens | Fewer tokens | Runs | Independent parse |
| --- | --- | --- | --- | --- | --- |
| SEC 8-Ks (`robodir-sec-filings`, 1 EDGAR search) | 24,520 | 5,258 | 78.6% fewer (4.7× tokens) | 10/10 | 10/10 exact |
| News (`crypto-ai-news`, 4 RSS feeds) | 90,175 | 3,308 | 96.3% fewer (27.3× tokens) | 10/10 | 10/10 exact |
| Markets (`markets-snapshot`, 7 JSON APIs) | 2,132 | 571 | 73.2% fewer (3.7× tokens) | 10/10 | Equities and alert 10/10 exact. Crypto 5/10 exact, 10/10 within 0.05%. |
| All 3, one check each | 116,827 | 9,137 | 92.2% fewer (12.8× tokens) | 30/30 | |

## Cost projection

Input tokens only. Sources, both fetched 2026-10-18:

- DeepSeek Flash: https://api-docs.deepseek.com/quick_start/pricing/ — input $0.15/M off-peak, $0.30/M peak (cache miss); output $0.60/M and $1.20/M.
- Claude Sonnet 5 input price, used only as a projection: https://platform.claude.com/docs/en/about-claude/pricing — $2/M.
- $0.00005/run is an infra estimate from the spec, not a measurement and not a customer price.

| Task | DeepSeek off-peak, per check | DeepSeek off-peak, hourly month | Sonnet 5 input, hourly month (projection) |
| --- | --- | --- | --- |
| SEC 8-Ks | $0.003678 → $0.000839 | $2.65 → $0.60 | $35.31 → $7.61 |
| News | $0.013526 → $0.000546 | $9.74 → $0.39 | $129.85 → $4.80 |
| Markets | $0.000320 → $0.000136 | $0.23 → $0.10 | $3.07 → $0.86 |

The quiet SEC check was $0.003836 raw versus $0.000071 for the pipe, including infra, at DeepSeek off-peak. Hourly, that is $2.76 versus $0.05 a month. At DeepSeek Flash prices the monthly dollar savings are under $10 per source, which is less than the $19 Builder plan, and hourly checks of these three sources are 2,160 runs a month, above the Free plan's 1,000. The Sonnet 5 column is the pricier-model projection.

## Quiet check

A second call of a diff pipe, with 0 new filings, returned **142 tokens** (362 bytes). The baseline re-read of the raw EDGAR response plus the list of ids already seen was **25,574 tokens**. The news "nothing new" case was not measured: the workspace hit its daily fetch cap first.

## Replay

33 replays were requested. **29 of 29 completed replays reported matched: true.** 4 returned HTTP 429 and were not scored. 0 mismatched. Replay is `POST /v1/runs/{id}/replay`.

## Method

### Reading the raw pages

Grok 4.7 read the raw pages directly. Each prompt ran in a fresh context and was scored against the pipe output. 1 of 30 runs had an error: 1 wrong field out of 2,060 field checks. One headline came back with a curly apostrophe and a trailing space. There were no missing, extra, or hallucinated items, and no malformed JSON. A separate nothing-new check was 10 of 10 correct. Pipes: 30 of 30 runs matched an independent parse, and 29 of 29 replays reproduced the receipt.

Caveats for this check: small sample, few distinct payloads, one model, temperature not controllable, and no-code parsing enforced by instruction rather than a sandbox. The token counts above are from DeepSeek V4 Flash. This accuracy check is Grok 4.7, answered 19:35–19:46 UTC the same day. An earlier attempt to score DeepSeek stopped when the key returned HTTP 402 after 3 calls. Those 3 calls are not this rate. There is no general speed claim. A plain script is faster than a pipe. A pipe is smaller than handing the raw payloads to an LLM.

- **Date:** Sunday, Oct 18, 2026, 19:16–19:25 UTC. US equity markets were closed. Crypto prices were live.
- **Where:** one Linux box, Denver-region egress, workspace `keithbot-mail-grokbot-com`.
- **Baseline:** the box fetched the same URLs the pipe fetches, in parallel, and built one prompt from the task spec plus every raw response. That prompt is the raw token count.
- **Pipe side:** `POST /v1/pipes/<name>/run` immediately after. Tokens are the full REST response, envelope included. Each pipe was also called once over MCP (3 of 3 succeeded). `content[0].text` was 574, 5,258, and 3,305 tokens. The full JSON-RPC body is about twice as large because it carries both `content` and `structuredContent`.
- **Tokenizer:** tiktoken `o200k_base`. On the 2 prompts where DeepSeek's own counter was available, it counted 6.4% and 6.8% more than o200k. Dollar figures use o200k.
- **Token-count model:** DeepSeek V4 Flash, Flux Router alias `flux-fast`, confirmed by `x-flux-model: deepseek-v4-flash`. DeepSeek bills this legacy name as DeepSeek-V4.1-Flash-1017. Temperature 0. `x-flux-summarization-applied: false`, so the model saw the full raw input. Scoring that model stopped when Flux returned HTTP 402 `free_tier_exhausted` after 3 baseline calls. Those calls are not the error check.
- **Error-check model:** Grok 4.7, Sunday, Oct 18, 2026, 19:35–19:46 UTC. Each prompt was a fresh context. The model read the raw pages and composed the JSON. Answers were scored against the pipe output. Temperature could not be set. The no-code rule was the instruction, not a sandbox.
- **Ground truth:** a Python re-implementation of each pipe, run on the box's own fetch, compared field by field.
- **Latency, not a headline:** pipe median (p90) 0.88 s (1.02) SEC, 1.29 s (1.43) news, 0.88 s (0.94) markets. Parallel raw fetch median 0.11 s, 0.21 s, 0.20 s. The 3 completed LLM calls took 4.44 s, 4.51 s, and 18.97 s.

## Caveats

1. The Grok 4.7 check is a small sample: 30 reads, few distinct payloads, one model. Temperature was not controllable. No-code parsing was an instruction, not a sandbox. 1 of 30 runs had an error (1 field of 2,060). The benefit is the 92% token reduction, plus byte-exact output and a replayable receipt.
2. LLM latency is 3 calls. News LLM latency and output tokens were not measured.
3. No general "N× faster" claim. A pipe call (0.9–1.3 s) is slower than a script fetching the raw sources (0.1–0.2 s).
4. Dollar amounts are small at DeepSeek Flash prices (about $0.13–$9.35 saved per source per month). The Sonnet 5 projection is larger (about $2–$125). Hourly checks of these 3 sources are 2,160 runs a month, above the Free plan's 1,000.
5. The baseline is generous to the agent: the pipe author's sources, one prompt, parallel fetches.
6. The pipe token count is the whole REST body, including `text`, `fetched_at`, and `_change`.
7. DeepSeek counted about 6–7% more tokens than o200k. Ratios hold roughly.
8. Sources were quiet (Sunday), so raw payloads barely changed between iterations.
9. The table uses DeepSeek list price. Flux's actual charge on the calls that completed was about 6.7× that list price.
10. Infra cost is an estimate, not a customer price.

Get pinged only when something is new: no polling. A webhook fires when a pipe finds new records. Empty runs stay quiet. See https://asipipes.com/how-it-works#saves.
