Compresso

Benchmarks

What it saves, what it costs,
and where it does nothing.

This page answers three questions: how many tokens Compresso saves, whether compressing changes the model’s answers, and how much time it adds to a request. Every number comes from the open source engine’s published benchmarks, including the results that are not flattering.

01 · Accuracy

Does compressing change the answer?

The question that matters most. If the model answers differently on compressed input, nothing else on this page is worth reading.

Recall · article extraction

98.2%

of the original content survived, at 94.9% compression.

Needle in a haystack

4 / 4

A critical error buried at entry 67 of 100 was still found after 87.6% compression.

QA F1, after extraction

+0.02

Answer quality went up, not down — 0.85 → 0.87.

HTML extraction · Scrapinghub Article Extraction Benchmark · 181 pages
MetricHeadroomWhat it means
Recall0.98298.2% of the real content survived the compression.
Precision0.879Some boilerplate came through with it.
F1 score0.919The two combined.
Compression94.9%At a twentieth of the tokens.
Question answering · original HTML vs extracted
MetricOriginal HTMLExtractedDelta
F1 score0.850.87+0.02
Exact match60%62%+2%
JSON needle-in-haystack · 100 production log entries, critical error at position 67
MetricBaselineHeadroom
Input tokens10,1441,260
Correct answers4/44/4
Compression87.6%

02 · Compression by content type

Two of these compress by nothing at all

Structured, repetitive machine output is where the slack lives. Source code and grep hits, in this run, came out exactly the size they went in — the router looked at them and passed them through untouched. That is the honest shape of the result.

Build log · 200 lines93.9% · 2,412→148
JSON array · 100 items90.6% · 3,163→297
Shell output · 200 lines85.5% · 3,238→469
JSON array · 500 items83.1% · 9,526→1,614
grep results · 150 hits0.0% · unchanged
Python source · ~480 lines0.0% · unchanged
Full run · headroom v0.5.18 · Apple M-series, CPU
Content typeOriginalCompressedSavedRatioLatency
JSON array (100 items)3,1632972,86690.6%1ms
JSON array (500 items)9,5261,6147,91283.1%2ms
Shell output (200 lines)3,2384692,76985.5%1ms
Build log (200 lines)2,4121482,26493.9%1ms
grep results (150 hits)2,6242,62400.0%<1ms
Python source (~480 lines)2,9582,95800.0%<1ms
Total23,9218,11015,81166.1%5ms

Try it on today’s session.

Enjoy fewer tokens from your first request.
7 days free, no card.

Download for macOSApple Silicon · macOS 14+

03 · Production telemetry

And here is what it does in the wild

Lab numbers measure a payload. This measures real sessions — 50,000+ of them. The median session compresses 4.8%, because a real session is mostly things that don’t compress. The mean is pulled to 11.3% by the sessions full of tool output. Both numbers are on this page on purpose.

Median compression

4.8%

P25 and P50 alike.

P75

6.9%

Three sessions in four are below this.

Mean compression

11.3%

Dragged up by the heavy-tool-output tail — that's where the value is.

Fleet total

1.4B

tokens saved across 249 instances, ≈ $4,000.

04 · Latency

The cost side of the trade

Compression is not free. In production the median request pays 52ms — but the P99 pays four seconds.

Median (P50)

52ms

What almost every request feels.

P90

309ms

Noticeable, still under the model's own latency.

P99

4,172ms

The tail is real. Four seconds of local work before the request leaves.

Mean

161ms

Skewed by that tail.

Pipeline step timing · production medians
StepMedianP90What it is
pipeline_total16.9ms289msFull compression pipeline
content_router11.7ms259msContent detection + routing
compressor:smart_crusher50.1ms50msJSON array compression
compressor:text32.0ms576msText compression (Kompress ONNX)
compressor:mixed316ms428msMixed content
compressor:code_aware815ms886msTree-sitter AST compression
_initial_token_count2.9ms16msToken counting (tiktoken)
_deep_copy0.1ms0.3msMessage copy overhead

05 · Break-even

Compressing can make the request faster

Fewer tokens means less prefill, so the model starts answering sooner. Whether that pays for the compression depends entirely on how fast the model is: on a large model the trade is overwhelmingly positive, on a small cheap one it is negative every single time.

Net latency change by model · negative = compression costs more than it saves
ScenarioCompressGPT-4o miniGPT-4oSonnet 4.5Opus 4
Search results · 100 items189ms−102ms+72ms+72ms+507ms
Search results · 500 items943ms−456ms+518ms+518ms+2,952ms
Search results · 1K items2,012ms−1,022ms+957ms+957ms+5,905ms
Search results · 5K items12,213ms−7,201ms+2,822ms+2,822ms+27,881ms
API responses · 500 items743ms−365ms+391ms+391ms+2,280ms
Database rows · 1K961ms−530ms+331ms+331ms+2,483ms
String array · 1K146ms−51.9ms+136ms+136ms+605ms
Number array · 1K301ms−243ms−126ms−126ms+165ms
Mixed array · 250 items38.4ms−19.5ms+18.2ms+18.2ms+113ms

Net win in 11 of 12 scenarios against Sonnet 4.5; in 12 of 12 against Opus 4; in 0 of 12 against GPT-4o mini. Average compression across the suite: 93%.

Try it on today’s session.

Enjoy fewer tokens from your first request.
7 days free, no card.

Download for macOSApple Silicon · macOS 14+

06 · Caveats

What these numbers are not

Everything else worth stating plainly
The latency suite is stale by the publisher's own admissionv0.5.6 added parallel message compression and removed redundant token counting; the page says to expect lower latency now.
Latency was measured only on JSONAll 12 scenarios are JSON. No code or prose latency figures exist in that suite, though the production table shows code_aware at 815ms median.
Break-even assumes a prefill rate0.03ms/token for Sonnet 4.5, $3.00/MTok. Different model, different answer — as the GPT-4o mini column shows.
One machine, one PythonmacOS arm64, Python 3.11.11, single run. The publisher notes results vary with hardware and content.
Fleet telemetry is four days30 March – 2 April 2026, 249 clean instances, mixed OS — 57% Linux, 38% macOS. Compresso is macOS-only, so the fleet is not our user base.
Accuracy is four benchmarks, not a guarantee100–181 samples each. Strong evidence, not proof that your workload survives.

References: headroomlabs-ai.github.io/headroom/benchmarks/ · /LATENCY_BENCHMARKS/