Skip to content
SupportSCORE

Urgency scoring Jev pattern

Place a ticket on a four-level urgency rubric your SLA code already understands.

A 0–3 paper urgency ruler beside numbered support stubs
0 Calm · 1 Waiting · 2 Blocked · 3 Outage.

Urgency is ordered. Calm is not the opposite of outage in a flat taxonomy — it is a position on a scale. Score returns a probability-weighted value that can land between levels, which is what you want when a customer is blocked but the product is up.

This urgency scoring schema is a paste-ready TypeSafe Jev request for jev-latest. Copy the JSON, keep thresholds in your code, and calibrate on your labels. Jev Patterns is independent and not affiliated with TypeSafe AI.

Use urgency scoring when

  • You already have SLA buckets and need to map text onto them.
  • You want a number you can sort an inbox by.
  • Pagers should fire on the top of the rubric, not on the word “urgent.”

Do not use urgency scoring when

  • You only need a yes/no jump-the-queue flag — use a Noul.
  • Urgency depends on revenue or contract terms that are not in state.
  • You are writing the apology email.

Confidence thresholds for urgency scoring

Keep these in your code. They are not part of the model call.

WhenAction
urgency.score >= 2.5 and urgency.confidence >= 0.70Page the on-call rotation
urgency.score >= 1.5Place in the same-day queue
urgency.confidence < 0.60Do not page; show the distribution to triage

Pass examples

Org-wide checkout down

Outage. Score should sit near 3.

{
  "ticket": {
    "body": "Checkout has been down for our whole org for 40 minutes."
  }
}

Cannot export

Blocked for this person, not a platform outage. Around 2.

{
  "ticket": {
    "body": "The CSV export spinner never finishes. I need this for a board meeting at 3."
  }
}

How-to

Calm. Around 0.

{
  "ticket": {
    "body": "Where do I rotate an API key? Whenever you have a moment."
  }
}

Ambiguous examples

ASAP with no stake

The word is not the rubric. Without a blocked task, stay near Waiting.

{
  "ticket": {
    "body": "Please look at this ASAP!!"
  }
}

Past outage

Serious, but not paging-now. Score should not treat history as a live outage.

{
  "ticket": {
    "body": "Yesterday's outage ate two hours. Can someone tell us what happened?"
  }
}

VIP namedrop

Social pressure is not an outage. Keep it in code if you have a VIP flag in state.

{
  "ticket": {
    "body": "Our CEO is asking. Need an update."
  }
}

The problem urgency scoring is for

Priority fields that customers pick themselves are gamed. Everything is P1. Rule-based urgency scoring — keyword lists for “down”, “urgent”, “ASAP” — fires on polite people who write urgently about fonts. Chat-model JSON that returns low|medium|high still samples a word, then you map the word onto an SLA you already had as numbers.

Urgency scoring is ordered. Calm is not a sibling of outage in a flat taxonomy; it is a position on a scale your on-call already understands. A Jev Score returns a probability-weighted value that can sit between levels. 2.14 on a 0–3 rubric is not “round to 2.” It is a position. Pagers should fire on the top of the rubric, not on the word urgent.

SERP write-ups on AI ticket priority almost always emit three or four labels and a free-text reason. They do not give you a weighted score you can sort an inbox by. That is what this urgency scoring pattern is for.

Why this urgency scoring schema uses Jev

The criteria array is the rubric, low to high: Calm — informational; Waiting — wants a reply; Blocked — cannot complete the task; Outage — the product is down. Urgency scoring cannot return 7. It cannot return “kinda blocked.” The mass on each level is in the response.

A Noul is the wrong primitive when you need to sort. is_urgent is a jump-the-queue gate. Urgency scoring is a spectrum for the rest of the pile. Use both on the same ticket if you want a boolean override plus a sortable number. They are independent questions.

Keep writer models out of this path. Urgency scoring does not draft the apology. It tells you whether the apology can wait.

What to put in state for urgency scoring

Include the ticket body, seat count or plan, and any open incident flags. “Checkout has been down for our whole org for 40 minutes” plus account_seats: 120 is a different Score than the same sentence from a free-tier hobby project — if you pass that context.

Do not put revenue in the instructions (“treat enterprise as outage”). Put the plan in state and keep the rubric honest. Instructions that smuggle policy make calibration undebuggable.

If the product status page is red, pass it. Urgency scoring without the incident banner will treat a calm customer on a burning platform as Waiting.

How to wire urgency scoring in code

Sort the inbox by score descending. Page only when score >= 2.5, or when the mass on level 3 crosses a threshold you measured. Do not stringify 2.14 into “blocked.”

If you already auto-assign with support ticket routing, run urgency scoring in the same request. Parallel questions share state and barely add latency.

Calibrate the page threshold on a week of labeled tickets before you wire PagerDuty. A Score is calibrated in aggregate, not guaranteed on one outage tweet.

Eval plan: take 100 tickets your team already tagged with SLA. Compare human tags to the weighted score. If blocked and outage collapse into each other, rewrite the two top criteria — do not add adjectives to instructions. Urgency scoring is only as separable as the rubric.

Failure modes

Rounding the weighted score

Math.round(2.14) is how you page for a blocked-but-up customer. Threshold the weighted value or read the mass on the top level.

Four labels as a Choice

Choice has no order. Urgency scoring is a Score so adjacent levels share mass instead of competing as unrelated keys.

Apology copy in the same call

Jev will not write the status email. If you need language, call a writer after the Score.

Copy, run, calibrate

The JSON in the rail is the urgency scoring request for jev-latest. Copy it into your stack, or open Urgency scoring in Jev Studio and draw the fixture bars. Thresholds stay in your repository. Calibrate on your labels before you auto-apply. Official model docs live at docs.typesafe.ai. Jev Patterns is independent and not affiliated with TypeSafe AI.

Related reading: Choice, Score, Noul, confidence thresholds, when not to use Jev.

Urgency scoring: FAQ

What is urgency scoring in Jev?
Urgency scoring is a Jev Score on a 0–3 rubric: Calm, Waiting, Blocked, Outage. It returns a probability-weighted score your SLA code can sort and page on.
Why not use a Noul instead of urgency scoring?
A Noul is a yes/no jump-the-queue flag. Urgency scoring places the rest of the queue on an ordered rubric. Many desks want both.
What should page from urgency scoring?
Start by paging when the weighted score is at least 2.5, or when Outage carries most of the mass. Measure on your labels before you trust it.
Can urgency scoring see that the status page is red?
Only if you put the incident in state. Urgency scoring does not browse the web.
Is urgency scoring a chatbot feature?
No. It returns a number and a distribution. There is no message to the customer.

Last reviewed 21 September 2026. Independent of TypeSafe AI.