Stop. Sending. Sentences.

Telegrams were billed by the word, punctuation included, so operators learned to spell out "STOP" instead of a period: one flat word, no ambiguity. A May 2026 paper, Telegraph English (arXiv:2605.04426), applies almost the same trick to LLM prompts, rewriting text into a symbol-rich dialect of atomic fact lines instead of deleting tokens the way LLMLingua-2 does. Tested on 4,081 LongBench-v2 QA pairs across five OpenAI models, it matches or beats LLMLingua-2 at every compression ratio, and the gap grows to 11 percentage points on smaller models and fine-detail questions, exactly the model tier and the exact failure mode a routing layer needs to get right. This post walks the paper's numbers and what they mean for anyone compressing context before routing it to a cheaper model.

Published 2026-09-16 by Dor Amir on the Nadir blog.

Filed under Context & Compression.

The original per-word bill

Telegrams were billed by the word, punctuation included, so people invented a way around it. Periods and commas cost as much as any other word, but ambiguity in a military dispatch could cost a lot more, so the custom that stuck was to spell out "STOP" between sentences instead of sending a punctuation mark. The habit served two purposes at once: it was one flat word regardless of length, and it removed exactly the kind of ambiguity a dropped or misheard period could cause. Cheaper and clearer, from the same constraint.

A May 2026 paper out of a small independent-researcher group, with one author at Palo Alto Networks, applies almost the same trick to LLM prompts. Telegraph English (Arbuzov, Bei, Dong, Kalaev, and Shvets, arXiv:2605.04426) doesn't delete tokens the way LLMLingua-2 does. It rewrites the prompt into a compact, symbol-rich dialect, one fact per line, with roughly 40 fixed logical and relational symbols standing in for the connective tissue of English prose. The paper's own example: sixty-eight tokens of "according to research by Johnson and colleagues (2023), the application of machine learning techniques to medical diagnostics resulted in a 27.5% increase in early detection rates while simultaneously reducing false positives by approximately 12%" becomes fourteen tokens:

ML→MEDICAL-DIAGNOSTICS: EARLY-DETECTION+27.5% ∧ FALSE-POSITIVE-12% [JOHNSON:2023]

Same idea as STOP: don't drop the information, replace the verbose carrier with a fixed, unambiguous symbol.

What the paper actually measured

The authors ran 4,081 question-answer pairs sampled from LongBench-v2 (Bai et al.) through five OpenAI models, comparing Telegraph English against LLMLingua-2 at matched compression ratios. Two test suites: key_facts, headline claims with generic distractors, and the harder fine_facts, 801 pairs built adversarially around exactly the details compression tends to destroy — a percentage changed from 4.8% to 4.3%, a deadline in calendar versus business days.

SuiteModelOriginalTelegraph English (~50%)LLMLingua-2 (50% kept)
key_factsGPT-4.1100.0%99.1%99.0%
key_factsGPT-4o-mini99.1%95.7%94.6%
key_factsGPT-4.1-nano98.0%95.0%94.9%
fine_factsGPT-4o99.6%96.5%93.3%
fine_factsGPT-4o-mini93.8%84.3%82.0%
Grouped bar chart comparing accuracy of original, Telegraph English, and LLMLingua-2 compressed prompts across five models on key_facts and fine_facts suites. The gap between Telegraph English and LLMLingua-2 widens from under 1 point on GPT-4.1 to several points on smaller models, and to 11 points on GPT-4o-mini at more aggressive 33% retention.
Grouped bar chart comparing accuracy of original, Telegraph English, and LLMLingua-2 compressed prompts across five models on key_facts and fine_facts suites. The gap between Telegraph English and LLMLingua-2 widens from under 1 point on GPT-4.1 to several points on smaller models, and to 11 points on GPT-4o-mini at more aggressive 33% retention.

Three findings do the real work here. First, on the flagship model, both methods barely lose anything, GPT-4.1 drops under a point on either method at 50% compression, so if your pipeline is Opus- or GPT-4.1-class end to end, this paper mostly confirms compression is safe and moves on. Second, the ranking never flips: original beats Telegraph English beats LLMLingua-2 at 50% retention beats LLMLingua-2 at 33% retention, on every model, every task, every configuration tested. Third, and this is the one worth sitting with: the gap between the two compression methods widens as the model gets smaller and the question gets harder. At matched 50% retention, Telegraph English beats LLMLingua-2 by roughly a point on the biggest model and by 2 to 3 points on fine_facts for GPT-4o and GPT-4o-mini. Push LLMLingua-2 to a more aggressive 33% retention and the gap on GPT-4o-mini's fine-detail accuracy grows to roughly 11 percentage points, because LLMLingua-2 drops a full 21 points from baseline at that ratio while Telegraph English's structured symbols keep the numbers, units, and relationships explicit.

