---
title: "What Is Clairic? Extraction Models Explained"
description: "Clairic is an extraction model that pulls typed values (text, numbers, dates, estimates) out of text, JSON and images, and returns null when the input doesn't determine a value. Value types, use cases, limits and pricing."
canonical: "https://system-one.dev/en/blog/what-is-clairic"
language: "en"
---

# What Is Clairic? Extraction Models Explained

**What is Clairic?** Clairic is an extraction model. Give it some text or JSON, plus up to 4 images, and a list of the fields you want, and it returns typed values: text, numbers, dates, durations, lists, estimates and forecasts. Every answer has a value; most also carry a confidence and p_null, though estimate and forecast fields don't. Null is returned when p_null exceeds null_threshold, and guess may still hold a value. It doesn't generate tokens and doesn't write replies.

**How is it different from Jev and Clef?** Jev and Clef are decision models: they choose among options you list, give a score, or answer yes/no, and return probabilities. Clairic doesn't choose; it pulls values out. The two work well together: extract with Clairic first, then decide with Jev or Clef.

## In one sentence

A decision model answers "which one?"; an extraction model answers "what's the value?"

## Extraction models vs decision models vs LLMs

This table compares interfaces and output shapes only, not speed, accuracy or price.

| | Clairic, extraction model | Jev / Clef, decision models | Large language model |
|---|---|---|---|
| What you send | state text or JSON, optionally with images, plus a list of fields | state plus questions and options | A prompt |
| What you get back | Typed values, most with a confidence and p_null | Choice, Score or Noul answers with probabilities | Generated text |
| When the answer isn't there | null, when p_null exceeds null_threshold | Probabilities across the options you gave | Depends on the prompt |
| Generates tokens? | No | No | Yes |

**How is this different from prompting an LLM or running OCR?** An LLM asked for JSON generates text you still have to check; OCR gives you the text of an image but not which number is the total. Clairic returns the fields you define as typed values, with null when the input doesn't support one. Read the details in [LLM extraction vs Clairic](/en/blog/clairic-vs-llm-extraction) and [OCR vs AI field extraction](/en/blog/clairic-vs-ocr).

## What values can Clairic return?

| Field type | What it returns |
|---|---|
| text | A span of the source text, with character offsets |
| number | A number |
| date / time / datetime | A date, a time, or a date and time |
| duration | A length of time |
| list | A list |
| estimate | An interval estimate: a median plus p10–p90 |
| forecast | One estimate per future step, up to 64 steps |

Every answer has a **value**. The fields below are optional and not every answer includes them; estimate and forecast answers, for example, have no confidence or p_null:

- **confidence**: how sure the model is about this value.
- **p_null**: the probability that the input can't determine this value.
- **guess**: the model's best guess.

When p_null exceeds null_threshold, value is null, and guess may still hold a value. This matters: missing information is not quietly filled into value.

## Inputs: text, JSON, images and fields

- **state**: the text or JSON to read.
- **Images**: up to 4, in PNG, JPEG or WebP.
- **fields**: the fields you want, with no limit on how many. If they don't fit in one 8,192-token pass, they are split into several passes that run in parallel.
- **reference_date**: sets which year a date written without a year belongs to.
- **Context window**: 65,536 tokens.

## What it's good for

- **Invoices**: pull the amount, invoice date and invoice number, usually with a confidence.
- **Order emails**: pull the order number, quantity and delivery date.
- **Support tickets**: pull the product name, error time and how long the impact lasted.

The official blog gives a few more examples:

- **Customer complaint email**: pull the order number, delivery date, total paid and a list of damage. The total paid isn't written in the email; it's computed on the spot by adding 649 and 52.10 in tax to get 701.10. The 11 days from delivery to the email are worked out too, and "cracked screen" and "dented corner" each come with their location in the source text. The email has no tracking number, so that field returns null instead of an invented one.
- **Skewed, blurry receipt photo**: pull the order number, purchase time, quantity, unit price, subtotal, tax and tip. The receipt shows no discount, so discount returns null.
- **House price estimate from comparable sales**: returns a median and an 80% interval, p10 to p90. The width of the interval shows how sure it is.
- **Forecasting daily airport security-check passenger counts**: it picks up the weekly pattern but not holidays. The official blog says forecasting is only for non-critical, rough pattern judgments and doesn't replace dedicated time-series models.

For the claim-handling example where Clef decides on Clairic's output, see [Clairic vs Jev and Clef](https://system-one.dev/en/blog/clairic-vs-jev-clef).

Once you have the values, the next step is usually a decision, such as "does this need human review?" or "which team gets it?". That step belongs to [Jev](https://system-one.dev/en/models/jev) or [Clef](https://system-one.dev/en/models/clef).

## Preview limitations

The official blog is upfront about the limits:

- One- and two-step calculations are reliable; long chains of calculations and aggregation across many rows are not there yet.
- Multi-step forecasts drift toward the average.
- Output is well formed, but not necessarily correct.

So test on your own samples before production, and set thresholds on confidence and p_null where they're returned. Send anything below the threshold to a person.

## How to try it

Clairic is available on system-one.dev. For the model ID, see `GET /v1/models`. Details are on the [Clairic model page](https://system-one.dev/en/models/clairic).

How Clairic is billed: each 4KB of request content counts as one block, and anything under 4KB counts as one block; each block costs 2 credits. You're charged once per request, no matter how many fields you extract. This differs from Jev and Clef, whose cost is also multiplied by the number of questions. See [system-one.dev pricing](https://system-one.dev/en/pricing).

New accounts get 100 free credits on sign-up. [Try it online (sign-in required)](https://system-one.dev/en/demo/invoice-extraction).

## Related reading

- [Clairic vs Jev and Clef](https://system-one.dev/en/blog/clairic-vs-jev-clef)
- [Clairic model page](https://system-one.dev/en/models/clairic)
- [What is a decision model?](https://system-one.dev/en/blog/what-is-a-decision-model)
- [system-one.dev pricing](https://system-one.dev/en/pricing)
- [LLM extraction vs Clairic](https://system-one.dev/en/blog/clairic-vs-llm-extraction)

Last verified: 2026-10-22

## Frequently asked questions

### Is Clairic a large language model?

No. It doesn't generate tokens; it returns typed values.

### How is an extraction model different from JSON mode?

In JSON mode, an LLM writes the JSON one token at a time, so the format can be right while a value is made up. Clairic returns typed values directly. Most carry a confidence and p_null, and null is returned when p_null exceeds null_threshold, with guess possibly still holding a value. That helps you decide what to trust.

### What's the difference between estimate and forecast?

estimate is a single interval estimate: a median plus p10–p90. forecast is a series of estimates, one per future step, up to 64 steps.

### What does it return when a value isn't found?

null, when p_null exceeds null_threshold; guess may still hold a value. Where p_null is present, it is the probability that the input can't determine this value.

### Can it read images?

Yes, up to 4, in PNG, JPEG or WebP.

### Can it be wrong?

Yes. The official blog says output is "well formed, not necessarily correct", and long chains of calculations and multi-row aggregation aren't reliable yet. Test with your own data.
