Beveridge.
Released October 2026 · Beveridge-Large-C and Beveridge-Pro-C by Dr. Sathiskumar JOTHI

Decisions, not essays.
Typed answers with calibrated probabilities.

Beveridge is a System One decision model. Give it a document and typed questions (yes/no, one of your options, or a level on your scale) and it returns an answer with a probability for every option. It never generates text or reasons step by step, so there is nothing to parse: Beveridge-Large-C answers all your questions in one pass on a laptop, Beveridge-Pro-C answers each question in one scoring pass on a GPU. The weights are open and it runs on your own machines: your documents never leave them.

Get Beveridge

The model, the code and the package, all under Apache-2.0: free for commercial use.

ModelSizeRuns onBest forStatus
Beveridge-Pro-C26B, built on Gemma 4 26B-A4Bone GPU with about 60 GBknowledge-heavy decisions: contracts, finance topics, large intent sets, dates and payment statusavailable
Beveridge-Pro-C-Web26B, built on Gemma 4 26B-A4Bone GPU with about 60 GBthe next step of a browser agent (98.2% on web pages from unseen site types; live hotel search and Wikipedia 3/3), plus everything Beveridge-Pro-C doesavailable
Beveridge-Large-C0.4B, built on ModernBERT-largelaptop CPU or GPU, edge boxes, any GPUoperations documents, logs and alerts, ticket routing, request safetyavailable

Quickstart

Python 3.10 or newer. The first load downloads the model once; after that it works offline.

pip install bev-decisions            # Beveridge-Large-C: laptop CPU or any GPU
pip install "bev-decisions[pro]"     # adds Beveridge-Pro-C: one GPU with about 60 GB
import bev

model = bev.load()                   # Beveridge-Large-C; bev.load(bev.PRO_MODEL) for Beveridge-Pro-C
answers = model.decide(
    "Charged twice for order 88412. Please refund one payment today.",
    {
        "team":   {"type": "choice", "instructions": "Which team should handle this?",
                   "criteria": {"billing": "payments, refunds", "tech": "bugs, outages"}},
        "urgent": {"type": "noul", "instructions": "Does the customer ask for urgent handling?"},
    },
)
sure, review = bev.gate(answers, threshold=0.8)   # act on sure, send review to a person

With or without a GPU

bev.load() picks the best device it finds: an NVIDIA GPU, an Apple Silicon GPU, otherwise the CPU. Or choose it:

model = bev.load(device="cpu")                  # Beveridge-Large-C, no GPU needed
model = bev.load(device="cuda")                 # Beveridge-Large-C on an NVIDIA GPU
model = bev.load(device="mps")                  # Beveridge-Large-C on an Apple Silicon GPU
pro = bev.load(bev.PRO_MODEL, device="cuda")    # Beveridge-Pro-C: NVIDIA GPU with about 60 GB
Measured, package from PyPIFirst loadOne document, 3 questions
Beveridge-Large-C, Apple M4 Pro laptop, CPU onlyabout 25 sabout 0.18 s
Beveridge-Large-C, Apple M4 Pro laptop GPUabout 22 sabout 0.05 s
Beveridge-Large-C, one NVIDIA H200 GPUabout 32 sabout 0.015 s
Beveridge-Pro-C, one NVIDIA H200 GPUabout 54 sabout 0.07 s

Typed outputs

A boolean, an option from your list, or a level on your scale. Your code reads the answer directly.

Calibrated confidence

A probability for every option, so you can automate the sure cases and route the rest to a person.

Runs where your data is

Load it on your own GPU, serve it over HTTP or MCP, or run it in Docker. Nothing is sent anywhere.

Use cases

Each use case links to the tests that back it. Check yours on a few hundred labelled examples first (bev eval).

Use caseExample questionsEvidence
Support inbox triagewhich team? urgent? customer sentiment?Beveridge-Bench tickets; support intents
Request safety and guardrailsis this request harmful? a jailbreak attempt?Aegis 2.0; JailbreakBench
AI agents: tool dispatch and checksdoes this need a tool? which tool? does the action move money or delete data? (MCP server: bev mcp)typed decisions
Model routingrules, a small model, a large LLM or a person?typed decisions
Security and operations logsattack category, failed logins above a number, severity, outage root causeBeveridge-Bench security and alerts
Back office documentsinvoice total over the approval limit?Beveridge-Bench invoices
Contract and policy reviewdoes this clause look unfair? which policy rule applies?unfair contract terms; Rules-Bench
Reviews and moderationreview sentiment, toxic comment?product reviews; toxic comments

Automation examples

answers = model.decide(email_text, bev.presets.get("ticket_triage"))
sure, review = bev.gate(answers, threshold=0.8)
route_to(sure["department"]) if "department" in sure else send_to_person(email_text)

Benchmarks

