← back to Commercialrealestate
Verify Granada Hills #1 (pro-forma 6.66%, lease-up risk) + detailed per-property recap in daily email
f205d2c3779f08cda7ad7179a343cdbb0966ec14 · 2026-06-21 18:36:36 -0700 · Steve
- crx2414348: DD via True North Realty/MLS — seller NOI $86,496, rent roll (main rented; JADU+ADU previously-rented), cap 6.66% pro-forma, verified=false (occupancy risk); still #1 at composite 53
- morning-report.js: add detailed recap block per top-10 (facts, thesis, rent roll, risks, notes)
Files touched
M data/listings.jsonM data/qwen-cache.jsonM data/ranked.jsonM scripts/morning-report.js
Diff
commit f205d2c3779f08cda7ad7179a343cdbb0966ec14
Author: Steve <steve@designerwallcoverings.com>
Date: Sun Jun 21 18:36:36 2026 -0700
Verify Granada Hills #1 (pro-forma 6.66%, lease-up risk) + detailed per-property recap in daily email
- crx2414348: DD via True North Realty/MLS — seller NOI $86,496, rent roll (main rented; JADU+ADU previously-rented), cap 6.66% pro-forma, verified=false (occupancy risk); still #1 at composite 53
- morning-report.js: add detailed recap block per top-10 (facts, thesis, rent roll, risks, notes)
---
data/listings.json | 21 ++++++++++-----
data/qwen-cache.json | 20 +++++++-------
data/ranked.json | 66 ++++++++++++++++++++++++++++++++---------------
scripts/morning-report.js | 22 ++++++++++++++--
4 files changed, 90 insertions(+), 39 deletions(-)
diff --git a/data/listings.json b/data/listings.json
index f0ecc49..3c9fd39 100644
--- a/data/listings.json
+++ b/data/listings.json
@@ -1045,17 +1045,26 @@
"id": "crx2414348",
"address": "16122 San Fernando Mission Boulevard",
"city": "Granada Hills",
- "zip": "",
+ "zip": "91344",
"type": "Multifamily",
"price": 1298000,
"units": 3,
- "sqft": null,
- "cap_rate": 7,
+ "sqft": 2580,
+ "cap_rate": 6.66,
+ "cap_rate_projected": 7.0,
+ "noi_seller": 86496,
+ "gross_proforma": 101760,
+ "expenses": 15264,
"verified": false,
- "year_built": null,
- "rent_control": "verify",
+ "rent_roll": [
+ {"unit": 1, "type": "main 2bd/2ba 1250sf", "rent": 3390, "note": "currently rented"},
+ {"unit": 2, "type": "attached 1bd/1ba JADU 500sf", "rent": 1990, "note": "PREVIOUSLY rented - lease-up risk"},
+ {"unit": 3, "type": "detached 2bd/2ba ADU 830sf (new 2024)", "rent": 3100, "note": "PREVIOUSLY rented - lease-up risk"}
+ ],
+ "year_built": 1954,
+ "rent_control": "Triplex (1bd JADU + new 2024 ADU likely AB1482-only, not LA RSO); verify",
"status": "Active",
- "upside_note": "Auto-added by weekly Crexi refresh 2026-06-22. Broker cap 7% (unverified). Verify status, rent roll, and financials before acting.",
+ "upside_note": "DD-CHECKED (True North Realty / MLS SR26083260): renovated front duplex + new-2024 detached ADU. Seller NOI $86,496 -> ~6.66% cap, but that is PRO-FORMA: only the main unit ($3,390/mo) is currently rented; the JADU ($1,990) and ADU ($3,100) are 'previously rented' = lease-up/occupancy risk. Expenses light (~$15.3k: ins $3k + tax $7.5k, RUBS) with NO vacancy/management/reserves -> real stabilized NOI lower. Was in escrow at $1.30M (fell out). NOT marked verified: income is seller/prior, not confirmed in-place. Positive leverage IF re-leased.",
"source": "https://www.crexi.com/properties/2414348/california-16122-san-fernando-mission-boulevard"
},
{
diff --git a/data/qwen-cache.json b/data/qwen-cache.json
index a2914e5..27c854f 100644
--- a/data/qwen-cache.json
+++ b/data/qwen-cache.json
@@ -1081,23 +1081,23 @@
"qwenScore": 60
},
"crx2414348": {
- "key": "0cc2d17db17b",
+ "key": "2baf56574505",
"qwen": {
- "thesis": "This multifamily property in Granada Hills offers an attractive entry point for a leveraged buyer with a $400k budget, targeting a 7% cap rate and potential for cash-on-cash returns. With a computed DSCR of 1.2, the property may be viable if stabilized, but further due diligence is required to confirm financials and rent control status.",
+ "thesis": "This triplex in Granada Hills offers a value-add opportunity with a strong cap rate and potential for increased rental income through re-leasing the vacant JADU and ADU units. The property is well-positioned for stabilization and appreciation in a growing market.",
"risks": [
- "Uncertain rent control status may limit rental growth potential",
- "Missing unit count and square footage data could affect value and operational efficiency",
- "Broker cap rate is unverified, requiring confirmation of actual in-place NOI"
+ "Occupancy and lease-up risk for the JADU and ADU units, which are currently unoccupied and may take time to re-lease.",
+ "Uncertainty around in-place income, as the reported NOI is based on seller-provided data and not verified.",
+ "Light expense assumptions may not reflect long-term stabilized costs, potentially impacting cash flow."
],
"upside": [
- "Potential for value-add through unit improvements or rent increases if rent control is not in place",
- "Leverage available to maximize returns with a 25% down payment",
- "Strategic location in Granada Hills with strong demand for multifamily housing"
+ "Potential to increase NOI by re-leasing vacant units at current or higher market rates.",
+ "Opportunity to improve property value through renovations or management improvements.",
+ "Positive leverage with a 25% down payment and favorable loan terms."
],
- "opportunity_score": 65,
+ "opportunity_score": 72,
"recommendation": "Watch"
},
- "qwenScore": 65
+ "qwenScore": 72
},
"crx2413131": {
"key": "60bbe56673ea",
diff --git a/data/ranked.json b/data/ranked.json
index 41ba64b..95203ae 100644
--- a/data/ranked.json
+++ b/data/ranked.json
@@ -27,17 +27,41 @@
"id": "crx2414348",
"address": "16122 San Fernando Mission Boulevard",
"city": "Granada Hills",
- "zip": "",
+ "zip": "91344",
"type": "Multifamily",
"price": 1298000,
"units": 3,
- "sqft": null,
- "cap_rate": 7,
+ "sqft": 2580,
+ "cap_rate": 6.66,
+ "cap_rate_projected": 7,
+ "noi_seller": 86496,
+ "gross_proforma": 101760,
+ "expenses": 15264,
"verified": false,
- "year_built": null,
- "rent_control": "verify",
+ "rent_roll": [
+ {
+ "unit": 1,
+ "type": "main 2bd/2ba 1250sf",
+ "rent": 3390,
+ "note": "currently rented"
+ },
+ {
+ "unit": 2,
+ "type": "attached 1bd/1ba JADU 500sf",
+ "rent": 1990,
+ "note": "PREVIOUSLY rented - lease-up risk"
+ },
+ {
+ "unit": 3,
+ "type": "detached 2bd/2ba ADU 830sf (new 2024)",
+ "rent": 3100,
+ "note": "PREVIOUSLY rented - lease-up risk"
+ }
+ ],
+ "year_built": 1954,
+ "rent_control": "Triplex (1bd JADU + new 2024 ADU likely AB1482-only, not LA RSO); verify",
"status": "Active",
- "upside_note": "Auto-added by weekly Crexi refresh 2026-06-22. Broker cap 7% (unverified). Verify status, rent roll, and financials before acting.",
+ "upside_note": "DD-CHECKED (True North Realty / MLS SR26083260): renovated front duplex + new-2024 detached ADU. Seller NOI $86,496 -> ~6.66% cap, but that is PRO-FORMA: only the main unit ($3,390/mo) is currently rented; the JADU ($1,990) and ADU ($3,100) are 'previously rented' = lease-up/occupancy risk. Expenses light (~$15.3k: ins $3k + tax $7.5k, RUBS) with NO vacancy/management/reserves -> real stabilized NOI lower. Was in escrow at $1.30M (fell out). NOT marked verified: income is seller/prior, not confirmed in-place. Positive leverage IF re-leased.",
"source": "https://www.crexi.com/properties/2414348/california-16122-san-fernando-mission-boulevard",
"finance": {
"down": 324500,
@@ -45,31 +69,31 @@
"cashNeeded": 356950,
"loan": 973500,
"annualDebtService": 75769,
- "noi": 90860,
- "cashFlow": 15091,
- "coc": 4.23,
- "dscr": 1.2,
+ "noi": 86447,
+ "cashFlow": 10678,
+ "coc": 2.99,
+ "dscr": 1.14,
"affordable": true
},
- "financeScore": 57,
+ "financeScore": 50,
"financeConf": "high",
"qwen": {
- "thesis": "This multifamily property in Granada Hills offers an attractive entry point for a leveraged buyer with a $400k budget, targeting a 7% cap rate and potential for cash-on-cash returns. With a computed DSCR of 1.2, the property may be viable if stabilized, but further due diligence is required to confirm financials and rent control status.",
+ "thesis": "This triplex in Granada Hills offers a value-add opportunity with a strong cap rate and potential for increased rental income through re-leasing the vacant JADU and ADU units. The property is well-positioned for stabilization and appreciation in a growing market.",
"risks": [
- "Uncertain rent control status may limit rental growth potential",
- "Missing unit count and square footage data could affect value and operational efficiency",
- "Broker cap rate is unverified, requiring confirmation of actual in-place NOI"
+ "Occupancy and lease-up risk for the JADU and ADU units, which are currently unoccupied and may take time to re-lease.",
+ "Uncertainty around in-place income, as the reported NOI is based on seller-provided data and not verified.",
+ "Light expense assumptions may not reflect long-term stabilized costs, potentially impacting cash flow."
],
"upside": [
- "Potential for value-add through unit improvements or rent increases if rent control is not in place",
- "Leverage available to maximize returns with a 25% down payment",
- "Strategic location in Granada Hills with strong demand for multifamily housing"
+ "Potential to increase NOI by re-leasing vacant units at current or higher market rates.",
+ "Opportunity to improve property value through renovations or management improvements.",
+ "Positive leverage with a 25% down payment and favorable loan terms."
],
- "opportunity_score": 65,
+ "opportunity_score": 72,
"recommendation": "Watch"
},
- "qwenScore": 65,
- "composite": 54,
+ "qwenScore": 72,
+ "composite": 53,
"rank": 1
},
{
diff --git a/scripts/morning-report.js b/scripts/morning-report.js
index fcc5dc6..aa19a00 100644
--- a/scripts/morning-report.js
+++ b/scripts/morning-report.js
@@ -41,6 +41,24 @@ const row = (p, i) => {
</tr>`;
};
+const recap = (p, i) => {
+ const f = p.finance;
+ const ver = p.verified === true ? '✓ verified in-place' : (p.cap_rate != null ? (p.noi_seller ? 'seller/pro-forma' : 'broker cap') : 'no income data');
+ const cap = p.cap_rate != null ? p.cap_rate + '%' + (p.cap_rate_projected ? ` (proj ${p.cap_rate_projected}%)` : '') : '—';
+ const rr = p.rent_roll && p.rent_roll.length
+ ? `<div style="font-size:12px;color:#444;margin:4px 0"><b>Rent roll:</b> ${p.rent_roll.map(u => `${u.type} $${u.rent}/mo${u.proforma ? ` (proj $${u.proforma})` : ''}${u.note ? ' — ' + u.note : ''}`).join(' · ')}</div>` : '';
+ const risks = p.qwen && p.qwen.risks && p.qwen.risks.length
+ ? `<div style="font-size:12px;color:#a15c00;margin:4px 0"><b>Risks:</b> ${p.qwen.risks.slice(0, 3).join('; ')}</div>` : '';
+ return `<div style="border-top:1px solid #e2e2e2;padding:10px 0">
+ <div style="font-size:14px"><b>#${i + 1}. <a href="${p.source}">${p.address}</a>, ${p.city}</b> <span style="color:#888;font-weight:400">score ${p.composite}</span></div>
+ <div style="color:#666;font-size:12px">${p.type} · ${p.units} unit${p.units > 1 ? 's' : ''}${p.year_built ? ` · built ${p.year_built}` : ''} · ${fmt(p.price)} · cap ${cap} (${ver})</div>
+ <div style="font-size:12px;color:#333;margin:3px 0">Cash to close <b>${fmt(f.cashNeeded)}</b> (${f.affordable ? 'in budget' : 'OVER budget'}) · CoC ${f.coc != null ? f.coc + '%' : 'n/a'} · DSCR ${f.dscr ?? 'n/a'} · est NOI ${f.noi ? fmt(f.noi) : 'n/d'}</div>
+ ${p.qwen && p.qwen.thesis ? `<div style="font-size:13px;color:#222;margin:4px 0">${p.qwen.thesis}</div>` : ''}
+ ${rr}${risks}
+ <div style="font-size:12px;color:#555">${p.upside_note || ''}</div>
+ </div>`;
+};
+
const html = `<div style="font-family:-apple-system,Segoe UI,Arial,sans-serif;max-width:780px">
<h2 style="margin:0 0 2px">SFV Commercial Real Estate — Top 10 Opportunities</h2>
<div style="color:#666;font-size:13px">${today} · ${meta.market} · $${A.budget.toLocaleString()} down (${A.downPct}% / ${A.ratePct}% / ${A.amortYears}yr) · ${ranked.length} listings tracked</div>
@@ -54,8 +72,8 @@ Cap rates are broker/MLS-stated — verify NOI in DD. Most SFV multifamily runs
</tr>
${top.map(row).join('\n')}
</table>
-<h3 style="margin:16px 0 6px;font-size:14px">#1 thesis</h3>
-<p style="font-size:13px;color:#333;margin:0">${top[0] ? `<b>${top[0].address}, ${top[0].city}</b> — ${top[0].qwen?.thesis || ''}` : ''}</p>
+<h3 style="margin:18px 0 6px;font-size:15px">Detailed recap — each opportunity</h3>
+${top.map(recap).join('\n')}
<p style="color:#888;font-size:12px;margin-top:16px">Live viewer: http://127.0.0.1:9911 · generated by commercialrealestate/scripts/morning-report.js</p>
</div>`;
← fc9d273 Weekly Crexi refresh job + 38 new SFV listings (62 total)
·
back to Commercialrealestate
·
Add rent-yield (rent÷price) metric + broader SFV sweep (81 l 39b655c →