# Decision matrix — Jev vs Bedrock vs Guardrails vs AR Checks vs code

Score each row **0** (no), **1** (partial), **2** (yes) for the column you are considering. A column that wins on the **hard constraints** (rows 1–4) beats a higher sum that violates residency or generation.

Use after reading the [Jev on AWS guide](https://www.factualminds.com/blog/jev-typesafe-ai-aws-guide-2026/).

| # | Question | Jev (TypeSafe System One) | Bedrock classifier (Nova Micro / Haiku-class) | Bedrock Guardrails | Automated Reasoning Checks | Plain code / Step Functions |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | Payload may leave AWS? | Needs **yes** | OK if no | Stays on Bedrock call | Stays on Bedrock call | Stays in account |
| 2 | Answer space closed before the request? | Required | Structured output helps | N/A (filters, not labels) | Policy predicates | Required |
| 3 | Need generated text / tool-argument JSON? | **No — skip Jev** | Possible | No | No | No |
| 4 | Need calibrated probability + confidence to no-op? | Designed for this | Prompted JSON is not RLCD | Scores some filters | Valid / invalid / suggest | Booleans only |
| 5 | IAM / VPC / CloudTrail on the model hop? | Egress to TypeSafe | Yes | Yes | Yes | Yes |
| 6 | Sub-second classify in front of Gateway? | Vendor claim 70–500 ms | Model + region dependent | Added on Converse | Added on Converse | Microseconds |
| 7 | Formal policy consistency (HR, eligibility)? | Probability, not proof | Probability | Denied topics ≠ logic | **This is the tool** | If you encoded the rules |
| 8 | Map-reduce over lots of text (S3 → Lambda)? | Fan-out questions in one call | Per-object Converse | Per-text unit | Per check | Parsers / regex |
| 9 | Fine-tune on customer labels? | No | Custom Model / import paths | No | Policy authoring | You own the rules |
| 10 | Team will operate CloudWatch histograms + shadow week? | Required | Required | Config + evals | Policy evals | Tests |

## Interpretation

- **Jev sidecar:** Rows 1–2 are 2, row 3 is 0, row 4 is 2, legal signed egress. Put Bedrock behind it for words.
- **Bedrock classifier only:** Row 1 is 0 (cannot leave AWS) **or** you have no TypeSafe key yet. Same closed set, in-account.
- **Guardrails:** Always on the Bedrock generate/retrieve path. Never a substitute for Jev **or** for Cedar.
- **Automated Reasoning Checks:** Row 7 is 2. Do not use Jev to “prove” a policy.
- **Plain code:** Row 2 is 2 and the values already live in DynamoDB / the event. Do not call a model.

## Hard overrides (ignore the sum)

1. PHI / PCI / sovereignty in `state` → Jev column is disqualified.
2. Need a paragraph of English → Jev column is disqualified; use Bedrock.
3. Need “refund $X on order Y” tool args → Jev may **pick** the tool; Bedrock / code must **fill**; Cedar must **allow**.
4. Enum already in the database → code wins regardless of TypeSafe’s $0.042/MTok.

## Evidence to attach before a design review

1. Field list for `state` with data classification (public / internal / PHI / PCI).
2. Closed option list (Choice criteria) or Score levels in a PR, not a slide.
3. Shadow-mode plan: Nova Micro vs Jev labels, one week, disagreement metric.
4. Link to TypeSafe model card (`jev-1.13.0`, $0.042/MTok) and [Bedrock pricing](https://aws.amazon.com/bedrock/pricing/) — no copied rates in the architecture doc without a date.
