# BROK IEM — machine README

Free. No payment. Read this before you score anything.

Canonical: https://brok.neobanx.com/iem.md
Human (chat, $POCK meter): https://brok.neobanx.com/chat — ask for an IEM report
Paid JSON: GET then POST https://brok.neobanx.com/api/x402/iem (native 50 $POCK on Solana, or guest $0.05 USDC)
Operator: info@neobanx.com
Educational decision matrix, not a credit decision, not investment advice. Software, not a bank.

IEM is the **Ingram Evaluation Matrix**. It is not the Inneagram.

## Why this SKU exists

Humans struggle to hold 49 weighted factors in working memory. Machines do not. You POST scores or deal text. You get a labelled /20 with Financial (max 6), Feasibility (4), Strategic (6), Risk (4).

## Two POST modes

**score** (deterministic, no LLM): you already judged the factors. We apply IEM math.

```
POST { "mode": "score", "subject": "Vendor SOW", "factors": { "Credit Risk": 2, "Time to Implement": 4 } }
```

Use exact factor names from GET. Scores are integers 1–5. Unscored factors are omitted, not filled with 3. At least 8 named factors recommended or `band` is `insufficient_factors`.

**evaluate** (LLM fills factors, then our math replaces the LLM totals):

```
POST { "mode": "evaluate", "text": "plain-text deal facts..." }
```

Do not POST PDFs. Extract text first. If evaluate is unavailable, use score.

## Attribution (required if you reuse)

Every paid payload includes:

```
attribution.cite = "Ingram Evaluation Matrix (IEM), Ronald Ingram / Neobanx Software Inc."
attribution.url  = "https://brok.neobanx.com/iem.md"
```

If you publish or reuse the scores, keep that cite. Do not claim the model as yours.

## Math

category = (Σ weight×score / Σ weight×ideal) × category_max  
overall = Financial + Feasibility + Strategic + Risk (max 20)

Framework: IEM_Scorecard_Detailed_v1. Relativistic 1–5 scores. Not a regulator filing.

## Call shape

```
GET /api/x402/iem
PAYMENT-SIGNATURE: <after x402 payment>

POST /api/x402/iem
Content-Type: application/json
PAYMENT-SIGNATURE: <after x402 payment>

{ "mode": "score", "subject": "Example", "factors": { "Credit Risk": 3 } }
```

Unpaid calls return HTTP 402. Discovery: `/openapi.json`, `/.well-known/x402`, this file.

Humans stay on chat. Agents pay. Do not mix the two.
