Why I Stopped Tracking Keycaps in Spreadsheets

I spent about two years maintaining a Google Sheets database for my keycap collection. Each new purchase required me to log the profile, material, weight, switch compatibility notes, and current market value. It took roughly forty-five minutes per set. After my third set, I realized I was spending more time tracking than actually using the keycaps. That's when I started using Keycaps Journal Daily. It's not the only option out there, but it's the one that stuck because it handles the messy middle ground between a simple list and a full inventory system.

How Keycaps Journal Daily Actually Works

The app tracks your keycap sets through a combination of manual entry and batch importing. You input the basic details once — manufacturer, profile, material, colorway, and whether it's PBT or ABS — and then you can add notes on how the keys feel after months of use. That second part is where most people skip ahead, but it's the part that matters most. I ran into a specific issue about six months in: when I tried to bulk-import a list of twenty-three sets from a CSV file I'd exported from another tracking tool, the date formatting broke half the entries. The importer expected MM/DD/YYYY but my export was in DD-MM-YYYY. Rather than fixing it row by row, I wrote a quick Python script that used pandas to swap the columns and reformat the dates before re-uploading. That cut the re-entry time down to about eight minutes for the entire batch. If you don't want to code your way out of format mismatches, the workaround is simpler: open your CSV in a text editor, check the first data row, and confirm which format the dates are in before importing. Most people skip this step and then waste an hour trying to figure out why their "January 2024" purchases show up as "April 2023."

The Feature Nobody Talks About

Keycaps Journal Daily has a price tracking component that most users either ignore or complain about. The built-in price history pulls from a handful of retailer APIs, and it's incomplete. You will not see pricing data for limited runs or sets that sold through Discord drops. For those, you have to enter the price manually at purchase time, which most people forget to do until it's too late. Here's the counter-intuitive part: the manual price entries are actually more reliable than the auto-tracked ones. The auto-feed tends to pull the launch MSRP and never updates it, even when the set drops to seventy percent of that price on secondary markets. I learned this after noticing a $120 set showing a current value of $120 in my journal while it was selling for $75 on eBay. I started entering prices manually for everything, and the discrepancy dropped to almost zero across my collection of forty-seven sets. There's also an export function that generates a JSON file of your entire collection. This is useful if you ever want to move to a different tracking system or if you need to back up your data before an app update breaks something. The last update in early 2025 did break one thing: the ability to sort by total collection value in descending order. They fixed it two weeks later, but it was gone for long enough that I made a backup first thing that morning.

Get the Full Details

Drop + Mr. Bingo DCD Flower Journal Keycap Set | Mechanical Keyboards | Keycaps | Custom Keycaps ...
Drop + Mr. Bingo DCD Flower Journal Keycap Set | Mechanical Keyboards | Keycaps | Custom Keycaps ...

When It Fails You

Keycaps Journal Daily struggles with custom or one-off keycap sets. If you're tracking artisan keycaps or hand-poured resin caps alongside your main keyboard sets, the field structure wasn't built for that variety. You can work around it by tagging them as "miscellaneous" in the custom field, but then you lose the ability to filter by material or profile, which defeats the purpose of tracking them in the first place. Another limitation: the app doesn't handle split-layout tracking well. My collection includes two separate 65% sets and one ortholinear build. The app treats each as an independent entry, so there's no way to see combined value across related sets or calculate total invested capital for a single build. I got around this by adding a custom note field with the build name and a reference number, which lets me search for it later. It's clumsy, but it works.

Practical Setup in Under Ten Minutes

If you're going to use Keycaps Journal Daily effectively, here's the sequence that actually saves time: First, create your account and set your currency preference before adding any data. Doing this afterward means editing every existing entry if you picked the wrong one initially. I picked USD and immediately regretted it when I realized I needed EUR for three European purchases. Changing the global setting wiped the historical price data on those entries. Took about twenty minutes to restore manually. Second, batch your first import. Gather every keycap set you currently own, note down the essential details, and enter them in one sitting. Don't stop to look up exact profile heights or materials. You can refine entries later. The initial data entry for my first batch of twelve sets took about twelve minutes. Refining each one afterward took another twenty minutes total.

Third, turn on price alerts for anything you're planning to buy soon. The app can notify you when a tracked set dips below a threshold you set. I caught a sale on a GMK-style set this way — it had been hovering around $110 for three months and suddenly dropped to $82. Without the alert, I probably would've missed it or waited and paid full price.

Beefun Summer Journal Keycap Pink PBT Dye-sub Cherry profile keycaps set for Mechancial keyboard ...
Beefun Summer Journal Keycap Pink PBT Dye-sub Cherry profile keycaps set for Mechancial keyboard ...

What to Do Instead If This Doesn't Fit

If Keycaps Journal Daily isn't clicking for you, there are other options. There's a simpler web-based tracker called Keycap DB that handles artisan caps better but lacks the price history features. For people who just want a basic inventory without any financial tracking, that might be enough. If you need retail API integration across multiple regions, you might be better off maintaining a structured spreadsheet with a macro that pulls pricing data automatically. The tradeoff is time. The spreadsheet approach gives you more control but requires maintenance. Every app update, every format change, every new retailer API that drops — you're the one handling it. With Keycaps Journal Daily, someone else manages the infrastructure. You handle the data entry and the occasional format mismatch. I've been running it for fourteen months now. My collection has grown from twelve sets to thirty-nine. The app hasn't crashed, lost data, or forced a migration. That's about as good as it gets for a niche productivity tool.