Deal Registry
Map Signal Stage
(function(){
if(!window.vtState){
window.vtState={ tab:"all", search:"", sector:"", city:"", signal:"", sort:"score-desc" };
}
const s=window.vtState;
const search=document.getElementById("vtSearchInput"); const sector=document.getElementById("vtSectorFilter"); const city=document.getElementById("vtCityFilter"); const signal=document.getElementById("vtSignalFilter"); const sort=document.getElementById("vtSortFilter"); const tabs=[...document.querySelectorAll("#vtTabs .vt-tab")];
function triggerRefresh(){
if(window.vtRenderAll){
window.vtRenderAll();
}
}
search.addEventListener("input",e=>{
s.search=e.target.value.trim();
triggerRefresh();
});
sector.addEventListener("change",e=>{
s.sector=e.target.value;
triggerRefresh();
});
city.addEventListener("change",e=>{
s.city=e.target.value;
triggerRefresh();
});
signal.addEventListener("change",e=>{
s.signal=e.target.value;
triggerRefresh();
});
sort.addEventListener("change",e=>{
s.sort=e.target.value;
triggerRefresh();
});
tabs.forEach(tab=>{
tab.addEventListener("click",()=>{
tabs.forEach(t=>t.classList.remove("active"));
tab.classList.add("active");
s.tab=tab.dataset.tab;
triggerRefresh();
});
});
})();
(function(){
if(!window.vtMapInitialized){
window.vtMapInitialized=true;
const script=document.createElement("script"); script.src="https://api.mapbox.com/mapbox-gl-js/v2.16.0/mapbox-gl.js"; document.head.appendChild(script);
const css=document.createElement("link"); css.rel="stylesheet"; css.href="https://api.mapbox.com/mapbox-gl-js/v2.16.0/mapbox-gl.css"; document.head.appendChild(css);
script.onload=initMap;
}
function initMap(){
mapboxgl.accessToken="pk.villaterras.public.demo.token";
const map=new mapboxgl.Map({
container:"vtDealMap", style:"mapbox://styles/mapbox/dark-v11", center:[-117.33,34.06], zoom:9
});
window.vtMap=map;
map.addControl(new mapboxgl.NavigationControl());
map.on("load",function(){
if(window.vtDeals){
renderDeals(window.vtDeals);
}
});
}
function renderDeals(data){
if(!window.vtMap)return;
data.forEach(function(deal){
if(!deal.latitude || !deal.longitude) return;
const el=document.createElement("div");
el.style.width="14px"; el.style.height="14px"; el.style.borderRadius="50%"; el.style.background="#38bdf8"; el.style.boxShadow="0 0 10px rgba(56,189,248,.6)";
const popupHTML= '
'+ 'Sector: '+deal.sector+'
'+ 'Price: $'+deal.price+'
'+ 'Seller Score: '+deal.sellerScore+ ''+deal.dealType+''+ '
';
const popup=new mapboxgl.Popup({offset:14}).setHTML(popupHTML);
const marker=new mapboxgl.Marker(el) .setLngLat([deal.longitude,deal.latitude]) .setPopup(popup) .addTo(window.vtMap);
el.addEventListener("click",function(){
if(window.vtOpenDealPanel){
window.vtOpenDealPanel(deal);
}
});
});
}
window.vtMapRenderDeals=renderDeals;
})();
(function(){
function renderRows(data){
const container=document.getElementById("vtDealRows");
if(!container)return;
container.innerHTML="";
if(!data || !data.length){
container.innerHTML='
';
return;
}
data.forEach(function(deal){
const row=document.createElement("div");
row.className="vt-row";
row.innerHTML=
'
'+ '
'+ '
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
';
row.addEventListener("click",function(){
if(window.vtOpenDealPanel){
window.vtOpenDealPanel(deal);
}
});
container.appendChild(row);
});
}
window.vtRenderRegistry=renderRows;
window.vtRenderAll=function(){
if(!window.vtDeals)return;
let data=[...window.vtDeals];
const s=window.vtState || {};
if(s.search){
const q=s.search.toLowerCase();
data=data.filter(d=>
(d.address||"").toLowerCase().includes(q) ||
(d.owner||"").toLowerCase().includes(q) ||
(d.apn||"").toLowerCase().includes(q) ||
(d.broker||"").toLowerCase().includes(q)
);
}
if(s.sector){
data=data.filter(d=>d.sector===s.sector);
}
if(s.city){
data=data.filter(d=>d.city===s.city);
}
if(s.signal){
data=data.filter(d=>d.signal===s.signal);
}
if(s.tab==="high"){
data=data.filter(d=>d.sellerScore>=85);
}
if(s.tab==="industrial"){
data=data.filter(d=>d.sector==="Industrial");
}
if(s.tab==="medical"){
data=data.filter(d=>d.sector==="Medical Office");
}
if(s.tab==="development"){
data=data.filter(d=>d.signal==="Development");
}
if(s.tab==="distress"){
data=data.filter(d=>d.signal==="Distress");
}
switch(s.sort){
case "price-desc":
data.sort((a,b)=>b.price-a.price); break;
case "sf-desc":
data.sort((a,b)=>b.size-a.size); break;
case "city-asc":
data.sort((a,b)=>a.city.localeCompare(b.city)); break;
default:
data.sort((a,b)=>b.sellerScore-a.sellerScore);
}
renderRows(data);
if(window.vtMapRenderDeals){
window.vtMapRenderDeals(data);
}
}
})();
Parcel Intelligence
Ownership
Transaction Intelligence
Seller Probability
(function(){
function populate(deal){
const panel=document.getElementById("vtDealPanel");
panel.classList.add("active");
document.getElementById("vtDealAddress").textContent=deal.address; document.getElementById("vtDealCity").textContent=deal.city;
document.getElementById("vtAPN").textContent=deal.apn; document.getElementById("vtSector").textContent=deal.sector; document.getElementById("vtSize").textContent=deal.size+" SF"; document.getElementById("vtLand").textContent=deal.land || "—"; document.getElementById("vtZoning").textContent=deal.zoning || "—"; document.getElementById("vtYear").textContent=deal.year || "—";
document.getElementById("vtOwner").textContent=deal.owner; document.getElementById("vtEntity").textContent=deal.entity || deal.owner; document.getElementById("vtHold").textContent=deal.hold || "—"; document.getElementById("vtLoan").textContent=deal.loan || "—"; document.getElementById("vtEquity").textContent=deal.equity || "—";
document.getElementById("vtDealType").textContent=deal.dealType; document.getElementById("vtPrice").textContent="$"+deal.price; document.getElementById("vtBroker").textContent=deal.broker; document.getElementById("vtSignal").innerHTML=''+deal.signal+'';
document.getElementById("vtScore").textContent=deal.sellerScore;
document.getElementById("vtScoreAge").textContent=deal.scoreAge || "—"; document.getElementById("vtScoreLoan").textContent=deal.scoreLoan || "—"; document.getElementById("vtScoreMarket").textContent=deal.scoreMarket || "—";
}
window.vtOpenDealPanel=populate;
})();
window.vtDeals = [
{ address:"2075 E Rincon St", city:"Corona", apn:"114-210-031", sector:"Industrial", dealType:"Sale Listing", price:18250000, size:84500, land:"4.2 AC", zoning:"M-1", year:1986, owner:"ANC Investments LLC", entity:"ANC Investments LLC", hold:"18 yrs", loan:"Matures 2027", equity:"~62%", broker:"Lee & Associates", signal:"Listing", sellerScore:91, scoreAge:"Strong", scoreLoan:"Medium", scoreMarket:"High", latitude:33.8746, longitude:-117.5307 },
{ address:"1585 S Dupont Ave", city:"Ontario", apn:"104-021-015", sector:"Industrial", dealType:"Sale", price:24700000, size:110200, land:"5.1 AC", zoning:"Industrial", year:1999, owner:"Prologis", entity:"Prologis LP", hold:"9 yrs", loan:"None Recorded", equity:"~100%", broker:"DAUM Commercial", signal:"Sale", sellerScore:77, scoreAge:"Medium", scoreLoan:"Low", scoreMarket:"Medium", latitude:34.0474, longitude:-117.5871 },
{ address:"4200 Latham St", city:"Riverside", apn:"217-091-006", sector:"Warehouse", dealType:"Lease Listing", price:0, size:142000, land:"7.4 AC", zoning:"Industrial", year:2003, owner:"Blackstone REIT", entity:"BREIT Holdings", hold:"6 yrs", loan:"2028", equity:"~40%", broker:"CBRE", signal:"Lease", sellerScore:63, scoreAge:"Low", scoreLoan:"Medium", scoreMarket:"Medium", latitude:33.9672, longitude:-117.3608 },
{ address:"10720 Jersey Blvd", city:"Rancho Cucamonga", apn:"0209-451-18", sector:"Industrial", dealType:"Sale Listing", price:36800000, size:175000, land:"8.5 AC", zoning:"Industrial", year:2015, owner:"Rexford Industrial Realty", entity:"Rexford Industrial LP", hold:"5 yrs", loan:"2030", equity:"~48%", broker:"Newmark", signal:"Listing", sellerScore:74, scoreAge:"Low", scoreLoan:"Low", scoreMarket:"Medium", latitude:34.0965, longitude:-117.5748 },
{ address:"16300 Roscoe Blvd", city:"Westminster", apn:"142-331-021", sector:"Medical Office", dealType:"Sale", price:9200000, size:28500, land:"1.7 AC", zoning:"Commercial", year:1994, owner:"Pacific Medical Holdings", entity:"Pacific Medical Holdings LLC", hold:"21 yrs", loan:"Paid Off", equity:"~100%", broker:"Marcus & Millichap", signal:"Sale", sellerScore:88, scoreAge:"Strong", scoreLoan:"High", scoreMarket:"Medium", latitude:33.7466, longitude:-118.0029 },
{ address:"1900 S State College Blvd", city:"Anaheim", apn:"082-442-003", sector:"Retail", dealType:"Sale Listing", price:14800000, size:42000, land:"3.3 AC", zoning:"Commercial", year:1989, owner:"Private Investor", entity:"State College Retail LLC", hold:"14 yrs", loan:"2026", equity:"~55%", broker:"JLL", signal:"Listing", sellerScore:82, scoreAge:"Medium", scoreLoan:"High", scoreMarket:"Medium", latitude:33.8084, longitude:-117.8897 },
{ address:"2450 E Wardlow Rd", city:"Long Beach", apn:"7212-009-018", sector:"Industrial", dealType:"Development", price:0, size:0, land:"11.2 AC", zoning:"Industrial", year:null, owner:"City of Long Beach", entity:"City of Long Beach", hold:"Public", loan:"None", equity:"—", broker:"Economic Development", signal:"Development", sellerScore:70, scoreAge:"Medium", scoreLoan:"Low", scoreMarket:"Medium", latitude:33.8178, longitude:-118.1611 },
{ address:"1610 Iowa Ave", city:"Riverside", apn:"223-210-020", sector:"Industrial", dealType:"Distress Monitoring", price:0, size:92000, land:"4.8 AC", zoning:"Industrial", year:1981, owner:"Iowa Industrial LLC", entity:"Iowa Industrial LLC", hold:"22 yrs", loan:"Default Notice Filed", equity:"Unknown", broker:"Unknown", signal:"Distress", sellerScore:93, scoreAge:"Strong", scoreLoan:"High", scoreMarket:"Medium", latitude:33.9782, longitude:-117.3424 }
];
(function(){
/* ----------------------------------------------------------- CORE GLOBAL PIPELINE OBJECT ----------------------------------------------------------- */
window.vtIngestion = {
brokerFeeds:[], recorderTransactions:[], assessorParcels:[], loanMaturities:[], developmentPermits:[], institutionalBuyers:[], portfolioClusters:[]
};
/* ----------------------------------------------------------- BROKER FEED INGESTION Simulated brokerage listing sources ----------------------------------------------------------- */
window.vtIngestion.brokerFeeds = [
{source:"CBRE Feed"}, {source:"JLL Feed"}, {source:"Newmark Feed"}, {source:"DAUM Feed"}, {source:"Marcus & Millichap Feed"}, {source:"Lee & Associates Feed"}, {source:"Colliers Feed"}, {source:"Kidder Mathews Feed"}, {source:"Cushman Wakefield Feed"}, {source:"Voit Real Estate Feed"}
];
/* ----------------------------------------------------------- COUNTY RECORDER INGESTION Transaction monitoring ----------------------------------------------------------- */
window.vtIngestion.recorderTransactions = [
{county:"Riverside"}, {county:"San Bernardino"}, {county:"Orange"}, {county:"Los Angeles"}
];
/* ----------------------------------------------------------- ASSESSOR PARCEL SYSTEM Parcel intelligence backbone ----------------------------------------------------------- */
window.vtIngestion.assessorParcels = {
parcelFields:[
"apn", "address", "city", "owner", "mailingAddress", "landSize", "buildingSize", "yearBuilt", "zoning", "propertyType"
]
};
/* ----------------------------------------------------------- LOAN MATURITY SIGNAL DATABASE Debt pressure tracking ----------------------------------------------------------- */
window.vtIngestion.loanMaturities = {
fields:[
"lender", "loanBalance", "loanOriginationDate", "loanMaturityDate", "interestRate", "loanType"
]
};
/* ----------------------------------------------------------- DEVELOPMENT PIPELINE MONITOR Tracks new construction projects ----------------------------------------------------------- */
window.vtIngestion.developmentPermits = {
fields:[
"permitNumber", "projectName", "developer", "siteAddress", "parcelCount", "projectType", "sqftProposed", "status"
]
};
/* ----------------------------------------------------------- INSTITUTIONAL BUYER REGISTRY Tracks acquisition patterns ----------------------------------------------------------- */
window.vtIngestion.institutionalBuyers = [
"Blackstone", "Prologis", "Rexford Industrial", "Link Logistics", "Bridge Industrial", "Trammell Crow", "Panattoni Development", "Hines", "Brookfield", "GLP Capital"
];
/* ----------------------------------------------------------- PORTFOLIO CLUSTER DETECTION Used to identify assembly opportunities ----------------------------------------------------------- */
window.vtIngestion.portfolioClusters = {
clusterRadiusMeters:800,
minimumParcelCount:3,
clusterSignals:[ "industrialAssembly", "logisticsHub", "medicalCampus", "retailRedevelopment" ]
};
/* ----------------------------------------------------------- DAILY INGESTION REBUILD Combines all feeds into vtDeals dataset ----------------------------------------------------------- */
window.vtRunDailyIngestion = function(){
console.log("VillaTerras ingestion engine starting");
let combinedDeals = [];
if(window.vtDeals){
combinedDeals = combinedDeals.concat(window.vtDeals);
}
/* future ingestion sources would append here */
window.vtDeals = combinedDeals;
if(window.vtRenderAll){
window.vtRenderAll();
}
};
/* ----------------------------------------------------------- AUTO RUN INGESTION ----------------------------------------------------------- */
setTimeout(function(){
if(window.vtRunDailyIngestion){
window.vtRunDailyIngestion();
}
},1200);
})();
(function(){
/* ----------------------------------------------------- MODEL WEIGHTS ----------------------------------------------------- */
const SCORE_WEIGHTS = {
ownershipAge: 20, loanMaturity: 25, marketTiming: 10, distress: 20, leaseRollover: 8, brokerSignal: 7, portfolioAssembly: 5, institutionalExit: 5
};
/* ----------------------------------------------------- SIGNAL EVALUATORS ----------------------------------------------------- */
function scoreOwnershipAge(holdYears){
if(!holdYears) return 5;
if(holdYears >= 20) return 20; if(holdYears >= 15) return 16; if(holdYears >= 10) return 12; if(holdYears >= 5) return 8;
return 3;
}
function scoreLoanMaturity(maturityYear){
if(!maturityYear) return 5;
const currentYear = new Date().getFullYear();
const yearsRemaining = maturityYear - currentYear;
if(yearsRemaining <= 0) return 25; if(yearsRemaining <= 1) return 20; if(yearsRemaining <= 2) return 15; if(yearsRemaining <= 3) return 10; return 5; } function scoreMarketTiming(yearBuilt){ if(!yearBuilt) return 5; const age = new Date().getFullYear() - yearBuilt; if(age >= 40) return 10; if(age >= 30) return 8; if(age >= 20) return 6;
return 3;
}
function scoreDistress(signal){
if(!signal) return 0;
if(signal === "Distress") return 20; if(signal === "Default") return 20;
return 0;
}
function scoreBrokerSignal(type){
if(!type) return 0;
if(type === "Sale Listing") return 7; if(type === "Lease Listing") return 3;
return 0;
}
function scorePortfolioCluster(clusterFlag){
if(clusterFlag) return 5;
return 0;
}
function scoreInstitutionalExit(owner){
const institutional = [
"Blackstone", "Prologis", "Link Logistics", "Rexford Industrial", "Brookfield", "Hines"
];
if(!owner) return 0;
for(let i=0;i
return score;
}
/* ----------------------------------------------------- DATASET ENRICHMENT ----------------------------------------------------- */
window.vtApplySellerModel = function(){
if(!window.vtDeals) return;
window.vtDeals = window.vtDeals.map(function(property){
const enriched = Object.assign({},property);
enriched.sellerScore = calculateSellerScore({
holdYears: parseHoldYears(property.hold), loanMaturityYear: parseLoanYear(property.loan), year: property.year, signal: property.signal, dealType: property.dealType, clusterCandidate: property.clusterCandidate, owner: property.owner
});
return enriched;
});
};
/* ----------------------------------------------------- HELPER PARSERS ----------------------------------------------------- */
function parseHoldYears(text){
if(!text) return null;
const match = text.match(/(\d+)/);
if(match) return parseInt(match[1]);
return null;
}
function parseLoanYear(text){
if(!text) return null;
const match = text.match(/(\d{4})/);
if(match) return parseInt(match[1]);
return null;
}
/* ----------------------------------------------------- AUTO APPLY MODEL ----------------------------------------------------- */
setTimeout(function(){
if(window.vtApplySellerModel){
vtApplySellerModel();
}
},1500);
})();
Broker Relationship Intelligence
Priority Contact Targets
Development Pipeline
Distress Monitor
Market Signals
(function(){
function renderMarketPanels(){
if(!window.vtDeals) return;
const devPanel=document.getElementById("vtDevelopmentPipeline"); const distressPanel=document.getElementById("vtDistressMonitor"); const marketPanel=document.getElementById("vtMarketSignals");
if(!devPanel || !distressPanel || !marketPanel) return;
let devHTML=""; let distressHTML=""; let marketHTML="";
window.vtDeals.forEach(function(deal){
/* DEVELOPMENT */
if(deal.signal === "Development"){
devHTML += '
'+ '
'+ '
'+ '
'+ '
';
}
/* DISTRESS */
if(deal.signal === "Distress"){
distressHTML += '
'+ '
'+ '
'+ '
'+ '
';
}
/* MARKET SIGNAL */
if(deal.signal === "Sale" || deal.signal === "Listing"){
marketHTML += '
'+ '
'+ '
'+ '
'+ '
';
}
});
if(devHTML === ""){
devHTML='
';
}
if(distressHTML === ""){
distressHTML='
';
}
if(marketHTML === ""){
marketHTML='
';
}
devPanel.innerHTML = devHTML; distressPanel.innerHTML = distressHTML; marketPanel.innerHTML = marketHTML;
}
/* hook into global render */
const originalRender = window.vtRenderAll;
window.vtRenderAll = function(){
if(originalRender) originalRender();
renderMarketPanels();
};
/* initial render */
setTimeout(renderMarketPanels,1000);
})();
Ownership Portfolio Clusters
Redevelopment Signals
(function(){
/* --------------------------------------------------------- INSTITUTIONAL OWNER REGISTRY --------------------------------------------------------- */
const institutionalOwners=[
"Blackstone", "Prologis", "Link Logistics", "Rexford", "Brookfield", "Hines", "GLP", "Trammell Crow"
];
/* --------------------------------------------------------- PORTFOLIO CLUSTER ANALYSIS --------------------------------------------------------- */
function analyzeOwnership(){
if(!window.vtDeals) return;
const ownerMap={};
window.vtDeals.forEach(function(p){
if(!p.owner) return;
if(!ownerMap[p.owner]){
ownerMap[p.owner]={ count:0, cities:new Set(), sectors:new Set() };
}
ownerMap[p.owner].count++;
ownerMap[p.owner].cities.add(p.city); ownerMap[p.owner].sectors.add(p.sector);
});
return ownerMap;
}
/* --------------------------------------------------------- REDEVELOPMENT SIGNAL DETECTION --------------------------------------------------------- */
function redevelopmentSignals(){
if(!window.vtDeals) return [];
return window.vtDeals.filter(function(p){
if(!p.year) return false;
const age=new Date().getFullYear()-p.year;
if(age > 35 && p.sector==="Industrial") return true;
if(age > 30 && p.sector==="Retail") return true;
return false;
});
}
/* --------------------------------------------------------- RENDER OWNERSHIP CLUSTERS --------------------------------------------------------- */
function renderOwnership(){
const panel=document.getElementById("vtOwnerClusters");
if(!panel) return;
const map=analyzeOwnership();
let html="";
Object.keys(map).forEach(function(owner){
const data=map[owner];
if(data.count < 2) return; html += '
'+ '
'+ '
'+ '
'+ '
';
});
if(html===""){
html='
';
}
panel.innerHTML=html;
}
/* --------------------------------------------------------- RENDER REDEVELOPMENT SIGNALS --------------------------------------------------------- */
function renderRedevelopment(){
const panel=document.getElementById("vtRedevelopmentSignals");
if(!panel) return;
const signals=redevelopmentSignals();
let html="";
signals.forEach(function(p){
html += '
'+ '
'+ '
'+ '
'+ '
';
});
if(html===""){
html='
';
}
panel.innerHTML=html;
}
/* --------------------------------------------------------- HOOK INTO GLOBAL RENDER --------------------------------------------------------- */
const previousRender=window.vtRenderAll;
window.vtRenderAll=function(){
if(previousRender) previousRender();
renderOwnership(); renderRedevelopment();
};
/* --------------------------------------------------------- INITIAL LOAD --------------------------------------------------------- */
setTimeout(function(){
renderOwnership(); renderRedevelopment();
},1200);
})();
Industrial Property Ownership Inquiry
I work with investors and owner‑users actively acquiring industrial and land assets
throughout Riverside, Ontario, and the broader Inland Empire logistics corridor.
Recent activity in the market — including several owner‑user warehouse purchases —
has increased demand for infill industrial properties near transportation routes
and distribution hubs.
If you own property in the area and have considered selling, refinancing, or
repositioning the asset, I would welcome the opportunity to share recent
comparable transactions and current buyer demand.
Please feel free to reach out if a short conversation would be helpful.
Industrial Property Ownership Inquiry
Current activity across the Inland Empire logistics corridor has created renewed
interest from investors and owner‑users seeking industrial and land opportunities
in Riverside, Ontario, Corona, and Fontana.
Several recent tenant move‑outs and market shifts have also created opportunities
for owners considering repositioning, refinancing, or selling properties while
buyer demand remains active.
If you own commercial property in the area and would find it helpful to review
recent comparable transactions or discuss current market demand, I would be glad
to share a quick update.
Please feel free to reach out if a short conversation would be useful.
