← back to Commercialrealestate
data/rent-rolls/SAMPLE-12unit-demo.json
111 lines
{
"source": "SAMPLE-12unit-1234-Demo-Ave.pdf",
"isSample": true,
"parsedAt": "2026-06-29T00:00:00Z",
"property": {
"address": "1234 Demo Ave",
"city": "Los Angeles",
"zip": "90042"
},
"units": [
{
"unit": "101",
"rent": 2450,
"marketRent": 2450,
"status": "occupied",
"beds": 2
},
{
"unit": "102",
"rent": 2395,
"marketRent": 2395,
"status": "occupied",
"beds": 2
},
{
"unit": "103",
"rent": 0,
"marketRent": 1950,
"status": "vacant",
"beds": 1
},
{
"unit": "104",
"rent": 1895,
"marketRent": 1895,
"status": "occupied",
"beds": 1
},
{
"unit": "105",
"rent": 2795,
"marketRent": 2795,
"status": "occupied",
"beds": 2
},
{
"unit": "106",
"rent": 2750,
"marketRent": 2750,
"status": "occupied",
"beds": 2
},
{
"unit": "201",
"rent": 2500,
"marketRent": 2500,
"status": "occupied",
"beds": 2
},
{
"unit": "202",
"rent": 2450,
"marketRent": 2450,
"status": "occupied",
"beds": 2
},
{
"unit": "203",
"rent": 0,
"marketRent": 1975,
"status": "vacant",
"beds": 1
},
{
"unit": "204",
"rent": 1925,
"marketRent": 1925,
"status": "occupied",
"beds": 1
},
{
"unit": "205",
"rent": 2850,
"marketRent": 2850,
"status": "occupied",
"beds": 2
},
{
"unit": "206",
"rent": 2800,
"marketRent": 2800,
"status": "occupied",
"beds": 2
}
],
"underwriting": {
"unitCount": 12,
"occupied": 10,
"vacant": 2,
"vacancyRate": 16.7,
"grossScheduledRentMonthly": 28735,
"grossScheduledRentAnnual": 344820,
"inPlaceRentMonthly": 24810,
"inPlaceRentAnnual": 297720,
"avgRentPerUnit": 2481,
"noiProxyAnnual": 178632,
"noiBasis": "in-place rent × (1 − 0.4 expense ratio); replace with the OM's actual T-12 when available",
"confidence": "parsed from rent-roll PDF — verify unit count + totals against the document before underwriting"
},
"note": "DEMO rent roll (synthetic) — illustrates parse→underwrite. Replace by dropping a real rent-roll PDF into data/rent-rolls/ + running scripts/rent-roll-ingest.js"
}