Skip to content
Guideintermediate

Decision Models Explained: OpenAI Decisions API vs AWS Strands Decider vs Ollama

The short version

Decision models return one of your predefined answers plus a probability instead of generating text. We compared OpenAI's Decisions API, AWS Strands Decider 2B, Ollama 0.35, Jev, Solar Decide, and Microsoft-Decision-1 on price, latency claims, hosting, and API schema, with a pick for each build.

Published October 12, 2026by Pondero Reviews
Table of Contents

Decision Models Explained: OpenAI Decisions API vs AWS Strands Decider vs Ollama

Write your decision logic against TypeSafe's System One schema, prototype it on Ollama or AWS's open Strands Decider for nothing but local compute, and pay for OpenAI's Decisions API only if you need image inputs or HIPAA-eligible hosting on a stack you already run. That's our pick after comparing six options that reached developers in the four weeks after TypeSafe released Jev on September 15. The schema matters more than any single model this month, because System One code moves between vendors by changing a base URL and OpenAI's does not.

A decision model takes some context, a question, and a fixed list of allowed answers, then returns one of those answers with a probability attached. It never writes a sentence. OpenAI's version bills $0.10 per 1M input tokens with no charge for output, and the whole category is pitched at the yes/no and pick-one calls an agent makes between steps. Today most teams pay for a full chat completion to answer those, then parse the prose.

We covered the individual launches as they landed (AWS Strands Decider, OpenAI's Decisions API, TypeSafe's Series A, Microsoft-Decision-1). This guide puts the field side by side and tells you which one to wire in.

What a decision model returns, and what it refuses to do

Every vendor uses the same three question types under different names. A yes/no question returns the probability that a condition is true (TypeSafe and Ollama call it noul, OpenAI calls it predicate). A choice question picks one label from a set you supply. A score question places the input on an ordered scale, such as severity, and returns a probability-weighted position that can land between levels, per OpenAI's Decisions guide. You can batch several unrelated questions against one piece of context in a single request.

Mechanically, most open implementations take a pretrained LLM, delete the head that generates tokens, and bolt on a small scoring head. AWS describes exactly that for Strands Decider: a Qwen3.5-2B "torso," a pointer head of just over a million parameters that scores each option, and a rank-16 LoRA adapter on the backbone, per the Strands Labs announcement. Because the answer space is closed, the model can't invent an option you didn't offer. It can still pick the wrong one.

AWS is blunt about the trade in that same post: the approach "makes it significantly worse at solving complex problems than reasoning models," and the lack of text output rules it out for coding, chatbots, and summarization. So a decision model sits beside your LLM. The LLM plans, writes, and calls tools; the decision model answers the small gating questions in between.

OpenAI draws the boundary against its own older features in the Decisions docs. Use Structured Outputs when you need the model to generate an object in your own JSON schema, such as extracted fields or a written explanation. Use function calling when the model needs to request a tool call with arguments. Use Decisions when the answer is a probability, a choice from a fixed set, or a score. If your answer fits one of those three shapes, the category is for you; if it needs prose, it isn't.

Six decision models side by side, as of October 12, 2026

Prices are per 1M input tokens; every option below charges nothing for output. Latency figures are each vendor's own numbers on its own hardware and workloads, so read them as claims, not a shared benchmark.

ModelMakerWhere it runsInterfaceInput priceVendor latency claimSource
Jev 1.13TypeSafe AIHosted (TypeSafe, OpenRouter, Venice)System One, native /v1/systemone$0.042 on OpenRouter70 to 500 ms on TypeSafe's internal workflowsThe New Stack, Blog du Moderateur
Decisions API (gpt-6-luna)OpenAIHosted only, public beta since Oct 6Own schema, POST /v1/decisions$0.10About 150 ms vs about 1.6 s for a standard Luna callOpenAI docs, OpenAI changelog, The New Stack
Strands Decider 2BAWS Strands LabsSelf-hosted, Apache 2.0 weights plus training data and scriptsSystem OneFree weights, your hardwareMedian about 115 ms on an RTX 3090, about 153 ms for small tasks on an M3 MacBookStrands Labs, The New Stack
Ollama 0.35 with nimble or tev1Ollama, models from Bespoke Labs and Together AILocalSystem One, /v1/systemoneNo API chargeNimble 9B averaged 91 ms per decision on an M5 MaxOllama blog
Solar DecideUpstageHosted (Upstage, OpenRouter)System OneNot in launch coverageNone publishedThe New Stack
Microsoft-Decision-1MicrosoftHosted (Microsoft Foundry, OpenRouter)Structured API call$0.042P50 about 35x faster than GPT-6 Sol on Microsoft's own runMicrosoft

