Benchmark

Compare your portfolio return against SPY, QQQ, or any custom index over the same period. It's a simple question: are you beating the market, or just riding along with it?

Pulls daily candles for each benchmark from Finnhub and compares total return over the same window your portfolio covered. When daily snapshots exist, the start date is your earliest snapshot. Otherwise it falls back to your earliest transaction date with a cost-basis comparison.
$firma show benchmark
Benchmark Comparison  2024-01-02 → 2026-04-27  (846d)
Portfolio+61.23%$100,000 → $161,230(snapshot)
SPY+28.41%$450.00 → $578.00
QQQ+35.10%$380.00 → $513.80
Alpha vs SPY+32.82%
Alpha vs QQQ+26.13%
Requires a Finnhub API key. Free plan provides up to 1 year of daily candle data. For longer comparisons, the response includes a warning and the benchmark window is clipped.
--from YYYY-MM-DDStart date (default: earliest snapshot or transaction)
--to YYYY-MM-DDEnd date (default: today)
-b, --benchmarksComma-separated tickers (default: SPY,QQQ; try IWM, DIA, or VOO)
--jsonOutput as JSON for scripting
snap
With daily snapshots (preferred)
Uses your day-by-day portfolio total for a true like-for-like comparison against the benchmark's daily close. The more snapshots you have, the more reliable the result.
cost
Without snapshots (fallback)
Compares total cost basis to current market value, with a note in the output. It does not account for capital being added on different dates, so treat it as directional only. Run firma add snapshot regularly to upgrade.
MIT License