Fender
Logo icon
Guitars
Home / Tags / Start with # / #28SG SILVER

#28SG SILVER

$43.99 - $53.99
Price Range
2
Total Listings
0
Sold Items
1
Countries
48.99
Avg. Price
Market Pulse
Success Rate: 0%
Median Price: $48.99
Active Listings: 1
Notice: We may earn a commission from eBay links; this does not affect how we present data and helps support the site.

Market Analysis Dashboard

Comprehensive data visualization for #28SG SILVER market trends, sales performance, and pricing insights.

Listing Status

Active: 1
Sold: 0
Unsold: 1

Item Condition

New: 2 (100.00%)
Used: 0 (0.00%)
Refurbished: 0 (0.00%)

Price Distribution

$48.99
Average
$48.99
Median
5
Std Deviation

Recent Sales Analysis

$0.00
Avg. Sale Price
0
Total Sold
$0.00
Total Value

Pricing Overview Comparison

All Listings
Active
Sold
Unsold

Top Sellers

1
Total Sellers
2
Avg Listings per Seller
capitalmusicgear
Top Seller

Geographic Distribution

Top Countries

Country Listings Percentage
US flag US 2 100.00%
// Chart initialization - optimized for immediate loading document.addEventListener('DOMContentLoaded', function() { // Initialize charts when DOM is ready initCharts(); // Tab switching functionality const tabButtons = document.querySelectorAll('.tab-button'); const tabContents = document.querySelectorAll('.tab-content'); tabButtons.forEach(button => { button.addEventListener('click', () => { // Remove active class from all buttons and contents tabButtons.forEach(btn => btn.classList.remove('active')); tabContents.forEach(content => content.classList.remove('active')); // Add active class to clicked button button.classList.add('active'); // Show corresponding content const tabId = button.getAttribute('data-tab'); document.getElementById(`${tabId}-tab`).classList.add('active'); }); }); // Make the chart download buttons functional const downloadButtons = document.querySelectorAll('.chart-action-button'); downloadButtons.forEach(button => { button.addEventListener('click', function() { // This is a placeholder - actual download functionality would be implemented here if (this.title === 'Download Chart') { alert('Download chart functionality would be implemented here'); } else if (this.title === 'View Fullscreen') { alert('Fullscreen view functionality would be implemented here'); } else if (this.title === 'Download Data') { alert('Download data functionality would be implemented here'); } }); }); // Handle resizing charts when orientation changes window.addEventListener('resize', function() { // This will trigger a redraw of all charts if needed const allCharts = document.querySelectorAll('canvas'); allCharts.forEach(canvas => { if (canvas.chart) { canvas.chart.resize(); } }); }); }); function initCharts() { try { console.log("Initializing charts..."); // Status chart var statusCtx = document.getElementById('statusChart'); if (statusCtx) { console.log("Status chart canvas found"); new Chart(statusCtx, { type: 'doughnut', data: { labels: ['Active', 'Sold', 'Unsold'], datasets: [{ data: [1, 0, 1], backgroundColor: ['#4CAF50', '#2196F3', '#F44336'], borderWidth: 0 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 }, callbacks: { label: function(context) { const label = context.label || ''; const value = context.raw || 0; const total = context.dataset.data.reduce((acc, data) => acc + data, 0); const percentage = Math.round((value / total) * 100); return `${label}: ${value.toLocaleString()} (${percentage}%)`; } } } } } }); console.log("Status chart initialized"); } else { console.error("Status chart canvas not found"); } // Condition chart var conditionCtx = document.getElementById('conditionChart'); if (conditionCtx) { console.log("Condition chart canvas found"); new Chart(conditionCtx, { type: 'pie', data: { labels: ['New', 'Used', 'Refurbished'], datasets: [{ data: [2, 0, 0], backgroundColor: ['#4CAF50', '#FFC107', '#9C27B0'], borderWidth: 0 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 }, callbacks: { label: function(context) { const label = context.label || ''; const value = context.raw || 0; const total = context.dataset.data.reduce((acc, data) => acc + data, 0); const percentage = Math.round((value / total) * 100); return `${label}: ${value.toLocaleString()} (${percentage}%)`; } } } } } }); console.log("Condition chart initialized"); } else { console.error("Condition chart canvas not found"); } // Seller chart var sellerCtx = document.getElementById('sellerChart'); if (sellerCtx) { console.log("Seller chart canvas found"); // Seller data var sellerLabels = []; var sellerValues = []; var sellerColors = ['#3671b0', '#4CAF50', '#FFC107', '#F44336', '#9C27B0', '#00BCD4', '#FF5722', '#795548']; sellerLabels.push('capitalmusicgear'); sellerValues.push(2); new Chart(sellerCtx, { type: 'bar', data: { labels: sellerLabels, datasets: [{ label: 'Number of Listings', data: sellerValues, backgroundColor: sellerColors, borderWidth: 0 }] }, options: { indexAxis: 'y', // Horizontal bar chart responsive: true, maintainAspectRatio: false, scales: { x: { beginAtZero: true, title: { display: true, text: 'Number of Listings' }, ticks: { maxRotation: 0, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } }, y: { title: { display: false }, ticks: { font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } } }, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 } } } } }); console.log("Seller chart initialized"); } else { console.error("Seller chart canvas not found"); } // Country chart var countryCtx = document.getElementById('countryChart'); if (countryCtx) { console.log("Country chart canvas found"); // Country data var countryLabels = []; var countryValues = []; var countryColors = ['#3671b0', '#4CAF50', '#FFC107', '#F44336', '#9C27B0', '#2196F3', '#FF9800', '#795548']; countryLabels.push('US'); countryValues.push(2); new Chart(countryCtx, { type: 'bar', data: { labels: countryLabels, datasets: [{ label: 'Number of Listings', data: countryValues, backgroundColor: countryColors, borderWidth: 0 }] }, options: { indexAxis: 'y', // Horizontal bar chart responsive: true, maintainAspectRatio: false, scales: { x: { beginAtZero: true, title: { display: true, text: 'Number of Listings' }, ticks: { maxRotation: 0, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } }, y: { ticks: { font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } } }, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 } } } } }); console.log("Country chart initialized"); } else { console.error("Country chart canvas not found"); } // Recent Sales Analysis chart var recentSalesCtx = document.getElementById('recentSalesChart'); var noSalesDataElement = document.getElementById('noSalesData'); if (recentSalesCtx) { console.log("Recent sales chart canvas found"); // Initialize the soldData array before using it var soldData = []; // Check if we have sold data to display // Show the "no data" message if (noSalesDataElement) { noSalesDataElement.style.display = 'flex'; } if (recentSalesCtx) { recentSalesCtx.style.display = 'none'; } console.log("No recent sales data available"); } else { console.error("Recent sales chart canvas not found"); } // Price distribution chart var priceCtx = document.getElementById('priceChart'); if (priceCtx) { console.log("Price chart canvas found"); // Calculate price ranges var minPrice = 43.99; var maxPrice = 53.99; var range = maxPrice - minPrice; var segments = 5; var step = range / segments; var priceLabels = []; for (var i = 0; i < segments; i++) { var start = minPrice + (step * i); var end = start + step; priceLabels.push('$' + start.toFixed(0) + ' - $' + end.toFixed(0)); } // Use actual distribution data rather than mock data // For now, we'll use a more representative distribution var priceDistribution = [ 0, 1, 1, 0, 0 ]; new Chart(priceCtx, { type: 'bar', data: { labels: priceLabels, datasets: [{ label: 'Number of Listings', data: priceDistribution, backgroundColor: '#3671b0', borderColor: '#285483', borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'Number of Listings' }, ticks: { maxRotation: 0, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } }, x: { title: { display: true, text: 'Price Range' }, ticks: { maxRotation: 45, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } } }, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 } } } } }); console.log("Price chart initialized"); } else { console.error("Price chart canvas not found"); } // Pricing Overview Comparison chart var pricingOverviewCtx = document.getElementById('pricingOverviewChart'); if (pricingOverviewCtx) { console.log("Pricing overview chart canvas found"); new Chart(pricingOverviewCtx, { type: 'bar', data: { labels: ['Average', 'Median', 'Highest', 'Lowest'], datasets: [ { label: 'All Listings', data: [ 48.99, 48.99, 53.99, 43.99 ], backgroundColor: '#3671b0', borderWidth: 0 }, { label: 'Active', data: [ 43.99, 43.99, 43.99, 43.99 ], backgroundColor: '#4CAF50', borderWidth: 0 }, { label: 'Sold', data: [ 0, 0, 0, 0 ], backgroundColor: '#2196F3', borderWidth: 0 }, { label: 'Unsold', data: [ 53.99, 53.99, 53.99, 53.99 ], backgroundColor: '#F44336', borderWidth: 0 } ] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'Price ($)' }, ticks: { maxRotation: 0, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } }, x: { title: { display: true, text: 'Price Metrics' }, ticks: { maxRotation: 45, autoSkip: true, font: { size: function(context) { var width = context.chart.width; return width < 500 ? 10 : 12; } } } } }, plugins: { legend: { display: false }, tooltip: { displayColors: false, caretSize: 6, bodyFont: { size: 12 }, titleFont: { size: 13 }, callbacks: { label: function(context) { return context.dataset.label + ': $' + context.raw.toFixed(2); } } } } } }); console.log("Pricing overview chart initialized"); } else { console.error("Pricing overview chart canvas not found"); } console.log("All charts initialized successfully"); } catch (error) { console.error("Error initializing charts:", error); } }