Shower cost calculator
A 10-minute shower at 8 liters per minute uses 80 liters; at 0.005 per liter plus 0.4 for heating, it costs 0.8 in total. Change the minutes or the flow and watch the total move. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Duration
- 10
- Flow rate
- 8
- Water price
- 0.005
- Energy
- 0.4
- Volume liters
- 80
- Water cost
- 0.4
- Energy cost
- 0.4
- Cost
- 0.8
This shower cost calculator turns how long you stand under the water, the liters your showerhead actually delivers each minute, the price you pay per liter, and the energy used to heat that water into a single, checkable total. The engine is closed-form arithmetic: volume in liters is duration times flow rate, water cost is that volume times the tariff, and the total cost is water cost plus the heating energy you enter. There is no network call, no weather model, and no date-dependent shortcut.
What one shower really costs
A shower costs you twice: once for the water that leaves the head and once for the energy that heats it. The calculator works out the volume first, multiplying the minutes you spend under the water by the liters per minute your showerhead delivers. A ten-minute shower at eight liters per minute uses 80 liters. That volume is multiplied by your water price per liter, here 0.005, which gives 0.4 for the water. The heating cost you enter, 0.4 in this example, is then added, for a total of 0.8 for that single shower.
Getting the inputs right
Enter the heating cost in the same currency as the water price, so the two parts can be added. Water bills often quote a price per cubic meter; divide it by 1,000 to get the price per liter, so 5.00 per cubic meter becomes 0.005. Leaving the tap running while you soap up is simply more minutes, and the total rises in step. Zero is valid for any input, such as a cold rinse with no heating, while negative values are rejected so a typo never passes for a shower that costs nothing.
Where shower-cost thinking fits in households, hosting, and software
Shoppers can pre-check a ten-minute shower at eight liters per minute and half a cent per liter plus a heating charge before they treat the water bill as a mystery, and hosts can put a reproducible shower line item next to towels and soap without opaque spreadsheet macros. Leaving the tap running while you soap is modeled here as extra duration, not as a leak simulation: add minutes and the total moves in lockstep.
Developers call the same contract from scripts to seed deterministic test vectors for budgeting calculators, to normalize user-entered flow ratings before a product demo, or to satisfy a listing statement that demands a cost field rather than a hand-waved comparison. Contest and homework practice often needs a fast, offline source of liters and currency so solutions can be checked without a utility portal under time pressure. Pair it with generic appliance-wattage or hot-tub monthly helpers when you are assembling a small lab of free, deterministic household-money tools.
FAQ
What does the shower cost calculator cost?
It is free in your browser on this page.
What happens if duration, flow rate, water price, or energy is negative?
Every required field must be a finite non-negative number; a signed minute count, signed flow, signed tariff, or signed heating cost is not treated as a free shower.
Does this include sewer charges, standing heater loss, or soap?
No. The model is the water volume you enter plus the heating energy you enter. Tank standby loss and toiletries are out of scope.
How do I turn a price per cubic meter into a price per liter?
Divide it by 1,000, since a cubic meter holds 1,000 liters. A tariff of 5.00 per cubic meter becomes 0.005 per liter, which is the figure the calculator expects for the water price.
What should I enter as the heating energy?
Enter what it costs to heat that volume of water, in the same currency as your water price, so the two parts can be added. For a cold rinse with no heating, enter zero and only the water is counted.
Related tools
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/life/shower-cost \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration":10,"flow_rate":8,"water_price":0.005,"energy":0.4}'const res = await fetch("https://api.kit.forhosting.com/life/shower-cost", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration": 10,
"flow_rate": 8,
"water_price": 0.005,
"energy": 0.4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/shower-cost",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration": 10,
"flow_rate": 8,
"water_price": 0.005,
"energy": 0.4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/shower-cost", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration":10,"flow_rate":8,"water_price":0.005,"energy":0.4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration":10,"flow_rate":8,"water_price":0.005,"energy":0.4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/shower-cost", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"duration": 10,
"flow_rate": 8,
"water_price": 0.005,
"energy": 0.4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.shower_cost",
"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.
Limits
max_abs_value | 1000000000000000 |
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. |
Technical notes
Any negative input is rejected as invalid_input so a mistyped minute count or a signed tariff is not silently treated as a free shower.
What shower cost means and what the response contains
Shower cost is the money you pay for one shower once the water that left the head and the energy used to heat that water are both priced. This calculator answers the household question that a showerhead rating usually hides: if you run a nine-liter-per-minute head for eight minutes at half a cent per liter and you already know the heating charge for that volume, what does that single shower cost next to rent and groceries? Zero minutes, a closed tap, a zero tariff, or a cold unheated rinse is valid and simply yields a zero component, which is how you model a skipped shower or a promotional free-water window. If you need a generic appliance session without a shower landing, or a spa heater that reports a thirty-day electricity line and never a per-shower volume, use the dedicated household tools; this page is the shower-cost landing. Volume volume_liters is duration times flow_rate, because minutes times liters per minute is liters. Water cost water_cost is that volume times water_price. The heating component energy_cost is the energy field you supply, already expressed in the same currency as the water tariff so the two addends can be summed without a hidden electricity or gas rate. The primary field cost is water_cost plus energy_cost. The response also echoes the four normalized inputs, returns the split so a spreadsheet can show water versus heat, and documents a method tag volume_times_tariff_plus_heating plus a formula string so a test can repeat the closed forms without guessing. There is no hidden sewer surcharge, time-of-use split, currency conversion, or tax: the engine either multiplies duration by flow and by the tariff, adds the heating energy, or rejects the input with invalid_input. Rejected cases include a missing duration, flow_rate, water_price, or energy field, non-finite values, magnitudes above the documented ceiling, and — this is the product contract — any input that is negative.
How duration, flow rate, water price, and heating energy are read so results stay reproducible
Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a message that names the field so a bad cell does not become a wrong bill. All four fields must be finite and non-negative. Zero duration or a zero flow rate simply yields a volume of zero and a water cost of zero. The preferred field for shower time is duration, in minutes, but aliases minutes, duration_min, time, shower_minutes, and mins are accepted so a form, a query string, or a spreadsheet column can reuse the same contract without renaming cells. Flow prefers flow_rate in liters per minute, with aliases flow, lpm, liters_per_minute, and flow_lpm. The water tariff prefers water_price in currency units per liter, with aliases price, price_per_liter, water_rate, and tariff; convert a bill quoted per cubic meter by dividing by one thousand before you send it. Heating prefers energy as a currency amount, with aliases energy_cost, heating_cost, heat_cost, and heating_energy. A negative duration, a negative flow_rate, a negative water_price, or a negative energy is rejected because a signed ledger is not this model. Computation uses ordinary floating-point multiplication and one addition, then rounds every numeric field to ten decimal places with half-away-from-zero rounding and collapses negative zero to plain zero so JSON goldens compare byte for byte. Pair the free browser run on this page with the priced API when you need that identical mathematical result inside an automated pipeline without re-implementing the liter conversion yourself.
Where shower-cost thinking fits in households, hosting, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result.
Integration use cases
Compare low-flow heads with older fixtures
Turn an eight-liter or fifteen-liter-per-minute rating plus shower minutes into a per-shower water and heating total at your tariff.
Budget a hosted bathroom listing
Give guests or a property sheet a reproducible shower line item from duration, flow_rate, water_price, and energy.
Homework and utility worksheets
Generate reproducible volume_liters, water_cost, and cost answers from minutes, liters per minute, tariff, and heating energy.
Technical questions
How is the total shower cost defined?
volume_liters = duration × flow_rate, water_cost = volume_liters × water_price, energy_cost = energy, and cost = water_cost + energy_cost. Duration is in minutes and flow_rate is in liters per minute.
What units should I use for water_price and energy?
water_price is currency per liter. Divide a cubic-meter bill by one thousand. energy is the heating cost in the same currency, not a kilowatt-hour reading; convert kWh times your heat tariff yourself before sending.