Accuracy = correct answers ÷ questions on held-out test sets, the same cases for every system (October 2026). For example, Beveridge-Pro-C on Beveridge-Bench: 1,103 of 1,200 answers right = 91.9%. Highlighted green = best in the row; – = not run.

How much of the work can you automate?

Hand over the most confident answers first. The automation rate is the share you can hand over while those decisions stay at least 95% correct: Beveridge-Large-C 76%, Beveridge-Pro-C 69%, Jev 59%. The LLMs reach 0% at 95%, because their "100% sure" answers are not 95% right (gpt-oss 120B 94.0%, Gemma 4 31B 91.5%). Example: 76% means 3 of every 4 decisions are taken automatically and at least 95% of them are right; the rest go to a person.

Share of decisions automated at a target accuracy: Beveridge-Large-C, Beveridge-Pro-C, Jev and five LLMs
SystemAutomated at 95% accuracyat 90%Accuracy on all answers
Beveridge-Large-C76%93%87.0%
Beveridge-Pro-C69%90%86.0%
Jev59%77%81.1%
gpt-oss 120B0%74%81.4%
Gemma 4 31B0%71%82.2%
Mistral Large 40%0%78.1%
Mistral Large 30%0%71.4%
Nemotron 3 Super0%0%68.7%

Beveridge-Bench, typed decisions and Aegis 2.0 request safety: 10,238 answers per system, same cases for every system. Answers given with the same confidence are handed over together.

Size and speed

Accuracy on the same 10,238 answers against model size: Beveridge-Large-C (0.4B) and Beveridge-Pro-C (25.8B) are more accurate than LLMs of 31B to 675B.

Accuracy against model size: Beveridge-Large-C and Beveridge-Pro-C against five LLMs

Time per decision: Beveridge-Large-C 4.9 ms on one GPU and 60 ms on a laptop CPU; Beveridge-Pro-C 22 ms on one GPU. Jev and the LLMs were measured through their cloud APIs, including network: 98 ms and 4.1 to 7.0 s.

Time per decision: Beveridge on a laptop and on one GPU against Jev and five LLMs through cloud APIs

Accuracy, test by test

Accuracy on decisions about documents: Beveridge-Large-C, Jev and five LLMs
TestBeveridge-Large-CBeveridge-Pro-CJevMistral Large 4Mistral Large 3gpt-oss 120BGemma 4 31BNemotron 3 Super
Beveridge-Bench (operations documents)93.091.987.983.774.691.188.970.6
Typed decisions75.879.273.872.068.068.875.062.7
Rules-Bench (rules shown)85.692.092.383.181.494.591.682.7
Aegis 2.0 request safety82.378.271.570.566.969.573.169.3
JailbreakBench refusal84.584.083.577.562.068.087.565.0
Unfair contract terms*65.676.062.054.652.847.674.444.0
Financial-news topics*37.869.865.061.861.663.464.257.2
Legal case holdings*42.071.277.669.272.261.271.655.0
Banking77 (77 intents)63.670.679.275.871.281.078.869.2

* An area Beveridge was not built for. Full results, question-by-question tables and calibration are on the model card.

Why the name “Beveridge”?

Beveridge is named after Sir William Beveridge (1879–1963), the British economist, born in British India and educated in England, whose 1942 Beveridge Report laid the foundations of the modern welfare state and of the National Health Service (NHS), built for the good of future generations.

The name is a reminder of what we want from the model: dependable, fair decisions that serve people, made carefully and checked against the facts.

Other models on Hugging Face are called Bev; they are not related to Beveridge. The Python package keeps its short name: pip install bev-decisions, import bev.

Sir William Beveridge
1879–1963
British economist · born in British India · educated in England · 1942 Beveridge Report · welfare state and the NHS

FAQ

Can I use Beveridge in a commercial product?

Yes. Beveridge-Large-C, Beveridge-Pro-C and the bev-decisions package are released under Apache-2.0. Beveridge-Large-C is built on ModernBERT-large (Apache-2.0) by Answer.AI and LightOn; Beveridge-Pro-C on Gemma 4 (Apache-2.0) by Google.

What is a System One model?

A model that makes a typed decision in a single scoring step for each question instead of generating text step by step, the way a person answers "is this invoice over the limit?" at a glance.

What hardware do I need?

Beveridge-Large-C runs on a laptop CPU (about 0.18 s per document with 3 questions on an Apple M4 Pro) or any GPU (about 0.015 s on one H200). Beveridge-Pro-C needs one GPU with about 60 GB of memory (about 0.07 s per document on one H200).

Where is Beveridge less strong today?

Knowledge-heavy decisions such as case law, questions with very many options, and five-level sentiment. It reads English text up to 4,096 tokens per call. Check it on a few hundred labelled examples of your own (bev eval) and keep a person in the loop for decisions with serious consequences.

Do you see my documents?

No. Beveridge runs on your machines; nothing is sent to us or anywhere else.

How can I support Beveridge?

Star the GitHub repository, report issues there, or buy me a coffee.