Skip to content

Cortex Scoring Model

Ciprian-LocalPulse edited this page Jul 31, 2026 · 1 revision

Cortex Scoring Model

Part of Pillar I — The Cortex. Consumes NormalizedMessage objects, produces the AnalysisResult consumed by routing, Persona Mirror Drafting, and Negotiation Intelligence Algorithms.

Purpose

Scoring converts a normalized message into three explainable numbers — urgency, sentiment, and priority — plus the contributing factors behind each. "Explainable" is a hard requirement, not a nice-to-have: see Design Philosophy for why every score in this system must show its work.

Scoring Pipeline

flowchart TD
    A[NormalizedMessage] --> B[Sentiment Analysis]
    A --> C[Urgency Signal Extraction]
    A --> D[Emotional Taxonomy Classification]
    B --> E[Priority Computation]
    C --> E
    D --> E
    E --> F[AnalysisResult]
    F --> G{Priority Tier}
    G -->|Critical| H[Immediate surface, bypass Energy Shield gate]
    G -->|High| I[Surface next capacity window]
    G -->|Normal| J[Standard queue]
    G -->|Low| K[Batched digest]
Loading

Urgency Signal Extraction

Urgency is computed from evidence, never inferred from tone alone. Signal sources, in order of weight:

  1. Explicit markers — sender-declared urgency (subject line "URGENT", email priority flag), highest weight because it is the sender's own stated claim.
  2. Deadline language — detected dates, times, or relative deadlines ("by Friday," "before the call") extracted and checked against the current date.
  3. Thread velocity — a sudden increase in message frequency within a thread relative to its historical baseline.
  4. Sender relationship weight — a configurable, founder-controlled table of relationship importance (e.g., active client vs. cold outreach), not an opaque model guess.
  5. Sentiment intensity — strongly negative or strongly positive sentiment nudges urgency, but is capped at a minority share of the total score, precisely because tone alone is a weak and gameable signal.
flowchart LR
    S1[Explicit marker] -->|weight: highest| U[Urgency Score]
    S2[Deadline language] -->|weight: high| U
    S3[Thread velocity] -->|weight: medium| U
    S4[Relationship weight] -->|weight: medium| U
    S5[Sentiment intensity] -->|weight: capped, minority share| U
    U --> Cap{Capped 0-100}
Loading

Sentiment Analysis

Sentiment classification draws on the categories defined in Cortex Emotional Taxonomy. It is deliberately kept separate from urgency: a message can be highly negative but not urgent (a slow-burn complaint) or highly urgent but neutral in tone (a time-boxed logistics request). Conflating the two produces a triage system that over-reacts to tone and under-reacts to real deadlines.

Priority Computation

Priority is not a simple average of urgency and sentiment. It is a lookup against a configurable priority matrix, so operators can tune, for example, whether a highly negative-but-not-urgent message should outrank a neutral-but-deadline-bound one for their specific business.

Urgency Sentiment Resulting Tier (default config)
High Negative Critical
High Neutral/Positive High
Medium Negative High
Medium Neutral/Positive Normal
Low Any Low (batched)

The AnalysisResult Contract

Every score ships with its contributing factors, so a founder — or an auditor — can see why a message was ranked the way it was, not just the final number. See Data Schemas Reference for the full JSON Schema; the conceptual shape:

{
  "message_id": "",
  "urgency": { "score": 78, "factors": ["explicit_marker", "deadline:2026-08-02"] },
  "sentiment": { "label": "frustrated", "confidence": 0.81 },
  "priority_tier": "Critical",
  "routing_target": ["persona_draft", "negotiation_flag"]
}

What This Stage Explicitly Does Not Do

It does not draft a response (that is Persona Mirror Drafting), it does not decide when to surface the result to the founder (that is Energy Shield Decision Fatigue Model), and it never manufactures urgency signal that is not present in the evidence — see Design Philosophy for why this constraint is architectural, not just a guideline.

See Also

Clone this wiki locally