The authors' explanation is capacity, not chance: token deletion leaves gaps for the model to fill in by guessing at what used to connect the surviving fragments, and a smaller model guesses worse. Telegraph English does that reconstruction work upfront, at compression time, so the small model never has to attempt it. This blog has already measured how classification-based routers get less confident, not more, on out-of-distribution and edge-case inputs — the same shape shows up here one layer over: a cheap model asked to reconstruct meaning from degraded context is being asked to do the hard reasoning its cost tier was never meant to carry.

The compression method decides which model you can safely route to

That's the part that matters for anyone running a routing layer rather than a single fixed model. A compression method isn't just a lever on the bill, it's a constraint on how far down the model-cost ladder you can push a request and still get a right answer. Compress with a method that quietly costs a smaller model 3 to 11 points of accuracy on the details that matter, and a router calibrated on uncompressed traffic will route requests to a cheap tier that can no longer clear the bar it was calibrated against. The compression and the routing decision are not independent steps; the first changes the ground truth the second is measured against.

Telegraph English's structure has a second effect that compounds with routing, and it comes from a difference in what each method actually returns:

Bar chart of cost per 1,000 runs of a five-step agent pipeline: $40 uncompressed, $33 with LLMLingua-2 which only compresses the first stage's input, $16 with Telegraph English which persists as the working format across all five stages.
Bar chart of cost per 1,000 runs of a five-step agent pipeline: $40 uncompressed, $33 with LLMLingua-2 which only compresses the first stage's input, $16 with Telegraph English which persists as the working format across all five stages.

LLMLingua-2 is an input-only preprocessor: it shrinks the first prompt that goes in, but whatever the model generates at each step comes back in full, uncompressed natural language, and that's what the next step in an agent pipeline pays for. Telegraph English's output is a legitimate working format in its own right, one fact per line, so a multi-step pipeline can keep operating in it stage to stage instead of round-tripping through verbose prose each time. On the paper's own worked example — a five-step pipeline, 2,000 tokens of starting context plus five 400-token generations, at $10 per million tokens — that difference is $33 per 1,000 runs against $16. Compressing the first stage's input saves 18% of the bill. Compressing every stage saves 60%.

Why this is more than a compression trick

The line-structure rule that makes Telegraph English readable also makes it addressable. Every output line is exactly one claim, tagged with role and scope markers (CTX:, AGENT:, Q:/A:), which means the compressed text is simultaneously a semantic index: a query about adverse events can retrieve the one ADVERSE-EVENTS: line and its scope directly, no chunk-boundary heuristic, no risk of a fact getting split across two embeddings the way fixed-window RAG chunking can split it. This blog's context-selection benchmark already showed the model reads a fraction of what a pipeline retrieves; a format where retrieval granularity is a fact, not an arbitrary token window, is a more direct fix for that gap than fetching fewer, bigger chunks and hoping the boundaries land well.

The authors are careful to flag this piece as an architecture argument, not a benchmark result: nothing in their evaluation measures a multi-turn agent session updating facts in place over time, only static compress-once-read-once accuracy. Worth taking at face value rather than overselling. It also isn't free: Telegraph English needs an LLM call to do the rewrite (the paper used o4-mini), so it amortizes well on context that gets read many times and poorly on a prompt that's generated once and discarded.

What to check this week

A minimal version of the pattern — compress once with a structured rewrite, then route the compressed request to whichever model tier the compressed size and complexity actually justify:

import openai

client = openai.OpenAI(
    base_url="https://api.getnadir.com/v1",
    api_key="ndr_...",
)

TE_SYSTEM_PROMPT = """Rewrite the input as Telegraph English: one atomic
fact per line, using =, ->, =>, therefore, because, up/down arrows, and
AND/OR/NOT for logical relations. Never drop a number, unit, date, or
citation. Compress only where doing so loses no information."""

def compress_and_route(document: str, question: str) -> str:
    compressed = client.chat.completions.create(
        model="auto",
        messages=[
            {"role": "system", "content": TE_SYSTEM_PROMPT},
            {"role": "user", "content": document},
        ],
    ).choices[0].message.content

    return client.chat.completions.create(
        model="auto",
        messages=[
            {"role": "user", "content": f"{compressed}\n\nQ: {question}"},
        ],
    ).choices[0].message.content

