[{"data":1,"prerenderedAt":135},["ShallowReactive",2],{"blog-en-collection-roi":3},{"id":4,"title":5,"body":6,"date":126,"description":127,"extension":128,"meta":129,"navigation":130,"path":131,"seo":132,"stem":133,"__hash__":134},"blog\u002Fen\u002Fblog\u002Fcollection-roi.md","How to Calculate Your Trading Card Collection's ROI",{"type":7,"value":8,"toc":117},"minimark",[9,13,17,22,25,36,39,43,46,75,78,82,85,89,92,96,103,110,114],[10,11,5],"h1",{"id":12},"how-to-calculate-your-trading-card-collections-roi",[14,15,16],"p",{},"Most collectors can tell you what a card is worth today. Far fewer can tell you what they\nactually paid for it, or whether the whole collection is up or down. ROI (return on\ninvestment) closes that gap — it turns \"I think this is worth more now\" into an actual number.",[18,19,21],"h2",{"id":20},"the-basic-formula","The basic formula",[14,23,24],{},"ROI on a single card is simple in principle:",[26,27,32],"pre",{"className":28,"code":30,"language":31},[29],"language-text","ROI % = (Current value − Purchase price) \u002F Purchase price × 100\n","text",[33,34,30],"code",{"__ignoreMap":35},"",[14,37,38],{},"A card bought for €20 that's now worth €35 has a ROI of +75%. The hard part isn't the math —\nit's keeping the purchase price attached to every single card you own, across however many\nyears you've been collecting. Most people don't, because there's no natural place to write it\ndown. A spreadsheet works until you have a few hundred cards across multiple sets and two\ndifferent games; at that point updating prices by hand becomes a part-time job nobody signed\nup for.",[18,40,42],{"id":41},"what-you-actually-need-to-track","What you actually need to track",[14,44,45],{},"To compute ROI honestly, per card, you need:",[47,48,49,57,63,69],"ul",{},[50,51,52,56],"li",{},[53,54,55],"strong",{},"Purchase price"," — what you paid, not what a price guide said it was worth at the time",[50,58,59,62],{},[53,60,61],{},"Current market value"," — a live price, not a number you remember from six months ago",[50,64,65,68],{},[53,66,67],{},"Grading status"," — a PSA 10 and a raw copy of the same card are not the same asset",[50,70,71,74],{},[53,72,73],{},"Purchase date"," — useful context, even if it doesn't enter the formula directly",[14,76,77],{},"The purchase price is the one people skip most often, usually because they add the card first\nand mean to fill in the price \"later.\" Later rarely comes. If you're setting up any kind of\ntracking system, make the purchase price a required field from the first card you add, not an\noptional one you'll backfill.",[18,79,81],{"id":80},"live-prices-vs-price-guides","Live prices vs. price guides",[14,83,84],{},"A common mistake is anchoring current value to a price guide figure looked up once, then never\nupdated. Card markets move — sometimes slowly, sometimes in a single weekend after a set\nrotation or a reprint announcement. For ROI to mean anything, \"current value\" has to come from\nan actual live market, not a snapshot from whenever you last checked. In Grail, current value is\npulled from TCGPlayer (USD, US market) and Cardmarket (EUR, EU market) — the two largest\nsecondary markets for both Pokémon TCG and One Piece Card Game — and refreshed automatically,\nnot manually re-entered.",[18,86,88],{"id":87},"grading-changes-the-equation","Grading changes the equation",[14,90,91],{},"A raw card and a graded one are effectively different assets with different price curves. A\nPSA 10 Charizard doesn't track the raw ungraded price 1:1 — grading adds both a real cost\n(submission fees, time) and a real premium (population reports, buyer confidence) that raw\npricing data doesn't capture. Automated market data for graded cards is much less standardized\nthan for raw cards, which is why most tracking tools — Grail included, today — handle graded\ncards differently: you record the grading company (PSA, BGS, CGC), the grade, and a manual\nmarket value you set yourself, rather than relying on an automated feed. It's more effort, but\nit's honest — a fabricated \"estimated\" graded price is worse than no price at all.",[18,93,95],{"id":94},"portfolio-level-roi-vs-per-card-roi","Portfolio-level ROI vs. per-card ROI",[14,97,98,99,102],{},"Per-card ROI tells you which single pulls or purchases performed best. Portfolio-level ROI\ntells you something different and arguably more useful: whether the collection ",[53,100,101],{},"as a whole","\nis a good store of value, after accounting for the cards that dropped alongside the ones that\nmooned. A collection can have three cards up 200% and still be net-negative if the other 40\ncards quietly lost half their value. Looking only at your best performers is a selection bias\nthat flatters your decisions — the number that matters is the aggregate.",[14,104,105,106,109],{},"This is also where a ",[53,107,108],{},"daily price history"," earns its keep, rather than a single before\u002Fafter\nsnapshot. A chart that only shows \"then\" and \"now\" hides how you got there — whether the value\nclimbed steadily or spiked once and has been declining since. Grail keeps a daily snapshot of\nevery wallet's value specifically so that history is real, not reconstructed after the fact from\ntoday's price.",[18,111,113],{"id":112},"the-takeaway","The takeaway",[14,115,116],{},"ROI on a card collection is only as good as the data behind it: real purchase prices, live\nmarket values, and a distinction between raw and graded. Get those three right and the number\ntells you something true about your collecting decisions — not just how much your best pull\nhappened to be worth today.",{"title":35,"searchDepth":118,"depth":118,"links":119},2,[120,121,122,123,124,125],{"id":20,"depth":118,"text":21},{"id":41,"depth":118,"text":42},{"id":80,"depth":118,"text":81},{"id":87,"depth":118,"text":88},{"id":94,"depth":118,"text":95},{"id":112,"depth":118,"text":113},"2026-07-19","A practical guide to tracking return on investment across your Pokémon TCG and One Piece Card Game collection — what to record, what it misses, and how grading changes the math.","md",{},true,"\u002Fen\u002Fblog\u002Fcollection-roi",{"title":5,"description":127},"en\u002Fblog\u002Fcollection-roi","EobQnDZUL89Jt_LJIauxmX0EsElcFcCLNyKX7o0jpbE",1790191573276]