ISO after stops change calculator
Raising ISO 100 by 2 stops multiplies sensitivity by 4 and lands on ISO 400: enter the starting ISO and a signed change in stops, whole or in thirds, to get the new value and the nearest standard setting. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Iso
- 100
- Stops
- 2
- Multiplier
- 4
- Iso new
- 400
- Iso rounded
- 400
- Nearest standard iso
- 400
Photographic ISO is a logarithmic sensitivity scale: each full stop doubles or halves how much light the sensor or film needs for a given aperture and shutter. When you already know the starting ISO and you only want the new number after raising or lowering the dial by a given number of stops, the closed form is ISO two equals ISO one times two to the power of the signed stop change. Positive stops raise sensitivity and usually add noise; negative stops lower sensitivity and usually clean the file. Fractional thirds such as plus one third or minus two thirds follow the same power of two, which is why one third of a stop from ISO one hundred lands near the familiar one hundred twenty-five label. This ISO after stops change calculator accepts a starting ISO and a signed stop delta, returns the exact product, a camera-style integer ISO, the nearest standard one-third-stop label from the common photographic scale, the linear multiplier two to the power of the delta, and a raise-or-lower-or-unchanged direction.
How ISO moves when you add or subtract stops
A stop of sensitivity is a factor of two on the linear ISO scale. Starting from any positive ISO, adding one full stop multiplies that ISO by two, subtracting one full stop divides it by two, and a signed real number of stops n produces the exact new value ISO times two to the n.
That identity is the same logarithm that sits inside the exposure triangle: one stop of ISO is interchangeable with one stop of shutter or one stop of aperture when you are matching exposure, but this page does not solve the other two corners. It only answers the search photographers actually type when the question is already isolated: if I am at ISO four hundred and I raise three stops, what number do I set.
Third-stop and half-stop increments are not special cases; plus one third is two to the one third, about 1.260, which is why ISO one hundred plus one third sits near one hundred twenty-six mathematically and is labelled one hundred twenty-five on camera dials. Plus two thirds is about 1.587, which maps one hundred toward one hundred sixty. Negative fractions work the same way in reverse.
Zero stops returns the starting ISO unchanged and is useful as a round-trip check. Because ISO is defined only for positive finite values, a zero or negative start is rejected rather than producing a nonsense film speed.
The calculator then reports three related numbers: the exact product, a nearest integer for scripts that want a whole ISO, and the nearest conventional one-third-stop label from the familiar sequence six, eight, ten, twelve, sixteen, twenty-five, thirty-two, forty, fifty, sixty-four, eighty, one hundred, one hundred twenty-five, one hundred sixty, two hundred, and so on through the high-ISO expansion. Those three views let a student see both the math and the dial.
When this ISO-after-stops page is the right search
Use this landing when the search intent is the new ISO after a known stop change and you do not need to rebalance aperture or shutter. That is a different query from an equivalent-exposure solver, which holds total exposure constant while you move one triangle corner and solve another, and from an exposure-value calculator, which reports EV from aperture, shutter, and ISO together. It is also different from a film-speed converter that translates ISO, ASA, and DIN labels without moving in stops.
Night, concert, and indoor event shooters use it to jump from a daylight base such as ISO one hundred up by four or five stops before they walk into a dim hall. Landscape photographers who add a strong ND filter and then want less noise after they open the shutter compute a negative stop change to pull ISO back toward the native setting.
Instructors assign signed stop problems—raise two, lower one third, raise two thirds—and need a deterministic oracle that also shows why the camera writes one hundred twenty-five instead of one hundred twenty-six. Prefer this capability when you already know the starting ISO and the signed stop delta; if you still need a matching shutter for a new aperture, use an equivalent-exposure tool, and if you need EV at ISO one hundred, use an exposure-value tool.
Round-trip checks are easy: plus n stops followed by minus n stops must recover the start after the same rounding, and a zero-stop call must echo the start.
What you can do with it
Low-light ISO planning
Event and night shooters start from a daylight base ISO and raise a known number of stops to pick the indoor setting before they lose the light.
Pulling ISO back after more light
Landscape and studio work that adds ND, opens the shutter, or brings in strobes computes a negative stop change to return toward native ISO.
Teaching the ISO stop scale
Clubs and courses generate known-good ISO values for plus two, minus one, and plus one third, plus deliberate invalid inputs for worksheets.
FAQ
How do I find the new ISO after raising or lowering by N stops?
Send a positive starting iso and a signed stops value. The new ISO is iso × 2^stops. Plus two from 100 is 400; minus one from 800 is 400; plus 1/3 from 100 is about 126, labelled 125 on most dials.
Does plus one stop always double ISO?
Yes for the exact product: each full stop multiplies ISO by two, so +1 from 200 is 400 and +2 from 200 is 800. Camera dials then snap that exact value to the nearest conventional third-stop label when needed.
Why does plus one third stop from ISO 100 become 125, not 126?
Two to the one third is about 1.260, so the exact product is about 126. Cameras publish the conventional third-stop series 100, 125, 160, 200.
How is this different from equivalent exposure or exposure value?
This page only moves ISO by a known stop count. Equivalent exposure holds total light constant while you change aperture or shutter. Exposure value reports EV from all three triangle corners together.
Can I enter thirds like 2/3 or -1/2 of a stop?
Yes. Besides decimals you can type simple fractions such as 1/3, +2/3 or -1/2, and the result also shows the nearest standard ISO on the usual third-stop scale.
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-iso-after-stops \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"iso":100,"stops":2}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-iso-after-stops", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"iso": 100,
"stops": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-iso-after-stops",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"iso": 100,
"stops": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-iso-after-stops", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"iso":100,"stops":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"iso":100,"stops":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-iso-after-stops", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"iso": 100,
"stops": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_iso_after_stops",
"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
How ISO moves when you add or subtract stops
Extremely large stop magnitudes that overflow IEEE floating point are also rejected so the contract never returns Infinity.
What you send and what you get back
Numeric strings are accepted. The stops field also accepts simple fraction strings such as 1/3, +2/3, or -1/2 so worksheets written in photographic thirds do not need a decimal conversion step. Wire the free browser form for field decisions and homework, then call the identical contract from scripts when you need a table across a stop sequence. Send a JSON body with two required finite numbers: iso, the starting sensitivity, and stops, the signed change in exposure stops. iso must be strictly positive. stops may be positive to raise sensitivity, negative to lower it, or zero to leave it unchanged. Aliases for iso include start_iso, sensitivity, asa, iso_start, and starting_iso. Aliases for stops include delta_stops, n_stops, stop_change, ev_stops, and delta. Missing fields, empty strings, non-numeric text, NaN, Infinity, non-positive iso, and a stop magnitude greater than forty fail with invalid_input naming the field and are never billed. On success the body echoes cleaned iso and stops, returns multiplier equal to two to the power of stops, iso_new equal to iso times that multiplier, iso_rounded as the nearest integer when the exact value is at least one, nearest_standard_iso as the closest conventional third-stop label by logarithmic distance, direction as raise, lower, or unchanged, and a short formula string ISO2 = ISO1 × 2^stops. Classic checks include one hundred plus two full stops for four hundred, six thousand four hundred minus four stops back to four hundred, one hundred plus one third of a stop for an exact value near one hundred twenty-six with nearest standard one hundred twenty-five, and a zero or negative starting ISO as the mandatory invalid_input path.
When this ISO-after-stops page is the right search
Automation scripts that plan ISO brackets can call the same contract in a loop over a stop list and store iso_new for math and nearest_standard_iso for camera commands. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send ISO zero.
Technical questions
What does the ISO after stops change calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input such as ISO zero is not billed.