Skip to content
Jev Guide

Score

Score urgency.

A Score question rates a message against an ordered rubric you define. This recipe uses three levels, Routine, Time-sensitive, and Urgent, described in full below.

The rubric sent to Jev

  1. 0Routine. A general question, comment, or minor request with no deadline or breakage implied.
  2. 1Time-sensitive. Something is blocked or inconvenient, but there is a reasonable window to respond.
  3. 2Urgent. Active harm, an outage, a security exposure, or a deadline that has already arrived.

Score

Score urgency

Run with

Shows recorded and illustrative answers. This site's own live testing is unavailable.

Sample
Message

Read-only while live testing is unavailable.

Run
Live testing is currently unavailable on this deployment.
Output

Level: 0.05 of 2

Routine. A general question, comment, or minor request with no deadline or breakage implied.

  1. Level 095.0%
  2. Level 15.0%
  3. Level 20.0%

This score is Jev's read of the message against the rubric above. It is not an objective measurement of urgency, and a high score is not proof the situation is actually severe. Confidence: 0.93.

Illustrative example

Not a live or recorded response. Shown to illustrate the shape of an answer.

Build this

urgency-scoring.ts
import { score, TypeSafeClient } from "@typesafe-ai/sdk";
 
const client = new TypeSafeClient(); // reads TYPESAFE_API_KEY, defaults to jev-latest
 
const message = "Loving the new dashboard redesign! One small idea: it'd be nice if the export button were a little bigger and easier to find.";
 
const { answers } = await client.systemOne({
state: message,
model: "jev-latest",
questions: {
urgency: score(
"How urgently does this message need a response from support?",
[
"Routine. A general question, comment, or minor request with no deadline or breakage implied.",
"Time-sensitive. Something is blocked or inconvenient, but there is a reasonable window to respond.",
"Urgent. Active harm, an outage, a security exposure, or a deadline that has already arrived.",
],
),
},
});
 
const { score: level, legend, probabilities, confidence } = answers.urgency;
 
// `level` can land between two whole levels; round it before indexing `legend`.
// Object.values() reads levels in order (0, 1, 2, ...) without depending on the exact key type.
console.log("Level " + level.toFixed(2) + ": " + Object.values(legend)[Math.round(level)]);
console.log(probabilities, confidence);

Type-checked against @typesafe-ai/sdk 0.6.0 as part of this site's build. Not executed against the live API by this guide.

npm install @typesafe-ai/sdk. Requires Node.js 20+. Set TYPESAFE_API_KEY in your environment.

Keep TYPESAFE_API_KEY on the server. Never embed it in client code or ship it in a browser bundle.

Reading the three samples

Feature feedback. A friendly suggestion with no deadline and nothing broken. Under the rubric this is Routine, and the probability should sit almost entirely on level 0.

Angry about a typo. Written with strong emotional language: capital letters, exclamation marks, “SO frustrated”. But it describes a cosmetic footer typo the customer explicitly says can wait. It is marked ambiguous because the tone and the content pull in different directions. A useful urgency score should track the operational stakes in the message, not its tone, so it should still land near Routine.

Stale data before a meeting. Calm wording, but the customer's board is looking at the wrong numbers right now. That is a deadline that has already arrived, which is what the rubric's Urgent level describes, so most of the probability should sit on level 2.

When a result is illustrative rather than live or recorded, the values shown are hand-authored examples of these patterns, not measured output.

Reading the score

score is a position on the level line and can land between two levels. A 3-level rubric runs from 0 to 2. It is Jev's read of the message against the rubric above, not an objective measurement of urgency: a high score is not proof that a situation is actually severe, and a low one is not a guarantee it can wait. Use it as one input to a decision, and check the full probability spread when the score sits near a boundary.

Where this fails

It judges only what the message says. A customer who understates a real outage, or overstates a minor one, will be scored on their words, not on what is happening in your systems. Check your own monitoring before paging anyone.

The levels are yours, and the answer is only as sharp as they are. If “Time-sensitive” and “Urgent” overlap for your team, messages will land between them and confidence will fall. TypeSafe's Score guide recommends describing situations rather than degrees for this reason.

Do not read the score as a precise quantity. TypeSafe notes that score levels are weak in numerical calibration: use the score to rank messages or to test a threshold, not to compute how urgent a message is between two levels.

Wondering whether a call like this one should use Jev or a general-purpose LLM in the first place? See Jev vs LLMs: when to use TypeSafe AI.