---
title: 벤치마크
description: 같은 기간 동안 포트폴리오 수익률을 SPY, QQQ 또는 사용자 지정 인덱스와 비교합니다. 결국 보고 싶은 건 하나입니다. 시장을 이기고 있는지, 아니면 그냥 따라가고 있는지입니다.
---

export const optionsRows = [
  { cmd: '--from YYYY-MM-DD',   desc: '시작일 (기본: 가장 이른 스냅샷 또는 거래)' },
  { cmd: '--to YYYY-MM-DD',     desc: '종료일 (기본: 오늘)' },
  { cmd: '-b, --benchmarks',    desc: '쉼표로 구분한 티커 목록 (기본: SPY,QQQ; IWM, DIA, VOO 등도 가능)' },
  { cmd: '--json',              desc: '스크립트용 JSON 출력' },
];

export const modes = [
  {
    icon: 'snap',
    title: '일별 스냅샷이 있을 때 (권장)',
    desc: '일별 포트폴리오 합계를 사용해 벤치마크의 일별 종가와 같은 기준으로 비교합니다. 스냅샷이 많을수록 결과도 더 믿을 만합니다.',
  },
  {
    icon: 'cost',
    title: '스냅샷이 없을 때 (폴백)',
    desc: <>총 cost basis와 현재 시가를 비교하고, 출력에 그 한계도 함께 표시합니다. 자본이 서로 다른 날짜에 들어간 점은 반영하지 못하므로 방향성 정도로만 봐야 합니다. 정확도를 높이려면 <code>firma add snapshot</code>을 꾸준히 기록하세요.</>,
  },
];

<Section label="firma show benchmark">
각 벤치마크의 일별 캔들을 Finnhub에서 가져와, 포트폴리오와 동일한 기간에 대한
총 수익률을 비교합니다. 일별 스냅샷이 있으면 가장 이른 스냅샷을 시작일로
사용하고, 없으면 가장 이른 거래 날짜를 기준으로 cost-basis 비교 모드로
전환됩니다.

<div className="terminal">
  <div className="terminal-line">
    <span className="term-prompt">$</span>
    <span className="term-cmd">firma show benchmark</span>
  </div>
  <pre className="term-pre"><span className="d">Benchmark Comparison  2024-01-02 → 2026-04-27  (846d)</span></pre>
  <table className="term-table">
    <tbody>
      <tr><td>Portfolio</td><td className="td-green">+61.23%</td><td className="td-muted">$100,000 → $161,230</td><td className="td-muted">(snapshot)</td></tr>
      <tr className="sep"><td colSpan={4}/></tr>
      <tr><td>SPY</td><td className="td-green">+28.41%</td><td className="td-muted">$450.00 → $578.00</td><td/></tr>
      <tr><td>QQQ</td><td className="td-green">+35.10%</td><td className="td-muted">$380.00 → $513.80</td><td/></tr>
      <tr className="sep"><td colSpan={4}/></tr>
      <tr><td>Alpha vs SPY</td><td className="td-green">+32.82%</td><td/><td/></tr>
      <tr><td>Alpha vs QQQ</td><td className="td-green">+26.13%</td><td/><td/></tr>
    </tbody>
  </table>
</div>

  <Note>
    Finnhub API 키가 필요합니다. 무료 플랜은 일별 캔들을 최대 1년까지 제공합니다.
    그보다 긴 기간을 비교하면 응답에 경고가 붙고 벤치마크 기간이 잘립니다.
  </Note>
</Section>

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

<Section label="스냅샷 모드 vs cost-basis 모드">
  <FeatureList items={modes} />
</Section>
