Voltage drop percentage calculator
This voltage drop percentage calculator compares the voltage measured at the source with the voltage available at the load.
Run — free
It reports the lost volts, expresses that loss as a percentage of source voltage, and checks the result against a maximum percentage you choose. Use it to evaluate an installed circuit run from real measurements without entering wire gauge, conductor material, current, or cable length. The result gives a direct, repeatable indication of whether the measured drop stays within your selected regulation target.
Enter comparable source and load measurements
Measure source voltage at the circuit origin and load voltage at the equipment end under the same operating condition. For a useful result, the circuit should be carrying the load you actually want to evaluate; an unloaded reading may conceal loss that appears only when current flows. Enter both readings in volts, using the same meter range and measurement convention. The source value must be greater than zero, and the load value cannot exceed it because this calculator is specifically designed for voltage drop rather than voltage rise. You may also enter the maximum acceptable drop percentage required by your design, specification, or inspection procedure. The default is 3 percent, but that is a convenient comparison value rather than a universal legal rule. Applicable limits can differ by circuit purpose, installation, jurisdiction, and project documentation. If you are checking compliance, take the threshold from the governing rule or approved design instead of assuming the default applies. Accurate readings and a correctly chosen threshold matter more than extra decimal places in the final percentage.
Understand the percentage and limit check
The calculator first subtracts load voltage from source voltage to find the absolute drop in volts. It then divides that drop by source voltage and multiplies by 100. For example, a source reading of 120 V and a load reading of 115.8 V produce a 4.2 V drop; 4.2 divided by 120 equals 0.035, so the voltage drop is 3.5 percent. The denominator is always source voltage, which makes results consistent across circuit voltage levels. The returned within-limit flag is true when the calculated percentage is less than or equal to the selected maximum, including an exact boundary match. The assessment field repeats that decision in a compact text value for reports and automation. Outputs are rounded deterministically, while the limit comparison uses the underlying calculation so display rounding does not incorrectly change a pass into a failure. A passing result means only that these readings satisfy the threshold supplied to the calculator. It does not independently certify conductor ampacity, protection, insulation, grounding, temperature correction, or any other electrical requirement.
Use the result to investigate a circuit run
A result above the chosen limit is a prompt to investigate the circuit, not a diagnosis by itself. Excessive drop may be associated with a long run, undersized conductors, high operating current, loose or damaged connections, contact resistance, or a source that changes as the load is applied. Repeat measurements safely and confirm that source and load readings represent the same operating moment when the supply is variable. Comparing results at different accessible points can help locate where a large part of the loss occurs, but electrical testing should be performed only by someone qualified for the equipment and environment. A result within the selected limit is useful for commissioning records, maintenance comparisons, and automated quality checks. Save the two raw readings, the threshold, and the calculated output together so another person can reproduce the decision later. For design-stage calculations based on wire gauge, run length, current, and conductor material, use a wire voltage-drop model instead; this capability intentionally evaluates measured or otherwise known endpoint voltages and does not estimate them from cable properties.
What you can do with it
Check an installed branch circuit
Compare voltage at the panel and at the operating load to see whether the measured loss stays below the project threshold.
Record commissioning results
Turn endpoint readings into a repeatable percentage and a simple pass-or-exceeds assessment for a commissioning report.
Monitor maintenance changes
Compare periodic measurements with the same limit to identify a circuit whose voltage drop has increased over time.
FAQ
What formula does the calculator use?
It uses ((source voltage - load voltage) / source voltage) × 100. The absolute voltage drop is source voltage minus load voltage.
What maximum voltage drop percentage should I enter?
Use the limit required by the applicable design, specification, code, or authority. The 3 percent default is a common comparison value, not a universal compliance rule.
Should I measure the circuit while the load is operating?
Usually yes. Voltage drop depends on current, so readings taken under the intended operating load are generally more informative than unloaded readings.
Why is a load voltage above source voltage rejected?
That condition represents voltage rise, measurement timing differences, or another system effect. This capability is deliberately scoped to nonnegative voltage drop.
Does a within-limit result prove the wiring is safe?
No. It checks only the voltage-drop percentage against the threshold you provide. Other electrical design, protection, installation, and safety requirements remain separate.
What does the API request cost?
Each API request costs $0.002. The same deterministic calculation can also run free in your browser.
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/voltage-drop-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_voltage":120,"load_voltage":115.8}'const res = await fetch("https://api.kit.forhosting.com/elec/voltage-drop-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_voltage": 120,
"load_voltage": 115.8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/voltage-drop-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_voltage": 120,
"load_voltage": 115.8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/voltage-drop-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_voltage":120,"load_voltage":115.8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_voltage":120,"load_voltage":115.8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/voltage-drop-percent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"source_voltage": 120,
"load_voltage": 115.8
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.voltage_drop_percent",
"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. |