Calculate your unearned premium refund based on cancellation dates.
Total Policy Term:0 days
Daily Premium Rate:$0.00
Days Active (Coverage Used):0 days
Earned Premium (Cost for coverage used):$0.00
Unearned Premium (Estimated Refund):$0.00
Understanding Pro-Rata Insurance Cancellations
When you cancel an insurance policy before its expiration date, the insurance company typically owes you a refund for the period of time you paid for but did not use. This is calculated using a method called Pro-Rata Cancellation.
Unlike a "short-rate" cancellation, which includes a penalty fee for early termination, a pro-rata calculation is a straightforward mathematical division of the premium based on the number of days the policy was active versus the total days in the policy term.
Note: This calculator assumes a standard pro-rata calculation method without administrative fees or minimum earned premiums. Check your specific policy documents to see if you are subject to "Short Rate" cancellation fees.
How the Calculation Works
The logic behind the pro-rata refund is based on the Daily Premium Rate. The formula follows these steps:
Determine Total Term Length: Calculate the total number of days between the policy start date and expiration date.
Calculate Daily Rate: Divide the Total Premium by the Total Term Length.
Calculate Unused Days: Count the days from the Cancellation Date to the Expiration Date.
Determine Refund: Multiply the Daily Rate by the Unused Days.
Example Calculation
Imagine you purchased a 1-year car insurance policy for $1,200 starting on January 1st.
Total Premium: $1,200
Total Days: 365
Daily Rate: $1,200 / 365 = $3.29 per day
If you cancel the policy on June 30th (after 181 days):
Days Used: 181
Days Remaining: 184
Earned Premium (Cost): 181 days × $3.29 = $595.49
Refund (Unearned): 184 days × $3.29 = $604.51
Why Do Refunds Vary?
While the math seems simple, small variations can occur based on how insurance companies handle specific dates:
Effective Time: Some policies cancel at 12:01 AM on the cancel date, meaning that day is not covered (and thus refunded). Others cancel at 11:59 PM, meaning you pay for that day.
Leap Years: A policy spanning a leap year (366 days) will have a slightly lower daily rate than a standard year.
Fees: Some brokers charge non-refundable agency fees which are deducted from the total before calculation.
When is Pro-Rata Applied?
Pro-rata cancellation is most commonly used when:
The insurance company cancels the policy (e.g., they stop writing business in your state).
You rewrite a policy with the same carrier (e.g., moving to a new house).
State laws mandate pro-rata refunds for consumer protection (common in auto and home insurance).
function calculateRefund() {
// 1. Get input elements
var premiumInput = document.getElementById("policyPremium");
var startDateInput = document.getElementById("startDate");
var endDateInput = document.getElementById("endDate");
var cancelDateInput = document.getElementById("cancelDate");
var errorDiv = document.getElementById("errorDisplay");
var resultDiv = document.getElementById("resultContainer");
// 2. Parse values
var premium = parseFloat(premiumInput.value);
var startStr = startDateInput.value;
var endStr = endDateInput.value;
var cancelStr = cancelDateInput.value;
// Reset display
errorDiv.style.display = "none";
errorDiv.innerHTML = "";
resultDiv.classList.remove("visible");
// 3. Validation Logic
if (isNaN(premium) || premium <= 0) {
showError("Please enter a valid positive premium amount.");
return;
}
if (!startStr || !endStr || !cancelStr) {
showError("Please select all three dates: Start, End, and Cancellation.");
return;
}
// Convert dates to JS Date objects (set to Midnight to avoid timezone offset issues on day counts)
var startDate = new Date(startStr);
startDate.setHours(0,0,0,0);
var endDate = new Date(endStr);
endDate.setHours(0,0,0,0);
var cancelDate = new Date(cancelStr);
cancelDate.setHours(0,0,0,0);
// Date Logic Checks
if (endDate <= startDate) {
showError("The Expiration Date must be after the Effective Date.");
return;
}
if (cancelDate endDate) {
showError("Cancellation Date cannot be after the Policy Expiration Date.");
return;
}
// 4. Calculate Days
// Time difference in milliseconds
var oneDay = 1000 * 60 * 60 * 24;
// Total term duration
var diffTimeTotal = endDate.getTime() – startDate.getTime();
var totalDays = Math.round(diffTimeTotal / oneDay);
// Duration used (Active)
// Usually, if cancel date is X, coverage ends 12:01am on X.
// So days used = Cancel Date – Start Date.
var diffTimeUsed = cancelDate.getTime() – startDate.getTime();
var daysUsed = Math.round(diffTimeUsed / oneDay);
// Duration remaining (Unused)
var daysRemaining = totalDays – daysUsed;
// Edge case: if dates are same
if (totalDays === 0) totalDays = 1;
// 5. Financial Calculations
var dailyRate = premium / totalDays;
var earnedPremium = dailyRate * daysUsed;
var refundAmount = dailyRate * daysRemaining;
// 6. Update UI
document.getElementById("resTotalDays").innerHTML = totalDays + " days";
document.getElementById("resDailyRate").innerHTML = formatCurrency(dailyRate);
document.getElementById("resDaysUsed").innerHTML = daysUsed + " days";
document.getElementById("resEarnedPrem").innerHTML = formatCurrency(earnedPremium);
document.getElementById("resRefund").innerHTML = formatCurrency(refundAmount);
// Show results
resultDiv.classList.add("visible");
}
function showError(msg) {
var errorDiv = document.getElementById("errorDisplay");
errorDiv.innerHTML = msg;
errorDiv.style.display = "block";
}
function formatCurrency(num) {
return "$" + num.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}