Can you analyze this Conduit transaction? I want to understand collateral Geography, LTV, Debt Yield, DSCR, etc. KPIs on this 100% multifamily transaction.
Lastly, why would this not finance in the Agency CMBS market?
cd /vercel/sandbox && python skills/xlsx/scripts/workbook_profile.py annex.xlsx 2>&1 | head -200
cd /vercel/sandbox && python3 -c "
import pdfplumber
with pdfplumber.open('termsheet.pdf') as pdf:
for i, page in enumerate(pdf.pages, start=1):
text = page.extract_text() or ''
print(f'=== PAGE {i} ===')
print(text)
" > termsheet.txt
wc -l termsheet.txt
cd /vercel/sandbox && python3 -c "
import openpyxl
wb = openpyxl.load_workbook('annex.xlsx', data_only=True)
ws = wb['Annex']
rows = list(ws.iter_rows(values_only=True))
print(len(rows))
headers = rows[0]
for i,h in enumerate(headers):
print(i,h)
"
Row 0 is title. Let me check further rows.
cd /vercel/sandbox && python3 -c "
import openpyxl
wb = openpyxl.load_workbook('annex.xlsx', data_only=True)
ws = wb['Annex']
rows = list(ws.iter_rows(values_only=True))
for r_idx, row in enumerate(rows):
print('ROW', r_idx, [c for c in row[:10]])
"
cd /vercel/sandbox && python3 -c "
import openpyxl
wb = openpyxl.load_workbook('annex.xlsx', data_only=True)
ws = wb['Annex']
rows = list(ws.iter_rows(values_only=True))
headers = rows[2]
for i,h in enumerate(headers):
print(i,h)
"
Now let's pull all the key data for the portfolio row and each property row.
cd /vercel/sandbox && python3 -c "
import openpyxl, json
wb = openpyxl.load_workbook('annex.xlsx', data_only=True)
ws = wb['Annex']
rows = list(ws.iter_rows(values_only=True))
headers = rows[2]
key_idx = {
'PropName':3,'City':5,'State':6,'Zip':7,'County':8,'YearBuilt':9,'YearRenov':10,'Market':11,'Units':14,
'Occ':16,'OccDate':17,'LoanPurpose':18,'Borrower':19,'Sponsor':20,'PropMgr':22,
'NoteDate':23,'FirstPmt':24,'Maturity':25,'MoDS':26,'RateIndex':27,'SOFR':28,'SOFRcap':29,'Spread':30,'MtgRate':31,'MtgRateCap':32,
'OrigBal':38,'CutoffLoanBal':39,'CutoffPropBal':40,'Balloon':41,'PrepayCode':42,
'AmortOrig':45,'AmortRem':46,'TermOrig':47,'TermRem':48,'ExtOpt':49,'IOPeriod':50,'Seasoning':51,'AmortType':52,'ARD':53,
'ApprDate':54,'IndivApprVal':55,'IndivApprValPerUnit':56,'PortApprDate':57,'PortApprVal':58,'PortApprValPerUnit':59,'PortApprPremium':60,
'LTV_indiv_closing':61,'LTV_indiv_balloon':62,'LTV_port_closing':63,'LTV_port_balloon':64,
'DSCR':65,'DSCR_cap':66,'DY_NOI':67,'DY_NCF':68,'UW_NOI':69,'UW_NCF':70,
'AffiliatedSponsor':71,'Lien':72,'Vesting':73,'Lockbox':75,
'EnvEscrow':79,'TaxEscrowInit':81,'TaxEscrowMo':82,'InsEscrowInit':84,'InsEscrowMo':85,
'ReplResInit':87,'ReplResMo':88,'ImmRepairInit':90,'ImmRepairMo':91,
'TotalDebtOrig':101,'TotalDebtCutoff':102,'MezzExisting':103,'UnsecExisting':104,'FutureSecured':105,'FutureMezz':106,'FutureUnsec':107,
'SeismicPML':108,'SeismicIns':109
}
for r_idx in [3]:
row = rows[r_idx]
print('--- PORTFOLIO ROW', r_idx, '---')
for k,i in key_idx.items():
print(k, ':', row[i])
"
Now let's pull per-property data for the geography and unit table.
cd /vercel/sandbox && python3 -c "
import openpyxl
wb = openpyxl.load_workbook('annex.xlsx', data_only=True)
ws = wb['Annex']
rows = list(ws.iter_rows(values_only=True))
idx = {
'PropName':3,'Addr':4,'City':5,'State':6,'Zip':7,'County':8,'YearBuilt':9,'YearRenov':10,'Market':11,'Units':14,
'Occ':16,'IndivApprVal':55,'IndivApprValPerUnit':56,'LTV_indiv':61
}
for r_idx in range(4,13):
row = rows[r_idx]
print(r_idx, {k: row[i] for k,i in idx.items()})
"
Now let's read the term sheet for structural details (rate cap, tranches, why not agency-eligible, etc.).
mkdir -p analysis && cat > analysis/kpi_checks.py << 'EOF'
# Verify headline KPIs from the SCG 2026-MFP2 term sheet / annex
loan = 609_750_000
port_value_incl_premium = 813_000_000
port_value_ex_premium = 796_900_000
uw_noi = 45_057_306
uw_ncf = 43_546_070
units = 3441
monthly_ds = 3_065_334.64
sofr = 0.0370
spread = 0.0225
sofr_cap_strike = 0.0410
# LTV
ltv_incl_premium = loan / port_value_incl_premium
ltv_ex_premium = loan / port_value_ex_premium
# Debt yields
dy_noi = uw_noi / loan
dy_ncf = uw_ncf / loan
# Implied going-in cap rates (unlevered yield) vs. cost of debt
cap_rate_noi = uw_noi / port_value_incl_premium
cap_rate_ncf = uw_ncf / port_value_incl_premium
current_rate = sofr + spread
rate_at_cap = sofr_cap_strike + spread
# DSCR check
annual_ds = monthly_ds * 12
dscr_current = uw_ncf / annual_ds
dscr_at_cap = uw_ncf / (loan * rate_at_cap) # approx IO at capped rate
# Cost basis implied by disclosed LTC 58.7%
ltc = 0.587
implied_cost_basis = loan / ltc
# Per unit
loan_per_unit = loan / units
value_per_unit_incl = port_value_incl_premium / units
print(f"LTV (incl. 2.0% portfolio premium): {ltv_incl_premium:.1%}")
print(f"LTV (ex-premium, sum of individual appraisals): {ltv_ex_premium:.1%}")
print(f"UW NOI Debt Yield: {dy_noi:.2%}")
print(f"UW NCF Debt Yield: {dy_ncf:.2%}")
print(f"Implied going-in cap rate (NOI/Value incl premium): {cap_rate_noi:.2%}")
print(f"Implied going-in cap rate (NCF/Value incl premium): {cap_rate_ncf:.2%}")
print(f"Current all-in floating rate (SOFR {sofr:.2%} + spread {spread:.2%}): {current_rate:.2%}")
print(f"Rate at SOFR cap strike: {rate_at_cap:.2%}")
print(f"Spread of cap rate over current cost of debt: {(cap_rate_noi - current_rate)*100:.2f} pts (negative leverage if negative)")
print(f"Annualized debt service (12x monthly): ${annual_ds:,.0f}")
print(f"DSCR (current rate, recomputed): {dscr_current:.2f}x")
print(f"DSCR (at SOFR cap strike, approx recompute): {dscr_at_cap:.2f}x")
print(f"Implied total cost basis (loan / 58.7% LTC): ${implied_cost_basis:,.0f}")
print(f"Cost basis vs appraised value (incl premium) delta: ${implied_cost_basis - port_value_incl_premium:,.0f} ({(implied_cost_basis/port_value_incl_premium-1):.1%} above appraised value)")
print(f"Loan per unit: ${loan_per_unit:,.0f}")
print(f"Value per unit (incl premium): ${value_per_unit_incl:,.0f}")
EOF
python3 analysis/kpi_checks.pyAll figures tie out. Now let me build the artifacts and write the analysis.
SCG 2026-MFP2 — $609.75mm floating-rate multifamily conduit loan: 75% LTV, thin coverage, and a value that's fallen below the sponsor's cost basis
This is a single, cross-collateralized mortgage loan to nine SPE affiliates of Starwood's non-traded REIT (SREIT), secured by nine garden-style apartment communities (3,441 units) in Raleigh, Durham, Palm Beach, and Fort Lauderdale, and securitized through eight rated bond classes plus a risk-retention piece . It refinances SREIT's prior 2021 securitization on the same collateral.
| Property | Market/State | Units | Year Built (Renovated) | Occupancy % | Individual Appraised Value ($M) | Appraised Value/Unit ($) | UW NCF ($M) | % of Portfolio UW NCF |
|---|---|---|---|---|---|---|---|---|
| Arium Centro at Davie | Fort Lauderdale, FL | 494 | 1989 | 96.0% | $154.6M | $312,955 | $8.07M | 18.5% |
| Arium Boca Raton | Palm Beach, FL | 392 | 1986 | 96.7% | $131.9M | $336,480 | $7.34M | 16.9% |
| Arium Lake Johnson | Raleigh, NC | 576 | 1985 (2022) | 97.6% | $89.6M | $155,556 | $5.34M | 12.3% |
| Arium Boynton Beach | Palm Beach, FL | 264 | 2002 (2016) | 94.3% | $89.9M | $340,530 | $4.67M | 10.7% |
| Arium Weston | Raleigh, NC | 380 | 2000 | 97.9% | $84.8M | $223,158 | $4.50M | 10.3% |
| Arium Kildaire | Raleigh, NC | 332 | 2000 (2020) | 97.6% | $77.8M | $234,337 | $4.26M | 9.8% |
| Arium Lake Lynn | Raleigh, NC | 423 | 1984 | 98.3% | $70.0M | $165,485 | $4.07M | 9.4% |
| Arium Trailwood | Raleigh, NC | 302 | 1981 | 97.0% | $49.6M | $164,238 | $2.95M | 6.8% |
| Arium Southpoint | Durham, NC | 278 | 1996 | 96.0% | $48.7M | $175,180 | $2.34M | 5.4% |
| Portfolio Total / Wtd Avg | — | 3,441 | 1991 (Wtd Avg) | 96.9% | $796.9M1 | $236,2691 | $43.55M | 100.0% |
The leverage and coverage picture
The number that should give you pause: this deal is underwater against the sponsor's own basis. The disclosed 58.7% LTC implies a total cost basis of roughly $1.04bn against a portfolio value of $813.0mm today — the portfolio is worth about 22% less than what SREIT has into it (2021 purchase price plus $30.9mm of capex since), even after 26.2% NCF growth and 18.5% in-place rent growth since acquisition . That's cap-rate expansion, not an operating problem: NOI grew, value didn't follow. It also means the implied going-in cap rate (NOI ÷ value) is 5.5%, while the current floating coupon is 5.95% — the loan is priced above the unlevered yield, i.e. negative leverage on a going-in basis . The bet embedded in this structure is that SOFR falls and rents keep growing before the 2028 maturity; if it doesn't, refinancing at maturity gets harder, not easier.
Geography and concentration
| Geography | Property Count | Units | % of Total Units | Occupancy % | Wtd Avg Year Built | UW NCF ($M) | % of Total UW NCF |
|---|---|---|---|---|---|---|---|
| North Carolina | 6 | 2,291 | 66.6% | 97.5% | 1990 | $23.46M | 53.9% |
| — Raleigh | 5 | 2,013 | 58.5% | 97.7% | 1989 | $21.12M | 48.5% |
| — Durham | 1 | 278 | 8.1% | 96.0% | 1996 | $2.34M | 5.4% |
| Florida | 3 | 1,150 | 33.4% | 95.8% | 1991 | $20.09M | 46.1% |
| — Palm Beach | 2 | 656 | 19.1% | 95.7% | 1992 | $12.02M | 27.6% |
| — Fort Lauderdale | 1 | 494 | 14.4% | 96.0% | 1989 | $8.07M | 18.5% |
| Total | 9 | 3,441 | 100.0% | 96.9% | — | $43.55M | 100.0% |
Single-market concentration is real: Raleigh alone is 48.5% of NCF, and no other market clears 28%. Two of the four markets (Durham, Fort Lauderdale) rely on a single asset each — an idiosyncratic-risk point a rating agency and a bond buyer both underwrite explicitly.
The certificate structure (context for the KPIs above)
| Class | Initial Balance | Rating (Fitch/DBRS) | Cumulative LTV % | Cumulative UW NCF Debt Yield % |
|---|---|---|---|---|
| Class A | $258,700,000 | AAAsf/AAA(sf) | 31.8% | 16.8% |
| Class B | $46,100,000 | AA-sf/AA(low)(sf) | 37.5% | 14.3% |
| Class C | $62,500,000 | NR/A(low)(sf) | 45.2% | 11.9% |
| Class D | $46,600,000 | NR/BBB(low)(sf) | 50.9% | 10.5% |
| Class E | $47,300,000 | NR/BB(low)(sf) | 56.7% | 9.4% |
| Class F | $53,200,000 | NR/B(low)(sf) | 63.3% | 8.5% |
| Class G | $64,862,500 | NR/NR | 71.3% | 7.5% |
| Class HRR1 | $30,487,500 | NR/NR | 75.0% | 7.1% |
The Class HRR (bottom, risk-retention) piece absorbs first loss below 71.3% cumulative LTV — meaning any value decline beyond ~4% more from here starts eroding the AAA-through-B stack's protective equity below where the deal already sits relative to sponsor cost basis.
Why this doesn't finance through Agency (Fannie Mae / Freddie Mac) multifamily execution
Several structural and credit features here are conduit/bridge hallmarks, not GSE permanent-loan hallmarks:
Bottom line: the sponsor chose (or needed) conduit execution because it wanted floating-rate, short-duration, high-leverage proceeds against underwriting that credits future rent growth — none of which an Agency lender, DSCR-constrained and fixed-rate by default, would size to the same $609.75mm.
This is a read-only snapshot of a RealAI analysis.