KRA Vehicle Import Duty Calculator 2025 With Updated CRSP

KRA Vehicle Import Duty Calculator 2025 /* Minified Tailwind CSS for the calculator */ *,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}html{line-height:1.5;-webkit-text-size-adjust:100%}body{margin:0;line-height:inherit}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1.5rem;padding-left:1.5rem}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}.flex{display:flex}.min-h-screen{min-height:100vh}.items-center{align-items:center}.justify-center{justify-content:center}.space-y-4>:not([hidden])~:not([hidden]){–tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 – var(–tw-space-y-reverse)));margin-bottom:calc(1rem * var(–tw-space-y-reverse))}.rounded-lg{border-radius:0.5rem}.rounded-md{border-radius:0.375rem}.border{border-width:1px}.border-gray-300{–tw-border-opacity:1;border-color:rgb(209 213 219 / var(–tw-border-opacity))}.bg-gray-50{–tw-bg-opacity:1;background-color:rgb(249 250 251 / var(–tw-bg-opacity))}.bg-gray-100{–tw-bg-opacity:1;background-color:rgb(243 244 246 / var(–tw-bg-opacity))}.bg-white{–tw-bg-opacity:1;background-color:rgb(255 255 255 / var(–tw-bg-opacity))}.bg-blue-600{–tw-bg-opacity:1;background-color:rgb(37 99 235 / var(–tw-bg-opacity))}.bg-blue-700{–tw-bg-opacity:1;background-color:rgb(29 78 216 / var(–tw-bg-opacity))}.p-2{padding:0.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-gray-700{–tw-text-opacity:1;color:rgb(55 65 81 / var(–tw-text-opacity))}.text-white{–tw-text-opacity:1;color:rgb(255 255 255 / var(–tw-text-opacity))}.text-red-600{–tw-text-opacity:1;color:rgb(220 38 38 / var(–tw-text-opacity))}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)}.mt-1{margin-top:0.25rem}.mt-2{margin-top:0.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.block{display:block}.hidden{display:none}.w-full{width:100%}.max-w-2xl{max-width:42rem}.hover\:bg-blue-700:hover{–tw-bg-opacity:1;background-color:rgb(29 78 216 / var(–tw-bg-opacity))}.table-auto{width:100%;table-layout:auto}.text-left{text-align:left}

KRA Vehicle Import Duty Calculator 2025

Motor Vehicles ≤1500cc (Incl. S/Cab Pickups/Lorries/Buses) Motor Vehicles >1500cc (Excl. HS 8703.24.90 & 8703.33.90) Motor Vehicles >3000cc Petrol or >2500cc Diesel 100% Electric Powered Motor Vehicles School Buses for Public Schools Prime Movers (No Excise Duty) Trailers (No Excise Duty) Ambulance Motor Cycles Special Purpose Vehicles Heavy Machineries
Direct Import Previously Registered in Kenya
// Depreciation tables const directImportDepreciation = { 1: 0.20, 2: 0.30, 3: 0.40, 4: 0.50, 5: 0.55, 6: 0.60, 7: 0.65 }; const registeredDepreciation = { 1: 0.20, 2: 0.35, 3: 0.50, 4: 0.60, 5: 0.70, 6: 0.75, 7: 0.80, 8: 0.83, 9: 0.86, 10: 0.89, 11: 0.90, 12: 0.91, 13: 0.92, 14: 0.93, 15: 0.94, 16: 0.95 }; // Tax rates by vehicle type const taxRates = { mv1500: { importDuty: 0.35, exciseDuty: 0.20, vat: 0.16, idf: 0.035, rdl: 0.02 }, mv1500plus: { importDuty: 0.35, exciseDuty: 0.25, vat: 0.16, idf: 0.035, rdl: 0.02 }, mv3000petrol2500diesel: { importDuty: 0.35, exciseDuty: 0.35, vat: 0.16, idf: 0.035, rdl: 0.02 }, electric: { importDuty: 0.25, exciseDuty: 0.10, vat: 0.16, idf: 0.035, rdl: 0.02 }, schoolBus: { importDuty: 0.35, exciseDuty: 0.25, vat: 0.16, idf: 0.035, rdl: 0.02 }, primeMover: { importDuty: 0.35, exciseDuty: 0.0, vat: 0.16, idf: 0.035, rdl: 0.02 }, trailer: { importDuty: 0.35, exciseDuty: 0.0, vat: 0.16, idf: 0.035, rdl: 0.02 }, ambulance: { importDuty: 0.0, exciseDuty: 0.25, vat: 0.16, idf: 0.035, rdl: 0.02 }, motorCycle: { importDuty: 0.25, exciseDuty: 12952.83, vat: 0.16, idf: 0.035, rdl: 0.02 }, specialPurpose: { importDuty: 0.0, exciseDuty: 0.0, vat: 0.16, idf: 0.035, rdl: 0.02 }, heavyMachinery: { importDuty: 0.0, exciseDuty: 0.0, vat: 0.16, idf: 0.035, rdl: 0.02 } }; document.getElementById(‘vehicleType’).addEventListener(‘change’, function() { const vehicleType = this.value; const engineCapacityDiv = document.getElementById(‘engineCapacityDiv’); const fuelTypeDiv = document.getElementById(‘fuelTypeDiv’); engineCapacityDiv.classList.add(‘hidden’); fuelTypeDiv.classList.add(‘hidden’); if ([‘mv1500’, ‘mv1500plus’, ‘mv3000petrol2500diesel’].includes(vehicleType)) { engineCapacityDiv.classList.remove(‘hidden’); fuelTypeDiv.classList.remove(‘hidden’); } }); document.getElementById(‘dutyForm’).addEventListener(‘submit’, function(e) { e.preventDefault(); const vehicleType = document.getElementById(‘vehicleType’).value; const registrationStatus = document.getElementById(‘registrationStatus’).value; const crsp = parseFloat(document.getElementById(‘crsp’).value); const yom = parseInt(document.getElementById(‘yom’).value); const currentYear = 2025; const age = currentYear – yom; const engineCapacity = parseInt(document.getElementById(‘engineCapacity’).value) || 0; const fuelType = document.getElementById(‘fuelType’).value; // Validation const errorElement = document.getElementById(‘error’); errorElement.textContent = ”; if (isNaN(crsp) || crsp <= 0) { errorElement.textContent = 'Please enter a valid CRSP value.'; return; } if (isNaN(yom) || yom currentYear) { errorElement.textContent = ‘Please enter a valid Year of Manufacture.’; return; } if ([‘mv1500’, ‘mv1500plus’, ‘mv3000petrol2500diesel’].includes(vehicleType)) { if (isNaN(engineCapacity) || engineCapacity <= 0) { errorElement.textContent = 'Please enter a valid Engine Capacity.'; return; } if (!fuelType) { errorElement.textContent = 'Please select a Fuel Type.'; return; } } // Validate engine capacity and fuel type for specific vehicle types if (vehicleType === 'mv3000petrol2500diesel') { if ((fuelType === 'petrol' && engineCapacity <= 3000) || (fuelType === 'diesel' && engineCapacity = 8 ? 0.65 : directImportDepreciation[age] || 0; } else { depreciation = registeredDepreciation[Math.min(age, 16)] || 0; } // Calculations const customsValue = crsp * (1 – depreciation); const rates = taxRates[vehicleType]; const importDuty = customsValue * rates.importDuty; const exciseValue = customsValue + importDuty; const exciseDuty = vehicleType === ‘motorCycle’ ? rates.exciseDuty : exciseValue * rates.exciseDuty; const vatValue = exciseValue + exciseDuty; const vat = vatValue * rates.vat; const idf = customsValue * rates.idf; const rdl = customsValue * rates.rdl; const grandTotal = registrationStatus === ‘direct’ ? customsValue + importDuty + exciseDuty + vat + idf + rdl : importDuty + exciseDuty + vat; // Display results with thousand separators const resultTable = ` ${registrationStatus === ‘direct’ ? ` ` : ”}
Current Retail Selling Price (KES):${crsp.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Depreciation (${(depreciation * 100).toFixed(0)}%):${(crsp * depreciation).toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Customs Value:${customsValue.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Import Duty (${(rates.importDuty * 100).toFixed(0)}%):${importDuty.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Excise Value:${exciseValue.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Excise Duty${vehicleType === ‘motorCycle’ ? ” : ` (${(rates.exciseDuty * 100).toFixed(0)}%)`}:${exciseDuty.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
VAT Value:${vatValue.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
VAT (16%):${vat.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
IDF Fees (3.5%):${idf.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
RDL (2%):${rdl.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Grand Total (KES):${grandTotal.toLocaleString(‘en-KE’, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
`; document.getElementById(‘resultTable’).innerHTML = resultTable; document.getElementById(‘result’).classList.remove(‘hidden’); });