Stock split calculator
After a 2-for-1 split, 100 shares at 50 become 200 shares at 25, and the position is still worth 5,000. Enter your shares, the price and the split ratio, forward or reverse, to see the new figures. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Current shares
- 100
- Current price
- 50
- Split ratio
- 2
- New shares
- 200
- New price
- 25
- Market value
- 5,000
- Split kind
- forward
A stock split rescales how many shares you hold and the price of each share without changing the economic value of the position. A two-for-one split doubles the share count and halves the price; a one-for-ten reverse split divides the share count by ten and multiplies the price by ten.
What a stock split does and how the ratio scales shares and price
A stock split is a recapitalization of the share count, not a change in the firm's value. If you hold one hundred shares priced at fifty, the position is worth five thousand. After a two-for-one split you hold two hundred shares priced at twenty-five, and the position is still worth five thousand.
Brokers and exchanges announce splits as N-for-M (two-for-one, three-for-two, one-for-ten). Convert that announcement to a single positive number by dividing N by M: two-for-one is two, three-for-two is one and a half, one-for-ten is one tenth. A ratio of one leaves both figures unchanged and is allowed because the identity still holds.
A ratio that is zero, negative, missing, or not a finite number cannot scale the two sides and is rejected. This calculator does not look up a live quote, does not apply a cash-in-lieu rule for leftover fractional shares, does not convert currencies, and does not rewrite a historical price series for you: you supply the three numbers that already describe one position on one split date.
The same identity is used in corporate-action files, brokerage statements, and homework: the market value before the split equals the market value after the split, and only the packaging of that value changes.
FAQ
What happens if the split ratio is not a positive number?
Zero would divide the price by zero; a negative ratio would invert the meaning of a split. Those failures are not billed.
How do I enter a 2-for-1, 3-for-2, or reverse 1-for-10 split?
Convert N-for-M into one number by dividing N by M. Two-for-one is 2, three-for-two is 1.5, one-for-ten is 0.1. The calculator does not parse an N-for-M string; it scales the two numbers you send.
Does a stock split change the value of my position?
A forward split packages the same value into more cheaper shares; a reverse split packages it into fewer dearer shares.
Why would a company do a reverse split?
A reverse split leaves you with fewer shares at a higher price, and it is often used to lift a quote above an exchange's minimum bid. As with any split, the total value of your position does not change.
What happens to fractional shares after a split?
The result keeps fractions exactly as the ratio produces them. The calculator does not apply a cash-in-lieu rule for leftover fractions, and it does not rewrite your past price history.
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/fin/stock-split \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_shares":100,"current_price":50,"split_ratio":2}'const res = await fetch("https://api.kit.forhosting.com/fin/stock-split", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_shares": 100,
"current_price": 50,
"split_ratio": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/stock-split",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_shares": 100,
"current_price": 50,
"split_ratio": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/stock-split", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_shares":100,"current_price":50,"split_ratio":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_shares":100,"current_price":50,"split_ratio":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/stock-split", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"current_shares": 100,
"current_price": 50,
"split_ratio": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.stock_split",
"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
This stock split calculator takes three finite numbers — current_shares, current_price, and split_ratio — multiplies the share count by the ratio, divides the price by the same ratio, and returns the new share count and the new price together with the conserved market value and a formula string you can show next to the answer. split_ratio is the number of new shares per old share: two means a 2-for-1 forward split, one-half means a 1-for-2 reverse split. A split ratio that is not a positive number is rejected with invalid_input and is not billed, because a zero or negative ratio cannot scale shares and price.
What a stock split does and how the ratio scales shares and price
The split_ratio is the multiplier applied to the share count: new_shares equals current_shares times split_ratio, and new_price equals current_price divided by split_ratio, which is the unique pair that conserves market_value. A ratio greater than one is a forward split: more shares, a lower price, and often an easier retail quote. A ratio between zero and one is a reverse split: fewer shares, a higher price, often used to lift a quote above an exchange minimum bid.
Input contract, response shape, and error behaviour
Zero shares and a zero price are allowed: a empty lot stays empty, and a worthless quote stays worthless after the rescale. POST a JSON body with three required finite numbers. current_shares is the lot you hold immediately before the split; aliases shares and share_count map to the same field so a brokerage export can keep its column names. current_price is the last pre-split quote per share in one currency; the alias price is accepted. split_ratio is new shares per old share; aliases ratio and split are accepted. Each numeric field may arrive as a JSON number or a numeric string. Missing fields, empty strings, and non-finite values fail with invalid_input naming the field. On success the body echoes current_shares, current_price, and split_ratio, then reports new_shares, new_price, market_value as the conserved current_shares times current_price, split_kind as forward when the ratio is greater than one, reverse when it is between zero and one, or unchanged when it is exactly one, and a formula string restating the identity. Example: one hundred shares at fifty with split_ratio two yield two hundred shares at twenty-five and a market value of five thousand. Pair the JSON with your own rule for cash-in-lieu of a leftover fraction if your broker does not credit fractional shares; this endpoint returns the exact scaled count, rounded half-up to eight decimal places for shares and six for price so goldens compare byte-for-byte across runtimes.
Where a stock split calculator earns its keep
Shareholders and brokerage desks use a stock split calculator to turn an N-for-M announcement into a new lot and a new price before the books close on the ex-split date, so a two-for-one, a three-for-two, or a one-for-ten reverse split never has to be restated by hand. A stock split only rescales the packaging of a position that already exists. Failed validation does not consume balance. Keep the split ratio positive, pin the rounded outputs in tests, and you get a reproducible post-split lot for teasers, LMS plugins, and edge workers without standing up a corporate-action engine of your own. Student-analysts re-run the same three fields when a homework set asks for post-split holdings, then pin new_shares and new_price next to the conserved market_value so every discussion starts from one identity rather than a guessed quote. Portfolio tools drop the pre-split lot and last print, convert the board resolution into split_ratio, and refresh the watchlist without pretending the formula looks up a live tape or adjusts a multi-year chart. This is a different search and a different job from a stock profit-and-loss calculator, from a Graham-number price ceiling, and from an earnings-per-share restatement: those tools measure a round-trip trade, a 15 times 1.5 valuation bound, or profit over a share count.
Integration use cases
Ex-split lot before the books close
Turn an N-for-M board announcement into new_shares and new_price for the lot you already hold, and keep market_value unchanged.
Classroom and CFA-style homework
Let students submit current_shares, current_price, and split_ratio and verify the scaled lot against the textbook identity.
Watchlist refresh without a live tape
Pin new_shares and new_price next to the last pre-split print so a watchlist reflects a 2-for-1 or a reverse split without a quote feed.
Technical questions
How do I calculate shares and price after a stock split?
new_shares equals current_shares times split_ratio, and new_price equals current_price divided by split_ratio. split_ratio is new shares per old share: 2 is a 2-for-1 split, 1.5 is a 3-for-2 split, 0.1 is a 1-for-10 reverse split. Market value current_shares times current_price is conserved.
What does the stock split calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.