Guide number from aperture and distance
A correct exposure at f/8 with the flash 4.5 m away means a guide number of 36 at ISO 100: enter the aperture, distance and ISO of a shot that worked and get the guide number it implies. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Aperture
- 8
- Distance
- 4.5
- Guide number
- 36
- Effective guide number
- 36
- Iso
- 100
- Rated iso
- 100
When a flash frame is already correctly exposed, the guide number is not a guess: it is the product of the f-number you used and the measured flash-to-subject distance, scaled to the ISO a manufacturer chart would quote. This calculator inverts the usual lookup. Instead of starting from a printed GN and asking for aperture or reach, you enter the aperture that already worked, the flash-to-subject distance, and the ISO of that frame. The engine returns the implied guide number at your reference ISO, the working-ISO effective GN, and the square-root ISO scale that connects them. Use it to reverse-engineer an unmarked speedlight, check a spec sheet after a bounce or modifier test, or grade lighting homework without inventing Infinity from a zero distance.
How a correct exposure implies a guide number
A flash guide number is the single rating that ties flash output, subject distance, and lens aperture together under the simplifying assumption of a direct, unmodified flash on a subject of average reflectance. Photographers usually meet that rating on a box or LCD: given GN, they divide by distance to get an f-number, or divide by the f-number to get maximum reach. This page does the opposite search.
You already have a frame that looks right—maybe you chimped a histogram, maybe a meter agreed, maybe a classroom problem states that f/8 at four and a half metres was correct—and you want the implied GN those two numbers encode. Algebraically the identity is the same product: aperture times distance equals the effective guide number at the ISO you were shooting.
If you need the number quoted the way catalogues quote it, almost always at ISO one hundred, you rescale with the square root of the ISO ratio: the derived guide number equals aperture times distance times the square root of rated ISO over working ISO.
A classic metric check is f/8 at four and a half metres at ISO one hundred, which yields GN thirty-six; the same pair at ISO four hundred with a one-hundred reference ISO yields GN eighteen, because two stops of extra sensor gain make the flash look twice as strong on the working-ISO product and must be divided back out.
Guide numbers are not unitless: the length unit of the returned GN is the length unit of the distance you typed, so metres produce a metric GN and feet produce an imperial GN. The formula never converts between those systems. Bounce ceilings, softboxes, zoom-head throw, high-speed sync, and TTL preflashes change real exposure; if you measured a correct exposure through a modifier, the number you get is an effective GN for that setup, which is often exactly what you wanted to measure.
What you can do with it
Reverse-engineer an unmarked speedlight
Fire a test at a taped flash-to-subject distance, note the f-stop that looked correct, and recover a comparable guide number at ISO 100 before you buy or rent.
Effective GN after bounce or a modifier
After a correct bounce or softbox exposure, derive the effective guide number of that setup so the next placement starts from a number, not a guess.
FAQ
How do I find a flash guide number from aperture and distance?
Enter the f-number that produced a correct exposure and the flash-to-subject distance. The implied working-ISO guide number is aperture × distance.
Why does ISO use a square-root scale when I derive GN?
Flash exposure trades with sensitivity by stops, and each stop is a factor of two in ISO. Guide numbers scale with the square root of that ratio, so two stops of extra ISO (100 → 400) doubles the working-ISO product and must be divided back out to recover the ISO-100 chart number.
Are metres and feet interchangeable in this calculator?
No. The returned guide number uses the same length unit as the distance you type. Four and a half metres at f/8 is GN 36 metric; the same scene in feet is a different GN. The formula does not convert metric charts to imperial ones.
What does the guide number from aperture and distance calculator cost?
The browser tool is free and runs locally.
Can I find the guide number of an unmarked speedlight?
Yes. Take a correctly exposed direct flash shot, note the aperture, the flash-to-subject distance and the ISO, and enter them: f/8 at 4.5 m and ISO 100 imply a guide number of 36.
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/hobby/photo-flash-guide-from-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"aperture":8,"distance":4.5}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-flash-guide-from-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"aperture": 8,
"distance": 4.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-flash-guide-from-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"aperture": 8,
"distance": 4.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-flash-guide-from-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"aperture":8,"distance":4.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"aperture":8,"distance":4.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-flash-guide-from-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"aperture": 8,
"distance": 4.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_flash_guide_from_distance",
"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
The browser path is free; successful API calls use the published base of $0.002 per item, and invalid input is not billed.
What you send and what you get back
Send two required positive finite numbers: aperture as the f-number N that produced the correct flash exposure, and distance as the flash-to-subject length in the unit you want the guide number quoted in. Wire the free browser form for field math, then call the identical contract from scripts when you bulk-build lighting tables or lesson answer keys. Aperture aliases include N, f_number, fNumber, f_stop, and fstop, so f/8 can arrive as eight under any of those keys. Distance aliases include d, dist, subject_distance, and flash_distance. Optional iso is the working sensitivity of that frame and defaults to one hundred; aliases are ISO, sensitivity, and working_iso. Optional rated_iso is the reference ISO at which to quote the derived guide number and also defaults to one hundred, matching almost every manufacturer chart; aliases are gn_iso, guide_iso, ratedIso, and reference_iso. Optional precision, with aliases decimals and dp, chooses how many decimal places to expose for numeric fields, defaulting to ten and capped at fifteen so JSON goldens stay stable. Missing aperture or distance, zeros, negatives, non-numeric strings, NaN, Infinity, and magnitudes above the published ceiling fail with invalid_input and are not billed, because a zero f-stop or a zero distance would collapse the product and a non-positive ISO would make the square-root scale undefined. On success the response leads with guide_number at the reference ISO, then effective_guide_number equal to aperture times distance at the working ISO, the echoed aperture, distance, iso, and rated_iso, the iso_scale factor equal to the square root of iso over rated_iso, an f_stop_label such as f/8, a unit_note reminding you that GN and distance share a length unit, the method tag photo_flash_guide_from_distance, the precision used, and the formula string. Classic checks include eight and four point five at default ISO one hundred yielding guide number thirty-six and iso_scale one, or the same pair at ISO four hundred with rated ISO one hundred yielding guide number eighteen and iso_scale two. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where deriving a guide number shows up in real work
Used-gear shoppers and rental desks meet unmarked or poorly labelled speedlights constantly; a single correct test at a taped distance and a known f-stop is enough to recover a comparable GN before deciding whether the unit matches the listing. Studio assistants who just built a bounce or a softbox often want the effective guide number of that modified source so they can place the next subject without chimping every frame, and quoting that effective GN at ISO one hundred keeps it on the same scale as the bare-flash chart. Prefer this landing when the search intent is to recover a guide number from aperture and distance; use the flash guide number calculator when you already know GN and need the missing f-stop or reach, and use flash distance from guide number when you only want distance equals GN divided by N. Keep optical values inside the published absolute range so products and square roots cannot overflow into non-finite results. Teachers and workshop leaders assign the inverse problem as often as the forward one—given a correct f/5.6 at three metres, what is the GN—and a deterministic API speeds grading without opaque phone apps that silently switch metres and feet. Firmware authors, lighting-planner apps, and camera-simulation games encode the same product when a user types a successful exposure and the interface must display an implied power rating; a pure parse endpoint avoids re-implementing ISO square-root scaling and overflow guards in every client.
Integration use cases
Classroom inverse-GN drills
Generate answer keys for “given f/8 at 4.5 m, what is the GN?” problems with stable guide_number, iso_scale, and formula fields for auto-graders.
Technical questions
What if my correct exposure used bounce, a softbox, or high-speed sync?
The product still reports an effective guide number for that setup at your working ISO, quoted at rated_iso. That is useful for placing the next subject. It is not the manufacturer’s bare-flash rating, which assumes direct unmodified flash.