Multifamily acquisition underwriting — mixed unit mix through a monthly proforma to unl…
Multifamily acquisition underwriting — mixed unit mix through a monthly proforma to unlevered AND levered project returns (IRR via XIRR + equity multiple). Stub acquisition month, trailing-NOI exit. Deterministic, Excel-reconciled, SHA-pinned (pass attest=tru…
by financial-analyst.ai · discovered, not yet claimed by its owner · updated 2026-10-04
Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.
What it does
Multifamily acquisition underwriting — mixed unit mix through a monthly proforma to unlevered AND levered project returns (IRR via XIRR + equity multiple). Stub acquisition month, trailing-NOI exit. Deterministic, Excel-reconciled, SHA-pinned (pass attest=true).
Tags: finance · private-equity · real-estate · capital-markets · bazaar
Call contract
- Method
- POST
- Input
- json
- Output
- json
- Last paid call
- 2026-10-04
{
"address": "400 Riverside Drive, Charlotte, NC 28209",
"amort_years": 30,
"annual_loan_rate": 0.065,
"avg_annual_growth": 0.03,
"buy_closing_pct": 0.015,
"exit_cap_rate": 0.06,
"expense_ratio": 0.38,
"hold_years": 7,
"ltv": 0.75,
"other_income_pct": 0.04,
"purchase_price": 4200000,
"sell_closing_pct": 0.03,
"unit_types": [
{
"count": 8,
"label": "Studio",
"monthly_rent": 1200
},
{
"count": 16,
"label": "1BR",
"monthly_rent": 1550
},
{
"count": 8,
"label": "2BR",
"monthly_rent": 1950
}
],
"vacancy_rate": 0.05
}{
"acquisition": {
"basis": 4263000,
"equity": 1113000,
"loan_amount": 3150000
},
"exit": {
"exit_debt": 2852570.43,
"exit_noi": 443213.11,
"sale_price": 7386885.13,
"sale_proceeds": 7165278.57
},
"operations": {
"total_noi": 2844183.36
},
"property": {
"purchase_price": 4200000,
"total_units": 32
},
"returns": {
"levered": {
"equity_multiple": 4.9316,
"irr_pct": "31.4%"
},
"unlevered": {
"equity_multiple": 2.348,
"irr_pct": "16.0%"
}
}
}Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/54208.jsonfor the price and payment options. - Pay. Call
GET https://financial-analyst.ai/mf-acq/underwrite. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $1 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base
- Demand
- 1 calls · 1 unique payers in 30d (public x402 Bazaar data)
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $1 | 0xDA158f96C7d02e787EC75858d108366BDa6aAeb3 | 300s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xDA158f96C7d02e787EC75858d108366BDa6aAeb3",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000000",
"amountUsd": 1,
"maxTimeoutSeconds": 300
}
]Schemas
Output schema (JSON Schema)
{
"example": {
"acquisition": {
"basis": 4263000,
"equity": 1113000,
"loan_amount": 3150000
},
"exit": {
"exit_debt": 2852570.43,
"exit_noi": 443213.11,
"sale_price": 7386885.13,
"sale_proceeds": 7165278.57
},
"operations": {
"total_noi": 2844183.36
},
"property": {
"purchase_price": 4200000,
"total_units": 32
},
"returns": {
"levered": {
"equity_multiple": 4.9316,
"irr_pct": "31.4%"
},
"unlevered": {
"equity_multiple": 2.348,
"irr_pct": "16.0%"
}
}
},
"type": "json"
}Example shape — generated from the schema, not a captured live response
{
"acquisition": {
"basis": 4263000,
"equity": 1113000,
"loan_amount": 3150000
},
"exit": {
"exit_debt": 2852570.43,
"exit_noi": 443213.11,
"sale_price": 7386885.13,
"sale_proceeds": 7165278.57
},
"operations": {
"total_noi": 2844183.36
},
"property": {
"purchase_price": 4200000,
"total_units": 32
},
"returns": {
"levered": {
"equity_multiple": 4.9316,
"irr_pct": "31.4%"
},
"unlevered": {
"equity_multiple": 2.348,
"irr_pct": "16.0%"
}
}
}Examples
curl -X POST 'https://financial-analyst.ai/mf-acq/underwrite' -H 'Content-Type: application/json' --data '{"address":"400 Riverside Drive, Charlotte, NC 28209","amort_years":30,"annual_loan_rate":0.065,"avg_annual_growth":0.03,"buy_closing_pct":0.015,"exit_cap_rate":0.06,"expense_ratio":0.38,"hold_years":7,"ltv":0.75,"other_income_pct":0.04,"purchase_price":4200000,"sell_closing_pct":0.03,"unit_types":[{"count":8,"label":"Studio","monthly_rent":1200},{"count":16,"label":"1BR","monthly_rent":1550},{"count":8,"label":"2BR","monthly_rent":1950}],"vacancy_rate":0.05}'
# -> 402 Payment Required; read PAYMENT-REQUIRED
# retry the identical request with PAYMENT-SIGNATUREconst res = await fetch("https://financial-analyst.ai/mf-acq/underwrite", {
"method": "POST",
"headers": {
"content-type": "application/json"
},
"body": "{\"address\":\"400 Riverside Drive, Charlotte, NC 28209\",\"amort_years\":30,\"annual_loan_rate\":0.065,\"avg_annual_growth\":0.03,\"buy_closing_pct\":0.015,\"exit_cap_rate\":0.06,\"expense_ratio\":0.38,\"hold_years\":7,\"ltv\":0.75,\"other_income_pct\":0.04,\"purchase_price\":4200000,\"sell_closing_pct\":0.03,\"unit_types\":[{\"count\":8,\"label\":\"Studio\",\"monthly_rent\":1200},{\"count\":16,\"label\":\"1BR\",\"monthly_rent\":1550},{\"count\":8,\"label\":\"2BR\",\"monthly_rent\":1950}],\"vacancy_rate\":0.05}"
});
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}import httpx
import json
res = httpx.request("POST", "https://financial-analyst.ai/mf-acq/underwrite", json=json.loads("{\"address\":\"400 Riverside Drive, Charlotte, NC 28209\",\"amort_years\":30,\"annual_loan_rate\":0.065,\"avg_annual_growth\":0.03,\"buy_closing_pct\":0.015,\"exit_cap_rate\":0.06,\"expense_ratio\":0.38,\"hold_years\":7,\"ltv\":0.75,\"other_income_pct\":0.04,\"purchase_price\":4200000,\"sell_closing_pct\":0.03,\"unit_types\":[{\"count\":8,\"label\":\"Studio\",\"monthly_rent\":1200},{\"count\":16,\"label\":\"1BR\",\"monthly_rent\":1550},{\"count\":8,\"label\":\"2BR\",\"monthly_rent\":1950}],\"vacancy_rate\":0.05}"))
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerDetails
- Provider
- financial-analyst.ai
- Endpoint
- https://financial-analyst.ai/mf-acq/underwrite
- Machine-readable
/resources/54208.json