# Decision matrix — local Decider 2B vs Jev vs rules

Score each row **0** (no), **1** (partial), **2** (yes) for the column you are considering. A column that fails a hard override at the bottom loses even if its sum is higher.

Use after reading [Strands Decider 2B vs Jev](https://www.factualminds.com/blog/strands-decider-2b-vs-jev-2026/). The [Jev on AWS guide](https://www.factualminds.com/blog/jev-typesafe-ai-aws-guide-2026/) still owns the TypeSafe adapter. This matrix only places the closed-set hop.

Numbers below were read **16 Oct 2026**. Re-read [TypeSafe Models](https://docs.typesafe.ai/models) and the [Strands Decider README](https://github.com/strands-labs/strands-decider) before a design review. Price on the TypeSafe page was **$0.042/MTok** input for both `jev-1.13.0` and `jev-1.14.0`.

| # | Question | Local Strands Decider 2B | Jev API (`jev-1.13.0`) | Rules, or a Bedrock classifier |
| --- | --- | --- | --- | --- |
| 1 | Can `state` leave the AWS account? | Stays on your box | Needs **yes** | Stays in account |
| 2 | Will someone run a GPU and a pinned checkpoint? | Required | Not required | Not required |
| 3 | Is the answer set closed in the request? | Required | Required | Required for rules; structured output helps on Bedrock |
| 4 | Do you need a sentence or tool-argument JSON? | Neither model writes it. Bedrock does. | Neither model writes it. Bedrock does. | Bedrock can write it. Rules cannot. |
| 5 | Is the label already a column on the order? | Skip the model | Skip the model | **Code wins** |
| 6 | Have you shadowed on labels a person marked? | Required before promote | Required before promote | Required before promote |
| 7 | Is the cutoff copied from a different checkpoint? | Disqualify. v19's 0.9 band is not v1's. | Disqualify. Do not tune on `jev-latest` or `jev-preview`. | Fit the cutoff on this model ID |

## Interpretation

- **Local Decider:** Row 1 is 0 (text cannot leave), row 2 is 2, row 3 is 2, row 5 is 0. Start on `strands-decider-2B-qwen3.5-v1-2610` or `strands-decider-E2B-gemma4-v1-2610`. Step to E4B, then `strands-decider-12B-gemma4-v1-2610`, only after a labeled miss. Leave `strands-decider-26B-A4B-gemma4-v1-2610` until 12B is the checkpoint that missed. Keep `hobson-v19` only when a threshold was already fit on it. The 15 Oct Gemma table is one H100 run ([source](https://strandsagents.com/blog/strands-decider-gemma-4-models/)).
- **Jev:** Row 1 is 2 and legal signed egress, row 2 is 0, row 5 is 0. Pin `jev-1.13.0`. On 16 Oct 2026 `jev-latest` pointed there and `jev-1.14.0` was the preview target.
- **Rules:** Row 5 is 2. Stop. Do not add a model hop.
- **Bedrock classifier:** Row 1 is 0 and you will not operate Decider. Same closed set, in account, plus the usual output-token bill. Price it from the Bedrock pricing page on the day you design.

## Hard overrides (ignore the sum)

1. PHI, PCI, or a named-region clause in `state` → the Jev column is out.
2. The enum is already in DynamoDB or the event → code wins. Do not pay $0.042/MTok or a GPU for that branch.
3. You need a paragraph, a refund amount, or tool arguments → Bedrock or code writes them. Decider and Jev only score options you listed.
4. The 115 ms figure is the v19 RTX 3090 median (p95 299 ms), and the README copies it onto v1 as the same size. Gemma H100 medians (E2B 102 ms, E4B 139 ms, 12B 136 ms, 26B-A4B 245 ms) are a different machine. A CPU path in the v19 results file is seconds. If you have not timed the box that will serve, the latency cell is empty.
5. No overall JevBench score for `jev-1.13.0` or `jev-1.14.0` was on the pages read 16 Oct 2026. A Decider rank does not select Jev, and it does not select Decider over Jev.

## Evidence to attach before a design review

1. Field list for `state`, with classification (public, internal, PHI, PCI).
2. The option list in the pull request, including `other`.
3. The exact checkpoint string: Hugging Face repo plus revision, or `jev-1.13.0`.
4. A one-week shadow plan and the disagreement metric.
5. A link to this CSV, dated, plus the Bedrock pricing page if a classifier is in the comparison. Do not paste rates into the architecture doc without a date.
