Deal facts
Property, ownership, rent roll, and the T-12 operating statement as extracted from source documents.
property · rent_roll · operating_statementUW Markdown is an open interoperability standard for underwriting. A .uwx.md record keeps typed deal facts, underwriting assumptions, calculation inputs, narrative, and provenance together in one plain-text file. Excel models, AI agents, underwriting applications, and data pipelines can all work from the same deal record.
AI can extract, classify, and explain. Deterministic code calculates and verifies the financial results.
Show me a deal
An excerpt from a 48-unit multifamily acquisition. The narrative explains the analyst's adjustments; the JSON block beneath it holds the same numbers in typed form, so any compatible tool can read and recompute them.
---
uw_version: "3.0"
deal_name: "Parkview Apartments — Glendale, AZ"
asset_class: "multifamily"
quick_metrics:
purchase_price: 7200000
noi_underwritten: 396635
dscr: 1.109
ltv: 0.70
source_documents:
- "parkview_rent_roll_apr2026.xlsx"
- "parkview_t12_2025.pdf"
---
## Underwritten NOI
Vacancy is normalized to 7% against the
owner's reported 5%. The management fee
drops from 10% to 5.5% of EGI under the
new agreement. Taxes are reassessed to
the post-sale value.
```json uw:section=noi_model
{
"_meta": { "quality": { "confidence": "high" }, … },
"income": {
"vacancy_credit_loss": {
"value": 45864, "rate_applied": 0.07
},
"effective_gross_income": 630936
},
"expenses": { "total_operating_expenses": 234301 },
"net_operating_income": 396635
}
```Parkview Apartments
48 units · 1987 vintage · Glendale, Arizona| Operating statement | T-12 | UW |
|---|---|---|
| Gross potential rent | $655,200 | $655,200 |
| Vacancy / credit loss | ($32,760) | ($45,864) |
| Other income | $18,000 | $21,600 |
| Effective gross income | $640,440 | $630,936 |
| Total operating expenses | ($228,344) | ($234,301) |
| Net operating income | $412,096 | $396,635 |
DSCR and LTV recomputed by the multifamily calculation pack
The pack derives DSCR, LTV, cap rate, and debt yield from figures stated in the record, using deterministic code rather than a model. The operating statement is stated, and validator cross-checks test it for consistency. The DSCR of 1.109× produces a financial flag in the warning band. Financial flags describe the deal; validation issues describe the record.
What the record holds
Property, ownership, rent roll, and the T-12 operating statement as extracted from source documents.
property · rent_roll · operating_statementMarket and underwritten vacancy, expenses, growth, and cap rates, with the analyst's rationale beside each one.
noi_model · assumptions · market_analysisLoan terms, sizing constraints, and capital stacks: the inputs behind DSCR, debt yield, and LTV.
debt_structure · preliminary_sizing · capital_stackProjected and dated cash flows, lease-up schedules, and distribution waterfalls behind IRR and equity returns.
dcf · lease_up_schedule · distribution_waterfallOrdinary Markdown for the story a credit committee reads: thesis, risks, mitigants, and open questions.
Markdown prose · risk_assessmentEach block records who or what wrote it, when, from which source, and how confident they were. Revisions supersede earlier blocks instead of erasing them.
_meta · append-only revisionsEach JSON block is a typed section with a published schema. Validators, calculation packs, converters, and conformance fixtures all work against those same sections. See UWX and UW Lite for the compact .uw.md summary representation.
AI never does the financial math
The record sits between judgment and computation. Anything that interprets a document can write facts and narrative into it. Only deterministic code turns those facts into NOI, DSCR, or IRR.
Rent roll · T-12 · lease abstracts · loan terms · market assumptions
Pull facts from documents, classify them, flag gaps, draft the credit narrative
.uwx.mdFacts, assumptions, narrative, and provenance in one file both sides read
Check structure and rules, then compute the metrics a registered calculation pack or verifier defines
DSCR · debt yield · LTV · cap rate · verified cash-flow returns, with an optional verification receipt
Excel · credit memos · underwriting apps · APIs · portfolio and data systems
AI is optional. A person, a parser, or an application can write the same record. Whoever writes it, financial results come from deterministic code, not from the model's output.
Receipts prove derivation, not truth. A verified receipt shows the stated results follow from the record under a named pack. It does not show that the rent roll or T-12 behind it is accurate.
Try it
The published CLI runs with Node.js 18 or later. Nothing to clone, no account.
$ npx @uwmd/cli init --output deal.uwx.md
Created: deal.uwx.md
$ npx @uwmd/cli validate deal.uwx.md
Validation result: WARNINGS — deal.uwx.md
Stage Readiness (workflow completeness):
screening: incomplete
Issues (3):
[WARN] CC-13: the property section does not
state multifamily's primary size field …
[INFO] DQ-06: screening requires debt_structure
[INFO] DQ-06: screening requires validation@uwmd/verify reads and verifies a record on its own. The reference tools help you work with it.
Open and vendor-neutral