Dividend calculator
A company paying 2,000,000,000 in total dividends on 500,000,000 shares pays 4 per share, and at a share price of 50 that is an 8% yield. Get both figures straight from the totals in a report. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Total dividends
- 2,000,000,000
- Shares outstanding
- 500,000,000
- Share price
- 50
- Dividend per share
- 4
- Dividend yield
- 8
- Dividend yield decimal
- 0.08
Dividend per share and dividend yield are the two cash-return figures investors quote when a company distributes earnings to holders of common stock. Dividend per share is total cash dividends divided by shares outstanding. Dividend yield is that per-share amount divided by the current share price, usually shown as a percent so a four-dollar dividend on a fifty-dollar share is an eight percent yield. Operations teams, students, and spreadsheet owners recover those figures whenever a filing lists aggregate dividends, a share count, and a quote in separate columns. This dividend calculator divides total dividends by shares outstanding, then divides the resulting per-share amount by share price, returning both the dividend amount and the yield.
What dividend per share and yield mean, and how cash becomes a rate
Dividend per share is the cash a company pays on each outstanding share: total dividends divided by the share count. Dividend yield is that per-share amount divided by the current share price, usually quoted as a percent so a four-dollar dividend on a fifty-dollar share is an eight percent yield. Those two numbers answer different questions.
Dividend per share is a cash amount in currency units; it is what appears on a tax form or a dividend calendar next to the ticker. Yield is a rate of return at today's quote: it moves whenever the price moves even if the board never changes the cash distribution. Trailing yield uses dividends already paid over the last twelve months; forward yield uses the indicated annual rate from the latest declared dividend.
Total dividends is the aggregate cash you want in the numerator: annual cash dividends, trailing-twelve-month dividends, or the indicated annual rate, as long as you are consistent. Shares outstanding is the denominator for the per-share amount and must be a finite number greater than zero; a zero share count cannot divide and is rejected instead of inventing a dividend. Share price must be a finite number greater than zero so yield has a valid denominator.
A company that paid no cash has a zero total, a zero dividend per share, and a zero yield, which is a valid result, not an error. Frequency is already collapsed into the total you send: if a firm pays one dollar four times a year, pass four as the annual cash, not the quarterly check.
What you can do with it
Homework and LMS keys for DPS and yield
Mark problems that ask students to compute dividend per share as total dividends over shares outstanding, and yield as that amount over share price, including the zero-cash case.
FAQ
How is dividend per share calculated?
Send the aggregate cash (annual, trailing, or indicated) and a positive share count. Two billion of cash on five hundred million shares is a four-dollar dividend per share.
How is dividend yield calculated from that amount?
A four-dollar dividend on a fifty-dollar share is an eight percent yield.
What happens if shares outstanding are zero?
Dividend per share is total dividends divided by shares outstanding, so a zero share count is not a valid denominator.
Should I enter the quarterly or the annual dividend?
The total for the whole period you want to measure, usually the year. If a company pays one four times a year, enter four as the annual cash, not the single quarterly payment.
What is the difference between trailing and forward dividend yield?
Trailing yield uses the dividends actually paid over the last twelve months; forward yield uses the annual rate implied by the latest declared dividend. Enter whichever total you prefer, as long as you stay consistent.
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/dividend \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_dividends":2000000000,"shares_outstanding":500000000,"share_price":50}'const res = await fetch("https://api.kit.forhosting.com/fin/dividend", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_dividends": 2000000000,
"shares_outstanding": 500000000,
"share_price": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/dividend",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_dividends": 2000000000,
"shares_outstanding": 500000000,
"share_price": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/dividend", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_dividends":2000000000,"shares_outstanding":500000000,"share_price":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_dividends":2000000000,"shares_outstanding":500000000,"share_price":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/dividend", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"total_dividends": 2000000000,
"shares_outstanding": 500000000,
"share_price": 50
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.dividend",
"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
Zero shares outstanding is rejected with invalid_input because it cannot be the denominator.
What dividend per share and yield mean, and how cash becomes a rate
This endpoint does not fetch filings or live quotes. It applies the definitions you supply so homework keys, landing-page widgets, and automation share one auditable amount and rate.
Input contract, response shape, and error behaviour
Optional decimals is an integer from zero through twelve (default six) controlling half-up rounding on the per-share amount and both yield fields. Shares outstanding is the field the product contract singles out: a zero share count is never silently replaced with one, and a missing count is not treated as zero. Failed validation does not consume balance, which keeps exploratory scripts cheap when developers intentionally send a zero share count to confirm the error path. POST a JSON body with three required finite numbers. total_dividends (aliases total_dividend, dividends, dividend_paid, and cash_dividends) is the aggregate cash dividend in currency units. It must be finite and greater than or equal to zero so a firm that paid nothing is allowed. shares_outstanding (aliases shares, number_of_shares, outstanding_shares, and shares_issued) is the share count used as the per-share denominator and must be a finite number strictly greater than zero. share_price (aliases price, stock_price, market_price, and last_price) is the quote in the same currency as the dividend and must be a finite number strictly greater than zero. On success the body echoes total_dividends, shares_outstanding, and share_price, then dividend_per_share as the cash amount per share, dividend_yield as a percent, dividend_yield_decimal as the equivalent fraction, and a formula string restating dividend per share equals total dividends over shares outstanding and yield equals dividend per share over share price. Example: two billion of total dividends, five hundred million shares, and a fifty-dollar price returns dividend_per_share four, dividend_yield eight, and dividend_yield_decimal zero point zero eight. Missing fields, non-finite values, a negative total, or a share count or price that is zero or negative fail with invalid_input naming the field and are not billed. Prefer plain JSON numbers over strings with currency symbols or percent signs; numeric strings are accepted only when they match a strict finite number pattern without commas or labels. Pricing is a fixed $0.002 per successful call with unit item.
Where a dividend calculator earns its keep
Educators and LMS platforms need an oracle for the definition question that asks students to compute dividend per share from total dividends and shares outstanding, including the zero-cash case, without a market-data terminal. Content teams can contrast trailing yield with forward yield on the same share count so readers see why two percentages can describe one ticker when the indicated rate differs from last year's cash. Use this capability when you already have total cash, a share count, and a price; if you have annual coupon dollars and a bond face amount, use a coupon-rate calculator instead of this equity dividend definition. Back-office files often store total dividends paid, shares outstanding, and last price in separate columns; a deterministic endpoint recovers DPS and yield without a spreadsheet cell that someone might later rewrite as a payout ratio by dividing by earnings. Integrators wire the endpoint into notebooks, workflow tools, or edge workers to pin goldens whenever a portfolio extract changes the stored cash, the diluted share count, or the quote. Keep shares_outstanding and share_price strictly positive, pin the rounded dividend_per_share and dividend_yield fields in tests, and you get reproducible cash amounts and yields for widgets, classrooms, and production without standing up an equity-research library of your own.
Integration use cases
Per-share cash from a 10-K total
Turn total dividends paid, shares outstanding, and the last share price into dividend_per_share and the trailing yield percent shown on a quote page.
Portfolio files that store cash, shares, and price separately
Recover dividend_per_share and dividend_yield from aggregate cash, share-count, and price columns without accidentally dividing cash by earnings (that would be a payout ratio).
Technical questions
Should I send annual, trailing, or quarterly cash in total_dividends?
Send the cash that matches the yield you want. Trailing yield uses the last twelve months of cash; forward yield uses the indicated annual rate. Do not send a single quarterly check unless you intend a quarterly yield. The calculator does not annualize.
What does the dividend calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.