Price signal · pricing-v1.1

A rating read from the record.

Beside every verdict, a signed, versioned price signal: a score out of 100, a tier (A, B, C, D or unrated) and a relative capacity multiplier. It is computed from the record alone by a published function anyone can re-run. MIZAN prices the record, never the asset; partners lend and insure. MIZAN never holds money.

What it is

One signal, every verdict

Every check reply carries price_signal: version, the function hash, score, tier, limit_units, the inputs used and the caveats. The whole reply is signed. A compact pricing_message rides beside it so a contract or config reads score, tier and function hash offline with the published key.

GET https://studio.mizan.market/api/pricing/try-me
GET https://studio.mizan.market/api/pricing/<subject>?requirement=req_…@1

Relative, never a currency

limit_units is a multiplier a partner applies to its own base line: A 1.0, B 0.5, C 0.25, D 0.1, unrated 0. It is not an amount, not a rate, not an offer. The lender, the insurer and the allocator set the money; the signal only says how the record stands.

Unrated, never zero

No evidence grade, no known count, or fewer than 30 counts gives unrated with the exact missing input named. An unknown is never scored as a zero. A REFUSE caps the score at 39 and the tier at D.

The formula, in plain words
  1. Only record fields enter: what was counted and its kind, the evidence grade, the bars met, the record age, who already requires it, how recent checks went, the measures the record carries, and disputes on it. Nothing about the asset, the market or the future.
  2. Grade, up to 30: PROVEN 30 · RECORDED 18 · DECLARED 6.
  3. Count, up to 25: rising with log10 of the count, saturating at 10,000.
  4. Age, up to 15: one year saturates.
  5. Bars met, up to 10; requirers, 2.5 each up to 10 (only requirers that proved a key or an identity: a verified account, a wallet login or a verified link; never a free anonymous claim); check history, up to 10: the ALLOW share of the last 90 days, neutral 5 when there is none.
  6. Adjustments: drawdown over 25% −5 · worst bar under −15% −5 · pass@1 up to +5 · open disputes filed by an authenticated party −3 each to −9 · upheld disputes −5 each to −15. An overturned verdict, where MIZAN was wrong, never lowers the subject’s score; an anonymous filing never counts.
  7. Tiers: A at 80 · B at 60 · C at 40 · D below. Every change to the function is a new version with a new hash, written to the public ledger as a pricing_function entry, so a quote is tied to the version in force.

The exact weights, the hash and worked examples → Recompute any signal from the public reply fields; it must match.

Live signals

try-me · the sandbox record

mizan-flagship · MIZAN’s own forward record

How to require a tier

One clause in the rule

Add a pricing clause to a requirement. Every binding of that rule then honours it: the release guard, the payment request, the listing rule, the deploy setting, the questionnaire clause and the code gate. The rule’s bindings carry a pricing tab that shows the line.

{"name": "tier B or better", "all_of": [ {"pricing": {"min_tier": "B"}} ]}
or {"pricing": {"min_score": 60}}
GET https://studio.mizan.market/api/requirements/req_…@1/bindings/pricing.txt

Read it offline

The pricing_message on every reply is nine fields in canonical JSON with an Ed25519 signature by the reply-signing key. Verify the signature, check expires_at, the subject, the function_hash you accept, then apply your own bar to tier and score.

POST https://studio.mizan.market/api/pricing/verify
{"message": {…}, "signature": "…"}
MIZAN prices the record, never the asset; partners lend and insure. A price signal reads the record as it stands: it is not a forecast, not a rating of an asset, and not an offer. The relying party keeps responsibility.