PatternsRadar
Sign in

Dividend yield

Dividend yield is the cash a company paid per share over the trailing twelve months, counted by ex-date, divided by the current share price. It is the income a holder earns before any change in the price.

`dividend_ttm` is the rupees per share a company paid over the trailing twelve months, counted by ex-date, the day the stock starts trading without the entitlement. `dividend_yield` divides that by the day's close. Both are on the same split-adjusted basis as the price series: a ₹10 dividend paid before a 1:2 split is ₹5 per today's share, so the yield survives the split instead of doubling across it. A stock that paid nothing reads 0 rather than NULL, which makes `dividend_yield == 0` a real condition that finds the non-payers. The record begins in 2012, before which every dividend field is NULL.

The one-year forms are stored columns. The function forms take a number of *years* and are computed at scan time from the ex-date record, so any span from one to ten costs the same. `dividend(3y)` is rupees over three years and `dividend_yield(3y)` that against close. `dividend_growth(5y)` compares the trailing year to the trailing year that ended five years ago, and `dividend_cagr(5y)` annualises it. The consistency questions are `dividend_years(5y)`, how many of the last five years paid, and `dividend_streak_years`, how many consecutive years counting back from today, capped at ten and a lower bound where the record starts.

Yield alone is a trap list. The highest yields on any session are companies whose price has collapsed faster than their payout has been cut, and a trailing figure still carries a special dividend that will not repeat. The scans on this site pair yield with either a trend condition, `dividend_yield(1y) > 3% and close > sma(200)`, or a consistency one. A company that has paid in every one of the last five years and grown the payment at 10% a year is making a different statement from one that paid once. `dividend_growth_yoy < -25` catches the cuts, which are the other half of the story.

The data comes from NSE's corporate-action feed, which announces amounts in free text. Roughly one dividend in two hundred names no amount and is dropped from the totals rather than counted as zero, because I would rather undercount than invent a figure. Interim and final dividends on one ex-date are summed. Because the feed is updated by a separate backfill from the nightly price refresh, the scan page states the record's last ex-date, and a yield computed against a record that has fallen behind reads low, never high.

In Sift

Written as dividend_yield — trailing-year dividends as a % of close; dividend_yield(Ny), dividend(Ny), dividend_growth(Ny), dividend_cagr(Ny), dividend_years(Ny) — the same over any span of 1 to 10 years. A working scan — Yielding over 3% today, paid in every one of the last five years, and growing the payment:

where dividend_yield(1y) > 3% and dividend_years(5y) == 5 and dividend_cagr(5y) > 5
Run

1

of the 500 most-traded NSE stocks match today, as of 25 Sept 2026

Scans that use it

Prebuilt scans in the library whose query reads this value — each with a hit-rate replay over the last 250 sessions.

Common questions

What is a good dividend yield for an NSE stock?

The NIFTY 50 as a whole yields a little over 1%, so 2% is already above the market and 4% is high. Above about 6% the question changes from "how much does it pay" to "why is the price so low". The yield is usually a fallen price rather than a generous payout, and a trend or consistency condition alongside it is what separates the two.

Is the dividend yield adjusted for splits and bonuses?

Yes. Amounts are announced per share as the share existed on the ex-date, and the price series is back-adjusted, so every amount is divided by the same factor the price was. Without that a stock that split after paying would show twice the yield it earned.

Why does dividend(3y) take years rather than bars?

Because dividends are events with dates and not a value on every bar. The functions look up a running total of payments as of the scan date and as of N years earlier, so they need no bar history at all. A ten-year span costs the same as one year, `dividend(36mo)` means three years, and `dividend(3mo)` is refused.

What does dividend_streak_years count?

Consecutive trailing years, counting back from the scan date, in which the company paid something. It is capped at ten and the record starts in 2012, so ten means "every year we can see". `dividend_years(5y)` is the looser form: how many of the last five paid, in any order.