[object Object]

← back to Rentv Website

LA Commercial: syndicate usrealestate commercial intel into rentv-website (canonical rentv.agentabrams.com)

3b1f8b3c1275f0abb86ad8d5e774cf170944abf6 · 2026-07-22 11:22:53 -0700 · Steve

Ports the rentv-v1 integration to the canonical client fork (DTD verdict A, 3/5):
/api/la-commercial endpoint, pull-la-commercial.mjs, RENTV-styled la-commercial.html
(nav adapted to rentv-website's real pages), nav link on home + markets. Verified
local :9705: 9 assets + 20 rows + 12 firms, 0 errors, 0 stale nav links.

Files touched

Diff

commit 3b1f8b3c1275f0abb86ad8d5e774cf170944abf6
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Jul 22 11:22:53 2026 -0700

    LA Commercial: syndicate usrealestate commercial intel into rentv-website (canonical rentv.agentabrams.com)
    
    Ports the rentv-v1 integration to the canonical client fork (DTD verdict A, 3/5):
    /api/la-commercial endpoint, pull-la-commercial.mjs, RENTV-styled la-commercial.html
    (nav adapted to rentv-website's real pages), nav link on home + markets. Verified
    local :9705: 9 assets + 20 rows + 12 firms, 0 errors, 0 stale nav links.
---
 data/la-commercial.json   |  1 +
 public/index.html         |  2 +-
 public/la-commercial.html | 97 +++++++++++++++++++++++++++++++++++++++++++++++
 public/markets.html       |  2 +-
 pull-la-commercial.mjs    | 22 +++++++++++
 server.js                 |  7 ++++
 6 files changed, 129 insertions(+), 2 deletions(-)

diff --git a/data/la-commercial.json b/data/la-commercial.json
new file mode 100644
index 0000000..f82193e
--- /dev/null
+++ b/data/la-commercial.json
@@ -0,0 +1 @@
+{"fetched_at":"2026-07-22T18:21:39.416Z","county":"06037","marquee":[{"ain":"4334007008","address":"121 N LA CIENEGA BLVD","city":"LOS ANGELES","zip":"90048","type":"retail","type_label":"Retail","use_desc":"Shopping Center (Regional)","assessed_total":995837586,"assessed_land":476270150,"assessed_improvement":519567436,"roll_year":"2025","recording_date":"2020-12-29T08:00:00.000Z","sqft":1284654,"year_built":1981,"units":0,"brief":"The 1,284,654 sqft, 1981-built regional shopping center at 121 N La Cienega Blvd in Los Angeles has an assessed value of $995,837,586, last recorded on Dec 29."},{"ain":"2424043022","address":"3900 LANKERSHIM BLVD","city":"LOS ANGELES","zip":"90068","type":"industrial","type_label":"Industrial","use_desc":"Heavy Manufacturing","assessed_total":919928415,"assessed_land":160335677,"assessed_improvement":199521231,"roll_year":"2025","recording_date":"2011-01-28T08:00:00.000Z","sqft":8048,"year_built":1930,"units":0,"brief":"The 1930-built, 8,048 sqft heavy manufacturing property at 3900 Lankershim Blvd in Los Angeles has an assessed value of $919,928,415, last recorded transferring on Jan 28."},{"ain":"5151023400","address":"525 S FLOWER ST","city":"LOS ANGELES","zip":"90071","type":"office","type_label":"Office","use_desc":"Office Building","assessed_total":909370171,"assessed_land":134403685,"assessed_improvement":774966486,"roll_year":"2025","recording_date":"2013-10-01T07:00:00.000Z","sqft":2832748,"year_built":1971,"units":0,"brief":"The 2.8M sqft office building at 525 S Flower St in Los Angeles has an assessed value of $909M and was last transferred on October 1, 1971."},{"ain":"2673021041","address":"15800 ROSCOE BLVD","city":"LOS ANGELES","zip":"91406","type":"industrial","type_label":"Industrial","use_desc":"Food Processing Plant","assessed_total":856465517,"assessed_land":104517723,"assessed_improvement":391931829,"roll_year":"2025","recording_date":"2016-09-21T07:00:00.000Z","sqft":393032,"year_built":1954,"units":0,"brief":"The 393,032 sqft food processing plant at 15800 Roscoe Blvd in Los Angeles has an assessed value of $856,465,517 and last transferred on September 21."},{"ain":"2485021011","address":"4000 WARNER BLVD","city":"BURBANK","zip":"91522","type":"studio","type_label":"Studio / Media","use_desc":"Motion Picture, Radio and Television Industry","assessed_total":737677562,"assessed_land":288849385,"assessed_improvement":448828177,"roll_year":"2025","recording_date":"2022-04-08T07:00:00.000Z","sqft":152217,"year_built":1926,"units":0,"brief":"The 152,217 sqft studio at 4000 Warner Blvd in Burbank, valued at $737,677,562 as of last transfer on April 8, 2022, supports the Motion Picture, Radio and Television Industry."},{"ain":"5151014031","address":"333 S HOPE ST","city":"LOS ANGELES","zip":"90071","type":"office","type_label":"Office","use_desc":"Office Building","assessed_total":729339835,"assessed_land":112546537,"assessed_improvement":616793298,"roll_year":"2025","recording_date":"2013-10-15T07:00:00.000Z","sqft":1392719,"year_built":1974,"units":0,"brief":"The office building located at 333 S HOPE ST in Los Angeles, with a assessed value of $729,339,835 and built in 1974, spans 1,392,719 sqft. Last recorded transfer occurred on Oct 15."},{"ain":"2484024003","address":"3000 W ALAMEDA AVE","city":"BURBANK","zip":"91523","type":"studio","type_label":"Studio / Media","use_desc":"Motion Picture, Radio and Television Industry","assessed_total":726811997,"assessed_land":310816518,"assessed_improvement":415995479,"roll_year":"2025","recording_date":"2007-12-21T08:00:00.000Z","sqft":178427,"year_built":1954,"units":0,"brief":"The motion picture and media property at 3000 W Alameda Ave in Burbank, assessed at $726,811,997 for 178,427 sqft, last transferred on December 21st."},{"ain":"2424043032","address":"100 UNIVERSAL CITY PLAZA","city":"LOS ANGELES","zip":"91608","type":"studio","type_label":"Studio / Media","use_desc":"Motion Picture, Radio and Television Industry","assessed_total":708909993,"assessed_land":178478332,"assessed_improvement":530431661,"roll_year":"2025","recording_date":"2011-01-28T08:00:00.000Z","sqft":65532,"year_built":1924,"units":0,"brief":"The 65,532 sqft 1924-built Universal City Plaza studio property in Los Angeles, valued at $708,909,993, was last transferred on January 28."},{"ain":"5151015012","address":"333 S GRAND AVE","city":"LOS ANGELES","zip":"90071","type":"office","type_label":"Office","use_desc":"Office Building","assessed_total":682082790,"assessed_land":72313693,"assessed_improvement":609769097,"roll_year":"2025","recording_date":"2013-10-15T07:00:00.000Z","sqft":1480365,"year_built":1981,"units":0,"brief":"The office building at 333 S Grand Ave in Los Angeles has an assessed value of $682,082,790 and spans 1,480,365 square feet, last recorded to have transferred on October 15. Built in 1981."},{"ain":"2424043034","address":"3900 LANKERSHIM BLVD","city":"LOS ANGELES","zip":"90068","type":"studio","type_label":"Studio / Media","use_desc":"Motion Picture, Radio and Television Industry","assessed_total":652153484,"assessed_land":134253441,"assessed_improvement":517900043,"roll_year":"2025","recording_date":"2011-01-28T08:00:00.000Z","sqft":21585,"year_built":1965,"units":0,"brief":"The 21,585 sqft studio at 3900 Lankershim Blvd in Los Angeles, valued at $652,153,484 as of last transfer on Jan 28, 1965, supports the motion picture, radio, and television industry."},{"ain":"2424043021","address":"3900 LANKERSHIM BLVD","city":"LOS ANGELES","zip":"90068","type":"industrial","type_label":"Industrial","use_desc":"Heavy Manufacturing","assessed_total":631556702,"assessed_land":73689555,"assessed_improvement":557867147,"roll_year":"2025","recording_date":"2011-01-28T08:00:00.000Z","sqft":125487,"year_built":1981,"units":0,"brief":"The industrial property at 3900 Lankershim Blvd in Los Angeles, used for heavy manufacturing and with a assessed value of $631,556,702, last recorded transferred on January 28, features a building size of 125,487 sqft and was constructed in 1981."},{"ain":"4211010118","address":"5865 S CAMPUS CENTER DR","city":"LOS ANGELES","zip":"90094","type":"office","type_label":"Office","use_desc":"Office Building","assessed_total":583333400,"assessed_land":175581577,"assessed_improvement":407751823,"roll_year":"2025","recording_date":"2016-12-22T08:00:00.000Z","sqft":514260,"year_built":1943,"units":0,"brief":"The 514,260 sqft office building at 5865 S Campus Center Dr in Los Angeles has an assessed value of $583,333,400 and last transferred on Dec 22."}],"recent":[{"ain":"8264005913","address":null,"city":null,"zip":null,"type":"industrial","type_label":"Industrial","use_desc":"Industrial","assessed_total":0,"assessed_land":0,"assessed_improvement":0,"roll_year":"2025","recording_date":"2025-04-02T07:00:00.000Z","sqft":0,"year_built":0,"units":0,"brief":"Last recorded transfer for this industrial property was on April 2nd."},{"ain":"5147007901","address":"501 E 5TH ST","city":"LOS ANGELES","zip":"90013","type":"industrial","type_label":"Industrial","use_desc":"Industrial","assessed_total":0,"assessed_land":0,"assessed_improvement":0,"roll_year":"2025","recording_date":"2025-03-13T07:00:00.000Z","sqft":0,"year_built":0,"units":0,"brief":"The industrial property at 501 E 5th St, Los Angeles, had its last recorded transfer on March 13."},{"ain":"6015036011","address":"1745 W FLORENCE AVE","city":"LOS ANGELES","zip":"90047","type":"retail","type_label":"Retail","use_desc":"Store","assessed_total":405756,"assessed_land":312120,"assessed_improvement":93636,"roll_year":"2025","recording_date":"2025-01-21T08:00:00.000Z","sqft":1350,"year_built":1928,"units":0,"brief":"The retail store at 1745 W Florence Ave in Los Angeles, with a assessed value of $405,756 and 1,350 sqft of building space, was last transferred on January 21. Built in 1928."},{"ain":"7436006923","address":"1667 W 9TH ST","city":"LONG BEACH","zip":"90813","type":"industrial","type_label":"Industrial","use_desc":"Light Manufacturing","assessed_total":0,"assessed_land":0,"assessed_improvement":0,"roll_year":"2025","recording_date":"2025-01-17T08:00:00.000Z","sqft":16500,"year_built":1973,"units":0,"brief":"The 16,500 sqft light manufacturing property at 1667 W 9th St in Long Beach, built in 1973, last recorded transferred on Jan 17."},{"ain":"6239015023","address":null,"city":null,"zip":null,"type":"industrial","type_label":"Industrial","use_desc":"Light Manufacturing","assessed_total":0,"assessed_land":0,"assessed_improvement":0,"roll_year":"2025","recording_date":"2025-01-06T08:00:00.000Z","sqft":0,"year_built":0,"units":0,"brief":"Last recorded transfer for the light manufacturing industrial property was on January 6."},{"ain":"5586035044","address":"5766 HOLLYWOOD BLVD","city":"LOS ANGELES","zip":"90028","type":"retail","type_label":"Retail","use_desc":"Store Combination","assessed_total":78189905,"assessed_land":28000000,"assessed_improvement":50000000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":178421,"year_built":2021,"units":161,"brief":"The retail property at 5766 Hollywood Blvd in Los Angeles, a store combination occupying 178,421 sqft and built in 2021, has an assessed value of $78,189,905 as of last recorded transfer on December 31."},{"ain":"6303019014","address":"3385 LEONIS BLVD","city":"VERNON","zip":"90058","type":"industrial","type_label":"Industrial","use_desc":"Heavy Manufacturing","assessed_total":18724000,"assessed_land":8274000,"assessed_improvement":10450000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":55136,"year_built":1947,"units":0,"brief":"The 55,136 sqft heavy manufacturing property at 3385 Leonis Blvd in Vernon has an assessed value of $18,724,000 and was last recorded to have transferred on December 31st."},{"ain":"5442025039","address":"2965 ALLESANDRO ST","city":"LOS ANGELES","zip":"90039","type":"retail","type_label":"Retail","use_desc":"Store Combination","assessed_total":10404000,"assessed_land":3060000,"assessed_improvement":7344000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":33888,"year_built":2024,"units":25,"brief":"The retail property at 2965 Allesandro St in Los Angeles, with a assessed value of $10,404,000 and a building size of 33,888 sqft, was last recorded to have been transferred on December 31."},{"ain":"2350004070","address":"11410 BURBANK BLVD","city":"LOS ANGELES","zip":"91601","type":"retail","type_label":"Retail","use_desc":"Store","assessed_total":9000000,"assessed_land":9000000,"assessed_improvement":0,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":12388,"year_built":1963,"units":6,"brief":"The retail store located at 11410 Burbank Blvd in Los Angeles, with a assessed value of $9,000,000 and a building size of 12,388 sqft, was last recorded to have transferred on December 31st."},{"ain":"2258012026","address":"17257 VENTURA BLVD","city":"LOS ANGELES","zip":"91316","type":"retail","type_label":"Retail","use_desc":"Store","assessed_total":8939799,"assessed_land":5231865,"assessed_improvement":3707934,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":30162,"year_built":1980,"units":0,"brief":"The retail store located at 17257 Ventura Blvd in Los Angeles, with a assessed value of $8,939,799 and a building size of 30,162 sqft, was last recorded to have transferred on December 31st."},{"ain":"7432016034","address":"1442 W 16TH ST","city":"LONG BEACH","zip":"90813","type":"industrial","type_label":"Industrial","use_desc":"Light Manufacturing","assessed_total":8500000,"assessed_land":6200000,"assessed_improvement":2300000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":2212,"year_built":1982,"units":1,"brief":"The 2,212 sqft light manufacturing industrial property at 1442 W 16th St in Long Beach, assessed at $8,500,000, last transferred on December 31."},{"ain":"8382005032","address":"440 E ARROW HWY","city":"SAN DIMAS","zip":"91773","type":"industrial","type_label":"Industrial","use_desc":"Light Manufacturing","assessed_total":6869000,"assessed_land":3200000,"assessed_improvement":3669000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":18369,"year_built":1997,"units":0,"brief":"The 18,369 sqft light manufacturing property at 440 E Arrow Hwy in San Dimas has an assessed value of $6,869,000 and was last transferred on December 31st. Built in 1997."},{"ain":"6203022043","address":"4149 TWEEDY BLVD","city":"SOUTH GATE","zip":"90280","type":"retail","type_label":"Retail","use_desc":"Shopping Center (Neighborhood, Community)","assessed_total":5167728,"assessed_land":1118308,"assessed_improvement":4049420,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":12321,"year_built":1989,"units":0,"brief":"The 12,321 sqft shopping center at 4149 Tweedy Blvd in South Gate, assessed at $5,167,728, last transferred on December 31st."},{"ain":"5282010030","address":"8966 GARVEY AVE","city":"ROSEMEAD","zip":"91770","type":"retail","type_label":"Retail","use_desc":"Store","assessed_total":5021460,"assessed_land":3258900,"assessed_improvement":1762560,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":17745,"year_built":1985,"units":0,"brief":"The retail store located at 8966 Garvey Ave in Rosemead, with a assessed value of $5,021,460 and 17,745 sqft of building space built in 1985, last recorded transferred on December 31."},{"ain":"6213003027","address":"3480 E FLORENCE AVE","city":"HUNTINGTON PARK","zip":"90255","type":"retail","type_label":"Retail","use_desc":"Restaurant, Cocktail Lounge","assessed_total":4500000,"assessed_land":2750000,"assessed_improvement":1750000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":1866,"year_built":2024,"units":1,"brief":"The retail property at 3480 E Florence Ave in Huntington Park, a restaurant and cocktail lounge with a assessed value of $4,500,000 and 1,866 sqft, last recorded transferred on December 31."},{"ain":"6203022045","address":"4161 TWEEDY BLVD","city":"SOUTH GATE","zip":"90280","type":"retail","type_label":"Retail","use_desc":"Shopping Center (Neighborhood, Community)","assessed_total":4229779,"assessed_land":919898,"assessed_improvement":3309881,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":10238,"year_built":1989,"units":0,"brief":"The 10,238 sqft shopping center at 4161 Tweedy Blvd in South Gate, assessed at $4,229,779, last transferred on December 31."},{"ain":"7432005047","address":"1501 SANTA FE AVE","city":"LONG BEACH","zip":"90813","type":"retail","type_label":"Retail","use_desc":"Store","assessed_total":4000000,"assessed_land":1325000,"assessed_improvement":2675000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":7760,"year_built":1947,"units":0,"brief":"The retail store located at 1501 Santa Fe Ave in Long Beach, with a assessed value of $4,000,000 and a building size of 7,760 sqft, was last recorded to have transferred on Tue Dec 31, 1947."},{"ain":"5511008002","address":"8240 BEVERLY BLVD","city":"LOS ANGELES","zip":"90048","type":"office","type_label":"Office","use_desc":"Office Building","assessed_total":3899998,"assessed_land":2924999,"assessed_improvement":974999,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":6786,"year_built":1955,"units":0,"brief":"The 6,786 sqft office building located at 8240 Beverly Blvd in Los Angeles has an assessed value of $3,899,998 and was last transferred on December 31st. Built in 1955."},{"ain":"5636015189","address":"428 ARDEN AVE","city":"GLENDALE","zip":"91203","type":"office","type_label":"Office","use_desc":"Professional Building","assessed_total":3760000,"assessed_land":2300000,"assessed_improvement":1460000,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":8436,"year_built":1985,"units":0,"brief":"The 8,436 sqft professional office building located at 428 Arden Ave in Glendale, assessed at $3,760,000, last transferred on December 31st."},{"ain":"2242027022","address":"15007 OXNARD ST","city":"LOS ANGELES","zip":"91411","type":"industrial","type_label":"Industrial","use_desc":"Light Manufacturing","assessed_total":3659487,"assessed_land":2639941,"assessed_improvement":1019546,"roll_year":"2025","recording_date":"2024-12-31T08:00:00.000Z","sqft":17015,"year_built":1946,"units":1,"brief":"The 17,015 sqft light manufacturing property at 15007 Oxnard St, Los Angeles, has an assessed value of $3,659,487 and was last transferred on December 31st. Built in 1946."}],"firms":[{"name":"CBRE, Inc.","agent_count":1213,"city":"LOS ANGELES","license_no":"00409987"},{"name":"New Star Realty, Inc.","agent_count":366,"city":"LOS ANGELES","license_no":"01096925"},{"name":"Graff Real Estate","agent_count":278,"city":"LOS ANGELES","license_no":"02041450"},{"name":"Forward Wilshire Inc","agent_count":208,"city":"LOS ANGELES","license_no":"01870534"},{"name":"Nourmand & Associates","agent_count":172,"city":"LOS ANGELES","license_no":"00656371"},{"name":"Newmark of Southern California Inc","agent_count":157,"city":"LOS ANGELES","license_no":"01355491"},{"name":"LF Assoc, Inc.","agent_count":146,"city":"LOS ANGELES","license_no":"01430290"},{"name":"Erdelyi Real Estate, Inc.","agent_count":137,"city":"LOS ANGELES","license_no":"01920782"},{"name":"D/Aq Corporation","agent_count":111,"city":"LOS ANGELES","license_no":"01129558"},{"name":"Savills Inc.","agent_count":94,"city":"LOS ANGELES","license_no":"00388260"},{"name":"Dream Realty & Investments Inc","agent_count":91,"city":"LOS ANGELES","license_no":"02205941"},{"name":"Transwestern Property Company West","agent_count":81,"city":"LOS ANGELES","license_no":"01263636"}]}
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index 4b387b1..4d1d74d 100644
--- a/public/index.html
+++ b/public/index.html
@@ -99,7 +99,7 @@
   <nav><div class="wrap">
     <button class="ham" id="hamBtn" aria-label="Menu" aria-expanded="false">☰</button>
     <div class="navlinks" id="nav">
-      <a data-cat="all" class="on">Home</a><a data-cat="Sales">Sales</a><a data-cat="Leases">Leases</a><a data-cat="Financing">Financing</a><a data-cat="Development">Development</a><a data-cat="Multifamily">Multifamily</a><a data-cat="Industrial">Industrial</a><a data-cat="Retail">Retail</a><a href="/review">The REview</a><a href="#conf">Conferences</a>
+      <a data-cat="all" class="on">Home</a><a data-cat="Sales">Sales</a><a data-cat="Leases">Leases</a><a data-cat="Financing">Financing</a><a data-cat="Development">Development</a><a data-cat="Multifamily">Multifamily</a><a data-cat="Industrial">Industrial</a><a data-cat="Retail">Retail</a><a href="/review">The REview</a><a href="/la-commercial">LA Commercial</a><a href="#conf">Conferences</a>
     </div>
   </div></nav>
 
diff --git a/public/la-commercial.html b/public/la-commercial.html
new file mode 100644
index 0000000..235b4e4
--- /dev/null
+++ b/public/la-commercial.html
@@ -0,0 +1,97 @@
+<!doctype html>
+<html lang="en">
+<head>
+<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>LA Commercial Property Intelligence — RENTV.com</title>
+<meta name="description" content="Los Angeles commercial real estate property intelligence — marquee assets, recorded activity, and the region's largest brokerages. RENTV.com.">
+<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;600;800&display=swap" rel="stylesheet">
+<style>
+  :root{--red:#c8102e;--ink:#14171a;--sub:#5b636b;--line:#e4e7ea;--bg:#fff;--wash:#f5f6f8;--up:#0f8a4d;--dn:#c8102e;--sans:'Inter',system-ui,sans-serif;--serif:'Playfair Display',Georgia,serif}
+  *{box-sizing:border-box;margin:0;padding:0}
+  body{font-family:var(--sans);color:var(--ink);background:var(--wash);line-height:1.45}
+  a{color:inherit;text-decoration:none}
+  .wrap{max-width:1200px;margin:0 auto;padding:0 20px}
+  .util{background:var(--ink);color:#cfd4d9;font-size:12px}
+  .util .wrap{display:flex;justify-content:space-between;align-items:center;height:34px}
+  .util .live{display:inline-flex;align-items:center;gap:7px;letter-spacing:.05em;text-transform:uppercase;font-size:11px}
+  .util .dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}
+  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
+  .util .acts a{margin-left:14px;color:#cfd4d9}.util .acts a.sub{color:#fff;background:var(--red);padding:4px 12px;border-radius:3px;font-weight:700}
+  .mast{background:#fff;border-bottom:2px solid var(--ink);padding:16px 0 12px}
+  .mast .wrap{display:flex;align-items:center;justify-content:space-between}
+  .logo{font-family:var(--serif);font-weight:700;font-size:32px;letter-spacing:-1px}.logo span{color:var(--red)}
+  .logo small{display:block;font-size:11px;font-weight:600;letter-spacing:3px;color:var(--sub);text-transform:uppercase;margin-top:2px;font-family:var(--sans)}
+  nav{background:#fff;border-bottom:1px solid var(--line)}
+  nav .wrap{display:flex;gap:2px;align-items:center;height:46px;overflow-x:auto}
+  nav a{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:13px 8px;border-bottom:3px solid transparent;white-space:nowrap}
+  nav a:hover,nav a.on{color:var(--red);border-color:var(--red)}
+  .head{padding:30px 0 6px}
+  .head h1{font-family:var(--serif);font-size:34px;letter-spacing:-.5px}
+  .head p{color:var(--sub);font-size:14px;margin-top:4px;max-width:760px}
+  .head .fresh{font-size:12px;color:var(--sub);margin-top:8px}
+  section{margin:26px 0}
+  h2.sec{font-size:14px;text-transform:uppercase;letter-spacing:.08em;border-top:3px solid var(--ink);padding-top:10px;margin-bottom:14px}
+  .assets{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
+  .asset{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px}
+  .asset .tag{font-size:11px;color:var(--red);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
+  .asset .v{font-family:var(--serif);font-size:26px;font-weight:700;margin:4px 0 2px}
+  .asset .a{font-size:14px;font-weight:600}
+  .asset .brief{font-size:13px;color:var(--sub);margin-top:8px;line-height:1.5}
+  table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
+  th,td{text-align:left;padding:10px 14px;font-size:13px;border-bottom:1px solid var(--line)}
+  th{background:var(--wash);text-transform:uppercase;font-size:11px;letter-spacing:.05em;color:var(--sub)}
+  td.n{font-weight:600} td.v{font-family:var(--serif);font-weight:700}
+  .firms{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
+  .firm{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}
+  .firm .fn{font-size:14px;font-weight:700;line-height:1.25} .firm .fa{font-size:13px;color:var(--red);font-weight:700;margin-top:6px}
+  .note{font-size:12px;color:var(--sub);margin-top:8px}
+  footer{background:var(--ink);color:#8b939b;margin-top:40px;padding:26px 0;font-size:12px}
+  footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
+  @media(max-width:860px){.assets,.firms{grid-template-columns:1fr 1fr}}
+</style>
+</head>
+<body>
+  <div class="util"><div class="wrap">
+    <span class="live"><span class="dot"></span> LA commercial property data</span>
+    <div class="acts"><a href="/subscribe">Newsletters</a><a href="/advertise">Advertise</a><a class="sub" href="/subscribe">Subscribe</a></div>
+  </div></div>
+  <header class="mast"><div class="wrap">
+    <a class="logo" href="/">REN<span>TV</span>.com<small>Commercial Real Estate News</small></a>
+  </div></header>
+  <nav><div class="wrap">
+    <a href="/">Home</a><a href="/sales">Sales</a><a href="/leases">Leases</a><a href="/financing">Financing</a><a href="/development">Development</a><a href="/multifamily">Multifamily</a><a href="/industrial">Industrial</a><a href="/retail">Retail</a><a href="/markets">Markets</a><a href="/la-commercial" class="on">LA Commercial</a><a href="/review">The REview</a>
+  </div></nav>
+  <main class="wrap">
+    <div class="head">
+      <h1>LA Commercial Property Intelligence</h1>
+      <p>Los Angeles County commercial &amp; industrial property intelligence — marquee assets, recorded transfer activity, and the region's largest brokerages. Assessed values from the LA County Assessor; figures are tax assessments, not sale prices.</p>
+      <div class="fresh" id="fresh">Loading…</div>
+    </div>
+    <section><h2 class="sec">Marquee LA Commercial Assets</h2><div class="assets" id="marquee"></div>
+      <div class="note">Ranked by assessed value. Each summary is generated from public assessor facts only.</div></section>
+    <section><h2 class="sec">Recent Recorded Activity</h2><div id="recent"></div>
+      <div class="note">Most recently recorded commercial &amp; industrial transfers in LA County. Sale prices are not in the public roll.</div></section>
+    <section><h2 class="sec">Largest LA Brokerages</h2><div class="firms" id="firms"></div>
+      <div class="note">Los Angeles firms by licensed-agent count, from the California DRE current-licensee registry.</div></section>
+  </main>
+  <footer><div class="wrap"><span>© RENTV.com — Commercial Real Estate News</span><span>LA property data · assessor + CA DRE, refreshed daily</span></div></footer>
+<script>
+const $=s=>document.querySelector(s), usd=n=>n==null?'—':'$'+Number(n).toLocaleString();
+function dstr(d){return d?new Date(d).toLocaleDateString(undefined,{year:'numeric',month:'short',day:'numeric'}):'—';}
+(async()=>{
+  const d=await (await fetch('/api/la-commercial')).json();
+  $('#fresh').textContent=d.fetched_at?('Data as of '+new Date(d.fetched_at).toLocaleString()):'';
+  $('#marquee').innerHTML=(d.marquee||[]).slice(0,9).map(r=>`<div class="asset">
+    <div class="tag">${r.type_label||''}</div>
+    <div class="v">${usd(r.assessed_total)}</div>
+    <div class="a">${r.address||'—'}${r.city?', '+r.city:''}</div>
+    ${r.brief?`<div class="brief">${r.brief}</div>`:''}</div>`).join('');
+  $('#recent').innerHTML='<table><thead><tr><th>Recorded</th><th>Address</th><th>Type</th><th>Assessed</th></tr></thead><tbody>'+
+    (d.recent||[]).map(r=>`<tr><td>${dstr(r.recording_date)}</td><td class="n">${r.address||'—'}${r.city?', '+r.city:''}</td><td>${r.type_label||''}</td><td class="v">${usd(r.assessed_total)}</td></tr>`).join('')+'</tbody></table>';
+  $('#firms').innerHTML=(d.firms||[]).slice(0,12).map(f=>`<div class="firm">
+    <div class="fn">${f.name}</div><div class="fa">${(f.agent_count||0).toLocaleString()} agents</div></div>`).join('');
+})();
+</script>
+</body>
+</html>
diff --git a/public/markets.html b/public/markets.html
index 86e4786..ea5cb52 100644
--- a/public/markets.html
+++ b/public/markets.html
@@ -49,7 +49,7 @@
 <body>
   <div class="util"><div class="wrap">
     <span class="live"><span class="dot"></span> Live market data</span>
-    <div class="acts"><a href="/">Home</a><a href="/review">The REview</a><a class="sub" href="/#news">Subscribe</a></div>
+    <div class="acts"><a href="/">Home</a><a href="/review">The REview</a><a href="/la-commercial">LA Commercial</a><a class="sub" href="/#news">Subscribe</a></div>
   </div></div>
   <header class="mast"><div class="wrap">
     <a class="logo" href="/">REN<span>TV</span>.com<small>Commercial Real Estate News</small></a>
diff --git a/pull-la-commercial.mjs b/pull-la-commercial.mjs
new file mode 100644
index 0000000..8c0f593
--- /dev/null
+++ b/pull-la-commercial.mjs
@@ -0,0 +1,22 @@
+// Pull the LA commercial digest from the usrealestate backend into data/la-commercial.json.
+// Same pattern as the markets pull: an external fetch -> a JSON file RENTV serves.
+//   USRE_URL   (default local :9913; prod = https://usrealestate.agentabrams.com)
+//   USRE_AUTH  (default admin:DW2024! — usrealestate is basic-auth gated)
+import fs from 'node:fs';
+import path from 'node:path';
+
+const BASE = process.env.USRE_URL || 'http://127.0.0.1:9913';
+const AUTH = 'Basic ' + Buffer.from(process.env.USRE_AUTH || 'admin:DW2024!').toString('base64');
+const OUT = path.join(process.cwd(), 'data', 'la-commercial.json');
+
+try {
+  const res = await fetch(BASE + '/api/commercial/digest', { headers: { authorization: AUTH }, signal: AbortSignal.timeout(20000) });
+  if (!res.ok) throw new Error('HTTP ' + res.status);
+  const d = await res.json();
+  if (!d.marquee?.length) throw new Error('empty digest');
+  fs.writeFileSync(OUT, JSON.stringify(d));
+  console.log(`[la-commercial] wrote ${d.marquee.length} marquee, ${d.recent.length} recent, ${d.firms.length} firms`);
+} catch (e) {
+  console.error('[la-commercial] pull failed:', e.message);
+  process.exit(1);
+}
diff --git a/server.js b/server.js
index 2483aaf..87dde1e 100644
--- a/server.js
+++ b/server.js
@@ -50,6 +50,13 @@ app.get('/api/videos', (_q, r) => {
   r.json(base);
 });
 
+// ── LA Commercial: parcels/assessed-value/broker digest from the usrealestate backend
+//    (refreshed by `node pull-la-commercial.mjs`). Property-level LA CRE intelligence. ──
+app.get('/api/la-commercial', (_q, r) => {
+  r.set('Cache-Control', 'public, max-age=300');
+  r.json(readJSON('la-commercial.json', { marquee: [], recent: [], firms: [] }));
+});
+
 // ── Article reader proxy: fetch a single rentv.com story on demand + cache it. ──
 const artCache = new Map(); // id -> { at, data }
 const ART_TTL = 15 * 60 * 1000;

← b440e79 chore: lint (v.embed + originals cat guards), refactor, v0.2  ·  back to Rentv Website  ·  (newest)