Estimate your future monthly Social Security income.
Social Security Retirement Benefit Calculator
Enter your average monthly earnings, adjusted for inflation up to age 60.
Enter your full year of birth (e.g., 1960).
62 (Earliest)
67 (Full Retirement Age for most born 1960 or later)
70 (Latest to earn delayed retirement credits)
Select the age you plan to start receiving benefits.
Your Estimated Benefit
—
Primary Insurance Amount (PIA): —
Monthly Benefit at FRA: —
Monthly Benefit at Claim Age: —
Key Assumptions:
Avg. Monthly Earnings: —
Year of Birth: —
Claiming Age: —
Full Retirement Age: —
How it's Calculated: Social Security benefits are based on your lifetime earnings. The Primary Insurance Amount (PIA) is calculated using a formula that considers your 35 highest-earning years, indexed for inflation. Your actual benefit amount is then adjusted based on your chosen claiming age relative to your Full Retirement Age (FRA). Claiming before FRA reduces your benefit, while claiming after FRA increases it.
Benefit Projection by Claiming Age
Estimated monthly benefit amounts at different claiming ages.
What is a Social Security Retirement Benefit Calculator?
A Social Security retirement benefit calculator is an online tool designed to help individuals estimate the amount of monthly income they can expect to receive from the Social Security Administration (SSA) once they retire. These calculators take into account various factors, primarily your earnings history and your chosen retirement age, to provide a projected benefit amount. Understanding your potential Social Security income is crucial for effective retirement planning, allowing you to bridge the gap between your expected expenses and other retirement savings.
Who should use it? Anyone planning for retirement, especially those who have worked and paid Social Security taxes for a significant portion of their careers, should consider using a Social Security retirement benefit calculator. This includes individuals at various career stages – from young workers starting to plan their financial future to those nearing retirement who need to fine-tune their withdrawal strategies. It's particularly useful for understanding how different claiming ages impact your lifetime benefits.
Common Misconceptions:
Benefits are fixed: Many believe their benefit amount is set in stone once calculated. However, cost-of-living adjustments (COLAs) can increase benefits over time, and claiming age significantly alters the initial amount.
You get the same amount regardless of when you claim: This is false. Claiming early (before your Full Retirement Age) permanently reduces your monthly benefit, while delaying past your FRA increases it.
Social Security will run out of money: While Social Security faces long-term funding challenges, it's not projected to disappear entirely. Benefits may be reduced in the future if Congress doesn't act, but a complete depletion is unlikely.
Your highest 10 years determine benefits: The calculation actually uses your 35 highest-earning years, indexed for inflation.
Social Security Retirement Benefit Formula and Mathematical Explanation
The Social Security Administration uses a complex formula to determine your retirement benefit, primarily based on your Average Indexed Monthly Earnings (AIME) and your Full Retirement Age (FRA). The final benefit amount is derived from your Primary Insurance Amount (PIA), which is calculated using a progressive formula applied to your AIME.
1. Wage Indexing:
Your past earnings are "indexed" to reflect the general rise in wages over time. This brings your historical earnings up to a level comparable to recent earnings. The SSA uses specific indexing factors for each year up to age 60.
2. Calculating Average Indexed Monthly Earnings (AIME):
After indexing, the SSA takes your 35 highest-earning years (after indexing) and calculates the average monthly earnings. If you have fewer than 35 years of earnings, years with zero earnings are included, which lowers your AIME.
3. Calculating Primary Insurance Amount (PIA):
The PIA is calculated using a "bend point" formula based on your AIME. For 2024, the formula is:
90% of the first $1,116 of AIME
32% of AIME between $1,116 and $6,721
15% of AIME above $6,721
The specific bend points change annually. The calculator uses a simplified approximation for demonstration.
4. Adjusting for Claiming Age:
Your PIA is the benefit you receive if you claim exactly at your Full Retirement Age (FRA). Your FRA depends on your birth year. If you claim before your FRA, your benefit is permanently reduced. If you claim after your FRA, your benefit is permanently increased through Delayed Retirement Credits (DRCs).
Early Claiming Reduction: For each month before FRA, the benefit is reduced by approximately 5/9 of 1% (up to 36 months), and then by 5/12 of 1% for additional months. The maximum reduction is 30% if claiming at age 62 (assuming FRA is 67).
Delayed Retirement Credits (DRCs): For each month you delay claiming past FRA up to age 70, your benefit increases by approximately 2/3 of 1%. The maximum increase is 24% if you delay until age 70 (assuming FRA is 67).
Variables Table:
Key Variables in Social Security Benefit Calculation
Variable
Meaning
Unit
Typical Range / Notes
Indexed Earnings
Historical earnings adjusted for wage inflation.
Currency ($)
Varies based on year and income level. Capped annually.
35 Highest Earning Years
The 35 years with the highest indexed earnings used in the AIME calculation.
Count
35. Fewer years result in zeros being included.
AIME (Average Indexed Monthly Earnings)
Average monthly earnings over the 35 highest earning years, indexed.
Currency ($)
Can range from $0 to over $10,000 depending on earnings history.
PIA (Primary Insurance Amount)
The monthly benefit amount at Full Retirement Age.
Currency ($)
Determined by AIME and bend points. Max PIA varies annually.
FRA (Full Retirement Age)
The age at which you can claim 100% of your PIA.
Age (Years)
66 or 67 for most current workers. 62 for earliest, 70 for latest benefit.
Claiming Age
The age at which you choose to start receiving benefits.
Age (Years)
62 to 70 for standard calculation.
Benefit Adjustment Factor
Percentage adjustment based on claiming age relative to FRA.
Percentage (%)
Approx. 70% (early) to 124% (late) of PIA.
Practical Examples (Real-World Use Cases)
Example 1: Standard Retirement Planner
Scenario: Sarah was born in 1962. She has consistently earned an average of $4,500 per month (indexed) throughout her career. Her Full Retirement Age is 67. She wants to see her benefit if she claims at her FRA (67) and if she claims early at 62.
Inputs:
Average Monthly Earnings (Indexed): $4,500
Year of Birth: 1962
Full Retirement Age: 67
Calculations:
Assuming a PIA calculation results in approximately $1,800.
Benefit at FRA (67): $1,800 (100% of PIA)
Benefit at 62: Claiming 5 years (60 months) early. This is 36 months at 5/9 of 1% reduction + 24 months at 5/12 of 1% reduction. Total reduction is approx. 28.3%. Benefit = $1,800 * (1 – 0.283) = ~$1,292.
Interpretation: Sarah would receive about $508 less per month by claiming at 62 compared to waiting until her Full Retirement Age of 67. This decision impacts her income for the rest of her life.
Example 2: Maximizing Delayed Benefits
Scenario: John was born in 1958. His career earnings have been high, resulting in an indexed average monthly earning of $7,000. His Full Retirement Age is 66 and 4 months. He plans to work longer and wants to understand the benefit of delaying past his FRA.
Inputs:
Average Monthly Earnings (Indexed): $7,000
Year of Birth: 1958
Full Retirement Age: 66 years, 4 months
Calculations:
Assuming a PIA calculation results in approximately $2,800.
Benefit at FRA (66y 4m): $2,800
Benefit at 70: Delaying 3 years and 8 months (44 months) past FRA. This earns 44 months of Delayed Retirement Credits (DRCs) at approx. 2/3 of 1% per month. Total increase is approx. 24%. Benefit = $2,800 * 1.24 = ~$3,472.
Interpretation: By delaying benefits from age 66 and 4 months to age 70, John increases his monthly benefit by approximately $672. This higher benefit continues throughout his retirement and may also benefit a surviving spouse.
How to Use This Social Security Retirement Benefit Calculator
Enter Average Monthly Earnings (Indexed): Input your best estimate of your average monthly earnings over your working life, adjusted for inflation. If you don't know this figure, you can find estimates on your Social Security statement or use a general estimate based on your career income. A common placeholder is around $3,000-$5,000 for many workers, but this varies widely.
Enter Your Year of Birth: This is crucial for determining your Full Retirement Age (FRA).
Select Desired Retirement Age: Choose the age you are considering starting your Social Security benefits. Options typically range from the earliest possible age (62) to the latest age for earning delayed retirement credits (70).
Click "Calculate Benefit": The calculator will process your inputs and display your estimated monthly benefit.
How to Read Results:
Primary Result (Estimated Monthly Benefit): This is the main output, showing your projected monthly income based on your inputs.
Primary Insurance Amount (PIA): This is the amount you'd receive if you claim exactly at your Full Retirement Age.
Monthly Benefit at FRA: Shows the benefit amount if you claim at your calculated Full Retirement Age.
Monthly Benefit at Claim Age: Shows the benefit amount based on the specific retirement age you selected.
Key Assumptions: Review these to ensure they accurately reflect your inputs.
Decision-Making Guidance: Use the results to compare the financial impact of claiming at different ages. If the calculated benefit is lower than expected, consider if your earnings estimate is accurate or if delaying benefits could significantly increase your income. This tool helps visualize the trade-offs between receiving benefits sooner with a lower amount versus later with a higher amount.
Key Factors That Affect Social Security Retirement Benefit Results
Lifetime Earnings History: This is the most significant factor. Social Security benefits are directly tied to how much you earned and paid Social Security taxes on throughout your working life. Higher lifetime earnings, especially in your 35 highest-earning years, lead to a higher AIME and thus a higher PIA.
Claiming Age: As demonstrated, when you choose to start receiving benefits dramatically impacts your monthly payout. Claiming before your Full Retirement Age (FRA) results in a permanently reduced benefit, while delaying past your FRA earns delayed retirement credits (DRCs) that permanently increase your benefit.
Full Retirement Age (FRA): Your FRA is determined by your birth year and dictates when you can receive 100% of your calculated PIA. It ranges from 66 to 67 for most workers currently. Understanding your specific FRA is essential for calculating benefit adjustments.
Cost-of-Living Adjustments (COLAs): While not directly part of the initial calculation, COLAs are annual increases to Social Security benefits designed to keep pace with inflation. These adjustments apply after you start receiving benefits and can significantly increase your total lifetime income over decades of retirement.
Spousal and Survivor Benefits: The calculator typically focuses on individual benefits. However, spousal benefits (based on a spouse's record) and survivor benefits (paid to a widow or widower) are also calculated using related formulas and can be affected by the primary worker's earnings history and claiming age.
Changes in Social Security Law: Congress can alter the Social Security formula, bend points, indexing methods, or retirement ages. Future legislative changes could impact benefit calculations for current and future retirees.
Non-covered Employment: If you worked in jobs not covered by Social Security (e.g., some government jobs, certain non-profits), those earnings won't count towards your AIME. This can significantly lower your benefit. You might also be subject to the Windfall Elimination Provision (WEP) or Government Pension Offset (GPO), which can reduce your Social Security benefit.
Frequently Asked Questions (FAQ)
Q1: How accurate is this Social Security retirement benefit calculator?
A1: This calculator provides an *estimate*. The official Social Security Administration (SSA) calculation is definitive. Our tool uses simplified versions of the indexing and bend-point formulas and relies on your input for average earnings. For precise figures, consult your official Social Security statement or the SSA's own online tools.
Q2: What is the difference between my PIA and my actual monthly benefit?
A2: Your Primary Insurance Amount (PIA) is the benefit you are entitled to at your Full Retirement Age (FRA). Your actual monthly benefit is adjusted based on the age you claim. Claiming before FRA reduces it, while claiming after FRA increases it.
Q3: Can I change my retirement benefit amount after I start receiving payments?
A3: Generally, no. Once you start receiving benefits, the monthly amount is set, subject only to annual Cost-of-Living Adjustments (COLAs). The decision of when to claim is permanent and significantly impacts your lifetime income.
Q4: What happens to my benefits if I continue working after reaching my FRA?
A4: If you claim benefits before your FRA and continue working, your benefits may be temporarily reduced if your earnings exceed a certain limit ($22,320 in 2024 if you are under FRA). Once you reach FRA, this earnings test no longer applies, and you keep your full benefit amount (plus any DRCs earned).
Q5: How does my spouse's Social Security benefit affect mine?
A5: Your spouse may be eligible for a spousal benefit, which is up to 50% of your PIA. If you pass away, your surviving spouse may be eligible for survivor benefits, which are typically equal to your PIA.
Q6: What if I had periods of unemployment or low earnings?
A6: Social Security calculates your benefit based on your 35 highest *indexed* years of earnings. If you have fewer than 35 years with earnings, or years with very low earnings, those years are counted as zeros, which will lower your Average Indexed Monthly Earnings (AIME) and consequently your PIA.
Q7: Should I use my estimated earnings or my actual earnings history?
A7: For the most accurate estimate, use your actual earnings history as reported to the SSA. You can access this information via your "my Social Security" account on the SSA website. If using an estimate, be as realistic as possible about your career average earnings.
Q8: Does claiming early affect my spouse's or survivor benefits?
A8: Yes. If you claim benefits early, your reduced benefit amount will be the basis for any spousal or survivor benefits paid to your spouse, potentially lowering their benefit as well.
See how the power of compounding can grow your savings over time.
var chartInstance = null; // Global variable to hold chart instance
function validateInput(id, min, max, isRequired = true) {
var inputElement = document.getElementById(id);
var errorElement = document.getElementById(id + 'Error');
var value = parseFloat(inputElement.value);
errorElement.style.display = 'none'; // Hide error by default
if (isRequired && (inputElement.value === null || inputElement.value.trim() === ")) {
errorElement.textContent = 'This field is required.';
errorElement.style.display = 'block';
return false;
}
if (isNaN(value)) {
if (isRequired) { // Only show error if required and not a number
errorElement.textContent = 'Please enter a valid number.';
errorElement.style.display = 'block';
return false;
} else {
return true; // Allow empty for optional fields if not a number
}
}
if (min !== null && value max) {
errorElement.textContent = 'Value cannot be greater than ' + max + '.';
errorElement.style.display = 'block';
return false;
}
return true;
}
function calculateBenefit() {
// Clear previous errors
var errorElements = document.querySelectorAll('.error-message');
for (var i = 0; i = 1938 && birthYear = 1943 && birthYear = 1955 && birthYear = 1960) {
fra = 67;
} else { // For birth years before 1938, FRA is 65
fra = 65;
}
// Ensure FRA is a whole number for simplicity in this calculator, or handle fractional months
// For this example, let's round down to the nearest whole year for simplicity if fractional
var fraYear = Math.floor(fra);
var fraMonths = Math.round((fra – fraYear) * 12); // Calculate fractional months
// 2. Calculate Primary Insurance Amount (PIA) – Simplified Bend Points (using 2024 as example)
// These bend points change annually. This is a placeholder.
var bendPoint1 = 1116; // 2024 bend point 1
var bendPoint2 = 6721; // 2024 bend point 2
var pia;
var indexedAvgMonthlyEarnings = avgMonthlyEarnings; // Assuming input is already indexed for simplicity
if (indexedAvgMonthlyEarnings <= bendPoint1) {
pia = indexedAvgMonthlyEarnings * 0.90;
} else if (indexedAvgMonthlyEarnings <= bendPoint2) {
pia = (bendPoint1 * 0.90) + ((indexedAvgMonthlyEarnings – bendPoint1) * 0.32);
} else {
pia = (bendPoint1 * 0.90) + ((bendPoint2 – bendPoint1) * 0.32) + ((indexedAvgMonthlyEarnings – bendPoint2) * 0.15);
}
// Ensure PIA is not negative
pia = Math.max(0, pia);
// 3. Calculate benefit at Full Retirement Age (FRA)
var monthlyBenefitAtFRA = pia;
// 4. Calculate benefit at the selected Claiming Age
var monthlyBenefitAtClaimAge;
var ageDifference = claimAge – fra; // Negative if claiming early, positive if late
if (ageDifference < 0) {
// Claiming early: Reduction factor
// Max reduction at 62 if FRA is 67 is ~30% (5/9 of 1% for 36 months + 5/12 of 1% for 24 months)
// Simplified reduction calculation:
var reductionMonths = Math.abs(ageDifference * 12);
var reductionFactor = 0;
if (reductionMonths 0) {
// Claiming late: Increase factor (Delayed Retirement Credits – DRCs)
// Max increase at 70 is ~24% if FRA is 67 (2/3 of 1% per month)
var increaseMonths = ageDifference * 12;
var increaseFactor = increaseMonths * (2 / 300); // 2/3 of 1% = 0.00666…
// Cap increase at 24% for claiming at 70 if FRA is 67
increaseFactor = Math.min(increaseFactor, 0.24); // Max increase approx 24%
monthlyBenefitAtClaimAge = pia * (1 + increaseFactor);
} else {
// Claiming exactly at FRA
monthlyBenefitAtClaimAge = pia;
}
// Ensure benefit is not negative
monthlyBenefitAtClaimAge = Math.max(0, monthlyBenefitAtClaimAge);
monthlyBenefitAtFRA = Math.max(0, monthlyBenefitAtFRA);
// Display results
document.getElementById('primary-result').textContent = '$' + monthlyBenefitAtClaimAge.toFixed(2);
document.getElementById('pia-estimate').getElementsByTagName('span')[0].textContent = '$' + pia.toFixed(2);
document.getElementById('monthlyBenefitAtFRA').getElementsByTagName('span')[0].textContent = '$' + monthlyBenefitAtFRA.toFixed(2);
document.getElementById('monthlyBenefitAtClaimAge').getElementsByTagName('span')[0].textContent = '$' + monthlyBenefitAtClaimAge.toFixed(2);
// Display assumptions
document.getElementById('assumption-earnings').getElementsByTagName('span')[0].textContent = '$' + avgMonthlyEarnings.toFixed(2);
document.getElementById('assumption-birthYear').getElementsByTagName('span')[0].textContent = birthYear;
document.getElementById('assumption-claimAge').getElementsByTagName('span')[0].textContent = claimAge;
document.getElementById('assumption-fra').getElementsByTagName('span')[0].textContent = fraYear + (fraMonths > 0 ? ' years, ' + fraMonths + ' months' : ' years');
// Update chart
updateChart(fra, monthlyBenefitAtFRA, monthlyBenefitAtClaimAge, claimAge);
document.getElementById('benefitChartContainer').style.display = 'block';
}
function updateChart(fra, benefitAtFRA, benefitAtClaimAge, claimAge) {
var ctx = document.getElementById('benefitChart').getContext('2d');
// Define ages for chart x-axis
var ages = [];
var benefits = [];
var currentAge = 62;
var maxAge = 70;
// Calculate benefit for each age from 62 to 70
while (currentAge <= maxAge) {
ages.push(currentAge);
var currentBenefit;
var ageDifference = currentAge – fra;
if (ageDifference < 0) {
var reductionMonths = Math.abs(ageDifference * 12);
var reductionFactor = 0;
if (reductionMonths 0) {
var increaseMonths = ageDifference * 12;
var increaseFactor = increaseMonths * (2 / 300);
increaseFactor = Math.min(increaseFactor, 0.24);
currentBenefit = (parseFloat(document.getElementById('pia-estimate').getElementsByTagName('span')[0].textContent.replace(/[^0-9.-]+/g,"")) || 0) * (1 + increaseFactor);
} else {
currentBenefit = parseFloat(document.getElementById('pia-estimate').getElementsByTagName('span')[0].textContent.replace(/[^0-9.-]+/g,"")) || 0;
}
currentBenefit = Math.max(0, currentBenefit);
benefits.push(currentBenefit);
currentAge += 1; // Increment by 1 year for simplicity
}
// Destroy previous chart instance if it exists
if (chartInstance) {
chartInstance.destroy();
}
// Create new chart
chartInstance = new Chart(ctx, {
type: 'line',
data: {
labels: ages.map(function(age) { return age.toString(); }), // Labels as strings
datasets: [{
label: 'Estimated Monthly Benefit',
data: benefits,
borderColor: 'var(–primary-color)',
backgroundColor: 'rgba(0, 74, 153, 0.1)',
fill: true,
tension: 0.1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
x: {
title: {
display: true,
text: 'Claiming Age'
}
},
y: {
title: {
display: true,
text: 'Estimated Monthly Benefit ($)'
},
beginAtZero: true
}
},
plugins: {
tooltip: {
callbacks: {
label: function(context) {
var label = context.dataset.label || ";
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(context.parsed.y);
}
return label;
}
}
}
}
}
});
}
function resetCalculator() {
document.getElementById('avgMonthlyEarnings').value = '3000';
document.getElementById('birthYear').value = '1960';
document.getElementById('fullRetirementAge').value = '67'; // Default to 67
// Clear errors
var errorElements = document.querySelectorAll('.error-message');
for (var i = 0; i < errorElements.length; i++) {
errorElements[i].style.display = 'none';
}
// Clear results
document.getElementById('primary-result').textContent = '–';
document.getElementById('pia-estimate').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('monthlyBenefitAtFRA').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('monthlyBenefitAtClaimAge').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('assumption-earnings').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('assumption-birthYear').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('assumption-claimAge').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('assumption-fra').getElementsByTagName('span')[0].textContent = '–';
document.getElementById('benefitChartContainer').style.display = 'none';
if (chartInstance) {
chartInstance.destroy();
chartInstance = null;
}
}
function copyResults() {
var primaryResult = document.getElementById('primary-result').textContent;
var pia = document.getElementById('pia-estimate').getElementsByTagName('span')[0].textContent;
var benefitFRA = document.getElementById('monthlyBenefitAtFRA').getElementsByTagName('span')[0].textContent;
var benefitClaimAge = document.getElementById('monthlyBenefitAtClaimAge').getElementsByTagName('span')[0].textContent;
var assumptionEarnings = document.getElementById('assumption-earnings').getElementsByTagName('span')[0].textContent;
var assumptionBirthYear = document.getElementById('assumption-birthYear').getElementsByTagName('span')[0].textContent;
var assumptionClaimAge = document.getElementById('assumption-claimAge').getElementsByTagName('span')[0].textContent;
var assumptionFRA = document.getElementById('assumption-fra').getElementsByTagName('span')[0].textContent;
var resultsText = "— Social Security Benefit Estimate —\n\n";
resultsText += "Primary Estimated Benefit: " + primaryResult + "\n";
resultsText += "Primary Insurance Amount (PIA): " + pia + "\n";
resultsText += "Benefit at Full Retirement Age: " + benefitFRA + "\n";
resultsText += "Benefit at Claiming Age (" + assumptionClaimAge + "): " + benefitClaimAge + "\n\n";
resultsText += "— Key Assumptions —\n";
resultsText += "Average Monthly Earnings (Indexed): " + assumptionEarnings + "\n";
resultsText += "Year of Birth: " + assumptionBirthYear + "\n";
resultsText += "Claiming Age: " + assumptionClaimAge + "\n";
resultsText += "Full Retirement Age: " + assumptionFRA + "\n";
resultsText += "\nNote: This is an estimate. Consult the Social Security Administration for official figures.";
// Use navigator.clipboard for modern browsers
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(resultsText).then(function() {
alert('Results copied to clipboard!');
}).catch(function(err) {
console.error('Failed to copy text: ', err);
// Fallback for older browsers or if permission denied
prompt('Copy the text below:', resultsText);
});
} else {
// Fallback for older browsers
prompt('Copy the text below:', resultsText);
}
}
// Initial calculation on page load if default values are set
document.addEventListener('DOMContentLoaded', function() {
calculateBenefit();
});
// Add event listeners for real-time updates (optional, but good UX)
document.getElementById('avgMonthlyEarnings').addEventListener('input', calculateBenefit);
document.getElementById('birthYear').addEventListener('input', calculateBenefit);
document.getElementById('fullRetirementAge').addEventListener('change', calculateBenefit);
// Include Chart.js library – NOTE: In a real production scenario, you'd include this via CDN or a local file.
// For this single-file HTML output, we'll simulate its inclusion.
// In a real scenario, you'd have:
// For this self-contained example, we assume Chart.js is available globally.
// If running this locally without Chart.js, the chart will not render.
// To make this truly self-contained without external JS, you'd need to implement charting using SVG or Canvas API directly.
// For demonstration purposes, assuming Chart.js is available.
// Placeholder for Chart.js if not loaded externally
if (typeof Chart === 'undefined') {
console.warn("Chart.js library not found. Chart will not render. Please include Chart.js.");
// Basic mock Chart object to prevent errors if Chart.js is missing
window.Chart = function() {
this.destroy = function() {};
};
window.Chart.prototype.destroy = function() {};
}