skip to content
Investing · September 2026

Why I built a holding-period tool for my Robinhood trades


Every tax season, the same ritual: download the Robinhood activity CSV, stare at hundreds of rows of buys and sells, and try to reconstruct which sale came from which purchase — and whether each gain is long-term or short-term.

Robinhood gives you a ledger, not an answer. The CSV lists every transaction in chronological order, but your holding period lives across rows: a single sell might close out three different purchases, some held for years, some for weeks. The 1099-B eventually arrives and does the math for you, but by then it’s February, the numbers are a fait accompli, and you’ve learned nothing about your own trading.

I wanted three things the 1099 doesn’t give me:

  1. The answer early. Know your realized gains during the year, while there’s still time to act — harvest a loss, defer a sale past the one-year mark, or just set cash aside for the tax bill.
  2. The reasoning, not just the number. For each sell, show exactly which buy lots it consumed under FIFO, with dates and holding days. If the tool says “short-term,” I want to see why.
  3. Privacy by construction. A brokerage export is about as sensitive as a file gets. I didn’t want to upload mine to anyone’s server — including, frankly, my own. So the tool runs entirely in the browser: parse, match, and estimate without a single network request.

The result is the Robinhood holding-period analyzer. Import your activity CSV and it groups everything by symbol, FIFO-matches sells to buys, and flags the tricky cases instead of guessing: sells with no covering purchase in the file, symbols with a stock split in their history, option trades and cash movements it deliberately ignores. A tax-scenario panel then applies your short-term rate and the IRS long-term brackets (0/15/20%) for a rough estimate.

A few honest caveats, since this touches taxes: it’s FIFO only, it doesn’t handle wash sales, and option strategies are out of scope. It’s a learning and planning aid, not tax advice — your 1099-B and your accountant have the final word.

Building it scratched the same itch as this blog: learn in public. The matching logic is covered by unit tests checked in alongside the widget code — dividend reinvestments, fractional shares, multi-year histories — and the whole thing is one more reason I keep this site fast and dependency-light.

If you try it with your own export, I’d love to hear what it gets wrong. Every misclassified row is a feature request.