{"id":6655,"date":"2026-01-03T08:20:41","date_gmt":"2026-01-03T08:20:41","guid":{"rendered":"https:\/\/eodhd.com\/financial-academy\/?p=6655"},"modified":"2026-01-03T08:20:43","modified_gmt":"2026-01-03T08:20:43","slug":"dividend-investing-a-z-from-basics-to-python-screener-code","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code","title":{"rendered":"Dividend Investing A-Z: From Basics to Python Screener Code"},"content":{"rendered":"\n<p id=\"c8ad\">Dividends are profits paid out to shareholders, reflecting a company\u2019s ability to generate cash and its payout approach. For investors, dividends provide income, potential tax benefits, and a glimpse into financial health. While not guaranteed, steady or growing dividends can enhance total returns and reduce volatility in tough market environments.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2d0d\">Dividends basics<\/h3>\n\n\n\n<p id=\"a602\">Companies distribute dividends to share profits and demonstrate financial stability. A small dividend doesn&#8217;t always imply weakness\u2014take NVIDIA as an example, focusing on reinvesting earnings to fuel growth while offering shareholders modest returns. Dividends may be paid out as cash, shares, or special one-time payments. For regular investors, factors like consistency, payout ratio, and sustainability matter more than just the dividend size or yield.<\/p>\n\n\n\n<p id=\"037e\">The process of declaring a dividend involves a clear sequence that ensures fairness and transparency for shareholders. When a company decides to distribute profits, it must publicly announce key dates indicating who qualifies to receive the dividend. These milestones help investors plan accordingly and avoid missing out on payments.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Declaration Date:&nbsp;<\/strong>The date when the company announces the dividend amount, payment date, and other relevant details.<\/li>\n\n\n\n<li><strong>Ex-Dividend Date:<\/strong>&nbsp;The date on which investors must own the stock to qualify for the dividend; purchasing on or after this date disqualifies them.<\/li>\n\n\n\n<li><strong>Record Date:<\/strong>&nbsp;The date on which the company identifies which shareholders qualify for the dividend.<\/li>\n\n\n\n<li><strong>Payment Date:<\/strong>&nbsp;The date on which dividends are paid to eligible shareholders.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"b4b7\">What to check<\/h3>\n\n\n\n<p id=\"1602\">When evaluating dividend stocks, focus on reliability and growth prospects rather than just high yields. Two important ratios assist in determining if a company\u2019s dividends are sustainable and equitable for investors.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dividend Yield: This is computed by dividing the annual dividends per share by the share price. For instance, if a stock pays \u20ac2 annually and is priced at \u20ac50, the yield amounts to 4%.<\/li>\n\n\n\n<li>Dividend Payout Ratio: Indicates the portion of earnings distributed as dividends. A company with a 40% payout ratio retains the remaining earnings for reinvestment, maintaining a balanced approach between growth and shareholder returns.<\/li>\n<\/ul>\n\n\n\n<p id=\"7c41\">In general, consistent yields and moderate payout ratios suggest careful management and sustainable dividend practices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"a7c6\">Investing Strategies with Dividends<\/h3>\n\n\n\n<p id=\"5f83\">Dividend investors can employ various proven approaches to achieve income, growth, or total returns while controlling risk.<\/p>\n\n\n\n<p><strong>High-Yield Dividend Investing<\/strong>&nbsp;focuses on selecting stocks with above-average yields, typically around 4\u20136%, from stable sectors such as utilities or REITs. This approach emphasises generating current income but requires caution to avoid investments with unsustainable payouts that could indicate financial trouble.<\/p>\n\n\n\n<p><strong>Dividend Growth Investing<\/strong>&nbsp;targets companies with a history of increasing dividends each year, such as Dividend Aristocrats like Procter &amp; Gamble. It prioritises long-term growth through compounding rather than focusing solely on immediate income.<\/p>\n\n\n\n<p><strong>Dividend Income Investing<\/strong>&nbsp;involves constructing portfolios that generate consistent cash flow, typically through ETFs or blue-chip stocks. It is ideal for retirees seeking a dependable quarterly income to support their living costs.<\/p>\n\n\n\n<p><strong>Dividend Capture\u00a0<\/strong>involves purchasing shares before the ex-dividend date and selling them shortly after to receive the dividend payout. It is a short-term strategy that relies on high trading volume to offset transaction costs and potential price declines.<\/p>\n\n\n\n<p id=\"a1fa\">Tax rules differ depending on the jurisdiction. Typically, qualified dividends are taxed at lower rates, whereas short-term trades such as capture strategies are taxed as ordinary income. More sophisticated options include sector diversification and advanced options-based capture strategies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"7c82\">How can you do that?<\/h3>\n\n\n\n<p id=\"59f0\">Manually copying dividend data, sector performance, EPS trends, and payout ratios from websites is slow and can lead to mistakes or broken links. Using APIs like EODHD automates this process, providing accurate, real-time data quickly. This helps with effective backtesting, screening, and Python-based analysis, resulting in better dividend strategy decisions.<\/p>\n\n\n\n<p id=\"2d83\">I will use\u00a0<a href=\"https:\/\/eodhd.com\/pricing-special-10?via=phitzi\" target=\"_blank\" rel=\"noreferrer noopener\">EODHD APIs<\/a>\u00a0to analyse and address key questions: determining the best sectors for each strategy, identifying top dividend stocks, and verifying whether a company provides consistent or increasing dividends.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"593e\">Let\u2019s code<\/h3>\n\n\n\n<p id=\"cd7b\">Using the&nbsp;<a href=\"https:\/\/eodhd.com\/pricing-special-10?via=phitzi\" rel=\"noreferrer noopener\" target=\"_blank\">EODHD API<\/a>&nbsp;Stock Market Screener, I aim to retrieve as many stocks as possible for analysis. This API offers additional details such as last dividend, EPS, and market capitalisation, which should be sufficient for gaining some insights.<\/p>\n\n\n\n<p id=\"52d7\">Since the API allows up to 1000 stocks with a limit of 100 per page, I will loop through the known sectors to fetch 1000 stocks from each.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">import requests\nimport pandas as pd\nimport os\nimport json\nfrom urllib.parse import quote\n\napi_token = os.environ.get('EODHD_API_TOKEN')\n\nlimit = 100\nall_data = []\nsectors = ['Technology', 'Communication Services', 'Consumer Cyclical','Other', 'Financial Services', 'Healthcare', 'Consumer Defensive','Energy', 'Industrials', 'Basic Materials', 'Utilities', 'Real Estate', 'Financials']\n\nfor sector in sectors:\n    print(sector)\n    offset = 0\n    while True:\n        # Encode filters\n        filter = [[\"market_capitalization\", \"&gt;\", 1000], [\"exchange\", \"=\", \"us\"],[\"sector\",\"=\",sector]]\n        filters_json = json.dumps(filter)\n        filters_encoded = quote(filters_json)\n        # Build URL\n        url = f'https:\/\/eodhd.com\/api\/screener?api_token={api_token}&amp;sort=market_capitalization.desc&amp;filters={filters_encoded}&amp;limit={limit}&amp;offset={offset}'\n        print(f\"Fetching offset {offset}...\")\n\n        response = requests.get(url)\n\n        if response.status_code != 200:\n            print(f\"Error: {response.text}\")\n            break\n\n        data = response.json()\n\n        if not data:  # Empty response means no more results\n            print(\"No more results.\")\n            break\n\n        all_data.extend(data['data'])\n        print(f\"Retrieved {len(data)} records (total: {len(all_data)})\")\n\n        offset += limit\n\n\n# Create DataFrame\ndf = pd.DataFrame(all_data)<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>I will also introduce a new column named MarketCapCategory to categorise stocks based on their market capitalisation levels: mega, large, mid, small, micro, and nano.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\"># Define the bins and labels for each capitalization category\nbins = [0, 50_000_000, 300_000_000, 2_000_000_000, 10_000_000_000, 200_000_000_000, float('inf')]\nlabels = ['nano', 'micro', 'small', 'mid', 'large', 'mega']\n\n# Create a new column with the categorized values\ndf['MarketCapCategory'] = pd.cut(df['market_capitalization'], bins=bins, labels=labels, right=False)\ndf['MarketCapCategory'].value_counts()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"339\" height=\"195\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\" alt=\"\" class=\"wp-image-6657\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png 339w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-300x173.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-60x35.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-150x86.png 150w\" sizes=\"auto, (max-width: 339px) 100vw, 339px\" \/><\/figure>\n\n\n\n<p>We have nearly 10,000 stocks available. However, a quick look at the dataframe reveals that many stocks have very low trading volumes. Consequently, I will exclude stocks with fewer than 999 shares traded on the last trading day.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">df = df[df['avgvol_1d'] &gt; 999]<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>This brings our total to around 6,300 stocks, which should still yield meaningful results. Now, let&#8217;s analyse the average dividend across different market capitalisation categories.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">import matplotlib.pyplot as plt\n\n# Group and sort\navg_div_by_marketcap = (\n    df.groupby(\"MarketCapCategory\")[\"dividend_yield\"]\n      .mean()\n      .sort_values()\n)\n\nplt.figure(figsize=(10, 6))\n\n# Plot horizontal bar chart\nax = avg_div_by_marketcap.plot(kind=\"barh\")\n\n# Remove grid\nax.grid(False)\n\n# Add value labels at the end of each bar\nfor i, (category, value) in enumerate(avg_div_by_marketcap.items()):\n    # y coordinate is the bar index (i), x is the value\n    ax.text(\n        value,                # x position: end of bar\n        i,                    # y position: bar index\n        f\"{value:.2f}%\",      # label text\n        va=\"center\",\n        ha=\"left\",\n        fontsize=9\n    )\n\nplt.xlabel(\"Average dividend (%)\")\nplt.ylabel(\"MarketCapCategory\")\nplt.title(\"Average dividend_pct per MarketCapCategory\")\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"469\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1.png\" alt=\"\" class=\"wp-image-6658\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1-300x179.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1-768x458.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1-60x36.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-1-150x90.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"828a\">The bar chart reveals a distinct trend: nano-cap stocks have an average dividend yield of roughly 1.6% across all market-cap categories. In contrast, micro-, small-, large-, mid-, and mega-cap stocks generally exhibit yields near 0%. This suggests that nano-caps tend to distribute earnings more actively to attract investors, while larger companies often retain cash for growth, R&amp;D, or acquisitions. This pattern is consistent with lifecycle theory, which states that mature firms favour reinvestment over dividends.<\/p>\n\n\n\n<p id=\"1827\">By making small adjustments to the code above, we can plot the same bar chart for the sector.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"469\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2.png\" alt=\"\" class=\"wp-image-6659\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2-300x179.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2-768x458.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2-60x36.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-2-150x90.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"a051\">The sector analysis shows that Energy has the highest average dividend yield at about 0.29%, with Communication Services close behind at 0.27%, and Real Estate at roughly 0.25%. Defensive sectors like Utilities and Financials also perform well, while Technology and Healthcare lag at 0.10% or lower. This trend suggests that mature, cash-rich industries prioritise dividends over growth via tech reinvestment.<\/p>\n\n\n\n<p id=\"4a37\">Let&#8217;s now test the code below to find the top 10 stocks with the highest dividend yields. We&#8217;ll start by considering companies that are less likely to have high yields, such as large technology firms.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">df_copy = df.copy()\ndf_copy = df_copy.query(\"sector == 'Technology' and MarketCapCategory == 'mega'\")\n\ntop10 = (\n    df_copy.groupby('code')\n    .agg({\n        'name': 'first',\n        'dividend_yield': 'mean',\n        'sector': 'first',\n        'MarketCapCategory': 'first'\n    })\n    .round({'dividend_pct': 2})\n    .sort_values('dividend_yield', ascending=False)\n    .head(10)\n    .reset_index()\n)\n\ntop10<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"192\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3.png\" alt=\"\" class=\"wp-image-6660\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3-300x73.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3-768x188.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3-60x15.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-3-150x37.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"6309\">Someone interested in dividend strategies recognizes IBM as a top option. As demonstrated, it holds the second position with a dividend yield of nearly 2.3%.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3d22\">How to avoid traps<\/h3>\n\n\n\n<p id=\"68ec\">Another useful analysis is detecting dividend traps\u2014companies that pay dividends close to or exceeding their earnings to attract investors. We will add a payout_proxy column (using just one line of code) that shows the proportion of earnings paid out as dividends.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">df['payout_proxy'] = (df['dividend_yield'] * df['adjusted_close']) \/ df['earnings_share']<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>Next, we can filter our dataframe to select stocks that have positive earnings and a payout ratio under 80%, since these stocks retain earnings for growth.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">df.query(\"earnings_share &gt; 0 and payout_proxy &lt; 0.75\")<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>Now, let&#8217;s review the payouts of the top 10 companies by market cap.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">df[df['dividend_yield'].notna()][\n    ['code', 'name', 'dividend_yield', 'sector', 'payout_proxy', 'market_capitalization']].sort_values(\n    'market_capitalization',\n    ascending=False).head(10)<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"237\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4.png\" alt=\"\" class=\"wp-image-6661\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4-300x90.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4-768x232.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4-60x18.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-4-150x45.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"ad8c\">The list shows NVIDIA has the smallest payout, keeping its earnings for growth. While this suggests it&#8217;s not ideal for a dividend strategy, it reflects the company&#8217;s focus on reinvesting profits to drive growth, which partly explains its impressive stock returns in recent years. Conversely, Microsoft distributes a significant share of its earnings as dividends, making it a good option for investors seeking dividend income.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"eccd\">The most useful plot<\/h3>\n\n\n\n<p id=\"c426\">Lastly, I will share the code that plots a stock&#8217;s dividend consistency over time by comparing annual dividends per share with adjusted stock price trends, highlighting stability and growth patterns. I will use&nbsp;<a href=\"https:\/\/eodhd.com\/pricing-special-10?via=phitzi\" rel=\"noreferrer noopener\" target=\"_blank\">EODHD APIs<\/a>&nbsp;for historical dividend and price data.<\/p>\n\n\n\n<p id=\"e9f4\">The example below illustrates how the code fetches IBM\u2019s historical dividends and daily OHLC prices from EODHD APIs. It processes the data with adjusted values for accuracy, resamples dividends annually, and constructs a dual-axis plot. This visualisation shows dividend per share trends (blue line with a linear fit indicating CAGR) alongside adjusted close prices (orange), highlighting the consistency and growth patterns over time.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code\"><code class=\"\">code = 'IBM.US'\n# get dividends\nurl = f'https:\/\/eodhd.com\/api\/div\/{code}'\nquery = {'api_token': api_token, \"fmt\": \"json\"}\ndata = requests.get(url, params=query).json()\ndf_stock = pd.DataFrame(data)\n\n# get OHLC daily prices\nurl = f'https:\/\/eodhd.com\/api\/eod\/{code}'\nquery = {'api_token': api_token, \"fmt\": \"json\"}\ndata = requests.get(url, params=query).json()\ndf_price = pd.DataFrame(data)\n\n# Process dividends (use 'value' - adjusted for splits\/dividends, more accurate for historical comparison)\ndf_dividends = df_stock[['date', 'value']].copy()\ndf_dividends['date'] = pd.to_datetime(df_dividends['date'])\ndf_dividends = df_dividends.sort_values('date')\n\n# Process prices (use 'adjusted_close' - reflects splits\/dividends, aligns perfectly with dividend 'value')\ndf_price['date'] = pd.to_datetime(df_price['date'])\ndf_price_recent = df_price[df_price['date'] &gt;= df_dividends['date'].min()]\n\n# Resample dividends to annual for clarity (forward-fill last payment)\ndf_dividends.set_index('date', inplace=True)\nannual_div = df_dividends['value'].resample('Y').last().dropna()\n\n# Dual-axis plot\nfig, ax1 = plt.subplots(figsize=(14, 8))\n\n# Primary: Dividend per share (blue line + markers)\nax1.plot(annual_div.index, annual_div.values, 'bo-', linewidth=3, markersize=8, label='Annual DPS')\nax1.set_xlabel('Year')\nax1.set_ylabel('Dividend per Share ($)', color='blue', fontsize=12)\nax1.tick_params(axis='y', labelcolor='blue')\nax1.grid(True, alpha=0.3)\n\n# Secondary: Adjusted close price (orange dashed)\nax2 = ax1.twinx()\nax2.plot(df_price_recent['date'], df_price_recent['adjusted_close'], 'orange',\n         alpha=0.7, linewidth=2, label='Adjusted Close')\nax2.set_ylabel('Adjusted Close Price ($)', color='orange', fontsize=12)\nax2.tick_params(axis='y', labelcolor='orange')\n\n# Trendline for DPS consistency (linear fit)\nz = np.polyfit(range(len(annual_div)), annual_div.values, 1)\np = np.poly1d(z)\nax1.plot(annual_div.index, p(range(len(annual_div))), 'b--', alpha=0.8, linewidth=2,\n         label=f'DPS Trend (CAGR: {z[0]*100:.1f}%\/yr)')\n\nplt.title(f'{code} Dividend Consistency: DPS vs Adjusted Price [file:50]', fontsize=14, pad=20)\nfig.legend(loc='upper left', bbox_to_anchor=(0.02, 0.98))\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"447\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5.png\" alt=\"\" class=\"wp-image-6662\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5-300x171.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5-768x437.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5-60x34.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-5-150x85.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"6f56\">Since the 1960s, IBM\u2019s dividend history shows impressive consistency, with DPS (dividend per share) consistently increasing from around \u00a30.50 to over \u00a36.50 (indicated by the blue line\/markers). The growth follows a linear pattern with a CAGR of approximately 3.2%. Despite market fluctuations, dividends have not been reduced, even during downturns, highlighting IBM&#8217;s resilience. This steady increase solidifies IBM\u2019s status as a traditional dividend aristocrat.<\/p>\n\n\n\n<p id=\"56a2\">Now, let&#8217;s do the same for Microsoft.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"447\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6.png\" alt=\"\" class=\"wp-image-6663\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6-300x171.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6-768x437.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6-60x34.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-6-150x85.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"8d61\">Microsoft (MSFT) has shown remarkable dividend growth since 2003, with DPS increasing from around $0.30 to over $3 (blue line), maintaining roughly 10% CAGR through consistent growth. After 2014, the stock price (orange) jumped notably, outpacing dividend growth and reflecting successful reinvestments. With no dividend cuts and faster growth, MSFT emerges as a top dividend growth stock, not just a steady payer.<\/p>\n\n\n\n<p id=\"0889\">Now let\u2019s see what General Electric will look like.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"447\" src=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7.png\" alt=\"\" class=\"wp-image-6664\" srcset=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7.png 786w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7-300x171.png 300w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7-768x437.png 768w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7-60x34.png 60w, https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image-7-150x85.png 150w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p id=\"53ec\">GE exemplifies a classic case of dividend failure. Its steady DPS growth in the 2000s (around 4\u20135% CAGR, blue line) abruptly ended with approximately a 90% dividend reduction in 2018, significantly breaking the trendline. While the stock price has rebounded (orange), the dividend remains low, signalling risks related to overexpansion and debt. Investors should be cautious with stocks that display broken upward trends.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"d1f7\">Final thoughts<\/h3>\n\n\n\n<p id=\"fb9f\">Dividends provide steady income streams and the potential for compounding growth for patient investors, but pursuing high yields alone can lead to pitfalls. Concentrate on payout ratios below 75%, consistent growth trends shown by CAGR lines, and sector diversification across energy, utilities, and financials. Automated tools like\u00a0<a href=\"https:\/\/eodhd.com\/pricing-special-10?via=phitzi\" target=\"_blank\" rel=\"noreferrer noopener\">EODHD APIs<\/a>\u00a0eliminate manual data collection, enabling rapid screening of 10,000+ stocks by market cap, volume, and earnings coverage for truly sustainable opportunities.<\/p>\n\n\n\n<p>Thank you for reading!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dividends are profits paid out to shareholders, reflecting a company\u2019s ability to generate cash and its payout approach. For investors, dividends provide income, potential tax benefits, and a glimpse into financial health. While not guaranteed, steady or growing dividends can enhance total returns and reduce volatility in tough market environments. Dividends basics Companies distribute dividends [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"coding-language":[],"ready-to-go-solution":[],"qualification":[],"financial-apis-category":[],"financial-apis-manuals":[],"class_list":["post-6655","post","type-post","status-publish","format-standard","hentry","category-fundamental-analysis-examples"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.9 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dividend Investing A-Z: From Basics to Python Screener Code | EODHD APIs Academy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dividend Investing A-Z: From Basics to Python Screener Code\" \/>\n<meta property=\"og:description\" content=\"Dividends are profits paid out to shareholders, reflecting a company\u2019s ability to generate cash and its payout approach. For investors, dividends provide income, potential tax benefits, and a glimpse into financial health. While not guaranteed, steady or growing dividends can enhance total returns and reduce volatility in tough market environments. Dividends basics Companies distribute dividends [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\" \/>\n<meta property=\"og:site_name\" content=\"Financial Academy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-03T08:20:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-03T08:20:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\" \/>\n<meta name=\"author\" content=\"Filippos Tzimopoulos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:site\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Filippos Tzimopoulos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\"},\"author\":{\"name\":\"Filippos Tzimopoulos\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/62bea60a15bb6cf5f09511bbcad2c448\"},\"headline\":\"Dividend Investing A-Z: From Basics to Python Screener Code\",\"datePublished\":\"2026-01-03T08:20:41+00:00\",\"dateModified\":\"2026-01-03T08:20:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\"},\"wordCount\":1557,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\",\"articleSection\":[\"Fundamental Analysis Examples\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\",\"name\":\"Dividend Investing A-Z: From Basics to Python Screener Code | EODHD APIs Academy\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\",\"datePublished\":\"2026-01-03T08:20:41+00:00\",\"dateModified\":\"2026-01-03T08:20:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png\",\"width\":339,\"height\":195},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-academy\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dividend Investing A-Z: From Basics to Python Screener Code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"name\":\"Financial APIs Academy | EODHD\",\"description\":\"Financial Stock Market Academy\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eodhistoricaldata\",\"https:\/\/x.com\/EOD_data\",\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\",\"https:\/\/eod-historical-data.medium.com\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/62bea60a15bb6cf5f09511bbcad2c448\",\"name\":\"Filippos Tzimopoulos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4c3f487ab4ce0733b492937a98b5f56bf39f6c2c5ff51e85f849f7d09d5405f2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4c3f487ab4ce0733b492937a98b5f56bf39f6c2c5ff51e85f849f7d09d5405f2?s=96&d=mm&r=g\",\"caption\":\"Filippos Tzimopoulos\"},\"description\":\"Seasoned Business and Data Analyst with over 30+ years of experience | Python advocate | Finance and Quantitative enthusiast\",\"sameAs\":[\"https:\/\/medium.com\/@phitzi\"],\"url\":\"https:\/\/eodhd.com\/financial-academy\/author\/filippos\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dividend Investing A-Z: From Basics to Python Screener Code | EODHD APIs Academy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code","og_locale":"en_US","og_type":"article","og_title":"Dividend Investing A-Z: From Basics to Python Screener Code","og_description":"Dividends are profits paid out to shareholders, reflecting a company\u2019s ability to generate cash and its payout approach. For investors, dividends provide income, potential tax benefits, and a glimpse into financial health. While not guaranteed, steady or growing dividends can enhance total returns and reduce volatility in tough market environments. Dividends basics Companies distribute dividends [&hellip;]","og_url":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code","og_site_name":"Financial Academy","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2026-01-03T08:20:41+00:00","article_modified_time":"2026-01-03T08:20:43+00:00","og_image":[{"url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png","type":"","width":"","height":""}],"author":"Filippos Tzimopoulos","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"Filippos Tzimopoulos","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code"},"author":{"name":"Filippos Tzimopoulos","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/62bea60a15bb6cf5f09511bbcad2c448"},"headline":"Dividend Investing A-Z: From Basics to Python Screener Code","datePublished":"2026-01-03T08:20:41+00:00","dateModified":"2026-01-03T08:20:43+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code"},"wordCount":1557,"publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png","articleSection":["Fundamental Analysis Examples"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code","url":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code","name":"Dividend Investing A-Z: From Basics to Python Screener Code | EODHD APIs Academy","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png","datePublished":"2026-01-03T08:20:41+00:00","dateModified":"2026-01-03T08:20:43+00:00","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#primaryimage","url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png","contentUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/01\/image.png","width":339,"height":195},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-academy\/fundamental-analysis-examples\/dividend-investing-a-z-from-basics-to-python-screener-code#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-academy\/"},{"@type":"ListItem","position":2,"name":"Dividend Investing A-Z: From Basics to Python Screener Code"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-academy\/#website","url":"https:\/\/eodhd.com\/financial-academy\/","name":"Financial APIs Academy | EODHD","description":"Financial Stock Market Academy","publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-academy\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-academy\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eodhistoricaldata","https:\/\/x.com\/EOD_data","https:\/\/www.reddit.com\/r\/EODHistoricalData\/","https:\/\/eod-historical-data.medium.com\/"]},{"@type":"Person","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/62bea60a15bb6cf5f09511bbcad2c448","name":"Filippos Tzimopoulos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4c3f487ab4ce0733b492937a98b5f56bf39f6c2c5ff51e85f849f7d09d5405f2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4c3f487ab4ce0733b492937a98b5f56bf39f6c2c5ff51e85f849f7d09d5405f2?s=96&d=mm&r=g","caption":"Filippos Tzimopoulos"},"description":"Seasoned Business and Data Analyst with over 30+ years of experience | Python advocate | Finance and Quantitative enthusiast","sameAs":["https:\/\/medium.com\/@phitzi"],"url":"https:\/\/eodhd.com\/financial-academy\/author\/filippos"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pdOdVT-1Jl","jetpack_sharing_enabled":true,"acf":[],"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/6655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/comments?post=6655"}],"version-history":[{"count":4,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/6655\/revisions"}],"predecessor-version":[{"id":6667,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/6655\/revisions\/6667"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/media?parent=6655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/categories?post=6655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/tags?post=6655"},{"taxonomy":"coding-language","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/coding-language?post=6655"},{"taxonomy":"ready-to-go-solution","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/ready-to-go-solution?post=6655"},{"taxonomy":"qualification","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/qualification?post=6655"},{"taxonomy":"financial-apis-category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-category?post=6655"},{"taxonomy":"financial-apis-manuals","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-manuals?post=6655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}