---
title: Dividend
description: Estimate annual and monthly dividend income from your current holdings, using the dividend-per-share data Finnhub returns when you sync prices.
---

export const yieldRows = [
  { cmd: 'YIELD',    desc: "Current yield: annual DPS ÷ today's market price. It changes every day as the stock price moves." },
  { cmd: 'YLD@COST', desc: 'Yield on Cost: annual DPS ÷ your average purchase price. It stays fixed to your personal cost basis and shows the return on the capital you actually deployed.' },
];

export const optionsRows = [
  { cmd: <code>firma show dividend</code>,        desc: 'Display in local currency (KRW by default)' },
  { cmd: <code>firma show dividend -c USD</code>, desc: 'Convert income to USD at the current exchange rate' },
  { cmd: <code>firma show dividend --json</code>, desc: 'Machine-readable output' },
];

export const claudeExchange = [{
  user: 'How much passive income am I generating from dividends this year?',
  ai: <p>
    Based on your current holdings and latest prices, you're on track for
    roughly <code>$109/year</code> in dividends, or about <code>$9/month</code>.
    MSFT leads at <code>$58</code> (18 shares × $3.24 DPS, 0.88% yield),
    AAPL at <code>$44</code> (43 shares × $1.03 DPS, 0.38% yield),
    and NVDA contributes <code>$6</code> (156 shares × $0.04 DPS, 0.02% yield).
    TSLA does not pay dividends.
  </p>,
}];

<Section label="firma show dividend">
Shows dividend yield, annualized DPS, and estimated annual income for
every holding that pays a dividend. Only tickers with dividend data in the
local price cache are included. Run <code>firma sync</code> first to populate it.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show dividend</span>
  </div>
  <table className="term-table">
    <thead>
      <tr><th>TICKER</th><th>SHARES</th><th>YIELD</th><th>YLD@COST</th><th>ANN. DPS</th><th>EST. ANNUAL</th></tr>
    </thead>
    <tbody>
      <tr className="sep"><td colSpan={6}/></tr>
      <tr><td className="td-bold">MSFT</td><td>18</td><td className="td-muted">0.88%</td><td style={{ color: 'var(--yellow)' }}>1.30%</td><td className="td-muted">$3.2394</td><td>$58</td></tr>
      <tr><td className="td-bold">AAPL</td><td>43</td><td className="td-muted">0.38%</td><td style={{ color: 'var(--yellow)' }}>0.66%</td><td className="td-muted">$1.0318</td><td>$44</td></tr>
      <tr><td className="td-bold">NVDA</td><td>156</td><td className="td-muted">0.02%</td><td style={{ color: 'var(--yellow)' }}>0.03%</td><td className="td-muted">$0.0399</td><td>$6</td></tr>
      <tr className="sep"><td colSpan={6}/></tr>
    </tbody>
    <tfoot>
      <tr><td className="td-muted">Annual income</td><td colSpan={5}>$109</td></tr>
      <tr><td className="td-muted">Monthly avg</td><td colSpan={5} className="td-muted">$9</td></tr>
    </tfoot>
  </table>
</div>

  <Note>
    Yield and DPS figures come from Finnhub and reflect the most recent sync.
    Run <code>firma sync</code> to refresh. TSLA and NVDA are not shown because
    they do not pay dividends.
  </Note>
</Section>

<Section label="Yield on Cost vs Current Yield">
The table shows two yield columns because they answer different questions:

  <CommandTable rows={yieldRows} />

Example: you bought MSFT at an average of <code>$250/share</code>. The annual DPS
is <code>$3.24</code>, so your Yield on Cost is <code>1.30%</code>. That is what
the dividend is returning on your invested dollars, regardless of where the stock
trades today. If MSFT is now at <code>$368</code>, the current yield is{' '}
<code>0.88%</code> because the price appreciated. Long-term holders often find
their YLD@COST runs well above the headline yield because the stock price grew
while the dividend kept going.

  <Note>
    Yield on Cost requires at least one buy transaction in the ledger to compute
    a cost basis. Tickers with no cost data show a dash in the YLD@COST column.
  </Note>
</Section>

<Section label="Options">
  <CommandTable rows={optionsRows} />
</Section>

<Section label="With Claude">
  <ChatDemo header="Claude Desktop · firma MCP connected" exchanges={claudeExchange} />
</Section>
