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.
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.
- 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.
- Grade, up to 30: PROVEN 30 · RECORDED 18 · DECLARED 6.
- Count, up to 25: rising with log10 of the count, saturating at 10,000.
- Age, up to 15: one year saturates.
- 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.
- 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.
- 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_functionentry, 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.
try-me · the sandbox record
mizan-flagship · MIZAN’s own forward record
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.txtRead 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": "…"}