# Jev Quadrant Framework Specification

**Version:** 1.0.0  
**Identifier:** `jev-quadrant-v1`  
**Status:** Public launch  
**License:** [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)  
**Publisher:** Jev Quadrant  
**Companion schemas:** [`schemas/evidence-pack.schema.json`](schemas/evidence-pack.schema.json), [`schemas/result.schema.json`](schemas/result.schema.json)

This document is the open methodology for Jev Quadrant: an evidence-scored, calibrated two-axis map for any market, area, or topic. Anyone may reuse the rubric, request shape, and math under CC BY 4.0 with attribution.

---

## 1. Purpose

Analyst quadrants typically place a single opaque dot. Jev Quadrant instead:

1. Collects an **explicit evidence pack** per entity (URL, date, kind, summary).
2. Asks a **fixed rubric** of calibrated questions of TypeSafe Jev (System One, model `jev-latest`).
3. Derives two axis scores from Jev `noul` probabilities and a quadrant membership from a Jev `choice`.
4. Draws each entity as a **confidence region**, not a point, sized by evidence thinness and answer disagreement.
5. Publishes the **exact request JSON**, resolved model, request id, and timestamp so a run can be reproduced.

No payment, sponsorship, or briefing changes a score. Vendors may submit evidence through the public challenge flow. Accepted evidence is added to the pack and the entity is re-scored.

---

## 2. What Jev is (and is not)

Jev is TypeSafe AI’s System One model: unstructured structured-state in, typed probabilistic decisions out. It does not generate prose. It cannot hallucinate a string. Every answer is a calibrated probability.

- **`noul`**: probability in `[0, 1]` that the `true` criterion holds.
- **`choice`**: selected option, a confidence, and the full distribution over options.

Background: [Introducing System One Models & Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev) (15 September 2026).

Jev Quadrant does **not** ask an LLM to “rank the vendors.” Placement is a function of Jev’s answers over the rubric below, applied to the evidence pack.

If Jev has not run or a call fails, the implementation **must** render an honest *not yet scored* state. Invented or hard-coded probabilities must never be presented as Jev results.

---

## 3. Axes

Default axes (override per topic):

| Axis | Id | Meaning |
| --- | --- | --- |
| X | `proven_execution` | Evidence of delivery, adoption, and operational reliability. |
| Y | `validated_direction` | Strategy and roadmap that is specific and backed by shipped artifacts. |

A topic may rename the axes and rewrite the rubric questions, provided each axis is still a mean of `noul` answers and membership is still a `choice`.

---

## 4. Quadrant labels

Gartner’s Leaders / Challengers / Visionaries / Niche Players are not used. Default Jev Quadrant cells:

| Cell | Condition (descriptive) | Id |
| --- | --- | --- |
| **Anchored** | High execution and high direction | `ANCHORED` |
| **Directed** | Direction high; execution thinner | `DIRECTED` |
| **Operational** | Execution high; direction thinner | `OPERATIONAL` |
| **Forming** | Both axes thinner | `FORMING` |

Membership is **not** a hard 0.5 cut on the plotted point. It is Jev’s `choice` over those four labels, given the same evidence. The UI always shows the full probability distribution.

---

## 5. Default rubric

Each question is sent as a Jev `noul` or `choice`. Instructions tell the model to use only the supplied state.

### 5.1 Proven execution (`noul`)

| Id | True criterion | False criterion |
| --- | --- | --- |
| `exec_shipped` | Independent public evidence shows a generally available product used by third parties. | The product is announced, preview-only, or evidenced only by the vendor’s own marketing with no third-party use. |
| `exec_adoption` | Credible adoption evidence exists (named customers, published user/download counts, case studies, or equivalent). | Adoption claims are absent, purely anecdotal, or unsourced. |
| `exec_reliability` | Evidence of reliability, quality, security/compliance, or operational maturity (uptime, incidents handled, certifications, long-running OSS). | No reliability or quality evidence is present. |
| `exec_cadence` | Evidence of continued delivery after launch (dated releases, changelog, subsequent features). | Delivery appears one-shot or stalled. |

### 5.2 Validated direction (`noul`)

| Id | True criterion | False criterion |
| --- | --- | --- |
| `dir_strategy` | A public strategy or roadmap is specific, consistent, and dated. | Direction is vague, contradictory, or only implied. |
| `dir_backed` | Roadmap or strategy claims are backed by shipped artifacts in the evidence pack. | Direction is promised without corresponding delivery evidence. |
| `dir_distinct` | The evidenced direction is distinct from generic category copy. | Positioning is interchangeable with peers. |
| `dir_invested` | Evidence of sustained investment (funding used for the product, research, open-source velocity, or platform expansion). | No evidence of continued investment. |