Two more entrants sit just outside the table. Perplexity's pplx-decider ships Apache 2.0 weights and a hosted API at $0.02 per 1M input tokens on its own Decisions path, and Cloudflare's Clef and Clef-flash ship as open weights plus a hosted Workers AI option with image input, per The New Stack's October 9 market map and its October 7 roundup.

The schema split decides your switching cost

Ignore the model names for a minute, because the choice that will cost you engineering time later is the wire format.

TypeSafe defined a request shape for Jev, and it spread fast. Upstage serves Solar Decide through it, Ollama added a /v1/systemone endpoint in version 0.35 "explicitly based on TypeSafe's API," and Strands Decider answers at the same path when you run it as a server, per The New Stack. TypeSafe's own SDK works against any of those once you change the base URL. Ollama's launch post shows exactly that setup, pointing TYPESAFE_BASE_URL at http://localhost:11434 (Ollama).

OpenAI kept the semantics and changed the contract. We put the two request formats next to each other from the published docs, and the differences are small but total: none of the field names line up.

ConceptSystem One (TypeSafe, Ollama, Strands, Upstage)OpenAI Decisions API
Endpoint/v1/systemonePOST /v1/decisions
Shared contextstate (string or object)input (string, or messages with text and images)
Question listquestions object, keyed by namequestions array, each item carries a name
Yes/no typenoulpredicate
Choice optionscriteria map of label to descriptionchoices array of value and description
Score levelscriteria array of level labelslevels array of label and description
Answersanswers object keyed by question nameanswers array, name echoed back
SourceOllama blogOpenAI docs

Here is the same "which team gets this ticket" question in both shapes, trimmed from each vendor's documented examples.

System One, sent to Ollama 0.35 at http://localhost:11434/v1/systemone:

{
  "model": "nimble",
  "state": { "ticket": "I was charged twice. Please refund the extra payment." },
  "questions": {
    "team": {
      "type": "choice",
      "instructions": "Which team should handle this ticket?",
      "criteria": { "billing": "Payments and refunds", "technical": "Bugs and integrations" }
    }
  }
}

OpenAI, sent to https://api.openai.com/v1/decisions:

{
  "model": "gpt-6-luna",
  "input": "I was charged twice. Please refund the extra payment.",
  "questions": [{
    "type": "choice",
    "name": "team",
    "instructions": "Which team should handle this ticket?",
    "choices": [
      { "value": "billing", "description": "Payments and refunds" },
      { "value": "technical", "description": "Bugs and integrations" }
    ]
  }]
}

A thin adapter covers that mapping in an afternoon. The point is that you'll have to write it, and the rest of the ecosystem won't. The New Stack put the state of play this way on October 9: "TypeSafe is winning the schema war while the endpoint war remains open." Its writer also flags the limit of that portability. Servers still differ in option limits, in how they compute confidence, and in answer quality, so a URL swap still needs a test pass (The New Stack).

What a million decisions costs at list price

Token counts drive the bill, so we anchored on a real request. Ollama's documented three-question ticket example (one choice, one yes/no, one score) reports 841 input tokens and 4 output tokens in its response, per Ollama's launch post. Multiply that by one million requests and you're at 841M input tokens. At each vendor's published input rate:

OptionInput price per 1M tokens1M requests at 841 tokensSource
OpenAI Decisions API$0.10About $84OpenAI docs
Jev on OpenRouter$0.042About $35The New Stack
Microsoft-Decision-1$0.042About $35Microsoft
Perplexity pplx-decider (hosted)$0.02About $17The New Stack
Strands Decider or Ollama, self-hosted$0 per tokenYour GPU or laptop timeStrands Labs, Ollama

Treat those as rough, not exact. Each vendor's tokenizer counts the same prompt differently, and OpenAI notes that "regional processing premiums and long-context input pricing multipliers apply" on top of the base rate (OpenAI docs). The useful takeaway is the order of magnitude. Even OpenAI's rate, the highest published rate in this table, lands a million gating calls in double-digit dollars, which is why the price gap between vendors matters less than the schema gap for most teams.

Pick by what you're building

If you are...PickWhyWhere it flipsSource
Prototyping an agent gate and want to read the weightsStrands Decider 2B or Ollama 0.35Open weights, local, System One wire format, no per-call billYou need a managed endpoint in production; AWS hasn't announced a hosted optionThe New Stack
Already all-in on OpenAI with ZDR or HIPAA requirementsOpenAI Decisions APIEligible for Zero Data Retention and HIPAA, US and EU data residency, image inputsYou want portability; you'll be writing an adapter to leaveOpenAI docs
On Azure and buying through FoundryMicrosoft-Decision-1Listed in the Microsoft Foundry catalog, $0.042 inputEvery benchmark behind it is Microsoft's ownMicrosoft
Optimizing for the reference implementationJevThe model the schema was built for, hosted on three providersTypeSafe hasn't disclosed its size or base modelThe New Stack
Gating one action, once, in an app that already calls an LLMKeep Structured Outputs or function callingNo new dependency for a single checkCall volume climbs into the thousands an hourOpenAI docs

