{"slug":"what-is-total-payout-ratio","qid":"payout_vs_total","label":"payout_vs_total","post_title":"what-is-total-payout-ratio","post_url":"/blog/lang/ja/what-is-total-payout-ratio#q-payout_vs_total","columns":["ticker","dividend_payout_pct","total_payout_pct"],"rows":[{"ticker":"AAPL","dividend_payout_pct":13.1,"total_payout_pct":80.3},{"ticker":"KO","dividend_payout_pct":77,"total_payout_pct":77},{"ticker":"CSCO","dividend_payout_pct":58.6,"total_payout_pct":71.3},{"ticker":"HD","dividend_payout_pct":56.9,"total_payout_pct":56.9},{"ticker":"JNJ","dividend_payout_pct":46.2,"total_payout_pct":46.2},{"ticker":"MSFT","dividend_payout_pct":21.2,"total_payout_pct":24.3}],"shape":"ranking","sql":"WITH\n    cash_rows AS\n    (\n        SELECT\n            ticker,\n            period_end,\n            argMax(dividend_cash, (filing_date, period_end)) AS dividend_cash,\n            argMax(net_income, (filing_date, period_end))    AS net_income\n        FROM\n        (\n            SELECT\n                arrayJoin(tickers)        AS ticker,\n                period_end,\n                filing_date,\n                abs(toFloat64(dividends)) AS dividend_cash,\n                toFloat64(net_income)     AS net_income\n            FROM global_markets.stocks_cash_flow_statements\n            WHERE hasAny(tickers, ['AAPL', 'MSFT', 'HD', 'CSCO', 'KO', 'JNJ'])\n              AND timeframe = 'quarterly'\n              AND period_end >= '2022-01-01'\n        )\n        WHERE ticker IN ('AAPL', 'MSFT', 'HD', 'CSCO', 'KO', 'JNJ')\n        GROUP BY ticker, period_end\n    ),\n    ranked AS\n    (\n        SELECT\n            ticker,\n            period_end,\n            dividend_cash,\n            net_income,\n            row_number() OVER (PARTITION BY ticker ORDER BY period_end DESC) AS rn\n        FROM cash_rows\n    ),\n    trailing_year AS\n    (\n        SELECT\n            ticker,\n            sum(dividend_cash) AS dividend_cash,\n            sum(net_income)    AS net_income,\n            min(period_end)    AS win_start,\n            max(period_end)    AS win_end\n        FROM ranked\n        WHERE rn <= 4\n        GROUP BY ticker\n        HAVING count() = 4\n    ),\n    share_counts AS\n    (\n        SELECT\n            i.ticker                               AS ticker,\n            argMin(i.diluted_shares, i.period_end) AS shares_before,\n            argMax(i.diluted_shares, i.period_end) AS shares_latest\n        FROM\n        (\n            SELECT\n                arrayJoin(tickers)                    AS ticker,\n                period_end,\n                toFloat64(diluted_shares_outstanding) AS diluted_shares\n            FROM global_markets.stocks_income_statements\n            WHERE hasAny(tickers, ['AAPL', 'MSFT', 'HD', 'CSCO', 'KO', 'JNJ'])\n              AND timeframe = 'quarterly'\n              AND diluted_shares_outstanding > 0\n              AND period_end >= '2022-01-01'\n        ) AS i\n        INNER JOIN trailing_year AS y ON i.ticker = y.ticker\n        WHERE i.ticker IN ('AAPL', 'MSFT', 'HD', 'CSCO', 'KO', 'JNJ')\n          AND toDate(i.period_end) >  subtractDays(toDate(y.win_start), 100)\n          AND toDate(i.period_end) <= toDate(y.win_end)\n        GROUP BY i.ticker\n    ),\n    avg_prices AS\n    (\n        SELECT\n            d.ticker                AS ticker,\n            avg(toFloat64(d.close)) AS avg_close\n        FROM global_markets.stocks_daily_aggs AS d\n        INNER JOIN trailing_year AS y ON d.ticker = y.ticker\n        WHERE d.ticker IN ('AAPL', 'MSFT', 'HD', 'CSCO', 'KO', 'JNJ')\n          AND d.date >  subtractDays(toDate(y.win_start), 100)\n          AND d.date <= toDate(y.win_end)\n        GROUP BY d.ticker\n    )\nSELECT\n    y.ticker                                       AS ticker,\n    round(y.dividend_cash / y.net_income * 100, 1) AS dividend_payout_pct,\n    round((y.dividend_cash + greatest(s.shares_before - s.shares_latest, 0) * p.avg_close) / y.net_income * 100, 1) AS total_payout_pct\nFROM trailing_year AS y\nINNER JOIN share_counts AS s USING (ticker)\nINNER JOIN avg_prices   AS p USING (ticker)\nWHERE y.net_income > 0\nORDER BY total_payout_pct DESC","computed_at":"2026-10-05T15:27:13.528728+00:00","elapsed":7.852821334}