---
title: Earnings
description: Earnings reports are the single biggest driver of short-term stock moves. Know when your holdings report and what analysts expect. Before the market reacts.
---

export const reasons = [
  {
    icon: '↗',
    title: 'Beat / miss drives immediate price action',
    desc: 'A single earnings report can move a stock 5–20% overnight. EPS beat (actual > estimate) typically pushes prices up. A miss does the opposite. The magnitude depends on how far from the consensus and how levered sentiment already is.',
  },
  {
    icon: '▲',
    title: 'Guidance often matters more than the numbers',
    desc: 'Companies can beat EPS yet trade down if forward guidance disappoints. Watch both the actuals and the next-quarter outlook together.',
  },
  {
    icon: '◎',
    title: 'Manage risk before the report',
    desc: 'Knowing you hold 80% of your portfolio in a stock reporting tomorrow lets you decide whether to reduce exposure, hedge, or hold. Firma combines the earnings schedule with your actual position size.',
  },
];

export const claudeExchange = [{
  user: 'TSLA just reported. How did it do, and what does MSFT reporting next week mean for me?',
  ai: <p>
    TSLA Q1 2026 beat on EPS (<code>$0.41</code> vs <code>$0.38</code> est,
    +7.9%) but missed on revenue (<code>$22.4B</code> vs <code>$23.2B</code> est, −3.4%).
    Your <code>400 shares</code> at avg <code>$249.91</code> are up{' '}
    <code>+50.6%</code>. TSLA is 74% of your portfolio. A ±5% earnings reaction
    is roughly ±$7,500 to your net worth.
    MSFT reports Apr 29 AMC (EPS est <code>$4.14</code>). It's only 3.8% of
    your portfolio, so the impact is minimal either way.
  </p>,
}];

<Section label="Why Earnings Matter">
  <FeatureList items={reasons} />
</Section>

<Section label="firma show earnings">
Without a ticker: shows upcoming earnings for all your holdings over the
next 4 weeks, with EPS and revenue estimates. Once actuals are available,
they fill in automatically.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show earnings</span>
  </div>
  <table className="term-table">
    <thead>
      <tr><th>TICKER</th><th>DATE</th><th>WHEN</th><th>EPS EST</th><th>EPS ACT</th><th>REV EST</th><th>REV ACT</th></tr>
    </thead>
    <tbody>
      <tr className="sep"><td colSpan={7}/></tr>
      <tr><td className="td-bold">MSFT</td><td className="td-muted">2026-04-29</td><td className="td-muted">AMC</td><td>$4.14</td><td className="td-muted">─</td><td>$83.0B</td><td className="td-muted">─</td></tr>
      <tr><td className="td-bold">AAPL</td><td className="td-muted">2026-04-30</td><td className="td-muted">AMC</td><td>$1.98</td><td className="td-muted">─</td><td>$111.4B</td><td className="td-muted">─</td></tr>
      <tr><td className="td-bold">NVDA</td><td className="td-muted">2026-05-20</td><td className="td-muted">AMC</td><td>$1.79</td><td className="td-muted">─</td><td>$80.0B</td><td className="td-muted">─</td></tr>
    </tbody>
  </table>
</div>

  <Note>
    AMC = after market close. BMO = before market open.
    EPS ACT and REV ACT populate after the company reports.
  </Note>
</Section>

<Section label="firma show earnings <ticker>">
With a ticker: shows the recent earnings history plus any upcoming events.
Lets you quickly see how the stock has been tracking vs expectations
over the past several quarters.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show earnings TSLA</span>
  </div>
  <table className="term-table">
    <thead>
      <tr><th>TICKER</th><th>DATE</th><th>WHEN</th><th>EPS EST</th><th>EPS ACT</th><th>SURPRISE</th></tr>
    </thead>
    <tbody>
      <tr className="sep"><td colSpan={6}/></tr>
      <tr><td className="td-bold">TSLA</td><td className="td-muted">2026-04-22</td><td className="td-muted">AMC</td><td>$0.38</td><td className="td-green">$0.41</td><td className="td-green">+7.9%</td></tr>
    </tbody>
  </table>
</div>

  <Note>
    Revenue actuals also show a miss/beat indicator. E.g. <code>$22.4B ▼ 3.4%</code>{' '}
    means revenue came in 3.4% below the estimate.
  </Note>
</Section>

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