Maximum Power Transfer Calculator
The maximum power transfer calculator finds the load resistance that receives the greatest possible power from a linear resistive source.
Run — free
Enter the source's open-circuit voltage and internal resistance, and it applies the Thévenin maximum-power condition to return the matched load, maximum load power, load voltage, and current. It is useful for checking textbook problems, comparing circuit choices, and documenting the ideal operating point before practical efficiency, heating, tolerance, or impedance constraints are considered.
Describe the source with its Thévenin values
Start with the source as seen from the two terminals where the load will connect. The voltage input is the open-circuit voltage: the terminal voltage measured when no load draws current. The source resistance is the Thévenin resistance in ohms, representing the internal series resistance of the source and its surrounding linear network. A battery model might use its no-load voltage and internal resistance; a larger resistor network can first be reduced to the same two quantities. Enter ordinary numeric values without unit symbols. Keep both quantities in a consistent SI basis—volts and ohms—so the returned power is in watts and current is in amperes. The resistance must be greater than zero because an ideal zero-resistance voltage source has no finite matched load under this model. The voltage may be zero or signed; its sign determines current direction, while delivered power depends on its square. This calculator assumes a purely resistive DC circuit or an AC case already reduced to equivalent real resistances, not arbitrary complex impedance matching.
Understand the matching calculation
For a load resistance R_L connected to a Thévenin source with voltage V and source resistance R_S, the load current is V divided by R_S plus R_L. Load power is therefore V squared times R_L divided by the square of R_S plus R_L. Differentiating that expression with respect to the load resistance, or comparing the two loss terms directly, shows that its unique positive maximum occurs when R_L equals R_S. At that matched point, half the open-circuit voltage appears across the load and half appears across the source resistance. The current is V divided by twice R_S, and substitution gives a maximum delivered power of V squared divided by four R_S. The calculator reports all four related quantities so the result can be checked without repeating intermediate arithmetic. Results use JavaScript floating-point numbers and are deterministic: identical finite inputs produce identical JSON output, with no measurement lookup, rounding mode, network call, random choice, or time-dependent value involved.
Use the ideal maximum responsibly
Maximum delivered power is not automatically the best engineering operating point. At resistance matching, the source resistor dissipates the same power as the load, so the transfer efficiency is only fifty percent within this simple model. Power supplies and battery-powered systems are often designed with a load resistance much larger than the source resistance because efficiency, voltage regulation, runtime, and temperature matter more than extracting the mathematical maximum. The result is nevertheless valuable as a benchmark: it identifies the peak of the resistive power curve and makes deviations from that peak easy to discuss. Check component power ratings, source current limits, thermal behavior, resistance tolerance, and voltage dependence before building a circuit. For sinusoidal AC networks with reactance, the broader theorem uses complex-conjugate impedance matching rather than equality of resistance alone; this calculator intentionally does not infer frequency or reactance. Treat its output as the exact result for the stated two-resistance model and as a starting point, not a substitute for device limits or a complete circuit simulation.
What you can do with it
Check a circuit analysis exercise
Confirm the matched resistance, maximum power, terminal voltage, and current from a Thévenin equivalent.
Benchmark a sensor interface
Compare a proposed resistive load with the ideal maximum-power point of a modeled signal source.
Estimate an ideal source limit
Calculate the theoretical peak load power before applying current, temperature, tolerance, and efficiency constraints.
FAQ
What does the calculation cost?
The API price is $0.002 per request, and the same deterministic calculation can run free in the browser.
Why does the load resistance equal the source resistance?
For a linear resistive Thévenin source, differentiating load power with respect to load resistance places the maximum at equal resistances.
Why is the load voltage half the open-circuit voltage?
At the matched point, equal source and load resistances form an equal voltage divider.
Does maximum power mean maximum efficiency?
No. The ideal matched circuit dissipates equal power in the source resistance and load, corresponding to fifty percent transfer efficiency.
Can I use this for AC impedance matching?
Only when the circuit has already been reduced to real resistances. Networks with reactance require complex-conjugate impedance matching.
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/max-power-transfer \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"voltage":12,"source_resistance":6}'const res = await fetch("https://api.kit.forhosting.com/elec/max-power-transfer", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"voltage": 12,
"source_resistance": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/max-power-transfer",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"voltage": 12,
"source_resistance": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/max-power-transfer", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"voltage":12,"source_resistance":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"voltage":12,"source_resistance":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/max-power-transfer", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"voltage": 12,
"source_resistance": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.max_power_transfer",
"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. |