### 5.3 Membership (`choice`)

| Option | Criterion |
| --- | --- |
| `ANCHORED` | Both delivery and evidenced direction are strong. |
| `DIRECTED` | Direction is better evidenced than delivery. |
| `OPERATIONAL` | Delivery is better evidenced than direction. |
| `FORMING` | Both are thin, early, or contradicted. |

---

## 6. Request construction

Endpoint: `POST https://api.typesafe.ai/v1/systemone`  
Auth: server-side Bearer token  
Model: `jev-latest` (store the resolved version from the response)

`state` is structured JSON:

```json
{
  "goal": "Score this entity on the Jev Quadrant rubric using only the supplied evidence.",
  "framework": "jev-quadrant-v1",
  "topic": { "id": "...", "title": "...", "x_axis": "...", "y_axis": "..." },
  "entity": { "id": "...", "name": "...", "website": "..." },
  "evidence": [
    {
      "id": "...",
      "kind": "announcement",
      "url": "https://...",
      "date": "2026-09-02",
      "date_kind": "published",
      "recency_weight": 0.92,
      "summary": "..."
    }
  ],
  "claims": [],
  "independent_checks": [],
  "recency": {
    "half_life_days": 180,
    "as_of": "2026-09-24",
    "mass": 3.41
  }
}
```

`questions` is the rubric in §5. The exact JSON of this request is persisted and downloadable.

---

## 7. Scoring math

Let \(n_i\) be the `noul` for question \(i\) on an axis. Axis score:

\[
s = \frac{1}{k} \sum_{i=1}^{k} n_i
\]

Recency weight for an evidence item of age \(d\) days, half-life \(H = 180\):

\[
w = 2^{-d / H}
\]

Evidence mass \(M = \sum w\). Sample standard deviation \(\sigma\) of the axis `noul`s (if \(k < 2\), use prior \(\sigma = 0.15\)).

Axis uncertainty:

\[
u = \mathrm{clamp}\bigl(0.08 + 0.45 \cdot \tfrac{1}{1+M} + 0.35 \cdot \sigma,\ 0.05,\ 0.42\bigr)
\]

The confidence region is an axis-aligned ellipse in score space with semi-axes \(0.55\,u_x\) and \(0.55\,u_y\), clipped to \([0,1]^2\). Thinner or older evidence and disagreeing rubric answers grow the ellipse.

Quadrant membership is the Jev `choice` distribution. The plotted centroid is \((s_x, s_y)\); the label is the choice, not a hard cut.

### 7.1 Cache

Cache key = SHA-256 of the canonical JSON request (sorted keys, no whitespace variance). A cache hit must not re-call Jev. A changed pack or rubric produces a new key.

### 7.2 Snapshots

Each successful score appends a snapshot `{ at, model, requestId, entities: [{ id, x, y, uX, uY, choice }] }`. Movement trails connect centroids in time order.

---

## 8. Evidence rules

An evidence item **must** have:

- `url` (http or https)
- `date` (ISO `YYYY-MM-DD`)
- `date_kind`: `published` or `accessed`
- `kind`: `product` | `announcement` | `case_study` | `docs` | `release` | `research` | `independent` | `filing` | `open_source`
- `summary`: a factual sentence grounded in that URL. No invented facts.

If a fact cannot be sourced, omit it. Living product pages may use `date_kind: accessed` with the access date.

---

## 9. Challenge flow

Anyone may submit a new evidence item against an entity. Submissions are stored as `pending`. A reviewer accepts or rejects. Acceptance appends the item and invalidates the entity cache key, triggering a re-score. Payment is never a review criterion.

---

## 10. Limitations

- Jev is calibrated, not omniscient. A thin pack yields a large ellipse, not a confident ranking.
- Public evidence under-represents private deployments and over-represents vendors who publish.
- Recency half-life is a modelling choice (180 days). Topics may document a different \(H\).
- Launch packs are not exhaustive. Absence from a topic is not a negative score.
- This is not investment, procurement, or legal advice.

---

## 11. Versioning

Breaking changes increment the identifier (`jev-quadrant-v2`). Additive rubric questions are allowed in a v1.x patch if existing question ids keep their meaning. Implementations must echo `framework` and the resolved Jev model on every result.

---

## 12. Attribution

Reuse of this specification requires attribution of the form:

> Jev Quadrant Framework v1.0.0.

Code that implements this spec may be licensed separately (this repository’s application code is MIT).
