Estimate your monthly electric bill based on kWh usage and current rate schedules.
Usage Information
Summer (May – Sept)
Non-Summer (Oct – Apr)
Rate Settings (Estimates)
Basic Service Charge:$-
Energy Usage Cost (Tier 1):$-
Energy Usage Cost (Tier 2):$-
Estimated Taxes & Riders:$-
Total Estimated Bill:$-
Note: This calculator provides an estimate based on standard residential Rate Schedule 1 logic (Virginia representative). Actual bills include fuel adjustment riders, sales tax, and municipal taxes which vary by specific location.
Understanding Your Dominion Energy Rate
Calculating your electric bill can often feel complicated due to the various components that make up the final total. For residential customers, specifically those under Rate Schedule 1 (common in Virginia and surrounding service areas), the bill is primarily composed of distribution charges, electricity supply charges, and transmission charges.
Key Bill Components
Basic Customer Charge: This is a fixed monthly fee that covers the cost of metering, billing, and customer service, regardless of how much electricity you use.
Distribution Service: Charges for delivering electricity to your home through local wires. This is often tiered based on usage.
Electricity Supply Service: The cost of generating the electricity (fuel costs, power plant operations) and transmitting it to the distribution network.
Riders: These are variable charges that cover specific costs such as fuel rate adjustments, renewable energy projects, or strategic undergrounding of lines.
Seasonal Rate Changes
Dominion Energy rates often fluctuate based on the season. This is intended to reflect the higher demand and cost of generating power during extreme weather months.
Summer (May – September)
During the summer, demand is typically higher due to air conditioning. The rate structure usually penalizes high usage. Once you exceed a specific threshold (commonly 800 kWh), the cost per kWh increases significantly to encourage conservation.
Non-Summer (October – April)
In the winter or "shoulder" months, the pricing dynamic may change. In some rate schedules, usage over 800 kWh might actually be charged at a lower rate to support electric heating, or it may remain flat depending on the specific rider adjustments in effect for that year.
How to Lower Your Bill
Since a large portion of your bill is determined by the kwh usage tiers, keeping your consumption under the 800 kWh threshold is the most effective way to lower your average cost per unit.
Smart Thermostats: Heating and cooling account for nearly 50% of energy usage. Automated regulation can save significant kWh.
Off-Peak Usage: While standard Schedule 1 is not time-of-use based, switching to a Time-of-Use plan (if available) allows you to pay less for running appliances like dryers and dishwashers late at night.
Phantom Load: Unplug electronics that are not in use to avoid passive electricity drain.
function updateDefaultRates() {
var season = document.getElementById('seasonSelect').value;
var tier1Input = document.getElementById('tier1Rate');
var tier2Input = document.getElementById('tier2Rate');
// Representative values – these are estimates for logic demonstration
if (season === 'summer') {
// Summer rates are typically higher, especially above 800kWh
tier1Input.value = "0.1200";
tier2Input.value = "0.1450";
} else {
// Winter/Non-summer rates often have lower tail blocks or flatter rates
tier1Input.value = "0.1200";
tier2Input.value = "0.1100";
}
}
function calculateDominionBill() {
// Get Inputs
var usage = parseFloat(document.getElementById('kwhUsage').value);
var baseCharge = parseFloat(document.getElementById('basicCharge').value);
var limit = parseFloat(document.getElementById('tierLimit').value);
var rate1 = parseFloat(document.getElementById('tier1Rate').value);
var rate2 = parseFloat(document.getElementById('tier2Rate').value);
var taxPct = parseFloat(document.getElementById('taxRate').value);
// Validation
if (isNaN(usage) || usage < 0) {
alert("Please enter a valid Usage (kWh) amount.");
return;
}
if (isNaN(baseCharge) || isNaN(limit) || isNaN(rate1) || isNaN(rate2) || isNaN(taxPct)) {
alert("Please check your rate settings.");
return;
}
// Calculation Logic
var costTier1 = 0;
var costTier2 = 0;
if (usage <= limit) {
costTier1 = usage * rate1;
costTier2 = 0;
} else {
costTier1 = limit * rate1;
costTier2 = (usage – limit) * rate2;
}
var subTotal = baseCharge + costTier1 + costTier2;
var taxAmount = subTotal * (taxPct / 100);
var totalBill = subTotal + taxAmount;
// Display Results
document.getElementById('resBase').innerHTML = "$" + baseCharge.toFixed(2);
document.getElementById('resTier1').innerHTML = "$" + costTier1.toFixed(2);
document.getElementById('resTier2').innerHTML = "$" + costTier2.toFixed(2);
document.getElementById('resTax').innerHTML = "$" + taxAmount.toFixed(2);
document.getElementById('resTotal').innerHTML = "$" + totalBill.toFixed(2);
document.getElementById('resultsArea').style.display = 'block';
}