Estate & Letting Agents in Willington Worthenbury, Wrexham

Find Estate Agents in Willington Worthenbury, Wrexham
8 results
Barbers Rural Consultancy LLP

Market Drayton

Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
22 total
Smithfield House Smithfield Road Market Drayton TF9 1EW
View Profile
Bowen

Wrexham

Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
87 total
1 King Street, Wrexham, LL11 1HF
View Profile
Cheshire Lamont

Tarporley

Lettings Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
54 total
The Chestnut Pavilion Chestnut Terrace, High Street, Tarporley, CW6 0UW
View Profile
Dourish & Day

Whitchurch

Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
49 total
23 Green End, Whitchurch, SY13 1AD
Halls Estate Agents

Whitchurch & South Cheshire

Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
72 total
8 Watergate Street, Whitchurch, SY13 1DW
View Profile
Hinchliffe Holmes

Tarporley

Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
131 total
56B High Street, Tarporley, CW6 0AG
View Profile
Reeds Rains

Wrexham

Lettings Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
27 total
12-14 Lord Street, Wrexham, LL11 1LG
View Profile
Swetenhams

Chester

Lettings Sales
1 active listing in Willington Worthenbury, Wrexham, Cymru / Wales
65 total
28 Lower Bridge Street, Chester, CH1 1RS
View Profile
initializeAllPremierCards() }); // Load detailed stats function function loadDetailedStats() { const button = document.getElementById('load-more-stats'); const statsContainer = document.getElementById('detailed-stats'); if (statsContainer.classList.contains('hidden')) { // Show loading state button.innerHTML = ` Loading... `; // Make AJAX call for detailed stats const location = 'Willington Worthenbury, Wrexham'; const agentType = ''; fetch(`/api/agents/detailed-stats?location=${encodeURIComponent(location)}&type=${agentType}`) .then(response => response.json()) .then(data => { // Build detailed stats HTML let statsHtml = '
'; // Property types breakdown if (data.propertyTypes && Object.keys(data.propertyTypes).length > 0) { statsHtml += `
Property Types
`; for (const [type, count] of Object.entries(data.propertyTypes)) { const percentage = Math.round((count / data.totalProperties) * 100); statsHtml += `
${type}: ${count.toLocaleString()} (${percentage}%)
`; } statsHtml += '
'; } // Price ranges if (data.priceRanges) { statsHtml += `
Price Ranges
Avg Sale Price: £${data.priceRanges.avgSalePrice?.toLocaleString() || 'N/A'}
Avg Rent PCM: £${data.priceRanges.avgRentPrice?.toLocaleString() || 'N/A'}
`; } // Top performing agents if (data.topAgents && data.topAgents.length > 0) { statsHtml += `
Top Agents
`; data.topAgents.slice(0, 3).forEach(agent => { statsHtml += `
${agent.name}: ${agent.property_count} props
`; }); statsHtml += '
'; } statsHtml += '
'; // Show stats statsContainer.innerHTML = statsHtml; statsContainer.classList.remove('hidden'); // Update button button.innerHTML = ` Hide Insights `; }) .catch(error => { // If API fails, show a simple message instead of dumping all agent data statsContainer.innerHTML = '
Unable to load detailed insights
'; statsContainer.classList.remove('hidden'); button.innerHTML = ` Hide Insights `; }); } else { // Hide stats statsContainer.classList.add('hidden'); button.innerHTML = ` Load Detailed Insights `; } } // Open agent map function function openAgentMap(locationSlug) { // Use the floating view toggle button const mapBtn = document.getElementById('agent-view-map'); if (mapBtn) { mapBtn.click(); } else { // Fallback to old button const oldMapBtn = document.getElementById('view-map-btn'); if (oldMapBtn) { oldMapBtn.click(); } else { // Last resort - open map page window.location.href = `/agents/${locationSlug}/map`; } } }