← back to Model Arena
auto-save: 2026-07-23T18:22:59 (1 files) — data/landings/5a4b7a0e832e-claude-code.html
7ad4f5d96aad5d9357e342fef567de9826f311cd · 2026-07-23 18:23:04 -0700 · Steve Abrams
Files touched
A data/landings/5a4b7a0e832e-claude-code.html
Diff
commit 7ad4f5d96aad5d9357e342fef567de9826f311cd
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 23 18:23:04 2026 -0700
auto-save: 2026-07-23T18:22:59 (1 files) — data/landings/5a4b7a0e832e-claude-code.html
---
data/landings/5a4b7a0e832e-claude-code.html | 408 ++++++++++++++++++++++++++++
1 file changed, 408 insertions(+)
diff --git a/data/landings/5a4b7a0e832e-claude-code.html b/data/landings/5a4b7a0e832e-claude-code.html
new file mode 100644
index 0000000..ce4df5f
--- /dev/null
+++ b/data/landings/5a4b7a0e832e-claude-code.html
@@ -0,0 +1,408 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
+<title>Sublease.com — Market/Broker Leaderboard — built by Claude Opus (Max plan) · Model Arena</title>
+<style>*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0b0d10;color:#e6ecf2;font:14px/1.5 ui-monospace,Menlo,monospace}
+header{display:flex;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid #1c2430;background:#0e1116}
+header .k{color:#7cf;font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:12px;white-space:nowrap}
+header h1{font-size:15px;margin:0;font-weight:600}header .by{color:#8a93a0;font-size:12px;margin-left:auto;white-space:nowrap}
+.wrap{height:calc(100% - 51px)}iframe{width:100%;height:100%;border:0;background:#000;display:block}</style></head><body>
+<header><span class="k">⚔ Model Arena</span><h1>Sublease.com — Market/Broker Leaderboard</h1><span class="by">built by <b>Claude Opus (Max plan)</b></span></header>
+<div class="wrap"><iframe sandbox="allow-scripts allow-pointer-lock" srcdoc="<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Sublease.com — Broker / Source Leaderboard</title>
+<style>
+ :root{
+ --bg:#0f1419; --panel:#171e26; --panel2:#1d2731; --line:#2a3744;
+ --ink:#e8edf2; --muted:#8a99a8; --accent:#3ea6ff; --accent2:#00c2a8;
+ --bar:#3ea6ff; --bar2:#2b6ea3; --good:#00c2a8; --chip:#22303c;
+ --shadow:0 1px 0 rgba(255,255,255,.03),0 8px 24px rgba(0,0,0,.35);
+ font-synthesis-weight:none;
+ }
+ *{box-sizing:border-box}
+ html,body{margin:0;padding:0}
+ body{
+ background:var(--bg); color:var(--ink);
+ font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
+ font-size:14px; line-height:1.45; -webkit-font-smoothing:antialiased;
+ }
+ header{
+ padding:26px 28px 18px; border-bottom:1px solid var(--line);
+ background:linear-gradient(180deg,#141b23,#0f1419);
+ }
+ .brandrow{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
+ h1{margin:0;font-size:22px;font-weight:650;letter-spacing:-.4px}
+ .brand-badge{
+ font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
+ color:#0f1419;background:var(--accent2);padding:3px 9px;border-radius:4px;
+ }
+ .sub{color:var(--muted);font-size:13px;margin-top:6px}
+ .sub b{color:var(--ink);font-weight:650}
+ .wrap{max-width:1180px;margin:0 auto;padding:22px 28px 60px}
+ .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 26px}
+ .kpi{
+ background:var(--panel);border:1px solid var(--line);border-radius:10px;
+ padding:15px 16px;box-shadow:var(--shadow);
+ }
+ .kpi .n{font-size:24px;font-weight:680;letter-spacing:-.5px}
+ .kpi .l{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
+ .section-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}
+ .section-h h2{font-size:15px;font-weight:640;margin:0;letter-spacing:-.2px}
+ .section-h .hint{color:var(--muted);font-size:12px}
+ .grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;align-items:start}
+ @media(max-width:900px){.grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
+
+ /* chart */
+ .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 18px 10px;box-shadow:var(--shadow)}
+ .chart-row{display:flex;align-items:center;gap:12px;margin:0 0 10px;cursor:pointer}
+ .chart-row .name{width:150px;flex:none;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
+ .chart-row .track{flex:1;background:var(--panel2);border-radius:5px;height:22px;position:relative;overflow:hidden}
+ .chart-row .fill{
+ height:100%;border-radius:5px;background:linear-gradient(90deg,var(--bar),var(--bar2));
+ transition:filter .15s,transform .15s;
+ }
+ .chart-row:hover .fill{filter:brightness(1.18)}
+ .chart-row.active .fill{background:linear-gradient(90deg,var(--accent2),#0a7d6c)}
+ .chart-row .val{width:64px;flex:none;text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted)}
+ .chart-toggle{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:7px;overflow:hidden}
+ .chart-toggle button{background:none;border:none;color:var(--muted);padding:5px 11px;font-size:12px;cursor:pointer}
+ .chart-toggle button.on{background:var(--accent);color:#0f1419;font-weight:640}
+
+ /* table */
+ table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
+ thead th{
+ text-align:right;padding:9px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;
+ color:var(--muted);border-bottom:1px solid var(--line);cursor:pointer;user-select:none;white-space:nowrap;
+ }
+ thead th:first-child{text-align:left}
+ thead th:hover{color:var(--ink)}
+ thead th .arw{opacity:.55;font-size:10px}
+ tbody td{padding:10px 12px;text-align:right;border-bottom:1px solid #212c37;font-size:13px}
+ tbody td:first-child{text-align:left}
+ tbody tr{cursor:pointer}
+ tbody tr:hover{background:#1a232d}
+ tbody tr.active{background:#12312b;box-shadow:inset 3px 0 0 var(--accent2)}
+ .rank{color:var(--muted);width:26px;display:inline-block}
+ .srcname{font-weight:600}
+ .dom{color:var(--muted);font-size:11.5px;display:block;font-weight:400}
+ .barcell{position:relative}
+ .mini{position:absolute;left:12px;right:12px;bottom:5px;height:3px;background:#243440;border-radius:2px;overflow:hidden}
+ .mini i{display:block;height:100%;background:var(--accent);border-radius:2px}
+
+ /* listings panel */
+ #listings{margin-top:30px}
+ .listbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
+ .listbar .who{font-size:15px;font-weight:640}
+ .listbar .who span{color:var(--accent2)}
+ .clearbtn{background:var(--chip);border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:7px;cursor:pointer;font-size:12px}
+ .clearbtn:hover{color:var(--ink)}
+ .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
+ .lc{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 15px;box-shadow:var(--shadow)}
+ .lc .t{font-weight:620;font-size:14px;margin-bottom:4px;line-height:1.3}
+ .lc .loc{color:var(--muted);font-size:12px;margin-bottom:10px}
+ .lc .meta{display:flex;gap:8px;flex-wrap:wrap}
+ .tag{background:var(--chip);border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:11.5px;color:var(--ink)}
+ .tag.sf{color:var(--accent2);border-color:#1c4038}
+ .lc .src{margin-top:11px;padding-top:10px;border-top:1px solid #212c37;font-size:11.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}
+ .lc .src a{color:var(--accent);text-decoration:none}
+ .lc .src a:hover{text-decoration:underline}
+ .empty{color:var(--muted);padding:30px;text-align:center;border:1px dashed var(--line);border-radius:10px}
+ .foot{margin-top:40px;color:var(--muted);font-size:11.5px;border-top:1px solid var(--line);padding-top:16px;line-height:1.6}
+ .foot code{background:var(--panel2);padding:1px 5px;border-radius:3px;color:#b9c6d2}
+</style>
+</head>
+<body>
+<header>
+ <div class="brandrow">
+ <h1>Sublease.com — Broker / Source Leaderboard</h1>
+ <span class="brand-badge">CRE Intelligence</span>
+ </div>
+ <div class="sub">Aggregating <b id="totListings">0</b> listings across <b id="totSources">0</b> sources · <b id="totSF">0</b> SF of sublet space indexed · directory of <b>3,161</b> live sublease listings</div>
+</header>
+
+<div class="wrap">
+ <div class="kpis">
+ <div class="kpi"><div class="n" id="k1">0</div><div class="l">Sample Listings</div></div>
+ <div class="kpi"><div class="n" id="k2">0</div><div class="l">Distinct Sources</div></div>
+ <div class="kpi"><div class="n" id="k3">0</div><div class="l">Total Square Feet</div></div>
+ <div class="kpi"><div class="n" id="k4">0</div><div class="l">Top Market</div></div>
+ </div>
+
+ <div class="grid">
+ <div>
+ <div class="section-h">
+ <h2>Source Leaderboard</h2>
+ <span class="hint">click a row to filter listings ↓</span>
+ </div>
+ <div class="card" style="padding:4px 6px 2px">
+ <table id="lbTable">
+ <thead>
+ <tr>
+ <th data-k="name">Source <span class="arw"></span></th>
+ <th data-k="count">Listings <span class="arw">▼</span></th>
+ <th data-k="sf">Total SF <span class="arw"></span></th>
+ <th data-k="avg">Avg SF <span class="arw"></span></th>
+ <th data-k="cities">Markets <span class="arw"></span></th>
+ </tr>
+ </thead>
+ <tbody id="lbBody"></tbody>
+ </table>
+ </div>
+ </div>
+
+ <div>
+ <div class="section-h">
+ <h2>Top Markets by <span id="chTitle">Listing Count</span></h2>
+ <div class="chart-toggle" id="chToggle">
+ <button data-m="count" class="on">Count</button>
+ <button data-m="sf">Total SF</button>
+ </div>
+ </div>
+ <div class="card" id="chart"></div>
+ </div>
+ </div>
+
+ <div id="listings">
+ <div class="listbar">
+ <div class="who" id="listWho">All listings</div>
+ <button class="clearbtn" id="clearBtn" style="display:none">✕ Clear filter</button>
+ </div>
+ <div class="cards" id="cards"></div>
+ </div>
+
+ <div class="foot">
+ Source is derived from each listing's <code>source_url</code> domain. The first 8 records are the verbatim
+ real sample from sublease.com (fields <code>null</code> — no data captured); the remaining records are synthesized
+ in the identical schema across varied U.S. markets to make the leaderboard meaningful.
+ Self-contained · no external libraries · no network requests.
+ </div>
+</div>
+
+<script>
+/* ---- 1) The REAL sublease.com sample, embedded verbatim ---- */
+const REAL_SAMPLE = [{"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}, {"title": null, "city": null, "state": null, "space_type": null, "size_sf": null, "term": null, "source_url": null}];
+
+/* ---- 2) ~20 synthesized listings in the SAME shape (varied cities/sources) ---- */
+const SYNTH = [
+ {title:"Sublet — Full Floor, Class A Tower", city:"New York", state:"NY", space_type:"Office", size_sf:24500, term:"36 mo", source_url:"https://www.cbre.com/properties/389201"},
+ {title:"Creative Loft Sublease, Flatiron", city:"New York", state:"NY", space_type:"Creative/Office", size_sf:8200, term:"24 mo", source_url:"https://www.jll.com/en/listings/nyc-flatiron-8200"},
+ {title:"Partial Floor Available Immediately", city:"New York", state:"NY", space_type:"Office", size_sf:6100, term:"18 mo", source_url:"https://www.cushmanwakefield.com/listings/nyc-6100"},
+ {title:"Plug-and-Play Tech Space, SoMa", city:"San Francisco", state:"CA", space_type:"Office", size_sf:15300, term:"30 mo", source_url:"https://www.jll.com/en/listings/sf-soma-15300"},
+ {title:"Furnished Sublease, Financial District", city:"San Francisco", state:"CA", space_type:"Office", size_sf:9800, term:"24 mo", source_url:"https://www.cbre.com/properties/sf-fd-9800"},
+ {title:"R&D / Lab Sublet, Mission Bay", city:"San Francisco", state:"CA", space_type:"Lab/R&D", size_sf:22000, term:"48 mo", source_url:"https://www.newmark.com/listings/sf-missionbay"},
+ {title:"Loop Office Sublease, Move-In Ready", city:"Chicago", state:"IL", space_type:"Office", size_sf:11750, term:"36 mo", source_url:"https://www.cushmanwakefield.com/listings/chi-loop"},
+ {title:"West Loop Creative Sublet", city:"Chicago", state:"IL", space_type:"Creative/Office", size_sf:5400, term:"12 mo", source_url:"https://www.colliers.com/en-us/listings/chi-westloop"},
+ {title:"Downtown High-Rise Sublease", city:"Austin", state:"TX", space_type:"Office", size_sf:13200, term:"30 mo", source_url:"https://www.cbre.com/properties/atx-9921"},
+ {title:"Domain District Office Sublet", city:"Austin", state:"TX", space_type:"Office", size_sf:7600, term:"24 mo", source_url:"https://www.avisonyoung.com/listings/atx-domain"},
+ {title:"Warehouse / Flex Sublease", city:"Dallas", state:"TX", space_type:"Industrial", size_sf:41000, term:"60 mo", source_url:"https://www.jll.com/en/listings/dfw-flex-41000"},
+ {title:"Uptown Sublease, Furnished", city:"Dallas", state:"TX", space_type:"Office", size_sf:9200, term:"18 mo", source_url:"https://www.transwestern.com/listings/dfw-uptown"},
+ {title:"Class A Office Sublet, Buckhead", city:"Atlanta", state:"GA", space_type:"Office", size_sf:16800, term:"36 mo", source_url:"https://www.colliers.com/en-us/listings/atl-buckhead"},
+ {title:"Midtown Sublease Opportunity", city:"Atlanta", state:"GA", space_type:"Office", size_sf:5900, term:"24 mo", source_url:"https://www.newmark.com/listings/atl-midtown"},
+ {title:"Seaport Office Sublet", city:"Boston", state:"MA", space_type:"Office", size_sf:12400, term:"30 mo", source_url:"https://www.cbre.com/properties/bos-seaport"},
+ {title:"Cambridge Lab Sublease", city:"Boston", state:"MA", space_type:"Lab/R&D", size_sf:18600, term:"48 mo", source_url:"https://www.cushmanwakefield.com/listings/bos-cambridge"},
+ {title:"Century City Sublet, Partial Floor", city:"Los Angeles", state:"CA", space_type:"Office", size_sf:10200, term:"24 mo", source_url:"https://www.jll.com/en/listings/la-centurycity"},
+ {title:"Culver City Creative Space", city:"Los Angeles", state:"CA", space_type:"Creative/Office", size_sf:7300, term:"18 mo", source_url:"https://www.savills.us/listings/la-culvercity"},
+ {title:"Denver Tech Center Sublease", city:"Denver", state:"CO", space_type:"Office", size_sf:8800, term:"24 mo", source_url:"https://www.avisonyoung.com/listings/den-dtc"},
+ {title:"South Lake Union Sublet", city:"Seattle", state:"WA", space_type:"Office", size_sf:14100, term:"36 mo", source_url:"https://www.colliers.com/en-us/listings/sea-slu"},
+ {title:"Retail Sublease, Ballard", city:"Seattle", state:"WA", space_type:"Retail", size_sf:3200, term:"12 mo", source_url:"https://www.savills.us/listings/sea-ballard"},
+ {title:"Brickell Office Sublet", city:"Miami", state:"FL", space_type:"Office", size_sf:9600, term:"30 mo", source_url:"https://www.transwestern.com/listings/mia-brickell"}
+];
+
+const DATA = REAL_SAMPLE.concat(SYNTH);
+
+/* ---- helpers ---- */
+const fmt = n => n.toLocaleString('en-US');
+function domainOf(url){
+ if(!url) return null;
+ try{ let h=new URL(url).hostname.replace(/^www\./,''); return h; }catch(e){ return null; }
+}
+const SOURCE_NAMES = {
+ 'cbre.com':'CBRE','jll.com':'JLL','cushmanwakefield.com':'Cushman & Wakefield',
+ 'newmark.com':'Newmark','colliers.com':'Colliers','avisonyoung.com':'Avison Young',
+ 'transwestern.com':'Transwestern','savills.us':'Savills'
+};
+function sourceName(dom){ return SOURCE_NAMES[dom] || (dom ? dom : 'Unattributed'); }
+
+/* ---- aggregate by source ---- */
+function aggregate(){
+ const m = new Map();
+ DATA.forEach(l=>{
+ const dom = domainOf(l.source_url);
+ const key = dom || '__none__';
+ if(!m.has(key)) m.set(key,{dom:dom, name:sourceName(dom), count:0, sf:0, cities:new Set()});
+ const s = m.get(key);
+ s.count++;
+ s.sf += (l.size_sf||0);
+ if(l.city) s.cities.add(l.city+', '+l.state);
+ });
+ return [...m.values()].map(s=>({
+ dom:s.dom, name:s.name, count:s.count, sf:s.sf,
+ avg: s.count ? Math.round(s.sf/s.count) : 0,
+ cities: s.cities.size
+ }));
+}
+let SOURCES = aggregate();
+
+/* ---- markets (by city) for chart ---- */
+function markets(){
+ const m = new Map();
+ DATA.forEach(l=>{
+ if(!l.city) return;
+ const k = l.city+', '+l.state;
+ if(!m.has(k)) m.set(k,{name:k,count:0,sf:0});
+ const x=m.get(k); x.count++; x.sf+=(l.size_sf||0);
+ });
+ return [...m.values()];
+}
+const MARKETS = markets();
+
+/* ---- KPIs ---- */
+const totSF = DATA.reduce((a,l)=>a+(l.size_sf||0),0);
+const topMkt = [...MARKETS].sort((a,b)=>b.count-a.count)[0];
+document.getElementById('totListings').textContent = fmt(DATA.length);
+document.getElementById('totSources').textContent = SOURCES.length;
+document.getElementById('totSF').textContent = fmt(totSF);
+document.getElementById('k1').textContent = fmt(DATA.length);
+document.getElementById('k2').textContent = SOURCES.length;
+document.getElementById('k3').textContent = fmt(totSF);
+document.getElementById('k4').textContent = topMkt ? topMkt.name.split(',')[0] : '—';
+
+/* ---- state ---- */
+let sortKey='count', sortDir=-1, activeSource=null;
+
+/* ---- render leaderboard table ---- */
+function renderTable(){
+ const rows=[...SOURCES].sort((a,b)=>{
+ let av=a[sortKey], bv=b[sortKey];
+ if(typeof av==='string'){ return sortDir*av.localeCompare(bv); }
+ return sortDir*(av-bv);
+ });
+ const maxCount=Math.max(...rows.map(r=>r.count));
+ const body=document.getElementById('lbBody');
+ body.innerHTML='';
+ rows.forEach((r,i)=>{
+ const tr=document.createElement('tr');
+ const key=r.dom||'__none__';
+ if(activeSource===key) tr.className='active';
+ tr.innerHTML=`
+ <td class="barcell">
+ <span class="rank">${i+1}</span>
+ <span class="srcname">${r.name}</span>
+ <span class="dom">${r.dom||'no source url'}</span>
+ <span class="mini"><i style="width:${(r.count/maxCount*100).toFixed(1)}%"></i></span>
+ </td>
+ <td>${fmt(r.count)}</td>
+ <td>${fmt(r.sf)}</td>
+ <td>${fmt(r.avg)}</td>
+ <td>${r.cities}</td>`;
+ tr.onclick=()=>toggleSource(key,r.name);
+ body.appendChild(tr);
+ });
+ document.querySelectorAll('#lbTable thead th').forEach(th=>{
+ const k=th.dataset.k, a=th.querySelector('.arw');
+ a.textContent = (k===sortKey) ? (sortDir<0?'▼':'▲') : '';
+ });
+}
+document.querySelectorAll('#lbTable thead th').forEach(th=>{
+ th.onclick=()=>{
+ const k=th.dataset.k;
+ if(k===sortKey) sortDir*=-1;
+ else { sortKey=k; sortDir=(k==='name')?1:-1; }
+ renderTable();
+ };
+});
+
+/* ---- chart ---- */
+let chartMode='count';
+function renderChart(){
+ const rows=[...MARKETS].sort((a,b)=>b[chartMode]-a[chartMode]).slice(0,8);
+ const max=Math.max(...rows.map(r=>r[chartMode]),1);
+ const c=document.getElementById('chart');
+ c.innerHTML='';
+ rows.forEach(r=>{
+ const div=document.createElement('div');
+ div.className='chart-row';
+ const val = chartMode==='sf' ? fmt(r.sf) : r.count;
+ div.innerHTML=`
+ <span class="name" title="${r.name}">${r.name}</span>
+ <span class="track"><span class="fill" style="width:${(r[chartMode]/max*100).toFixed(1)}%"></span></span>
+ <span class="val">${val}</span>`;
+ div.onclick=()=>filterByCity(r.name);
+ c.appendChild(div);
+ });
+ document.getElementById('chTitle').textContent = chartMode==='sf'?'Total SF':'Listing Count';
+}
+document.querySelectorAll('#chToggle button').forEach(b=>{
+ b.onclick=()=>{
+ document.querySelectorAll('#chToggle button').forEach(x=>x.classList.remove('on'));
+ b.classList.add('on'); chartMode=b.dataset.m; renderChart();
+ };
+});
+
+/* ---- listings ---- */
+let cityFilter=null;
+function toggleSource(key,name){
+ activeSource = (activeSource===key)?null:key;
+ cityFilter=null;
+ renderTable(); renderListings();
+}
+function filterByCity(city){
+ cityFilter = (cityFilter===city)?null:city;
+ activeSource=null;
+ renderTable(); renderListings();
+}
+function renderListings(){
+ let list=DATA, whoTxt='All listings', showClear=false;
+ if(activeSource){
+ list=DATA.filter(l=>(domainOf(l.source_url)||'__none__')===activeSource);
+ whoTxt=`Listings from <span>${sourceName(activeSource==='__none__'?null:activeSource)}</span>`;
+ showClear=true;
+ } else if(cityFilter){
+ list=DATA.filter(l=>l.city && (l.city+', '+l.state)===cityFilter);
+ whoTxt=`Listings in <span>${cityFilter}</span>`;
+ showClear=true;
+ }
+ document.getElementById('listWho').innerHTML = whoTxt + ` &nbsp;·&nbsp; <span style="color:var(--muted);font-weight:400">${list.length}</span>`;
+ document.getElementById('clearBtn').style.display = showClear?'inline-block':'none';
+
+ const cards=document.getElementById('cards');
+ cards.innerHTML='';
+ if(!list.length){
+ cards.innerHTML='<div class="empty" style="grid-column:1/-1">No listings for this filter.</div>';
+ return;
+ }
+ list.forEach(l=>{
+ const title = l.title || '<span style="color:var(--muted)">Untitled listing — no data</span>';
+ const loc = (l.city? (l.city+', '+l.state) : '<span style="color:var(--muted)">Location unavailable</span>');
+ const dom = domainOf(l.source_url);
+ const div=document.createElement('div');
+ div.className='lc';
+ let tags='';
+ if(l.space_type) tags+=`<span class="tag">${l.space_type}</span>`;
+ if(l.size_sf) tags+=`<span class="tag sf">${fmt(l.size_sf)} SF</span>`;
+ if(l.term) tags+=`<span class="tag">${l.term}</span>`;
+ if(!tags) tags='<span class="tag" style="color:var(--muted)">no specs</span>';
+ div.innerHTML=`
+ <div class="t">${title}</div>
+ <div class="loc">${loc}</div>
+ <div class="meta">${tags}</div>
+ <div class="src">
+ <span>${sourceName(dom)}</span>
+ ${l.source_url?`<a href="${l.source_url}" target="_blank" rel="noopener noreferrer">view ↗</a>`:'<span style="color:var(--muted)">—</span>'}
+ </div>`;
+ cards.appendChild(div);
+ });
+}
+document.getElementById('clearBtn').onclick=()=>{
+ activeSource=null; cityFilter=null; renderTable(); renderListings();
+};
+
+/* ---- init ---- */
+renderTable();
+renderChart();
+renderListings();
+</script>
+</body>
+</html>" title="Sublease.com — Market/Broker Leaderboard"></iframe></div>
+</body></html>
\ No newline at end of file
← 6849101 auto-save: 2026-07-23T15:52:21 (4 files) — data/landings/480
·
back to Model Arena
·
auto-save: 2026-07-24T13:58:01 (2 files) — data/challenges.j 5754afa →