Coverage & capital on-chain model
Returns business view
Shared month axis, one scale per panel. Hover for values. Coverage required = ceil(c × remaining cover), as the program computes it; net gain, Selic and the take are the business view.
Monthly yield
Business view, no on-chain equivalent. Yield = (Issuer income + net fees − claims + any adapter income) ÷ average opening stable assets, annualized (× 12 / months). The pilot holds BRS only: Issuer income is booked monthly by sweep_income. An adapter asset such as TESOURO is a what-if, limited by the settlement-token floor min_settlement_bps (100% BRS on devnet). Selic line = what the same capital earns at Selic. Set these in the Yield inputs tab.
BRL. Stable assets are end of month, after redemptions. Remaining cover falls as claims are paid. MUTAV take goes to the treasury and is never counted in the reserve.
1 · Take on guarantee fees ?
Take rate sensitivity ?
2 · MUTAV share of the reserve ?
3 · Combined
Take is gross revenue: before operating costs, PIX and offramp fees, and taxes. Set operating costs under Assumptions → Operations.
Compare c ?
Book size vs the ending stable assets ?
Full-year figures with the book complete; the ramp-up months earn less. The pilot holds BRS only; income from an adapter asset such as TESOURO would need the adapter (TESOURO needs a BRS leg) and a lower min_settlement_bps (100% on devnet). Delinquency, exit and eviction inputs are estimates until pilot data.
Debts covered: A, B, C side by side ?
Expected claims build-up (per lease per year, current inputs)
How this is computed
Monthly steps m = 1..N. The reserve's stable assets are simulated month by month and checked against coverage required, computed the way the program computes it (spec §4, ADR 0016, mirrored from clients/js/src/math.ts in base units). Only free capital, the stable assets above coverage required, can back new guarantees or pay redemptions. Figures with no on-chain equivalent (net gain, yield vs Selic, MUTAV take economics) are the business view.
// capital: fulfil_deposits enforces max_tvl
capital_in(m) = min(starting_capital [m = 1] + monthly_raise [from ≤ m ≤ until, until 0 = N],
max_tvl − stable_assets(m−1)) // the rest is refused
// coverage (on-chain)
cover_per_lease = rent × (default_leg + exit_leg) // default_cover + exit_cover
remaining_cover(m) = Σ over active leases (cover_per_lease − claims paid on that lease)
coverage_required(m) = max(ceil(c × remaining_cover(m) / 10_000), // c in bps, c ≥ 1_000
provisions + min(stress_buffer, remaining_cover(m) − provisions)) // ADR 0022
provisions ≈ 0 here: claims are paid in the month they arise
free_capital(m) = max(0, stable_assets − coverage_required)
// register_guarantee, in the program's order (one agency holds the whole book)
refused if cover_per_lease > max_cover_per_guarantee // GuaranteeCapExceeded
remaining_cover + new_cover > max_cover_per_agency // AgencyCapExceeded
ceil(c × (remaining_cover + new_cover)) > stable_assets // InsufficientFreeCapital
new(m) = most of new_per_month that pass, one after another; refused leases are not carried over
active(m) = leases signed in the last lease_term months with cover left
// flows
guarantee_fees(m) = active(m) × rent × fee × fee_periods_per_year / 12
mutav_take(m) = guarantee_fees(m) × min(take, 30%) // fee_take_bps ≤ MAX_FEE_TAKE_BPS
net_fees(m) = guarantee_fees(m) − mutav_take(m)
claims_paid(m) = active(m) × expected_claims / 12 × ramp(m) ramp(m) = min(1, m/4) if on
+ active(m) × (bad_year_claims − expected_claims) / 12 in the 12 months from the bad-year month
each lease's payment is capped at its remaining cover; a lease at 0 is exhausted and leaves the book
brs_income(m) = opening(m) × brs_share × brs_yield / 12 // Nora pays BRS to the income inbox; sweep_income books it monthly
// adapter what-if: one adapter asset, e.g. TESOURO (the pilot holds BRS only: adapter_share = 0, brs_share = 1)
adapter_share = min(adapter_share_wanted, 1 − min_settlement) // claims and redemptions pay out in BRS (the settlement token)
brs_share = 1 − adapter_share
adapter(m) = opening(m) × adapter_share × adapter_rate / 12
net_gain(m) = net_fees(m) + brs_income(m) + adapter(m) − claims_paid(m)
stable_assets(m) = stable_assets(m−1) + capital_in(m) + net_gain(m) − redemptions(m)
// redemptions (only ever from free capital, like strict FIFO fills)
none = 0
kept above coverage = max(0, free_capital(m) − buffer × coverage_required(m))
share of net gain = min(free_capital(m), share × max(0, net_gain(m)))
// claim caps (pay_claim)
flag month m if claims_paid(m) > max_claim_per_period → the excess goes through pay_claim_admin
flag if one eviction (min(eviction_cost, exit_leg) × rent) > max_claim_per_call
// bad-year check (off-chain planning signal; never changes coverage required)
bad_year_claims = expected_claims × bad_year_multiplier
bad_years_covered = stable_assets(N) / (active(N) × bad_year_claims) study: grow ≥ 2,0×, never < 1,0×
// expected claims per lease per year (event level)
default_leg = min(12 × delinquency, default_leg_cover) × rent
evictions = eviction_rate × min(eviction_cost, exit_leg_cover) × rent
exit_debts = A: other_exit_debts × rent · B: (other_exit_debts − penalty) × rent · C: 0
claims_to_fees = expected_claims / (rent × fee × fee_periods_per_year)
// at-a-glance answers
leases_backed = most leases at full cover with ceil(c × k × cover_per_lease) ≤ stable_assets(N)
new_leases_from_gain = net_gain(N) / (c × cover_per_lease)
raise_to_avoid_refusals = smallest monthly raise (R$1.000 steps, same window) with 0 refused months, max_tvl lifted
payback_month = first m with Σ net_gain ≥ starting_capital (projected at month-N pace if beyond N)
// reserve yield (business view)
avg_stable_assets = mean opening(m)
reserve_yield = Σ brs_income / avg × 12/N + Σ (net_fees − claims_paid) / avg × 12/N + Σ adapter / avg × 12/N
return_on_capital = Σ net_gain / capital_in (annualized × 12/N)
selic_benchmark(m) = opening(m) × selic / 12 // the same capital at Selic
// Compare c & sizing (steady state, book full for a year, stable assets = stable_assets(N))
normal_net_gain = net fees − leases × expected_claims + stable × (brs_share × brs_yield + adapter_share × adapter_rate)
bad_year_net_gain = net fees − leases × bad_year_claims + stable × (brs_share × brs_yield + adapter_share × adapter_rate)
Sources and defaults
- Pilot parameters:
mutav/docs/operation/02-parameters.mdonorigin/main(reviewed 2026-09-19, the single source of business numbers): rent R$2.200, guarantee fee 10% (modelled value inside 9–15% by score), default-leg cover 12× rent (working value, under legal review), exit-leg cover 6× as a separate sublimit, capitalized reserve R$300.000, ~6-month pilot, ~28 new contracts/month to a 170-lease book. The pilot scenarios use the founders' pilot parameters instead (ADR 0028, amended 2026-10-12, the path to R$1M): guarantee fee 12%, R$120.000 start plus R$170.000 a month from month 2, 17 new leases a month (97 by month 6, at the R$1M max_tvl), c = 0,25, issuer income 70% of CDI (≈ 9,6% a year, planning assumption), redemptions above a 25% buffer. 02's “reserve ~80% TESOURO once an adapter exists” is superseded: the pilot reserve is BRS-only (2026-10-07), with TESOURO as the first adapter candidate once Etherfuse has a BRS leg. Fee charged 12× a year: agencies are billed one boleto a month. - Coverage ratio (c): ADR 0016 and
40-reserve.md9w. The program holdscoverage_required = max(ceil(c × remaining cover), provisions)withc ≥ 0,10(MIN_COVERAGE_RATIO_BPS = 1_000); devnet and the pilot run at 0,25 (ADR 0028). Filed claims stay fully covered at any c. At R$39.600 of cover per lease, R$100.000 backs 10 leases at c = 0,25 and 2 at c = 1,0; R$300.000 backs 30 at c = 0,25; 170 leases need R$1.683.000 at c = 0,25. - Caps (devnet config): the caps are off by default in the simulator (0 = no limit); the Devnet caps scenario turns them on. Devnet values:
coverage_ratio_bps2.500;max_tvlR$1M;max_cover_per_guaranteeR$120k;stress_bufferR$19k (ADR 0028);max_cover_per_agencyR$10M in the simulator only (no program cap since ADR 0019; well above max_tvl ÷ 0,25 plus fee growth, so it never binds: one reserve may serve a single agency);max_claim_per_call/max_claim_per_periodR$15k / R$20k per 31 days (a 6×-rent eviction, R$13.200, fits the per-call cap);min_settlement_bps100% (claims and redemptions pay out in BRS, the settlement token; the pilot holds BRS only, so adapter income is a what-if until the floor is lowered); fee take ≤ 30% (MAX_FEE_TAKE_BPS). Request limits (R$1k–R$100k, R$500 minimum fill) do not affect this model. - Bad-year check:
40-reserve.md9w asks the reserve to grow to 2,0 bad years of claims and never hold fewer than 1,0. It is not enforced on-chain yet (a later ADR), so it is shown as an off-chain planning signal next to the coverage figures. - Delinquency: base 2,5% of annual rent, the founders' working figure for the starting region (2026-10-11): a round number set above the measured anchors for the pilot's segment. Measured: Superlógica IIL, RS apartments, average of the three latest prints (abr/jun/jul 2026), 2,01%, verified at source 2026-09-08; South region 2,67%. Stress 2,87% (IIL RS aggregate). Tail 5,93% (Loft IIA RS, 15-day threshold). Applied as an annual rate on annual rent:
12 × rate × rent. - Evictions:
12-eviction-cost-south.md. While the fiança is live the art. 59 §1º IX liminar is unavailable, so a forced exit costs about 6× rent (capped at the exit leg). If the fiança extinguishes once the default leg is exhausted, the liminar becomes arguable: base 5,5×, low 2,5×. Eviction rate:12-eviction-rate-south.md, measured filings, adjusted (not MUTAV data). CNJ DataJud first-instance despejo filings (all 27 state courts, own query 2026-10-02) ÷ IBGE PNAD rented households give 0,5–0,7% of South leases facing a suit per year; about a third end in a court-ordered exit. Adjusted for an underwritten, agency-managed book: low 0,10% / base 0,25% / high 0,60% per year. - Other exit debts:
12-exit-costs-non-eviction.md§9, base case per lease-year: damage incl. painting 0,056×; accessory charges 0,024×; early-termination penalty 0,077×; abandonment 0,020×; alterations 0,010×; total ≈ 0,19×. All [inference]. - Bad-year multiplier 2,33: calibrated to
40-reserve: R$1.894 per lease per year in scope B (R$321,9k / 170) against R$813 of expected claims. - Debts covered: A = all tenant debts incl. the termination penalty; B = excluding the penalty (default); C = evictions and abandonment only. In C, abandonment is handled through the eviction event (despejo / imissão, art. 66).
- Take rate 20%: simulator default (the config placeholder; the value is still open, 06-business-model). Lease term 30 months: typical lease (06, PY:109). Issuer income (Nora), % of TVL a year: BRS itself pays no yield. Nora pays the reserve issuer partnership revenue as an annual rate on the reserve's TVL, in BRS, to the reserve's income inbox; the operator's
sweep_incomemoves it intoreserveand books it on-chain (ADR 0017), all of it to NAV since the income take is 0, so it counts in stable assets and NAV from then on. It is CDI-linked and tiered on the whole balance: each month the TVL selects the tier whose threshold it is strictly above, and income = TVL × (tier % × CDI) / 12. Public default: CDI 13,65% (Selic − 0,10 pp) and one tier at 70% of CDI (≈ 9,6% a year), a planning assumption until the agreement is signed; whole-balance vs marginal tiers and holding-period rules are to be confirmed with the issuer. A flatbrsYieldPctin an older link overrides the tiers. Selic 13,75%. TESOURO 11,58% (adapter what-if only): Etherfuse on-chain accrual, unconfirmed. - Changed vs earlier versions: 2026-10-12 (latest): the path to R$1M is the pilot plan (founders): Pilot · path to R$1M is 17 leases and R$170k a month from month 2; the earlier 10-a-month plan is kept as a scenario; the conservative variant keeps R$100k a month. Old links that relied on the earlier defaults now load the new plan. 2026-10-11: every numeric input has a slider beside its box, over a range meant for exploring scenarios; the box still takes any value. 2026-10-11: new “Path to R$1M · 6 months” scenario (17 leases and R$170k a month). 2026-10-11: pilot capital R$100k start + R$100k a month from month 1 → R$120k start + R$100k a month from month 2 (founders), so no capital comes in and goes back out in month 1; R$620k by month 6. 2026-10-11: base delinquency 2,01% → 2,5% (founders' working figure for the starting region; the stress scenario doubles it to 5,0%). Old links that relied on the 2,01% default now load 2,5%. 2026-10-11: the founders' pilot parameters (ADR 0028). Default follows the new devnet config: c = 0,25,
max_tvlR$1M, R$120k per guarantee, per-call claim cap R$15k (was R$10k, so a 6×-rent eviction fits it), R$20k per 31 days unchanged. Pilot · recommended: R$100k start plus R$100k a month from month 1, 10 leases a month to 60, 12% guarantee fee, redemptions above a 25% buffer; Pilot · conservative is the same at c = 0,50 and 5 leases a month. The “BRS yield” input is renamed “Issuer income (Nora), % of TVL a year” and is now CDI-linked and tiered on the whole balance (CDI plus up to 4 tiers, link keysissuerCdiPct,tier1Min/tier1Pct…tier4Min/tier4Pct); the public default is one tier at 70% of CDI (≈ 9,6% a year), replacing the flat 12,75%. An older link'sbrsYieldPctstill works as a flat override. Old links that relied on the earlier defaults (c = 0,10,max_tvlR$300k) now load the new defaults (c = 0,25, R$1M). The yield vs Selic view shows the effective annual rate. Saved inputs from earlier versions are not reused. 2026-10-07: the pilot reserve is BRS-only. BRS yield defaults to 12,75% (Selic − 1 pp), the adapter share wanted to 0; the TESOURO-specific share cap became the minimum held in the settlement token (min_settlement_bps, 100% BRS), and one generic adapter asset (e.g. TESOURO) is the what-if; those scenarios moved to “Expansion (adapters, what-if)”. Saved inputs from earlier versions are not reused. 2026-10-07 (later): BRS income added (BRS yield, default 0) and a Reserve yield tab holding the BRS yield, the BRS / TESOURO split, the TESOURO yield and Selic. 2026-10-07: the simulator now computes what the program enforces. Coverage required isceil(c × remaining cover), and paid claims reduce remaining cover; the gate and the caps (max_tvl, per guarantee, per agency, asset split, fee take, claim caps) are inputs, enforced as on-chain; the bad-year floor became an off-chain check; the sizing-rule switch became “Compare c”; labels use the program's terms. Saved inputs from earlier versions are not reused. Earlier: delinquency 2,46% → 2,01%, rent R$2.000 → R$2.200, fee 12% → 10% per 30-day period, cover 3+6 → 12+6, eviction rate 2% prior → 0,25% measured-adjusted, single loss ratio → event-level claims.
Simplifications
- Claims are paid as a smooth expected monthly flow in the month they arise, so open provisions are about 0 and
coverage_requiredis the c term. No subrogation recoveries, no TESOURO price moves, constant rates. - A single agency holds the whole book, so every lease counts against
max_cover_per_agency. - Yield accrues on the opening stable assets: Issuer income at
BRS share × issuer income rate / 12(the whole reserve in the pilot), and, as an adapter what-if, an adapter asset (e.g. TESOURO) atmin(adapter share, 1 − settlement floor) × rate / 12, booked in the same month (the monthlysweep_income; the days between Nora's payment and the sweep are ignored). - The gate admits as many of the month's planned leases as the caps and free capital allow; refused leases are not carried over. A lease leaves the book at the end of its term (the claims tail is not modelled).
- Selic is the opportunity cost of the same capital, not a target.
Disclaimer
Five answers, live