Track buys, sells & market value in AED / USD
Identifying a card: every card is entered by its grading cert number. For PSA and BGS, this page looks the cert up live and on its own β it fetches the grader's public cert page through a read-only proxy (since neither site allows cross-site requests directly) and fills in name, set, grade, and photo (whenever the grader's own page has one on file). That result is then cached, so the same cert is instant on every later visit. CGC doesn't have a public cert-lookup page this can reach automatically (theirs sits behind a bot-check that blocks even the proxy), so for CGC, click "Verify β" to check the details on their site and type them in yourself β or ask Claude in chat to look one up for you. If the grader's page doesn't have a photo on file, this page falls back to a matching Alt.xyz listing's photo so you can still see roughly what the card looks like β that photo is clearly marked with a π badge (hover it) since it's a similar listing, not necessarily your exact physical card. You can always upload or paste your own real photo instead (see below), which takes priority over both.
Currency: AED is pegged to USD at a fixed rate of 1 USD = 3.6725 AED, so conversions are exact β no live FX lookup needed.
Estimated market value: instead of a flat average, recent sales are weighted more heavily (each sale back in time counts ~15% less than the one after it). This follows what you asked for β the last sale or two matters more than something from months ago.
% of market paid: shown two ways β vs. the estimated value on your buy date (using only sales that happened before you bought), and vs. today's estimate.
Sales history: once a card's name and grade are known (from any grading company, not just PSA), this page automatically searches Alt.xyz in the background and pulls real recent sold prices for it β no assistant needed. PSA-cert cards also have psacard.com's own comps table as a fallback if Alt.xyz doesn't find a confident match. This happens quietly for every card, both right after a cert is identified and as a background sweep over existing cards with no sales data yet, and results are cached so they're instant after the first fetch. Alt.xyz's catalog leans heavily Pokemon/TCG, so sports cards and less common prints sometimes genuinely aren't listed there at all β when that happens the cert-lookup status line will say so plainly ("No Alt.xyz listing found...") rather than sitting there silently, and it won't keep re-checking that same card for about 12 hours (the "π Refresh all sales" button always forces an immediate recheck regardless). Claude can still pull hand-checked sales from Alt.xyz on request for extra-clean data β when that exists for a card, it's used ahead of everything else. Note: Alt.xyz is used for market comps, and β only as a fallback when neither the grader nor you has supplied a photo β a badged "reference photo" too; either way, a search match there is a similar listing, not necessarily a photo of your exact card.
Manual market price: if a card's name/grade can't be matched to anything on Alt.xyz (or PSA, for PSA certs) β a very obscure card, or one Alt simply doesn't carry β its value shows as "β οΈ no market data" instead of guessing. Use the "βοΈ Enter a manual market price" button in its sales history, or the "Manual market price" field on the add/edit form, to set your own number. Manual price is only ever used as a last resort, when there are genuinely no real comps found.
Upload your own photo: next to the "Image URL" field there's a file picker β upload a photo of your actual slab and it's used directly as the card's image (stored locally in your browser, resized down automatically). This is the reliable way to guarantee a photo shows up, especially for BGS/CGC cards where an automatic photo isn't always available. It also shows a rough "best guess" of the grading company based on the label's dominant color (PSA's label is reliably red; BGS colors by grade tier β black is specifically a Black Label 10, gold is Gem Mint 10, silver is 8.5β9; CGC's standard label is blue, with green for "Qualified" and gold for "Pedigree"). This is a color guess, not a real read of the grade β gold and silver in particular are genuinely ambiguous between BGS and CGC, so it never overwrites the "Grading co." dropdown for you; always double-check it yourself.
Cash on hand: the dashboard has a "Cash on hand" tile (click the βοΈ) for money you're holding but haven't put into a card yet β it's added into "Total net worth" and shows as a dashed line on the value chart.
Net worth chart: once you have a couple of cards, a chart appears showing your total net worth (card holdings + cash on hand) trending month by month.
Refresh all sales: the "π Refresh all sales" button at the top re-checks every card in the portfolio (Alt.xyz first, then PSA's own comps as a fallback for PSA certs) β several cards at once rather than one at a time, so a full portfolio refresh takes a fraction of the time it used to. On top of that, this page also quietly re-checks a few cards in the background every 15 minutes on its own (anything not already refreshed today), so comps stay reasonably current even if you never click the button β the button is still there for "I want this instant, right now."
Trades: the "π Trade" button records a straight card-for-card(s) trade, optionally plus/minus cash. Check off what you're giving up, and the new card's cost basis is set automatically to whatever you traded away was worth, adjusted by the cash. The given-up card(s) move out of "Holding" and into "Sold" (labeled "Traded away") rather than a plain sale, and don't count toward win rate since no real cash sale happened.
Sorting: the sort dropdown can order by buy price or estimated value (highβlow or lowβhigh), in addition to date and profit %.
Table view: the "π Table" toggle switches to a compact spreadsheet-style view (card name, grade, market price, cost, % paid, sold price, profit, profit %, dates) - click any column header to sort by it, click again to reverse. Same search/filter as the card view. Switch back with "π Cards" any time; your choice is remembered.
Storage: everything is saved in this browser's local storage, so it'll still be here next time you open the file on this device. Use Export (JSON, for backup/restore) or CSV (for spreadsheets) to get your data out.