Pleasure Only (No Work/School)
Commute (Under 15km one way)
Commute (Over 15km one way)
Business Use
Over 5,000 km per year
Under 5,000 km per year (10% Discount)
Used to estimate optional Collision/Comprehensive.
Low Risk Zone (Rural)
Medium Risk Zone (Suburban)
High Risk Zone (Metro Vancouver)
Estimated Driver Factor (CDF)
1.000
Lower is better
Basic Autoplan Premium:–
Optional Coverage Estimate:–
Low Kilometer Discount:–
Total Annual Estimate:–
Monthly Payment Plan:–
Understanding Your ICBC Autoplan Premiums
Insurance rates in British Columbia operate under a unique model managed by the Insurance Corporation of British Columbia (ICBC). Since September 2019, ICBC has utilized a driver-based model where crashes follow the driver, not the vehicle. This calculator estimates your premiums based on the core factors that determine your "Driver Factor" (CDF).
What is the Driver Factor?
The Driver Factor (CDF) is a specific number that represents your risk on the road. A baseline score is 1.000.
Experience: For every year of driving experience you accumulate crash-free, your factor decreases (improving your rate).
Crashes: If you are found responsible for a crash, your factor increases, leading to higher premiums. It can take years of crash-free driving to return to your previous rate.
Seniority: Drivers with significant experience (e.g., 40 years) typically see the lowest factors, often capped around 0.5 to 0.6.
Key Factors Affecting Your Rate
Beyond your personal driving history, several other variables impact the final cost:
Territory: Where you live and drive matters. Urban centers like Metro Vancouver generally have higher claim frequencies than rural areas, resulting in higher base rates.
Vehicle Usage: Using your car for business or long commutes increases your exposure to risk compared to pleasure use only.
Vehicle Value: While Basic Autoplan covers third-party liability ($200,000), optional coverages like Collision and Comprehensive are heavily influenced by the repair costs and market value of your vehicle.
Discounts: The low-kilometer discount is available for vehicles driven less than 5,000 km per year. Additionally, vehicles equipped with Autonomous Emergency Braking (AEB) may qualify for further reductions.
Basic vs. Optional Autoplan
Every driver in BC must purchase Basic Autoplan, which provides $200,000 in Third Party Liability, Enhanced Accident Benefits, and Underinsured Motorist Protection. Optional Autoplan allows you to purchase higher liability limits (e.g., $2 million), Collision coverage (for crashes you cause), and Comprehensive coverage (for theft, vandalism, or glass damage).
Disclaimer: This calculator is for estimation purposes only and simulates the logic of the ICBC rating model based on publicly available data. Actual premiums are determined by ICBC agents and may vary based on exact postal codes, specific vehicle VIN rate groups, and the Combined Driver Factor of all listed drivers on the policy.
function calculateICBCRate() {
// 1. Get Input Values
var years = document.getElementById("yearsLicensed").value;
var crashes = document.getElementById("faultCrashes").value;
var usage = document.getElementById("vehicleUse").value;
var distance = document.getElementById("annualDistance").value;
var value = document.getElementById("vehicleValue").value;
var territoryRisk = document.getElementById("territoryZone").value;
// 2. Validate Inputs
if (years === "" || value === "") {
alert("Please enter both Years Licensed and Vehicle Value.");
return;
}
years = parseFloat(years);
crashes = parseFloat(crashes);
value = parseFloat(value);
territoryRisk = parseFloat(territoryRisk);
if (isNaN(years) || years < 0) years = 0;
if (isNaN(crashes) || crashes < 0) crashes = 0;
if (isNaN(value) || value < 0) value = 0;
// 3. Logic: Calculate Driver Factor (CDF) Simulation
// Base starts at 1.000
// Discount approx 0.02 per year of safe driving, cap at 40 years (approx 0.5 factor)
// Penalty approx 0.30 per crash (simplified logic)
var baseCDF = 1.000;
var experienceDiscount = Math.min(years, 40) * 0.0125; // Max 0.5 discount logic roughly
var crashPenalty = crashes * 0.40; // Significant penalty per crash
var driverFactor = baseCDF – experienceDiscount + crashPenalty;
// Hard cap floors and ceilings for simulation realism
if (driverFactor 3.000) driverFactor = 3.000; // Cap high risk
// 4. Logic: Calculate Base Premium
// Approx 2024 Base for Basic Autoplan before adjustments ~ $1068
var referenceBasicInfo = 1068;
// Usage Multipliers
var usageMult = 1.0;
if (usage === 'commute_short') usageMult = 1.15;
if (usage === 'commute_long') usageMult = 1.25;
if (usage === 'business') usageMult = 1.40;
// Calculate Basic Premium
// Formula: Ref * DriverFactor * Usage * Territory
var finalBasic = referenceBasicInfo * driverFactor * usageMult * territoryRisk;
// 5. Logic: Calculate Optional Premium (Collision/Comp/Extended Liability)
// This is highly dependent on vehicle value.
// Rule of thumb: ~2% – 3.5% of vehicle value annually adjusted by driver factor.
// Safer drivers pay less for optional.
var optionalRate = 0.03; // 3% base
var finalOptional = (value * optionalRate) * driverFactor;
// 6. Logic: Apply Distance Discount
var discountAmount = 0;
if (distance === 'low') {
// 10% discount on Basic and Extended Third Party, usually.
// We will apply 10% to the total for estimation simplicity.
discountAmount = (finalBasic + finalOptional) * 0.10;
}
var totalAnnual = (finalBasic + finalOptional) – discountAmount;
// Financing (5% surcharge usually for monthly)
var monthlyTotal = (totalAnnual * 1.05) / 12;
// 7. Output Results
document.getElementById("driverFactorDisplay").innerText = driverFactor.toFixed(3);
document.getElementById("basicPremium").innerText = "$" + finalBasic.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("optionalPremium").innerText = "$" + finalOptional.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
if (discountAmount > 0) {
document.getElementById("discountValue").innerText = "-$" + discountAmount.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("discountValue").style.color = "green";
} else {
document.getElementById("discountValue").innerText = "$0.00";
document.getElementById("discountValue").style.color = "#444";
}
document.getElementById("totalAnnual").innerText = "$" + totalAnnual.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("monthlyPayment").innerText = "$" + monthlyTotal.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}) + " / mo";
// Show results
document.getElementById("resultsArea").style.display = "block";
}