EV Home Charging Cost Calculator (Arizona APS/SRP Rate Plans)
ANA›Life Services Authority›National Calculator Authority›EV Home Charging Cost Calculator (Arizona APS/SRP Rate Plans)
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
EV Home Charging Cost Calculator (Arizona APS/SRP Rate Plans)
Estimate your monthly electric vehicle home charging costs under Arizona Public Service (APS) and Salt River Project (SRP) rate plans, including standard, time-of-use (TOU), and EV-specific rates.
Vehicle Efficiency (miles per kWh)
Typical range: 2.5–4.5 mi/kWh. Check your vehicle specs or EPA label.
Miles Driven Per Month
Average US driver: ~1,100 miles/month.
Charger Efficiency (%)
Level 2 chargers: ~85–95%. Level 1: ~80–85%.
Utility Provider
APS (Arizona Public Service) SRP (Salt River Project)
Rate Plan
-- Select Utility First --
% of Charging Done Off-Peak
Off-peak hours vary by plan. See plan details below.
Charger Power (kW)
Level 1: ~1.4 kW | Level 2: 3.3–11.5 kW. Required for demand-charge plans.
Calculate Monthly Charging Cost
(function() { // Rate plan data (2024 approximate rates — verify with utility for current tariffs) const ratePlans = { aps: { "aps-flat": { label: "APS Saver Choice (Flat Rate)", desc: "Simple flat rate, no time-of-use. ~$0.1289/kWh (Tier 1, summer). Best for daytime charging.", tou: false, demand: false, // Summer (Jun–Sep) / Winter (Oct–May) blended flat rate summerRate: 0.1289, winterRate: 0.1089, offPeakRate: null, onPeakRate: null, demandCharge: 0, offPeakHours: "" }, "aps-tou": { label: "APS Saver Choice Plus (TOU)", desc: "Time-of-use: On-peak 3–8 PM weekdays. Off-peak ~$0.0889/kWh, On-peak ~$0.2289/kWh (summer).", tou: true, demand: false, summerOnPeak: 0.2289, summerOffPeak: 0.0889, winterOnPeak: 0.1389, winterOffPeak: 0.0789, demandCharge: 0, offPeakHours: "Off-peak: 8 PM – 3 PM weekdays, all day weekends & holidays." }, "aps-ev": { label: "APS EV Advantage (EV-Specific TOU)", desc: "EV-specific plan. Super off-peak midnight–6 AM ~$0.0489/kWh. On-peak 3–8 PM ~$0.2489/kWh (summer).", tou: true, demand: false, summerOnPeak: 0.2489, summerOffPeak: 0.0489, winterOnPeak: 0.1289, winterOffPeak: 0.0489, demandCharge: 0, offPeakHours: "Super off-peak: midnight–6 AM daily. On-peak: 3–8 PM weekdays (summer)." }, "aps-tou-demand": { label: "APS Saver Choice Peak (TOU + Demand)", desc: "TOU with demand charge. Off-peak ~$0.0689/kWh, On-peak ~$0.1889/kWh + $8.00/kW demand (summer).", tou: true, demand: true, summerOnPeak: 0.1889, summerOffPeak: 0.0689, winterOnPeak: 0.1089, winterOffPeak: 0.0589, demandCharge: 8.00, offPeakHours: "Off-peak: 8 PM – 3 PM weekdays, all day weekends. Demand charge applies to peak kW used." } }, srp: { "srp-flat": { label: "SRP Basic (Flat Rate)", desc: "Standard flat rate ~$0.1089/kWh (E-13 plan, blended). Simple, no time restrictions.", tou: false, demand: false, summerRate: 0.1189, winterRate: 0.0989, offPeakRate: null, onPeakRate: null, demandCharge: 0, offPeakHours: "" }, "srp-tou": { label: "SRP Time-of-Use (E-26)", desc: "TOU plan. On-peak 2–8 PM weekdays (summer) ~$0.2589/kWh. Off-peak ~$0.0789/kWh.", tou: true, demand: false, summerOnPeak: 0.2589, summerOffPeak: 0.0789, winterOnPeak: 0.1289, winterOffPeak: 0.0689, demandCharge: 0, offPeakHours: "Off-peak: 8 PM – 2 PM weekdays, all day weekends & holidays (summer)." }, "srp-ev": { label: "SRP EV Price Plan (E-23)", desc: "EV-specific TOU. Super off-peak 11 PM–5 AM ~$0.0389/kWh. On-peak 2–8 PM ~$0.2689/kWh (summer).", tou: true, demand: false, summerOnPeak: 0.2689, summerOffPeak: 0.0389, winterOnPeak: 0.1189, winterOffPeak: 0.0389, demandCharge: 0, offPeakHours: "Super off-peak: 11 PM–5 AM daily. On-peak: 2–8 PM weekdays (summer)." }, "srp-tou-demand": { label: "SRP Time-of-Use with Demand (E-27)", desc: "TOU + demand charge. Off-peak ~$0.0589/kWh, On-peak ~$0.1789/kWh + $9.50/kW demand (summer).", tou: true, demand: true, summerOnPeak: 0.1789, summerOffPeak: 0.0589, winterOnPeak: 0.0989, winterOffPeak: 0.0489, demandCharge: 9.50, offPeakHours: "Off-peak: 8 PM – 2 PM weekdays, all day weekends. Demand charge on peak kW." } } };
const utilitySelect = document.getElementById('ev-utility'); const ratePlanSelect = document.getElementById('ev-rate-plan'); const ratePlanDesc = document.getElementById('ev-rate-plan-desc'); const touGroup = document.getElementById('ev-tou-group'); const demandGroup = document.getElementById('ev-demand-group');
function populatePlans() { const utility = utilitySelect.value; ratePlanSelect.innerHTML = ''; const plans = ratePlans[utility]; for (const key in plans) { const opt = document.createElement('option'); opt.value = key; opt.textContent = plans[key].label; ratePlanSelect.appendChild(opt); } updatePlanUI(); }
function updatePlanUI() { const utility = utilitySelect.value; const planKey = ratePlanSelect.value; if (!planKey || !ratePlans[utility]) return; const plan = ratePlans[utility][planKey]; ratePlanDesc.textContent = plan.desc; touGroup.style.display = plan.tou ? 'block' : 'none'; demandGroup.style.display = plan.demand ? 'block' : 'none'; }
utilitySelect.addEventListener('change', populatePlans); ratePlanSelect.addEventListener('change', updatePlanUI); populatePlans();
window.evCalc = function() { const resultDiv = document.getElementById('ev-result'); resultDiv.style.display = 'none';
// Inputs const efficiency = parseFloat(document.getElementById('ev-vehicle-efficiency').value); const miles = parseFloat(document.getElementById('ev-miles-per-month').value); const chargerEff = parseFloat(document.getElementById('ev-charger-efficiency').value); const utility = utilitySelect.value; const planKey = ratePlanSelect.value; const offPeakPct = parseFloat(document.getElementById('ev-offpeak-pct').value) || 80; const chargerKw = parseFloat(document.getElementById('ev-charger-kw').value) || 7.2;
// Validation const errors = []; if (isNaN(efficiency) || efficiency 10) errors.push("Vehicle efficiency must be between 1 and 10 mi/kWh."); if (isNaN(miles) || miles 5000) errors.push("Miles per month must be between 1 and 5,000."); if (isNaN(chargerEff) || chargerEff 100) errors.push("Charger efficiency must be between 50% and 100%."); if (!planKey) errors.push("Please select a rate plan."); if (ratePlans[utility][planKey] && ratePlans[utility][planKey].tou) { if (isNaN(offPeakPct) || offPeakPct 100) errors.push("Off-peak charging percentage must be between 0 and 100."); } if (ratePlans[utility][planKey] && ratePlans[utility][planKey].demand) { if (isNaN(chargerKw) || chargerKw 20) errors.push("Charger power must be between 1 and 20 kW."); }
if (errors.length > 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(e => '').join('') + ''; return; }
const plan = ratePlans[utility][planKey];
// Core formula: // kWh needed from grid = (miles / efficiency) / (chargerEff / 100) const kWhFromVehicle = miles / efficiency; const kWhFromGrid = kWhFromVehicle / (chargerEff / 100);
// Determine season split (Arizona: summer Jun–Sep = 4 months, winter = 8 months) const summerFraction = 4 / 12; const winterFraction = 8 / 12;
let summerCost = 0; let winterCost = 0; let demandCost = 0; let effectiveSummerRate = 0; let effectiveWinterRate = 0;
if (!plan.tou) { // Flat rate effectiveSummerRate = plan.summerRate; effectiveWinterRate = plan.winterRate; summerCost = kWhFromGrid * plan.summerRate; winterCost = kWhFromGrid * plan.winterRate; } else { // TOU: blend on-peak and off-peak const offPeakFrac = offPeakPct / 100; const onPeakFrac = 1 - offPeakFrac;
effectiveSummerRate = (offPeakFrac * plan.summerOffPeak) + (onPeakFrac * plan.summerOnPeak); effectiveWinterRate = (offPeakFrac * plan.winterOffPeak) + (onPeakFrac * plan.winterOnPeak);
summerCost = kWhFromGrid * effectiveSummerRate; winterCost = kWhFromGrid * effectiveWinterRate;
// Demand charge (summer only for most AZ plans) if (plan.demand) { // Demand charge = charger kW * $/kW (summer months only) demandCost = chargerKw * plan.demandCharge * summerFraction; // Add winter demand (typically lower or zero — using 50% of summer rate for winter) // Most AZ plans only have summer demand charges; winter demand is minimal } }
// Weighted monthly average cost const energyCostMonthly = (summerCost * summerFraction) + (winterCost * winterFraction); const totalMonthly = energyCostMonthly + demandCost; const totalAnnual = totalMonthly * 12; const costPerMile = totalMonthly / miles; const effectiveRate = totalMonthly / kWhFromGrid;
// Summer-only and winter-only monthly costs for display const summerMonthly = summerCost + (plan.demand ? chargerKw * plan.demandCharge : 0); const winterMonthly = winterCost;
resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Monthly EV Charging Cost Estimate ' + '' + 'Miles per Month' + miles.toLocaleString() + ' mi' + 'Vehicle Energy Used' + kWhFromVehicle.toFixed(1) + ' kWh' + 'Grid Energy Required (incl. charger loss)' + kWhFromGrid.toFixed(1) + ' kWh' + 'Effective Summer Rate$' + effectiveSummerRate.toFixed(4) + '/kWh' + 'Effective Winter Rate$' + effectiveWinterRate.toFixed(4) + '/kWh' + (plan.demand ? 'Monthly Demand Charge (summer avg)$' + demandCost.toFixed(2) + '' : '') + 'Summer Month Cost$' + summerMonthly.toFixed(2) + '' + 'Winter Month Cost$' + winterMonthly.toFixed(2) + '' + 'Average Monthly Cost$' + totalMonthly.toFixed(2) + '' + 'Estimated Annual Cost$' + totalAnnual.toFixed(2) + '' + 'Cost per Mile$' + costPerMile.toFixed(4) + '/mi' + 'Effective Rate (all-in)$' + effectiveRate.toFixed(4) + '/kWh' + '' + (plan.offPeakHours ? 'Off-Peak Hours: ' + plan.offPeakHours + '
' : '') + '⚠️ Rates are approximate 2024 values. Verify current tariffs at aps.com or srpnet.com. Does not include base/service charges.
'; }; })();
#### Formulas Used
1. Grid Energy Required (kWh/month):
kWh_grid = (Miles ÷ Vehicle_Efficiency_mi_per_kWh) ÷ (Charger_Efficiency% ÷ 100)
2. Flat Rate Plans:
Monthly_Cost = kWh_grid × Rate_$/kWh
3. Time-of-Use Plans:
Effective_Rate = (Off_Peak% × Off_Peak_Rate) + (On_Peak% × On_Peak_Rate) Monthly_Cost = kWh_grid × Effective_Rate
4. TOU + Demand Charge Plans:
Monthly_Cost = (kWh_grid × Effective_Rate) + (Charger_kW × Demand_$/kW)
5. Seasonal Weighted Average:
Avg_Monthly = (Summer_Cost × 4/12) + (Winter_Cost × 8/12) Arizona summer = June–September (4 months); winter = October–May (8 months).
#### Assumptions & References
- APS Plans: Saver Choice (flat), Saver Choice Plus (TOU), EV Advantage (EV TOU), Saver Choice Peak (TOU+Demand). See aps.com rate plans.
- SRP Plans: Basic (E-13), Time-of-Use (E-26), EV Price Plan (E-23), TOU with Demand (E-27). See srpnet.com EV plans.
More Calculators
- Static Pressure Drop Calculator
- Phishing Risk Score Calculator
- Mean Time to Detect & Respond (MTTR) Calculator
- AI Model Attack Surface Calculator
- Cyber Insurance Premium Estimator
- SEER Rating Comparison Calculator
- Automated Takeoff vs Manual Takeoff Efficiency Calculator
- Running Pace Calculator
- One-Rep Max (1RM) Calculator
- VO2 Max Estimator
- Sports Calorie Burn Calculator
- Cloud Hosting Cost Estimator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...