Power bank phone charges calculator
A 20000 mAh power bank at 85 % efficiency delivers about 17000 mAh: four full charges of a 4000 mAh phone, with a quarter of a charge to spare. Enter both capacities for a realistic count. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Power bank mah
- 20,000
- Device mah
- 4,000
- Efficiency percent
- 85
- Efficiency fraction
- 0.85 charges
- Usable capacity mah
- 17,000
- Charges exact
- 4.25
- Charges full
- 4
Shoppers and travelers constantly ask how many times a portable battery pack can refill a phone, tablet, or earbuds case, yet dividing the printed milliamp-hour numbers alone overstates reality. Boost converters, cable resistance, charge-controller overhead, and the fact that cells are never drained to absolute zero all cut into the energy that actually reaches the device. This power bank phone charges calculator accepts the pack capacity in mAh, the device battery capacity in mAh, and an optional end-to-end transfer efficiency percent (default eighty-five), then returns usable capacity, exact fractional recharges, whole full charges, residual fraction, and remaining milliamp-hours after those full fills.
Why mAh alone is not enough: usable capacity and efficiency
A twenty-thousand milliamp-hour power bank does not deliver twenty thousand milliamp-hours into a four-thousand milliamp-hour phone. The pack stores energy at a cell voltage that is usually around three point six to three point seven volts, then boosts to five volts or higher for USB output; the phone then converts that bus voltage back down for its own battery chemistry. Each conversion stage dissipates heat.
Connectors and cables add resistance, and the device charge algorithm tapers current near full, so the last few percent of capacity costs more energy than the first few percent. A realistic estimate therefore multiplies rated pack capacity by a transfer efficiency percent before dividing by the device battery capacity. Eighty to ninety percent is a common planning band for modern USB-C packs under moderate load; cheaper boost circuits, cold weather, thin cables, and simultaneous device use can push effective delivery lower.
This calculator makes that efficiency an explicit input with a default of eighty-five percent so naive marketing arithmetic is not the silent default. Usable capacity equals power bank milliamp-hours times efficiency over one hundred. Exact charges equal usable capacity divided by device milliamp-hours.
Full charges are the integer floor of that quotient, residual fraction is the leftover partial fill of the device, and remaining milliamp-hours is what is left in the usable budget after those full fills. The model is intentionally simple: it does not recompute watt-hours at mismatched voltages, apply Peukert exponents, or temperature-derate cells. For consumer product comparison and travel packing lists, the transparent mAh-with-efficiency model matches how people search and how packaging is labeled.
Where a power bank recharges estimate earns its keep
Product comparison pages and affiliate reviews need a reproducible number for how many phone charges a pack should deliver under stated efficiency rather than a single marketing headline. Travel and outdoor packing tools help users decide whether a ten-thousand or twenty-thousand milliamp-hour bank is enough for a multi-day trip with a known handset capacity. Retail staff and support chatbots can answer how many times will this power bank charge my phone without inventing energy above the efficiency ceiling.
Classroom and maker workshops use the same formula to teach that energy transfer is never one hundred percent and that printed milliamp-hours are not the same as delivered milliamp-hours. Failed validation does not consume balance. Prefer realistic efficiencies when you know the cable and charge path; keep the default when you only know the two capacity labels.
For multi-device trips, run the calculator once per device and sum the usable budgets rather than pretending one average phone represents every gadget in the bag.
What you can do with it
Compare power banks before you buy
Enter each pack's mAh rating and your phone's battery mAh with a realistic efficiency to rank which bank delivers more full recharges, not just a bigger printed number.
Plan multi-day travel battery needs
Estimate whether a 10000 or 20000 mAh pack covers your phone for a weekend trip, then adjust efficiency down for cold weather or thin cables.
FAQ
How do you calculate how many times a power bank can charge a phone?
Multiply the power bank capacity in mAh by transfer efficiency (percent / 100) to get usable mAh, then divide by the device battery capacity in mAh.
What efficiency percent should I use?
The default is 85%, a common mid-range planning value for USB boost and charge overhead. Use 70–80% for cheap packs or thin cables, and up to about 90% for high-quality USB-C paths under moderate load.
Why doesn't a 20000 mAh power bank put 20000 mAh into my phone?
Energy is lost on the way: the pack boosts its cell voltage to 5 V or more for USB, the phone converts it back down, the cable adds resistance and charging slows near full. That is why the estimate applies an efficiency first.
Why might I get fewer charges than the estimate?
Cheap boost circuits, cold weather, thin cables and using the phone while it charges all reduce the energy that arrives. In those cases, enter an efficiency below the default 85 % so you plan with a safety margin.
Does the estimate account for battery voltage or temperature?
No. It works with the mAh printed on both labels and a single efficiency figure; it does not recalculate watt-hours at different voltages or reduce capacity for cold. That keeps the result comparable with what packaging states.
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/elec/power-bank-charges \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"power_bank_mah":20000,"device_mah":4000}'const res = await fetch("https://api.kit.forhosting.com/elec/power-bank-charges", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"power_bank_mah": 20000,
"device_mah": 4000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/power-bank-charges",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"power_bank_mah": 20000,
"device_mah": 4000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/power-bank-charges", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"power_bank_mah":20000,"device_mah":4000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"power_bank_mah":20000,"device_mah":4000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/power-bank-charges", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"power_bank_mah": 20000,
"device_mah": 4000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.power_bank_charges",
"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. |
Technical notes
Invalid inputs such as zero capacity or efficiency above one hundred percent fail with invalid_input and are not billed.
Input contract, response shape, and error behaviour
POST a JSON body with two required finite positive numbers: power_bank_mah (aliases bank_mah, powerbank_mah, bank_capacity_mah, capacity_mah, power_bank_capacity) for the pack rating in milliamp-hours, and device_mah (aliases phone_mah, battery_mah, device_capacity_mah, device_battery_mah, phone_capacity) for the device battery in milliamp-hours. Optionally send efficiency_percent (aliases efficiency, eff_percent, transfer_efficiency, eta_percent). When the sole efficiency key is the alias efficiency and the value lies in the open-closed interval from zero exclusive to one inclusive, the value is treated as a fraction (zero point eight five means eighty-five percent); otherwise values are treated as percents and must be strictly greater than zero and at most one hundred. Absolute magnitudes must stay within one trillion so intermediate results remain finite in IEEE double precision. On success the body echoes rounded power_bank_mah, device_mah, and efficiency_percent; includes efficiency_fraction as a zero-to-one ratio; usable_capacity_mah; charges_exact; integer charges_full; residual_fraction; remaining_mah; unit string charges; formula and expression strings; and a short English message summarizing the estimate. Missing fields, non-finite numbers, non-positive capacities, zero or negative efficiency, and efficiency above one hundred percent fail with invalid_input and are never charged. Pricing is a flat $0.002 per successful request with unit item.
Where a power bank recharges estimate earns its keep
Because the implementation is tier A analytic, every successful call costs the published $0.002 base price with no model tokens and no outbound network.
Integration use cases
Support and retail charge estimates
Answer customer questions about how many times a power bank can charge a phone with a deterministic API response instead of hand-wavy marketing claims.
Technical questions
Why is the result less than power_bank_mah divided by device_mah?
Because conversion losses, cables, and charge controllers mean you never deliver the full printed pack capacity into the device. The efficiency factor is how this calculator models that gap.
What inputs are required?
power_bank_mah and device_mah must be finite and > 0. efficiency_percent is optional (default 85) and must be > 0 and ≤ 100. Invalid values return invalid_input and are not billed.
What does the power bank charges calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.