JEV / SYSTEM ONE
Uses the Jev decision playground
OpenRouter publishes the same Perplexity Decisions API contract for this model. This service sends a shared state with Choice, Score or Noul questions and validates the returned typed answers.
Now available: GPT-6 Luna Decisions
Try the modelPERPLEXITY / OPENROUTER
Perplexity’s 4B decision model shares the V1.2 contract at a lower input price. It reads text, JSON or images for high-volume classification, routing and moderation.
perplexity/pplx-decider-flash-v1.2New accounts get 100 credits. The playground and API share one balance.
Context window
262,144
tokens · provider-listed maximum
OpenRouter input price
$0.01 / 1M
per million input tokens
OpenRouter output price
$0 / 1M
output tokens are free upstream
This site's input rate
200
credits per million input tokens · minimum 1 per successful request
JEV / SYSTEM ONE
OpenRouter publishes the same Perplexity Decisions API contract for this model. This service sends a shared state with Choice, Score or Noul questions and validates the returned typed answers.
SPAN / NOUL
Span-01 and Span-01 Lite accept only Noul behavior questions and require text or a specific input/output conversation object. General decision models also accept Choice and Score questions with text, JSON objects or arrays as state. Span-02 follows this broader decision contract and supports images in the shared decision playground.
Choice returns a named option and its probability distribution. Score returns a value on an ordered scale with probabilities. Noul returns the probability of a yes/no condition. Multiple questions share the same state.
Upstream context: 262,144 tokens. Text, JSON and image inputs are supported. Add up to 4 PNG, JPEG or WebP images (4 MiB each, 8 MiB total, 16 MP each); complete image requests may use 13 MiB, while text and questions stay within 32 KiB. Up to 8 questions; Choice: 2–255 options; Score: 2–10 ordered levels.
OpenRouter lists text and image input; this service also accepts JSON state. Images use shared preparation and validation.
OpenRouter currently lists $0.01 per million input tokens and $0 for output. This service charges 200 credits ($0.02) per million actual input tokens, including questions and processed images, rounded up per successful request with a minimum of 1 credit ($0.0001). Web, API and evaluation share this rate; failed calls release the reservation.
max(1, ceil(input_tokens × 200 / 1,000,000))
A successful request with 1,000 input tokens costs 1 credit; 5,000 input tokens cost 1 credits. Output tokens add no charge. Failed calls release the credit reservation.
Verified October 17, 2026 with text, JSON state and image requests: Choice, Score and Noul answer formats, image color, actual usage, published prices and reserved credit budgets. Latest aliases returned the corresponding V1.2 checkpoints. All 12 probes passed. These are compatibility checks, not an accuracy evaluation.
The Jev workbench below starts with this model selected. Try a recipe, edit the state and questions, or export API code. This page stores its browser draft separately from other model pages and the main playground.
What do you want to decide?
Choose a task to load its input and rules. Loading examples uses no credits.
Images verified through OpenRouter on October 17, 2026. Text, JSON and image inputs are supported. Add up to 4 PNG, JPEG or WebP images (4 MiB each, 8 MiB total, 16 MP each); complete image requests may use 13 MiB, while text and questions stay within 32 KiB. The text-state cap does not include image bytes.
We reserve this budget before the model runs, then charge actual usage and return the difference. Failed calls are refunded.
New account? Receive 100 credits once. Short requests typically use 1 credit; longer inputs can use more.
Draft saved in this browser · Your draft will be restored after sign-in.
Your current configuration stays in this browser tab for the setup flow.
ILLUSTRATIVE EXAMPLE · NO CREDITS USED
“I was charged twice this morning. Please refund the duplicate payment today.”
Choice
Billing
Route to the billing queue
Yes / no
96%
Probability of an urgent request
Score
2.8 / 3
Urgency on a 0–3 scale
Static illustration of the output format. Values are not a live model response or a measure of accuracy.
Capture A, change the model or questions in the workbench, then capture B. Both versions use identical states.
Capture A from the current workbench model and rules. Change the model or questions, then capture B. Import up to 25 labeled cases and compare both versions. The dataset state replaces each captured state.
This simulates a policy, not accuracy. Noul uses max(P(yes), P(no)); Choice and Score use your selected signal. Validate thresholds on labeled cases.
Total budget across both versions and all cases. Each request reserves its own allowance, then settles actual usage and refunds the remainder. Stopping preserves charges for completed requests.
New account? Receive 100 credits once. Short requests typically use 1 credit; longer inputs can use more.
Each successful comparison request uses credits. Review the total budget before starting. Requests run sequentially; stopping keeps charges for completed requests. Export includes rules, cases, results and errors. Closing this page stops the comparison.
Send model, state, and questions to Decisions API's /v1/systemone endpoint with an API key created here. Set model to perplexity/pplx-decider-flash-v1.2; answers are in data.result.answers and token usage is in data.result.usage.
// Server-side JavaScript (Node 20+ or Bun). Set DECISIONS_API_KEY.
const response = await fetch("https://decisions-api.dev/v1/systemone", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.DECISIONS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "perplexity/pplx-decider-flash-v1.2",
"state": "I was charged twice for order A-4471. Please refund the duplicate payment.",
"questions": {
"route": {
"type": "choice",
"instructions": "Which team should handle this ticket? Use other when no option fits.",
"criteria": {
"billing": "Payments, charges and refunds",
"technical": "Bugs and product errors",
"account": "Login and account access",
"other": "None of these teams"
}
}
}
}),
});
const body = await response.json();
if (!response.ok || body.code !== 0) throw new Error(body.message);
console.log(body.data.result.answers);
console.log(body.data.creditsUsed);