The Spreadsheet Phase: Every Skin Investor's Rite of Passage
Somewhere on your drive, there is — or soon will be — a spreadsheet named something like CS2_Portfolio_v2_FINAL. It has conditional formatting. It has a pie chart. It has a column for "notes" containing exactly one note. This post is written with love, by people who built the same spreadsheet, about why it dies — and what the grown-up replacement looks like.
The rise
The spreadsheet is born in a moment of genuine virtue. You've made a handful of case buys, you've read that cost basis is the number that decides whether you're actually up, and you decide to be a serious person. An evening disappears. The result is honestly beautiful: purchase log, per-case tabs, live-ish price column, a P&L cell you refresh more often than you'd admit. Week one, every buy is logged within the hour. Week two, still strong. You are, briefly, the most organized investor you know.
None of this is mockery — the impulse is exactly right. Untracked positions produce folklore P&L ("I'm definitely up overall") and guesswork exits. The spreadsheet-builder has correctly identified that records are the difference between investing and accumulating clutter. The problem isn't the diagnosis. It's the treatment's operating cost.
The fall
The spreadsheet dies the same way for everyone, so the sequence deserves documentation:
- Week 3–4: a busy stretch produces the first unlogged buys. "I'll backfill from marketplace history this weekend." The phrase "backfill this weekend" appears in the ruins of every dead tracking system ever built.
- Week 5: the backfill happens, painfully — three venues' purchase histories, in two currencies, reconciled by hand. The euro conversions are approximated at whatever rate feels right, quietly corrupting the cost basis. (Getting FX conversion right is genuinely fiddly, which is why almost nobody does.)
- Week 6: a second gap opens. The backfill debt now exceeds the fun. The file stops being a record and becomes a reproach. It is never opened again — though it survives forever, a monument, like a gym membership card in a wallet.
The root cause isn't laziness. It's architecture: the spreadsheet is a second system that must be manually synchronized with reality, forever, by the same person whose enthusiasm is decaying on the schedule described in why manual buyers switch. Any record that depends on post-hoc human data entry inherits the human's half-life — and the entry burden is a real slice of the hidden time cost of doing this manually.
The principle the spreadsheet gets wrong
Good record systems share one property: the record is produced by the transaction, not after it. Your bank doesn't ask you to log your card purchases in a ledger each evening; the ledger writes itself because the ledger and the payment are the same event. The spreadsheet violates this — buying and logging are two separate acts, and the second one is optional, so eventually it doesn't happen.
The fix, then, isn't a better spreadsheet, a slicker template, or more discipline. It's moving the record upstream, into the thing that executes the buy. When the buyer is software, this is nearly free: cs2stack, for example, appends every fill to an append-only, money-exact purchase ledger — item, venue, price, the EUR rate used — committed to git at the moment of purchase. Append-only means rows can't be edited or lost, only added; git means the whole history is timestamped and tamper-evident. Nobody logs anything, ever, and the record is complete anyway. That's the entire argument of ledgers beat memory, and it's what makes open-ledger investing — publishing your receipts, as the founder does with his $20/day account — even possible.
What the ledger unlocks (that the spreadsheet promised)
Everything the pie chart was supposed to deliver actually arrives once the data is complete and trustworthy. Real average cost per item, from real fills — not backfilled approximations. Honest P&L against live prices. Exit decisions made against your actual basis instead of a hunch — because "sell a tranche at 2x" is only executable if you know, to the cent, what 1x was. And come tax season, a complete transaction history that turns a weekend of archaeology into a file export — the difference described in tax season with an automated ledger. The daily buy-report emails serve as human-readable receipts on top, so the ledger isn't even something you need to open unless you want the raw truth.
A migration path for spreadsheet survivors
If you're mid-spreadsheet-phase right now, the move is straightforward. Don't burn the file — freeze it. Backfill it one final time, as accurately as your marketplace histories allow, and treat the resulting totals as your opening cost basis. From that date forward, let executed-and-logged buys come from the automated side (the setup is one config file), and keep the frozen sheet as the "pre-history" appendix. Your combined records will have one imperfect era and one exact one — which beats the usual alternative of one imperfect era and then nothing.
And keep the spreadsheet skills. There's real analysis worth doing on top of a trustworthy ledger — allocation drift, per-case performance, scenario math for scaling decisions. Spreadsheets are wonderful at analysis; pivot tables over a complete, exact purchase log are a genuine pleasure. They were only ever doomed as the system of record, and that's the one job you should never give them again. Record downstairs, analysis upstairs — that's the division that survives.