Decision-1 isn't a Microsoft 365 Copilot add-on you can switch on. Microsoft says its Copilot team uses the model internally to measure the quality of chat and agent responses, but developer access today runs through Foundry and OpenRouter (Microsoft). Microsoft also says it will rebase the model on its own MAI models and on OpenAI models, beyond the current Qwen3.5-9B base.

Candid cons, by camp

OpenAI

Hosted only, public beta, and gpt-6-luna is the single supported model; the docs say GA is expected "in the coming weeks" (OpenAI docs). The 150 ms figure traces to OpenAI's DevDay materials, compared against about 1.6 seconds for a standard Luna call, not to any outside measurement (The New Stack).

AWS Strands Decider

It's a Strands Labs release, and AWS calls its own agent example "an illustration rather than a recommendation," with thresholds picked by hand (Strands Labs). There's no hosted Bedrock version yet, which The New Stack flags as the gap for anyone who wants this in production rather than on localhost (The New Stack). Like Jev, it takes text input only for now, while OpenAI's, Perplexity's, and Cloudflare's models accept images (The New Stack).

Ollama

Ollama's own post calls both tev1 sizes experimental, and Ollama's accuracy chart for its three models comes from Bespoke Labs' benchmark suite, with Nimble 9B at 75.7% against Jev 1.13 at 76.0% on that set (Ollama). Bespoke Labs built Nimble, so weigh that chart accordingly.

Microsoft-Decision-1

The 36-benchmark accuracy lead and the 2.5x speed edge over the runner-up are from Microsoft's own run, and the post was edited after publication to add Jev to the comparison (Microsoft).

Every vendor in the category

A University of Southern California researcher found an optimizer could flip 61.4% of 508 initially correct Jev decisions by inserting short, natural-looking context, and an open Qwen-based model in the same study flipped at 72.6% (The New Stack, citing the paper). That's a targeted adversarial rate, not an everyday failure rate. It still means any decision that reads user-supplied text needs a second control besides the confidence threshold.

Is this just a gold rush?

TypeSafe's founder thinks most of the followers are. "I get that people think it's a gold rush, but they might be underestimating the difficulty of making the models actually smart," CEO Diogo Almeida told TechCrunch, adding that the current batch "seems more like ML people wanting to implement a cool architecture." He has a point, and also a $7.5 billion valuation to defend.

AWS's Marc Brooker, who started Strands Decider as a homebrew project after trying Jev, frames the demand from the customer end. He told the same TechCrunch reporter that customers wanted "a workflow step that can be structured in a way that is more reliable, thanks to the confidence scores, thanks to the closed domain of answers, [and is] lower latency, potentially lower cost." He also said the cost to build something interesting here is in the hundreds or thousands of dollars (TechCrunch). Jared Palmer reports porting his Kev models to Qwen3.5 for roughly $95 in H100 time (The New Stack).

Both men can be right. Cheap to clone means the interface commoditizes fast, which is good for you as a buyer. Hard to make smart means model quality will separate vendors over the next few months, which is the reason to keep your code on the portable schema so you can swap in whoever wins.

One more caution that applies to every vendor: confidence isn't correctness. TypeSafe's documentation describes confidence as a measure of how concentrated the probability distribution is and tells teams to set thresholds from their own labeled data, per The New Stack. AWS reports that Strands Decider answers at 0.9 confidence or higher were right about 95% of the time on short classification tasks it hadn't seen, per the same article. Run your own labeled sample before trusting any threshold on production traffic.

What to watch through November

JevBench is the closest thing to a neutral scoreboard. It's maintained under the MIT license by Florian Standhartinger and contributors, and its v1.5.4 leaderboard tracked 112 decision systems with Jev in third (The New Stack). If Microsoft, OpenAI, and AWS start reporting against it instead of private suites, comparisons get much easier.

Watch AWS for a hosted Decider in Bedrock, which would remove the main reason to pick a hosted rival over it. Then watch whether OpenAI's "coming weeks" GA lands on time and whether it turns its now-documented schema into an open spec other servers implement or keeps /v1/decisions to itself. If OpenAI opens its own contract, the category carries two standards and you'll want an adapter layer regardless.

Our recommendation for this week: write against System One, run Strands Decider or Ollama's nimble locally on a labeled sample of your own decisions, and only move to a hosted endpoint once you know which threshold your data supports.