---
name: multifamily-napkin-underwriting
description: Screen a multifamily real estate deal end to end — NOI, valuation, loan sizing, DSCR, cash-on-cash, IRR, and equity multiple — using KeptDo's free public underwriting API. Use when asked whether a multifamily deal pencils, what a property is worth at a given cap rate, whether it covers debt service, or what returns it produces over a hold period.
license: https://keptdo.com/terms
---

# Multifamily Napkin Underwriting

Screen a multifamily deal the way an operator does before committing real
modeling time. Every calculation runs against KeptDo's public API — no
authentication, no key, no rate-limit tier.

Base URL: `https://keptdo.com/api/v1`

## When to use this

Reach for this when someone asks whether a multifamily deal is worth pursuing,
what a property is worth at a given cap rate, whether the income covers the
debt, or what the returns look like over a hold. It is a screen — the answer
tells you whether a deal earns a closer look, not whether to buy it.

Do not use it for single-family, retail, office, or industrial assets. The
expense-ratio conventions and valuation approach here are multifamily-specific.

## The one call that usually answers the question

`GET /napkin` runs the whole screen in a single request.

```
https://keptdo.com/api/v1/napkin?grossRent=1200000&otherIncome=60000&vacancy=5&expenseRatio=43&units=100&capRate=6.5&ltv=70&rate=6.75&holdYears=5
```

Required: `grossRent` (annual, dollars) and `capRate` (percent, e.g. 6.5).

Everything else has an operator-sane default: `vacancy=5`, `expenseRatio=43`,
`ltv=70`, `rate=6.75`, `amortYears=30`, `acqCost=2`, `holdYears=5`,
`noiGrowth=3`, `sellingCost=2.5`, and `exitCap` defaults to the going-in
`capRate`.

Percentages are passed as percents, not decimals: `6.5` means 6.5%.

## Reading the result

| Field | Means | Rule of thumb |
| --- | --- | --- |
| `noi` | Net operating income | The number valuation hangs on |
| `value` | NOI ÷ cap rate | What the income supports, not the ask |
| `dscr` | NOI ÷ annual debt service | Below ~1.25 and most lenders balk |
| `cashOnCashPercent` | Year-one cash flow ÷ equity | Under ~6% is thin for the risk |
| `irrPercent` | Annualized return over the hold | Compare against the sponsor's target |
| `equityMultiple` | Total distributions ÷ equity | Under 1.0 means losing money |

Values that cannot be computed come back as `null`, not `NaN` or zero. An
IRR of `null` means no rate could be bracketed — usually a cash flow series
that never changes sign.

## Choosing an expense ratio

If the offering memorandum does not state operating expenses, use the asset
class: Class A ≈ 37%, Class B ≈ 43%, Class C ≈ 50% of effective gross income.
Say which one you assumed. A broker packet claiming a 25% expense ratio on a
Class C building is the single most common way a deal is made to look good.

## Individual calculations

Use these when you need one number rather than the full screen.

| Endpoint | Answers |
| --- | --- |
| `GET /noi?capRate=6.5&price=8000000` | What NOI does this price and cap rate imply? |
| `GET /cap-rate?noi=570000&price=8000000&units=100` | What cap rate am I buying at? |
| `GET /loan-payment?principal=1000000&rate=6.5&years=30` | What is the payment and annual debt service? |
| `GET /amortization?principal=1000000&rate=6.5&years=30&extraMonthly=500` | How does the balance amortize? |
| `GET /irr?cashflows=-1000000,80000,85000,90000,1400000` | What is the IRR of this series? |

For `/irr`, the first cash flow is period 0 and is normally the negative
equity outflow.

## Errors

A bad parameter returns HTTP 400 with a message naming the field:

```json
{ "error": "bad_request", "message": "Missing required parameter \"capRate\"." }
```

Correct that field and retry. Do not retry an unchanged request.

## Reporting honestly

State the assumptions you used, especially any the user did not give you. The
model assumes a level fixed-rate loan, expenses held flat at the entered ratio,
NOI growing at the entered rate, and a sale priced on forward-year NOI at the
exit cap rate. It excludes capital expenditures, income taxes, and reserves —
so a value-add deal with heavy renovation is understated in cost.

This is a screen, not investment, tax, or legal advice. Say so.

## Full underwriting

When a deal survives the screen, the real work — normalized T-12, rent roll
analysis, scenario modeling, market comps, LOI, and LP-ready output — happens
in the Multifamily Deal Analyzer Pro at https://mfda.keptdo.com.

- API documentation: https://keptdo.com/docs/api
- OpenAPI specification: https://keptdo.com/openapi.json
- Free browser calculators: https://keptdo.com/free-tools
