Manitoba Public Insurance (MPI) operates on a unique system where your vehicle insurance premiums are determined by a combination of where you live, how you use your vehicle, your vehicle's value, and most importantly, your driving record. This calculator helps estimated your potential Autopac premiums for passenger vehicles.
Key Factors Affecting Your Premium
Driver Safety Rating (DSR): This is the most influential factor under your control. The DSR scale ranges from -20 to +17. Drivers with a positive rating (Merits) receive substantial discounts on their vehicle premiums, up to nearly 40% at the highest levels. Drivers with neutral or negative scores pay base rates or may face license surcharges.
Territory: Manitoba is divided into four rating territories. Territory 1 (Winnipeg) generally has higher rates due to higher traffic density and claim frequency compared to Territory 3 (Rural) or Territory 2 (Commuter zones).
Vehicle Use: "All Purpose" insurance covers commuting to work or school and general driving. It is more expensive than "Pleasure" use, which restricts driving to non-work activities. Selecting the correct use category is vital for valid coverage.
Vehicle Value & Rate Group: While not a direct input in every simple calculation, the Make, Model, and Year of your car place it into a specific rate group based on claim history and repair costs. Higher-value vehicles typically have higher base premiums.
Third Party Liability
The minimum liability coverage in Manitoba is $200,000. However, most drivers opt to increase this limit to $1,000,000, $2,000,000, or even more to protect against financial loss in the event of a serious at-fault accident involving significant property damage or injury to others outside the province.
Payment Options
MPI offers flexibility in payments. You can pay your full annual premium upfront, in four quarterly payments, or in 12 monthly pre-authorized payments. Note that financing fees and interest usually apply to monthly payment plans, slightly increasing the total cost over the year.
function calculateMPIRate() {
// 1. Get Inputs
var vehicleValue = parseFloat(document.getElementById('vehicleValue').value);
var dsrScore = parseInt(document.getElementById('dsrScore').value);
var territoryFactor = parseFloat(document.getElementById('territory').value);
var useFactor = parseFloat(document.getElementById('vehicleUse').value);
var liabilityCost = parseFloat(document.getElementById('liabilityLimit').value);
// Validation
if (isNaN(vehicleValue) || vehicleValue = 16) {
discountPercent = 0.40; // Max discount approx 40%
} else if (dsrScore === 15) {
discountPercent = 0.38;
} else if (dsrScore >= 10) {
// Scales from 33% down to 28% roughly
discountPercent = 0.28 + ((dsrScore – 10) * 0.01);
} else if (dsrScore >= 1) {
// Scales from 25% down to 5%
// 9 -> 25%, 1 -> 5%
discountPercent = 0.05 + ((dsrScore – 1) * 0.025);
} else {
discountPercent = 0; // 0 or negative gets no vehicle premium discount
}
// Calculate Discount Amount
var discountAmount = adjustedBase * discountPercent;
var premiumAfterDiscount = adjustedBase – discountAmount;
// 4. Add Fixed Costs (Liability Extension)
// Liability cost is added after the DSR discount (usually DSR applies to basic, not extensions,
// but for simplicity in this estimator we treat extensions as flat add-ons).
var totalAnnual = premiumAfterDiscount + liabilityCost;
// Add Registration/License fee estimate (approx $45/year included in total Autopac usually)
totalAnnual = totalAnnual + 45;
// 5. Calculate Monthly (Approx 12 payments with 5% financing fee interest)
var totalWithFinancing = totalAnnual * 1.05;
var monthly = totalWithFinancing / 12;
// 6. Display Results
document.getElementById('baseResult').innerText = "$" + adjustedBase.toFixed(2);
document.getElementById('discountResult').innerText = (discountPercent * 100).toFixed(0) + "%";
// Show combined factor string
var combinedFactor = (territoryFactor * useFactor).toFixed(2);
document.getElementById('factorResult').innerText = combinedFactor + "x";
document.getElementById('totalAnnual').innerText = "$" + totalAnnual.toFixed(2);
document.getElementById('monthlyPayment').innerText = "$" + monthly.toFixed(2);
// Show container
document.getElementById('results').style.display = "block";
}