Laundry Cost per Load Calculator for Water and Electricity
This laundry cost per load calculator combines the electricity used by your washer and dryer with the water consumed by the washer, then applies the utility rates you actually pay.
Run — free
It separates washer electricity, dryer electricity, combined electricity, and water costs before showing the estimated total for one load. Use it to compare machines, understand a household routine, evaluate line drying, or turn technical appliance specifications into a practical operating-cost estimate without relying on a generic national average.
Gather usage figures that describe one complete load
Start with the energy used by the washer and dryer for one cycle, expressed in kilowatt-hours, and the washer's water consumption in US gallons. Appliance labels, energy-monitor readings, manufacturer specifications, and utility efficiency guides can all provide useful figures, but make sure every value describes the same basis: one load. A yearly estimate divided by an assumed number of cycles may be less accurate than a measured cycle, especially when programs vary greatly. Enter zero for dryer energy if you line-dry that load. If your washer has an internal heater, its electricity should already be included in the washer figure when measured at the outlet. Water heating performed by a separate household heater is not automatically included unless its electricity is already represented in the supplied usage. Keep settings consistent when comparing machines: load size, temperature, spin speed, drying target, and fabric program can materially change consumption. The calculator rejects negative usage because physical consumption for a load cannot be below zero. Zero remains valid for a resource that is not used.
Convert your utility bill into matching per-unit rates
Enter the electricity rate in currency units per kilowatt-hour and the water rate in currency units per US gallon. The result uses the same currency as those rates, so both rates must be denominated consistently. Electricity bills often show a direct per-kilowatt-hour charge, although taxes, fuel adjustments, delivery charges, and tiered pricing can make the effective rate different from the headline rate. For a practical estimate, divide the usage-dependent portion of a representative bill by its billed kilowatt-hours. Water utilities may quote a price per thousand gallons, cubic foot, or cubic metre; convert that figure to a per-gallon rate before entering it. Decide whether to include sewer charges. If wastewater is billed in proportion to water use, combining the water and sewer variable rates gives a more complete marginal cost. Fixed monthly service fees generally do not change when you run one additional load, so exclude them for a marginal estimate and allocate them separately only when your goal is full household budgeting. Never mix rates from different currencies in one calculation.
Interpret the breakdown and compare realistic scenarios
The result reports washer electricity cost, dryer electricity cost, their combined electricity cost, water cost, and total cost per load. Each component is usage multiplied by its matching rate; the total is the sum of those components. This makes comparisons more useful than a single unexplained number. For example, you can hold water use and washer energy constant, set dryer energy to zero, and see the estimated saving from line drying. You can compare an efficient washer with an older model using the same local rates, or test warm and cold cycles using measured electricity values. Treat the output as an estimate rather than a bill forecast. Detergent, fabric products, machine purchase price, maintenance, natural gas, and separately calculated water-heating energy are outside the calculation. Usage also changes with load size, moisture left after spinning, ambient conditions, and selected programs. For a monthly estimate, multiply the per-load result by your expected load count, while retaining the unrounded component inputs if you perform further analysis. The displayed values are rounded consistently for readable, repeatable output.
What you can do with it
Compare appliance operating costs
Apply the same local rates to per-load specifications from two washer and dryer combinations to compare their estimated utility expense.
Measure the value of line drying
Set dryer energy to zero and compare the result with a normal drying cycle to isolate the estimated electricity saving per load.
Build a household laundry budget
Multiply the estimated cost per load by a realistic weekly or monthly load count to plan variable utility spending.
FAQ
What does the calculation cost to run?
It runs free in your browser. An API request costs $0.002.
What currency does the result use?
The result uses the currency of the rates you enter. Use the same currency for electricity and water.
Should the water rate include sewer charges?
Include the variable sewer rate if it rises with water consumption and you want a combined water and wastewater estimate.
Can I estimate a load that is dried on a clothesline?
Yes. Enter zero for dryer energy while keeping the washer energy and water usage for the load.
Does the total include detergent or appliance depreciation?
No. It includes only the supplied washer electricity, dryer electricity, and water costs.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/home/laundry-load-cost-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"washer_energy_kwh":0.3,"dryer_energy_kwh":2.5,"water_gallons":15,"electricity_rate_per_kwh":0.18,"water_rate_per_gallon":0.006}'const res = await fetch("https://api.kit.forhosting.com/home/laundry-load-cost-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"washer_energy_kwh": 0.3,
"dryer_energy_kwh": 2.5,
"water_gallons": 15,
"electricity_rate_per_kwh": 0.18,
"water_rate_per_gallon": 0.006
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/laundry-load-cost-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"washer_energy_kwh": 0.3,
"dryer_energy_kwh": 2.5,
"water_gallons": 15,
"electricity_rate_per_kwh": 0.18,
"water_rate_per_gallon": 0.006
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/laundry-load-cost-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"washer_energy_kwh":0.3,"dryer_energy_kwh":2.5,"water_gallons":15,"electricity_rate_per_kwh":0.18,"water_rate_per_gallon":0.006}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"washer_energy_kwh":0.3,"dryer_energy_kwh":2.5,"water_gallons":15,"electricity_rate_per_kwh":0.18,"water_rate_per_gallon":0.006}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/laundry-load-cost-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"washer_energy_kwh": 0.3,
"dryer_energy_kwh": 2.5,
"water_gallons": 15,
"electricity_rate_per_kwh": 0.18,
"water_rate_per_gallon": 0.006
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.laundry_load_cost_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |