Luminous efficacy calculator
This luminous efficacy calculator converts a light source's measured luminous flux and electrical input power into lumens per watt.
Run — free
Enter the total light output in lumens and the power consumed in watts, and the calculator divides the first value by the second. The result helps compare how effectively lamps, luminaires, LEDs, and other sources turn electrical input into visible light. It is a direct engineering ratio, not an estimate of lifetime, color quality, illuminance at a surface, or total energy cost.
What luminous efficacy measures
Luminous efficacy expresses how much visible-light output a source produces for each watt of electrical power it consumes. The calculator uses total luminous flux, measured in lumens, as the numerator and electrical input power, measured in watts, as the denominator. A source producing 800 lumens while drawing 10 watts therefore has a luminous efficacy of 80 lumens per watt. This ratio is useful because raw lumen output alone does not reveal the input needed to create that light. Two lamps can deliver similar brightness while drawing substantially different power. The value describes performance at the stated operating point, so measurements should represent the same stable condition. Use the complete luminaire's input power when evaluating a finished fixture, including driver or ballast losses. Use only the emitter's power when the intended comparison is specifically between emitters. State that boundary whenever results are shared, because mixing system-level and component-level measurements creates an apparently precise but misleading comparison. Luminous efficacy is distinct from radiant efficiency: lumens weight optical radiation according to human visual sensitivity, whereas radiant quantities measure physical optical power without that weighting.
How to enter and interpret the values
Enter a positive luminous flux in lumens and a positive electrical power in watts. Both figures should come from compatible measurements: the lamp or fixture should be in the same configuration, at the same drive setting, and preferably at a stable operating temperature. The algorithm evaluates luminous efficacy as luminous flux divided by electrical power, then rounds only the reported ratio to the selected number of decimal places. The original input values remain visible in the result so the calculation can be checked and reproduced. Zero power is rejected because division by zero has no finite result, while negative flux or power is outside the intended physical model. A higher lumens-per-watt result means more photometrically weighted light output for each input watt, but it does not automatically mean better light for every application. Color rendering, spectral distribution, glare control, beam shape, dimming behavior, thermal management, and service life may matter alongside efficacy. When comparing products, also confirm whether the published lumen figure is initial or maintained output and whether the wattage covers the entire product. Consistent measurement boundaries matter more than extra decimal places.
Using the result in design and comparison work
Use the result as one input to lighting selection, energy estimates, laboratory records, or quality-control checks. For a product comparison, calculate every candidate with the same definition of power and the same kind of lumen measurement. For a prototype, record the operating current, temperature, optical configuration, and measurement method next to the result so later tests remain comparable. A change in efficacy can indicate improvements or losses caused by a driver, diffuser, thermal condition, or optical assembly, but the ratio alone cannot identify which component caused the change. This calculator also does not convert lumens into lux, because illuminance depends on area, distance, beam distribution, and geometry. Nor does it predict electricity use over time; that requires power multiplied by operating duration. If an efficacy value looks unexpectedly high or low, verify unit prefixes first, then check whether the flux and power values describe the same boundary. Milliwatts entered as watts or a bare LED's lumen output divided by a complete fixture's input can distort the result dramatically. For API automation, each request costs $0.002; the same deterministic arithmetic can be run in the browser for an immediate check.
What you can do with it
Compare replacement lamps
Calculate lumens per watt for several lamps using their total lumen output and complete product input power.
Evaluate a luminaire prototype
Track whether optical, driver, or thermal design changes improve system-level visible-light output per watt.
Check supplier specifications
Recompute a stated efficacy from the listed lumens and watts before using it in a selection table or report.
FAQ
What formula does the calculator use?
It divides luminous flux in lumens by electrical input power in watts. The resulting unit is lumens per watt (lm/W).
Should I use lamp power or complete fixture power?
Use the power boundary that matches your comparison. For finished luminaires, use complete input power including driver or ballast losses, and apply that choice consistently.
Is luminous efficacy the same as energy efficiency?
No. Luminous efficacy is a photometric output-to-input ratio weighted for human vision. It does not directly state what fraction of electrical energy becomes optical radiation.
Can I calculate efficacy when power is zero?
No. Division by zero has no finite result, so electrical power must be greater than zero.
Does a higher lm/W value always mean a better light source?
Not by itself. Higher efficacy means more weighted visible light per input watt, but color quality, glare, distribution, lifetime, and application requirements also matter.
What does the API request cost?
Each API request costs $0.002. You can also run the deterministic calculation in the 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/optics/luminous-efficacy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"luminous_flux":800,"electrical_power":10}'const res = await fetch("https://api.kit.forhosting.com/optics/luminous-efficacy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"luminous_flux": 800,
"electrical_power": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/luminous-efficacy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"luminous_flux": 800,
"electrical_power": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/luminous-efficacy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"luminous_flux":800,"electrical_power":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"luminous_flux":800,"electrical_power":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/luminous-efficacy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"luminous_flux": 800,
"electrical_power": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.luminous_efficacy",
"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. |