Estimate your FICO score based on key credit factors. This is an approximation and not your official score.
%
%
Years
Inquiries
Excellent (e.g., credit cards, installment loans)
Good (e.g., credit cards and one other type)
Fair (e.g., only credit cards or only installment loans)
Poor (No credit or very limited history)
Understanding How to Calculate Your FICO Score
The FICO Score is a three-digit number that lenders use to assess your credit risk. It's a crucial component in determining whether you'll be approved for loans, credit cards, mortgages, and even some rental applications, as well as the interest rates you'll be offered. While the exact proprietary algorithm is a trade secret, FICO has provided general information about the key factors that influence your score and their approximate weightings.
This calculator provides an *estimated* FICO score by approximating the impact of the main scoring factors. It's important to remember that your actual FICO score is calculated by Experian, Equifax, and TransUnion, and can vary slightly between bureaus and FICO score versions.
The Five Key Factors of FICO Scores:
Payment History (Approx. 35%): This is the most significant factor. It reflects whether you pay your bills on time. Late payments, bankruptcies, and collections can severely lower your score. Paying all bills on time, every time, is the best way to build a strong payment history.
Amounts Owed (Credit Utilization Ratio – Approx. 30%): This looks at how much of your available credit you are using. A lower credit utilization ratio (ideally below 30%, and even better below 10%) generally results in a higher score. This is calculated by dividing the total of your credit card balances by the total of your credit card limits.
Length of Credit History (Approx. 15%): This factor considers the age of your oldest account, the age of your newest account, and the average age of all your accounts. A longer credit history generally contributes positively to your score.
Credit Mix (Approx. 10%): This factor examines the different types of credit you use (e.g., credit cards, retail accounts, installment loans like mortgages or auto loans). Having a mix of credit types can be beneficial, but it's not as important as payment history or credit utilization. Having only one type of credit isn't necessarily bad if managed well.
New Credit (Approx. 10%): This looks at how many new accounts you've opened recently and how many hard inquiries you've had. Opening too many accounts in a short period or having numerous hard inquiries can indicate higher risk. A few inquiries over a couple of years is normal and generally doesn't harm your score significantly.
How the Calculator Works (Simplified Model):
Our calculator uses a simplified model to estimate your FICO score. It assigns points or score ranges based on the inputs you provide for each of the five key factors.
Payment History: Higher on-time payment percentages contribute more points.
Credit Utilization: Lower utilization ratios are heavily rewarded.
Age of Credit: Longer credit histories add to the score.
Credit Mix: A diverse mix of credit types earns more points.
New Credit: Fewer recent inquiries lead to a better score.
These weighted inputs are then used to generate an estimated score within the typical FICO range of 300-850.
Disclaimer:
This calculator is for educational purposes only and is not a substitute for obtaining your official credit report and FICO score from a credit bureau or through a lender. The actual FICO scoring model is complex and confidential. Your actual score may differ.
function calculateFicoScore() {
var paymentHistory = parseFloat(document.getElementById("paymentHistory").value);
var creditUtilization = parseFloat(document.getElementById("creditUtilization").value);
var ageOfCredit = parseFloat(document.getElementById("ageOfCredit").value);
var inquiries = parseFloat(document.getElementById("inquiries").value);
var creditMix = parseFloat(document.getElementById("creditMix").value); // Value already set by options
var resultDiv = document.getElementById("result");
var estimatedScore = 300; // Starting base score
// — Scoring Logic (Simplified approximation) —
// 1. Payment History (35%)
if (isNaN(paymentHistory) || paymentHistory 100) {
resultDiv.innerHTML = "Please enter a valid percentage for Payment History (0-100).";
return;
}
if (paymentHistory >= 99.5) estimatedScore += 350; // Very high
else if (paymentHistory >= 98) estimatedScore += 280; // High
else if (paymentHistory >= 95) estimatedScore += 200; // Good
else if (paymentHistory >= 90) estimatedScore += 120; // Fair
else estimatedScore += 50; // Lower
// 2. Amounts Owed (Credit Utilization Ratio – 30%)
if (isNaN(creditUtilization) || creditUtilization 100) {
resultDiv.innerHTML = "Please enter a valid percentage for Credit Utilization (0-100).";
return;
}
if (creditUtilization <= 10) estimatedScore += 300; // Excellent
else if (creditUtilization <= 20) estimatedScore += 250; // Very Good
else if (creditUtilization <= 30) estimatedScore += 200; // Good
else if (creditUtilization <= 50) estimatedScore += 100; // Fair
else estimatedScore += 50; // Poor
// 3. Length of Credit History (15%)
if (isNaN(ageOfCredit) || ageOfCredit = 10) estimatedScore += 150;
else if (ageOfCredit >= 7) estimatedScore += 120;
else if (ageOfCredit >= 5) estimatedScore += 90;
else if (ageOfCredit >= 3) estimatedScore += 60;
else estimatedScore += 30;
// 4. Credit Mix (10%)
if (isNaN(creditMix)) { // Should not happen with select, but good practice
resultDiv.innerHTML = "Please select a value for Credit Mix.";
return;
}
estimatedScore += creditMix * 20; // Credit mix values: 0, 1, 2, 3. Max contribution = 3 * 20 = 60.
// 5. New Credit (10%)
if (isNaN(inquiries) || inquiries < 0) {
resultDiv.innerHTML = "Please enter a valid number for Recent Credit Inquiries.";
return;
}
if (inquiries === 0) estimatedScore += 100;
else if (inquiries === 1) estimatedScore += 70;
else if (inquiries === 2) estimatedScore += 40;
else if (inquiries <= 4) estimatedScore += 20;
else estimatedScore += 10;
// Clamp the score within FICO range
if (estimatedScore 850) estimatedScore = 850;
var scoreDescription = "";
if (estimatedScore >= 800) scoreDescription = "Exceptional";
else if (estimatedScore >= 740) scoreDescription = "Very Good";
else if (estimatedScore >= 670) scoreDescription = "Good";
else if (estimatedScore >= 580) scoreDescription = "Fair";
else scoreDescription = "Poor";
resultDiv.innerHTML = "Estimated FICO Score: " + Math.round(estimatedScore) + " (" + scoreDescription + " Credit)";
}