# Cloudflare's Clairic extraction model returns typed fields in one pass on Workers AI

> Cloudflare previewed Clairic, a single-pass extraction model that bills only input tokens and returns typed, null-aware fields with confidence scores. It targets the repeated structured-output calls teams now send to frontier LLMs.

- Published: 2026-10-19
- By: Samir Sengupta (https://www.samcodeman.com/about)
- Canonical: https://www.samcodeman.com/writing/cloudflare-clairic-extraction-model-typed-fields-workers-ai
- How this was made: Drafted with Claude, Anthropic's model from 1 cited source, then checked against it in a second editing pass. Editorial policy: https://www.samcodeman.com/editorial-policy
- Disclosure: I build Tron-1B, an open-weight decision model, so I have a stake in how this category is judged.

## The short version

- Clairic is available only as a hosted preview on Workers AI as @cf/cloudflare/clairic. Cloudflare says it intends to release open weights soon, without giving a date, licence or model size.
- Clairic answers every field in one forward pass and charges only for input, so Cloudflare says asking for thirty fields costs about the same as asking for three.
- Every scalar answer carries p_null and a confidence score. A missing field returns null instead of a plausible-looking guess, and every answer is a value of its declared type, which is the problem LLM extraction pipelines solve with parsing, schema validation, retries and spot checks.
- The available announcement text gives no parameter count, per-token price or accuracy benchmark, so Cloudflare's claim of higher accuracy than LLMs cannot yet be checked against numbers.

Cloudflare has released a preview of Clairic, an extraction model hosted on Workers AI as @cf/cloudflare/clairic. It says it intends to release the model open-weights "soon". Clairic returns nine typed field types, including text spans with character offsets, numbers, dates, durations, lists, estimates with 80% intervals, and forecasts. It charges only for input and typically responds in under a second, against several seconds for an LLM that reasons through the same step. Cloudflare claims higher accuracy, lower latency and lower cost than LLMs but gives no parameter count, per-token price, licence or benchmark scores, so it fits fixed-shape, high-volume extraction better than anything that needs reasoning or free text.

Cloudflare presents Clairic as a new class of System One model, a framing taken from Daniel Kahneman's Thinking, Fast and Slow. TypeSafe applied that framing to models a month earlier with Jev. Until now every System One model has been a decision model: Jev and Clef take an input state and a list of questions and return probabilities. Clairic targets the structured-output calls that go to frontier LLMs "with the same shapes again and again", such as an invoice total, a delivery date, how many days late something is, or a repair cost. None of these answers can be listed in advance, so a decision model has nothing to assign probabilities to.

## What the Clairic extraction model ships today

- Availability: a hosted preview on Workers AI under the model ID @cf/cloudflare/clairic, called from a Worker through env.AI.run.
- Weights: none yet. Cloudflare writes that it intends to release the model open-weights soon. No date, licence or size is given.
- Pricing model: input only, because no output tokens are generated. The post does not include a per-token rate.
- Latency: "typically" under a second, compared with several seconds for an LLM that reasons through the same step. No percentiles, hardware or input-length conditions are stated.
- Inputs: a state made of the text to read plus up to four optional images, and a map of named, typed fields with optional plain-language instructions.
- Field count: no limit. If the fields do not fit beside the input in one pass, the server splits them into parallel passes that each see the whole input, then merges the answers.

## Nine field types define the supported schemas

The post defines a fixed vocabulary of field types and does not mention JSON Schema. Each field is declared by name and type. Options such as decimals, unit, integer, a [min, max] range and a step grid set the shape of the answer. Cloudflare states that every answer is a value of its declared type, or null, inside the bounds you set.

- text: a specific span of the input, returned with its offsets.
- number: a number read or computed, honoring integer and decimals settings.
- date, time, datetime: calendar dates and valid times in ISO form.
- duration: a length of time in the unit you choose.
- list: matching text, number or date items, in input order.
- estimate: a distribution inside your [min, max], on your step grid, on a linear or log scale.
- forecast: one estimate per future step of a series, each with its own 80% interval.

Every scalar answer includes p_null, the probability that the value is not in the inputs, and a confidence score. Every estimate includes a median and an 80% interval from p10 to p90, and all 99 percentiles are available on request. The available text does not say whether nested objects or arrays of objects are supported. Because the list type covers only text, numbers and dates, a line-item table with several columns per row may need to be expressed as parallel lists, though the post does not address this case.

## One forward pass removes the output-token bill

Like a decision model, Clairic processes only input tokens in a single forward pass. It does no reasoning and generates no output tokens, so all fields are answered in one parallel pass. Cloudflare gives that design as the basis for both its latency and its pricing claims. Its summary of the cost consequence:

> So asking for thirty fields costs about the same as asking for three.
>
> - Cloudflare, Introducing Clairic, a new System One class of extraction models

Cloudflare's worked example is a customer support email. The request asks for an order ID, a delivery date, the total paid, the days since delivery, a list of the damage described, and a tracking number that the email does not contain.

```javascript
const { answers } = await env.AI.run("@cf/cloudflare/clairic", {
  state: email,
  fields: {
    order_id: { type: "text", instructions: "Order number" },
    delivered_on: { type: "date", instructions: "Delivery date" },
    amount_paid: { type: "number", decimals: 2, unit: "USD", instructions: "Total paid including tax" },
    days_since_delivery: { type: "duration", unit: "days", integer: true,
      instructions: "Days from delivery to the date the customer wrote" },
    damage: { type: "list", items: "text", instructions: "Each kind of damage described" },
    tracking_number: { type: "text" },
  },
});
```

## Clairic returns computed values, spans and nulls

amount_paid comes back as 701.1. That figure does not appear in the email: Clairic added the $649.00 price and the $52.10 tax in the same pass. days_since_delivery is 11, computed from two dates in the text. damage returns "cracked screen" and "dented corner" with spans [50, 64] and [71, 84], so a review UI can highlight them in the source. tracking_number returns a value of null with p_null of 1, while its guess field, which Cloudflare says shows what the model would otherwise have picked, reads "$52.10" at confidence 0.416016, so pipelines should read value and treat guess as diagnostic.

The receipt-photo example shows how confidence can work as a routing signal. Cloudflare describes the photo as having imperfect text and an unhelpful angle. On that image, subtotal came back at confidence 0.99999, order_number 77245 at 0.776, and discount as null with p_null of 0.9994. A pipeline could auto-accept fields above a threshold and send the rest to a person. The comparison table in the post calls the probabilities "calibrated", but the available text gives no calibration data on documents outside Cloudflare's own examples.

## Clairic covers numbers, Clef covers choices

Cloudflare says most model tasks ask for one of three kinds of output: Clairic returns numbers with an 80% range plus typed values such as names, dates and lists, Clef picks among a fixed set of options with a probability for each, and LLMs such as GPT, Claude, Gemini and DeepSeek handle open-ended text. The intended pipeline chains them in that order. Extraction models turn raw input into typed values, decision models turn values into decisions, and LLMs turn decisions into words. Cloudflare argues that bucketing an estimate into decision options such as "under $100" or "$100–500" is coarse, that every bucket adds input tokens, and that each new category adds room for confusion. Clairic's estimate type is its alternative to bucketing.

That note covers decision models, the System One class Clairic is positioned beside in this pipeline. See: [What the OpenAI Decisions API beta exposes, and when a local decision model wins](https://www.samcodeman.com/writing/openai-decisions-api-beta-vs-local-decision-models)

## When to use Clairic instead of LLM structured outputs

- Use it for high-volume, fixed-shape extraction from emails, invoices, receipts and support tickets. These are cases where the same fields are requested on every document, and Cloudflare notes that with an LLM you pay for reasoning and output tokens on every field of every document.
- Use it when you need provenance. Text and list fields return character offsets. Cloudflare's complaint about LLM extraction is that once a text excerpt comes back, there is no way to trace it to where it appeared in the source.
- Use it when missing data must stay missing. A null with p_null is easier to act on than a plausible-looking fill-in.
- Use it for numeric estimates that feed automation thresholds. A p10 to p90 interval tells a downstream rule whether $180 is a confident or an uncertain answer.
- Keep the LLM for anything outside the nine types: why-questions, free-form summaries, multi-step reasoning, and outputs that need nested structure Clairic does not document.
- Hold back on hard commitments while it remains a preview. There is no published per-token price, no p95 or p99 latency, and no accuracy benchmark against LLM baselines in the available text. There is also no parameter count for anyone planning to self-host the promised weights.

A practical first step is a shadow run. Send the documents an existing LLM pipeline already handles to Clairic with the same fields. Then compare field-level agreement, null behavior and confidence distributions. That gives a team its own accuracy figure, which the announcement does not supply.

## Questions this raises

### How is Clairic priced compared with LLM structured outputs?

Clairic charges only for input tokens because it runs a single forward pass and generates no output tokens. Cloudflare says asking for thirty fields costs about the same as asking for three, but the post gives no per-token rate.

### What does Clairic return when a field is not in the input?

It returns null with a p_null score, the probability that the value is absent. In Cloudflare's example, tracking_number came back null with p_null of 1. A separate guess field showed "$52.10" at confidence 0.416, which pipelines should treat as diagnostic only.

### How does Clairic differ from Clef?

Clef is a decision model that picks among a fixed set of options and returns a probability for each. Clairic extracts typed values such as numbers, dates, spans and estimates whose answers cannot be listed in advance. Cloudflare's intended pipeline chains them: Clairic extracts values, Clef makes decisions, and LLMs produce text.

## Key facts

- Clairic is a hosted preview on Workers AI under the model ID @cf/cloudflare/clairic, with open weights promised "soon" and no date given.
- It supports 9 field types, including text spans with character offsets, estimates with 80% intervals (p10 to p90), and forecasts.
- It bills input tokens only and typically responds in under a second, so 30 fields cost about the same as 3.
- Requests take text plus up to 4 optional images. Field count has no limit, and oversized requests split into parallel passes.
- No parameter count, per-token price, licence or benchmark scores are published.

## Sources

1. [Introducing Clairic, a new System One class of extraction models](https://blog.cloudflare.com/clairic-extraction-model/) - blog.cloudflare.com