The compression call and the answer call are both routed independently here, since Nadir picks the model per request rather than per pipeline, so a cheap model can do the rewrite while the answer call gets whatever tier the now-compressed, now-shorter request actually needs, and the routing decision on the second call is being made against a prompt that a smaller model has a real shot at reading correctly, not one a token-deletion pass quietly made harder for it.

Related reading


Sources: [Arbuzov, Bei, Dong, Kalaev, and Shvets, "Telegraph English: Semantic Prompt Compression via Structured Symbolic Rewriting," arXiv:2605.04426, May 2026](https://arxiv.org/abs/2605.04426). [Pan et al., "LLMLingua-2: Data Distillation for Efficient and Faithful Task-Agnostic Prompt Compression," Findings of ACL 2024](https://arxiv.org/abs/2403.12968). [Bai et al., "LongBench v2: Towards Deeper Understanding and Reasoning on Realistic Long-context Multitasks," arXiv:2412.15204](https://arxiv.org/abs/2412.15204). [UK National Archives, "Working with telegrams," on STOP as a punctuation-billing workaround](https://www.nationalarchives.gov.uk/education/students/working-with-telegrams/).

More on context & compression

What Nadir is

Nadir is an LLM router. Nadir sends each prompt to the cheapest model that can handle it. A small decision model reads each prompt against your model menu and picks the lowest-cost model it expects to handle it. When the decision model is uncertain or unavailable, the request goes to the strongest model on the menu. The routing step makes no call to your model provider.

Nadir runs two ways. The decision API returns a model, reasoning-effort, cache, context, and policy recommendation without calling a model provider, beside the gateway you already run. That is how a shadow-mode evaluation works, and its projected savings stay advisory. The OpenAI compatible managed proxy executes the route, and migration is a two-line change: point the base URL at api.getnadir.com and set model to auto. On that path an optional verifier can score a complete non-streaming answer and escalate to a stronger model when it misses the configured bar. Streaming bypasses post-generation verification. BYOK is supported on every tier.

For coding agents, Nadir Auto is a terminal launcher for Claude Code or Codex that asks Nadir for the main-session model before each turn, with your configured model as the fallback and cost ceiling. Delegation integrations for Claude Code, Codex, or Cursor instead recommend a model tier for subagent work, and the agent decides; the Claude plugin can also move a main-thread turn to Haiku when Nadir's cache check prices it cheaper, unless its switch_main_model option is off. Either way inference runs on your own provider account, so Nadir holds no provider keys on that path.

What the numbers are, and what they are not

Nadir publishes each evaluation with its scope. On checkable code, run-check-escalate solved 392 of 395 common HumanEval and MBPP problems (99.2%), graded by running the canonical tests; that applies only to tasks with runnable deterministic tests. Nadir-Tumbler posts an arena_score of 72.3 on RouterArena's public scorer, 5th of 23 routers, which measures the routing decision on RouterArena's own model pool. A reference-assisted RouterBench evaluation over 11,420 held-out triples produced a 60% lower projected cost than always-Opus with about 98% retained quality and a 1.7% catastrophic-route rate. That experiment gave the verifier the expensive-model reference answer, which production does not have, so it is a research ceiling and not the deployed path.

None of these is a production guarantee, a universal savings rate, or a forecast for any particular workload. Customer savings are reported from measured execution against a declared baseline, and customer quality only from outcome-labelled traffic. Projected savings and realized savings are separate artifacts and are never blended.

Design-partner program

Three rungs, picked by risk appetite. Rung 0 Shadow runs advisory decision calls alongside live traffic and returns a projected receipt, with nothing in the request path changed. Rung 1 Hosted is the two-line swap on a production slice and returns a realized receipt. Rung 2 On-prem is a supervised six-week proof of concept inside the partner's VPC, where no prompt, response, or usage reaches Nadir. The commitments are the same at every rung. Apply for a rung directly: Rung 0 Shadow, Rung 1 Hosted, or Rung 2 On-prem. Not sure which fits? Start at getnadir.com/contact/?reason=design-partner.

Licensing

NadirClaw is the self-hosted core, source-available under the PolyForm Noncommercial License. Source-available is the correct label; NadirClaw is not open source. Nadir Route's hosted plan has no base fee and charges a variable fee only on measured savings from requests Nadir executed.

Pages on this site

Machine-readable summaries of this site: llms.txt and llms-full.txt.